antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 4 Февраль , 2011

Задача тактическая: Подключить к голосовым портам 2611 два аналоговых телефона. Добиться взаимодействия телефонов между собой и IP-телефонами, зарегистрированными на 2800. Номера портов/адресация — см. рисунок.

Процесс:
Подключаем к существующему кусочку лабы(2811 + свитч + телефоны) маршрутизатор 2611 с 2 FXS портами. К FXSам подключаем обычные аналоговые телефоны.

Проводим базовую настройку

Будет маршрутизатором офиса “BR” компании “1”
Router(config)#hostname BR1

Связь между HQ1 и BR1 у меня через 18-й VLAN.
Создаем соответствующий сабинтерфейс и устанавливаем на него IP-адрес.
BR1(config)#int e0/0.18
BR1(config-subif)#encapsulation dot1Q 18
BR1(config-subif)#ip address 172.18.1.2 255.255.255.0

Создаем лупбек для будущих диапиров.
BR1(config)#int loo 0
BR1(config-if)#ip add 192.168.0.2 255.255.255.255

——————Краткая теория:——————

Аналоговые порты бывают:

FXS(Foreign Exchange Station)  — порт станции. Для лёгкости запоминания — это тот порт, к которому мы подключаем телефоны и “он в них гудит”. FXS-порты — это телефонные розетки.

FXO(Foreign Exchange Office) — абонентский порт. Это порт самого телефона — тот который получает напряжение.

Таким образом к FXS-порту подключается FXO-порт. Один выдаёт напряжение, другой получает. С одной стороны станция, с другой — абонент. Взаимодействие FXS-FXS и FXO-FXO невозможно. FXS-FXO — это связка ведущий-ведомый. Оба типа портов используют для работы 2 провода.

E&M (Ear&Mouth, Earth&Magnet и [КО негодуэ] recEive and transMit) — порты аналоговых транков. E&M-портами подключаются друг к другу мини-АТС/голосовые шлюзы. Отличаются от FXS-FXO уходом от идеологии “ведущий-ведомый” и усложнённой процедурой установления соединения. Бывает аж 5 типов и может использовать до 8(!) проводников; в большинстве реализаций голос и сигнализация передаются по разным проводникам. Дорогие и малораспространенные.

Все 3 типа голосовых портов встречается на маршрутизаторах Cisco; т.е. в зависимости от оснащённости портами устройство может выступать как в роли станции (FXS, E&M), так и в роли телефона (FXO).

——————Конец теории:——————

Включаем голосовые порты:
BR1(config)#voice-port 1/0/0
BR1(config-voiceport)#no sh
Both ports are in service

Поднимаем трубки. Слышим гудок. Работают.

Кстати, тут же можем с налету поменять тип Call Progress тонов:
BR1(config)#voice-port 1/0/0
BR1(config-voiceport)#cptone RU
BR1(config)#voice-port 1/0/1
BR1(config-voiceport)#cptone RU

Можно выбрать и рингтон:
BR1(config-voiceport)#ring cadence ?
define     User Defined Cadence
pattern01  2sec on 4sec off
pattern02  1sec on 4sec off
pattern03  1.5sec on 3.5sec off
pattern04  1sec on 2sec off
pattern05  1sec on 5sec off
pattern06  1sec on 3sec off
pattern07  .8sec on 3.2sec off
pattern08  1.5sec on 3sec off
pattern09  1.2sec on 3.7sec off
pattern10  1.2sec on 4.7sec off
pattern11  .4sec on .2sec off .4sec on 2sec off
pattern12  .4sec on .2sec off .4sec on 2.6sec off

Я оставлю по дефолту, но эстеты могут наваять свой при помощи команды “ring cadence
define”.

Тут же есть полезные таймеры:

BR1(config-voiceport)#timeouts initial X
Сколько ждать от пользователя начала набора номера.
BR1(config-voiceport)#timeouts interdigit Y
Время “между цифрами” — если в течении его не до-наберут = набор окончен.
BR1(config-voiceport)#timeouts ringing Z
Сколько звенеть звонком если не берут трубку.

Теперь пора бы и позвонить. Но сначала, да, она — теория.

——————Краткая теория:——————

Для направления вызовов на оборудовании Cisco используются “дайлриры” (Dial-peer), которые в просторечии называют диалпирами.

В первом приближении диалпиры делятся на VoIP (регламентирующие обработку вызовов в IP-сетях) и POTS (для работы с сетями традиционной телефонией).

Тип диалпира указывается при его создании:
(config)#dial-peer voice {номер диалпира} {тип диалпира}

  • Для каждого вызова ВСЕГДА есть входящий диалпир.
  • Для вызова МОЖЕТ быть найден исходящий диалпир.
  • Один и тот же диалпир может быть одновременно и входящим и исходящим, но не для одного и того же звонка.
Критерий выбора исходящего диалпира:
— наиболее точное совпадение параметра Destination-pattern с набранным номером — Longest Match.

В Destination-pattern номерной план можно указывать как в явном виде (диалпир #3 в примере ниже), так и в виде регулярных выражений.

Примеры записи простейших регулярных выражений:
“.” — одна любая цифра
“45678.” — 6-ти значный номер, у которого первые 5 цифр заданы явно, а последняя (одна) любая
“T” — любое количество любых цифр

Примеры :
dial-peer voice 1 voip
destination-pattern 3T =Номер любой длины, начинающийся с 3=
session-target ipv4:10.1.1.1

dial-peer voice 2 voip
destination-pattern 333… =6-ти значные номера, начинающийся с 333=
session-target ipv4:10.2.2.2

dial-peer voice 3 voip
destination-pattern 333444 =Номер 333444=
session-target ipv4:10.3.3.3

dial-peer voice 4 voip
destination-pattern 333[4-8]44 -=6-ти значные номера, начинающиеся “333”, далее цифра от 4 до 8, и ещё “44”=-
session-target ipv4:10.4.4.4

Набрали номер 333444
В принципе вызов попадает под все диалпиры. Будет выбран тот, который подразумевает самое “точное” совпадение — в нашем случае #3.

набрали номер 333448
Вызов попадает под диалпиры 1 и 2. Диалпир #2 обеспечивает наименьшее количество “разночтений” — по нему и уйдёт вызов.

Критерии выбора входящего диалпира в порядке применения:

1. Наиболее точное совпадение параметра диалпира “incoming called-number” с DNIS (Dialed Number Identification Service) — это КОМУ звонят.
2. Наиболее точное совпадение параметра диалпира “answer-address” с ANI (Automatic number identification) — это КТО звонит.
3. Наиболее точное совпадение параметра диалпира “destination-pattern” с ANI.
4. Для POTS диалпиров вызов принимает на тот диалпир, который указывает на порт, с которого звонок собственно пришел.

Особо толковые парни конечно спросят: “А чО делать если все совпадают?”.
А вот тут из кустов появляется невидимый и универсальный диалпир #0, на который могут приняться как VoIP, так и POTS вызовы.
Вывод: Входящий диалпир найдут всегда, даже если вы этого не очень хотите.

Вернемся к исходящим…
С destination-pattern в целом разобрались, теперь собственно мы должны указать куда слать вызов при совпадении DNIS с destination-pattern. Тут все просто.

Для POTS просто указываем порт:
dial-peer voice 1 pots
description POTS-DIALPEER
destination-pattern 9T
port 1/0/0

Для VoIP указываем IP-адрес следующего устройства
dial-peer voice 1 voip
description VOIP-DIALPEER
destination-pattern 9T
session target ipv4:192.168.168.168

——————Конец теории:——————

Рисуем потсовые диалпиры на аналоговые телефоны:
BR1(config)#dial-peer voice 1201 pots
BR1(config-dial-peer)#destination-pattern 1201
BR1(config-dial-peer)#port 1/0/0
BR1(config-dial-peer)#description BLACK-PHONE

BR1(config-dial-peer)#dial-peer voice 1202 pots
BR1(config-dial-peer)#destination-pattern 1202
BR1(config-dial-peer)#port 1/0/1
BR1(config-dial-peer)#description WHITE-PHONE

Кто не пишет “дескрипшены” к диалпирам, того многократно поразит постыдная неудача с женщиной.

Проверяем волшебной командой:
BR1#csim start 1201 — звенит!
BR1#csim start 1202 — звенит!

Звоним с одного телефона на другой — все равно работает.

Далее хочу обеспечить звонки с BR1 на HQ1 и обратно. Связь между ними по IP, а значит требуются “коннективити”. Одним из способов приподнять себе карму являются диалпиры указывающие на лупбеки.

Включаем на устройствах OSPF:

BR1(config)#router ospf 1
BR1(config-router)#net 172.18.1.2 0.0.0.0 area 0
BR1(config-router)#net 192.168.0.2 0.0.0.0 area 0

HQ1(config)#int loo 0
HQ1(config-if)#ip ospf 1 area 0
HQ1(config-if)#int f0/0.16
HQ1(config-subif)#ip ospf 1 area 0
HQ1(config-subif)#int f0/0.17
HQ1(config-subif)#ip ospf 1 area 0
HQ1(config-subif)#int f0/0.18
HQ1(config-subif)#ip ospf 1 area 0

Проверяем, что на HQ1 прилетел лупбек BR1:
HQ1#sh ip route ospf
192.168.0.0/24 is variably subnetted, 2 subnets, 2 masks
O       192.168.0.2/32 [110/2] via 172.18.1.2, 00:00:21, FastEthernet0/0.18

Рисуем на HQ1 воипный диалпир, указывающий на телефоны BR1:
HQ1(config)#dial-peer voice 1200 voip
HQ1(config-dial-peer)#destination-pattern 120.
HQ1(config-dial-peer)#session target ipv4:192.168.0.2
HQ1(config-dial-peer)#description TO-BR1’s-ANALOG-PHONES

Звоню с IP-телефонов — работает!
Звонок с аналоговых на IP естественно не проходит, т.к. на этом этапе BR1 не знает где они находятся.

Исправляем недоработку:
BR1(config)#dial-peer voice 1100 voip
BR1(config-dial-peer)#destination-pattern 110.
BR1(config-dial-peer)#session target ipv4:192.168.0.1
BR1(config-dial-peer)#description TO-HQ1’s-IPPHONES

Звоню с аналоговых на IP — работает! Миракл!

Смотрите в следующих сериях: “Зачем еще нужны диалпиры”, “Манипуляции с цифрами”, “Продвинутая настройка CUCME”.

 

Опубликовано: Маршрутизаторы и коммутаторы

 

5 комментариев “Про голос. Собираем лабу 2. FXS & Dial-peers.”

comment rss - Trackback

  1. Про аналоговые порты интересно, ни разу не доводилось иметь с ними дело. Как-то так получилось, что с голосом вообще имел дело достаточно много, но с голосом на цисках крайне мало 🙂

  2. Adept_23:

    Смотрите в следующих сериях: “Зачем еще нужны диалпиры”, “Манипуляции с цифрами”, “Продвинутая настройка CUCME”.
    — этого я буду ждать с нетерпением!! 🙂
    P.S. Спасибо огромное за статьи!!!

  3. lifecool:

    Когда же … когда же выйдет долгожданное продолжение?:) …

  4. uniken1:

    Обновите пожалуйста картинку в заголовке, она не отображается

» Оставить комментарий

Вы должны войти чтобы прокомментировать.