Доброго времени!
Сегодня заметка будет посвящена настройке, которая позволит ограничить доступ в городскую телефонную сеть абонентам IP телефонии.
Сначала рассмотрим то что у нас есть, а затем что нужно сделать. Ну а после соответственно перейдем к настройке.
Итак, у нас есть на предприятии телефония, которая построена на основе CUCM 6.
Все друг другу звонят, общаются, переводят звонки и прочее, все хорошо. Но нужен доступ в ТФОП, причем некоторым нужен доступ только на городские телефоны, некоторым доступ к междугородним звонкам, а некоторым вобще не нужен доступ 🙂
В моем, простом случае, городские телефоны «приходят» от оператора обычной лапшой, соответственно все это подключается к маршрутизатору Cisco 2811, который имеет FXO порты.
Предположим что шлюз POTS у нас будет подключаться к CUCM по протоколу H.323 (можно и удобнее по MGCP, но это мы рассмотрим в другой раз 🙂 ).
Будем решать задачи постепенно.
Связку H323 шлюза и CUCM я уже рассматривал.
После того как мы все сделали, «воткнули» соответствующую телефонную линию в FXO порт, нам нужно прописать Dial-Peer для выхода в город.
Для упрощения напишем такой dial-peer:
dial-peer voice 1 potsdestination-pattern .Tport 0/0/0
Теперь нужно указать в CUCM, куда пересылать звонки которые идут в ТФОП.
Для этого нам нужно добавить соответствующий Route Pattern.
В CUCM заходим в раздел Call Routing -> Route/Hunt.
Добавляем новый маршрут для доступа в город, например такой:
9.XXXXX, тоесть здесь у нас 9-ка будет использоваться как префикс «выход в город», далее идут 5 цифр (у нас в городе используется пятизначные номера).
Затем выбираем в поле Gateway/Route List нужный шлюз, через который будет осуществляться выход.
И еще нам необходимо отбросить префикс 9 от номера, который будет передаваться на шлюз. Делается это с помощью Called Party Transformations, в поле Discard Digits выбираем PreDot, что говорит о том, что все что идет до «.» будет вырезано.
После всего этого сохраняем.
Если все настроено верно, то можем с любого IP телефона набрать 944444, вы должны позвонить по номеру «44444».
Так же создаем еще один Route Pattern для межгорода, 9.8XXXXXXXXXX, сохраняем, проверяем.
Одно дело сделано :), теперь необходимо разобраться с правами доступа.
Как описывалось в начале статьи, у нас будет три группы доступа.
- Звонки разрешены только внутри
- Звонки разрешены внутри и по городу
- Звонки разрешены внутри, по городу, межгороду
Когда мы создавали IP телефонию, все внутренние номера у нас находились в одной партиции (Partition), в простом случае.
Для Route Pattern, которых у нас будет 2 (один — звонки по городу, второй — звонки по межгороду), нужно создать две разных партиции.
Заходим в CUCM -> Call Routing Class of Control -> Add New
Указываем имя и описание. Если для города то например так:
Name: City
Description: Call to City
Сохраняем.
Тоже самое делаем для второй партиции.
Name: no-international
Description: Call to other city
Теперь нужно задать эти партиции в Route Pattern, которые мы создавали выше. Думаю в этом не возникнет проблем. (После того как вы поменяли партицию, со всех телефонов не будет доступен выход в город, межгород, пока не сделаем сл. шаги.)
После всего этого, нам необходимо сделать самое основное, это назначить права доступа конкретным телефонам, кто на что имеет доступ.
Соответсвенно кто имеет доступ только к внутренним вызовам ничего не меняется.
А для других нужно создать два CSS (Calling Search Space).
Переходим Call Routing -> Class of Control -> Calling Search Space.
Добавляем новый, называем CSS City
Должно получиться нечто такое:
Далее создаем второй CSS no-international по той же схеме. Выделяем нужные Партиции, которые будут доступны в этой CSS.
После того как все это сделано, нужно «привязать» каждому телефону, который имеет доступ больше чем внутренни звонки — CSS.
Переходим в Device -> Phone, находим нужный нам телефон, открываем его, и в поле Calling Search Space указываем нужный нам уровень доступа, например CSS City (доступ только по внутренним телефонам и в город).
Сохраняем, далаем Reset, звоним, проверяем. Теперь звонок должен проходить.
Тоже самое делаем и для других нужных телефонов.
Таким образом, с помощью Partition и CSS мы можем достаточно гибко создавать свои политики ограничения прав доступа к тем или иным видам звонков.
Это можно делать не только используя Route Pattern, но и чтоб ограничить от звонков внутренний номер, например, сделать так, чтоб обычный работяга не мог связаться с генеральным директором напрямую набрав его номер.
С эти разобрались, а что же у нас произойдет с входящими звонками?
Правильно, ничего 🙂 . Ведь для них нет никаких правил.
Допустим нам необходимо чтоб входящий звонок по телефонной линии, которая «воткнута» в порт 0/0/0 переключался на внутренний номер IP телефона — 100.
Для этого на порту 0/0/0 необходимо прописать:
voice-port 0/0/0
cptone RU
connection plar opx 100
Но этого не достаточно, шлюз ничего не знает о номере 100, поэтому нужно создать dial-peer:
dial-peer voice 100 voip
destination-pattern 100
session target ipv4:10.0.0.21
Теперь если позвонить на городской номер, который воткнут в voice port 0/0/0, будет звонить внутренний IP телефон 100.
Может возникнуть вопрос, а если нужно чтоб переадресация шла не на один номер, а на несколько? Здесь на помощь к нам придет Hunt, где можно указать как будет распространяться звонок, широковещательно (т.е. на всех сразу), по очереди, и так далее.
Использование hunt, я рассмотрю в одной из следующих статьях.
Good Luck 🙂