Телефония Call Manager Express: маршрутизация звонков

Ранее мы настроили сервер телефонии по протоколам sip и sccp. Теперь можно совершать звонки внутри офиса компании. Но как часто бывает, компания растет, открывает филиалы по городу, стране, возможно даже странам. Предлагаю рассмотреть одну из таких компаний, имеющая два дополнительных филиала.

Из схемы видно, что на каждый филиал мы установили дополнительный Cisco CME, сделано это  для того, чтоб филиальные телефоны регистрировались локально у себя и не создавали дополнительный трафик при регистрации телефонов и последующих разговоров.

Так как начальный конфиг аналогичный для всех CME в схеме, ниже приведена общая версия:

version 12.4

hostname voip_gw
no aaa new-model
!
resource policy
ip dhcp pool voip1
network 10.109.2.0 255.255.255.0
default-router 10.109.2.1
option 150 ip 10.109.0.1
!
ip name-server 212.1.224.6
!
voice service voip
allow-connections sip to sip
sip
bind control source-interface Loopback0
registrar server
!
voice register global
mode cme
source-address 10.109.0.1 port 5060
max-dn 6
max-pool 3
!
voice register dn 1
number 2005
!
voice register dn 2
number 2006
!
voice register dn 3
number 2050
!
voice register pool 1
id mac 1111.2222.3333
number 1 dn 1
number 2 dn 3
username student password cisco
codec g711alaw
!
voice register pool 2
id mac 1111.2222.3333
number 1 dn 2
username student2 password cisco2
codec g711alaw

После размещения данного конфига на всех CME,  телефоны на всех трех объектах зарегистрируются на своем CME, и уже станет возможным совершать звонки внутри одного CME.

Хочу уточнить один момент, что план нумерации на каждом объекте свой, branch1 имеет 31хх, branch2 —  65хх, HQ — 77xx.

Дальше переходим к вопросу связи между объектами. Для этого, обычно серьезные компании покупают у операторов связи услугу L3VPN, если филиалы находятся в одном городе, и MPLS магистраль  если раскиданы по стране тем самым объединяя свои филиалы в одну сеть. В нашем случае используется  MPLS. После этого, необходимо добиться полной связности на сетевом уровне, проще говоря сделать так, чтоб все ПК, телефоны и прочие устройства в сети видели другие такие же устройства в остальных  филиалах. Это очень важно для voip, так как для передачи голоса между телефонами, они должны видеть друг друга на сетевом уровне. Иначе, может случиться односторонняя слышимость, т.е. вызов проходит, телефон звонит, понимаем трубку, мы слышим удаленную сторону, а нас нет.

Допустим настроили сеть с помощью динамической маршрутизации, обычно это BGP если используется MPLS, все роутеры с CME видят друг друга, сети за ними тоже доступны. Теперь необходимо организовать звонки между CME. Делается это с помощью dial-peer.

Dial-peer (диал-пир) — это точка на устройстве, в которую попадает и уходит звонок, придя с одного из плечей (VoIP/PSTN). Если сравнить его с сетевой маршрутизацией, то диал-пир это как статический маршрут, который направляет звонок, при условии попадения набранного номера под шаблон (destination pattern), и направления его на указанный адрес назначения.

Количество диал-пиров на устройстве зависит от организации телефонной структуры предприятия и  в любом случае звонок попадет в тот или иной диал-пир, если совпадают destination-pattern.

Итак начнем с CME_2, нам необходимо организовать звонки между центральным офисом и первым филиалом, пишется диал пир:

CME_2#(conft) dial-peer voice 77 voip
                      destination-pattern 77..
                      session target ipv4:10.109.0.1

Первой строчкой создаем сам диал-пир, указываем что будет использоваться именно voip. Диал-пиры бывают voip и pots — соответственно отвечают за voip — передачи голоса поверх ip сети или PSTN — в основном аналоговые порты типа FXS, FXO, E1.Точками указывается максимальная длина номера, который может подпасть под данный шаблон.
Destination-pattern — шаблон направления, т.е в нем указывается часть номерного плана который находится на определенном ip адресе.
Ip адрес куда пересылать вызовы подпадающие под данный destination-pattern указываем командой session target ipv4:10.109.0.1.

В итоге получается следующая схема, абонент набирает номер 7701, вызов приходит на CME_2, далее вызов сравнивается с существующими диал-пирами, в нашем случае выбирается dial-peer voice 77 voip, звонок пересылается дальше на CME_1 с ip адресом 10.109.0.1.

Аналогичные  диал-пиры необходимо написать на CME_1  в сторону CME_2 только изменить destination-pattern:

CME_1(conft) dial-peer voice 31 voip
                   destination-pattern 31..
                   session target ipv4:10.109.1.1

В итоге, чтобы организовать полносвязную топологию в телефонии, необходимо на каждом из трех CME написать диал-пиры в сторону остальных CME:

CME_1(conft) dial-peer voice 31 voip
                   destination-pattern 31..
                   session target ipv4:10.109.1.1

dial-peer voice 65 voip
                   destination-pattern 65..
                   session target ipv4:10.109.2.1

CME_2(conft):dial-peer voice 77 voip
                   destination-pattern 77..
                    session target ipv4:10.109.0.1

                   dial-peer voice 65 voip
                   destination-pattern 65..
                   session target ipv4:10.109.2.1

CME_3(conft):dial-peer voice 31 voip
                   destination-pattern 31..
                   session target ipv4:10.109.1.1

                  dial-peer voice 77 voip
                  destination-pattern 77..
                  session target ipv4:10.109.0.1

 

После вышеприведенных манипуляций, звонки начнут проходить между филиалами.

Дополнительно хотелось бы рассмотреть схему с резервными каналами связи, что в наше время очень актуально. Предположим, что филиалы подключили в качестве резерва для телефонии выделенный канал E1. Для этого необходимо в наши CME установить платы с контроллером E1. Настройка данных контроллеров специфическая, для этого будет отдельная статья, сейчас только рассмотрим возможность резервирования через диал-пир.

CME_2(conft)dial-peer voice 77 voip
                   destination-pattern 77..
                   session target ipv4:10.109.0.1
                   preference 0

                  dial-peer voice 65 voip
                  destination-pattern 65..
                  session target ipv4:10.109.2.1
                  preference 0

                 dial-peer voice 7 pots
                 destination-pattern 77..
                 port 0/0/0:15
                 preference 1

                dial-peer voice 6 pots
                destination-pattern 65..
                port 0/0/0:15
                preference 1

Используя команду preference можно определить, что IP WAN является приоритетным каналом связи для второго филиала. Чем ниже значение preference, тем более высоким становится приоритет канала.

Preference — задаёт правило перебора подходящих dial-peer. Если не будет ответа от противоположной стороны, то попытка установления вызова перейдёт к следующему диал-пиру.

Для Dial-peer 7 назначили тип pots, так как CME направляет   звонки через канал Е1. По аналогии создаем диал пир в центральном офисе в сторону филиалов через поток Е1.

CME_1(conft)dial-peer voice 6 pots
                  destination-pattern 65..
                  port 0/0/0:15
                  preference 1

                 dial-peer voice 7 pots
                 destination-pattern 31..
                 port 0/0/1:15
                 preference 1

                dial-peer voice 31 voip
                destination-pattern 31..
                session target ipv4:10.109.1.1

               dial-peer voice 65 voip
               destination-pattern 65..
               session target ipv4:10.109.2.1

Таким образом мы настроили телефонию в компании между филиалами с возможностью резервирования по потокам Е1.

Данная статья всего лишь знакомит с возможностями  VoIP телефонии, на самом деле если углубиться в данный курс, можно узнать множество специфических моментов, при помощи которых можно построить серьезную и надежную систему телефонной связи. Думаю необходимо только желание, а возможность протестировать свои знания всегда можно на виртуальных системах и эмуляторах.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hide me
Получать регулярно свежие материалы, лабораторные и вебинары
Email Имя
Show me