...

Cisco ISR and SRST fallback mode

Введение

SRST (Survivable Remote Site Telephony) – функционал маршрутизатора, позволяющий обеспечивать сервис телефонии для IP телефонов в случае отсутствия связи с центральным сервером. Наиболее типичный сценарий применения – это филиал или удаленный офис компании, в котором сервис телефонии обеспечивается центральным сервером CUCM (Cisco Unified Communication Manager). В случае отсутствия WAN канала до центрального офиса, где расположен сервер CUCM, а так же в иных случаях потери связи с серверами CUCM, маршрутизатор может предоставить базовый сервис для IP телефонов. Таким образом, звонки внутри удаленного офиса и выход в городскую сеть связи (если шлюз находится на этой же площадке) будут работать. Система автоматически обнаруживает пропажу связи, а после ее восстановления передает сервис обратно, с маршрутизатора на CUCM.

Когда связь с CUCM теряется, телефон должен установить связь с SRST маршрутизатором. Для IP телефона шлюз по умолчанию в сетевых настройках указывает на адрес маршрутизатора в режиме SRST. Возможность телефона получить временный сервис Cisco Unified CM fallback зависит от его модели. Те телефоны, которые не поддерживаются маршрутизатором, потеряют сервис.

В настройках по умолчанию, телефон 3 раза с интервалом в 30 секунд ждет ответ от сервера CUCM, прежде чем считать, что он не доступен. Если телефон имеет standby connection с маршрутизатором SRST, то процесс перерегистрации занимает 10-20 секунд после принятия решения о том, что CUCM не доступен.

В том случае, если IP телефон имеет множество серверов CUCM в перечне Unified Communications Manager list, то процесс идет в соответствие со списком, ожидается ответ от первого сервера до последнего, и уже только потом телефон регистрируется на локальном маршрутизаторе. Таким образом, прерывание связи может длиться несколько минут. Более того, каждая модель телефона характеризуется своим временем на перерегистрацию, которое может быть от 10 секунд до 2.5 минут. Телефон, зарегистрированный на SRST маршрутизаторе делаем попытки связаться с CUCM каждые 120 секунд, это время может быть изменено. После возобновления связи телефон автоматически перерегистрируется на CUCM сервере.

Cisco Unified SRST поддерживает следующие возможности звонков:

• SCCP phone to SCCP phone

• SCCP phone to PSTN/router voice-port

• SCCP phone to WAN VoIP using SIP or H.323

• SIP phone to SIP phone

• SIP phone to PSTN / router voice-port

• SIP phone to SCCP phone

• SIP phone to WAN VoIP using SIP

На рисунке ниже показан типичный пример инсталляции SRST маршрутизатора:

srst_router

Рис. 1 Схема включения маршрутизатора Cisco Unified SRST

Настройка сети

Когда пропадает WAN канал, Cisco Unified IP телефон определяет, что он больше не получает keepalive пакеты от CUCM. Затем, телефон регистрируется на локальном маршрутизаторе. В это время на маршрутизаторе автоматически активируется программное обеспечение Cisco Unified SRST и создается локальная база подключенных телефонов (не больше настроенного максимума). В качестве DHCP сервера рекомендуется использовать локальный маршрутизатор Cisco Unified SRST.

Настройка CUCM

IP телефон должен знать информацию об альтернативном сервере для регистрации, когда потеряет связь с CUCM. Для этого в CUCM следует настроить следующим образом.

Из меню Cisco Unified CMAdministration выбрать меню System > SRST > Add New, указать IP адрес маршрутизатора и по желанию изменить номер порта (по умолчанию 5060).

cucm

Рис. 2 Добавление SRST маршрутизатора в CUCM

Ссылка на SRST маршрутизатор ассоциируется с IP телефоном, используя Device Pool. Так, в меню System > Device Pool в требуемом пуле можно выбрать SRST маршрутизатор из списка заданных:

cucm2

Рис. 3 Добавление SRST в Device Pool

Теория настройки SRST маршрутизатора в Cisco IOS

#call-manager-fallback – активация SRST

#max-conferences max-conference-numbers – устанавливает максимальное количество three-party разговоров

#ip source-address ip-address [port port] – команда задает IP адреса и порта, куда будет привязан сервис SRST, телефон и маршрутизатор будут общаться именно через этот адрес. Данная команда обязательна для запуска SRST. Дополнительные параметры “any-match” и “strict-match” определяют принимать ли запросы IP телефонов с любых IP адресов или только от явно заданных соответственно.

#max dn  max-directory-numbers [dual-line] [preference preference-order] – команда задает максимальное количество номеров DNs (directory numbers) или виртуальных голосовых порта, а так же активация режима dual-line. В добавок есть опциональная команда preference – задает приоритет для созданных для VoIP dial peers для всех DN, значения в диапазоне от 0 о 10, наименьшее имеет высший приоритет, по умолчанию значение preference равняется нулю.

#max-ephones max-phones – команда задает максимальное количество цифровых телефонов.

#limit-dn {7945 | 7960} max-lines – определение максимального числа линий у телефона

#keepalivae seconds – команда задает интервал, с которым IP телефон будет отправлять keepalive сообщения маршрутизатору. По умолчанию, 30 секунд.

#dialplan-pattern tag pattern extension-length length [extension-pattern extension-pattern] [no-reg] – определяет нумерационный план, задает глобальный префикс, который может быть использован для исходящих и исходящих вызовов. Здесь tag – индивидуальный идентификатор, может иметь значение от 0 до 5. Параметр pattern – выражение, задающее код зоны, префикс, первые одну или две цифры расширения, а так же wildcard маску для номера. Параметр extension-length определяет количество символов справа от номера, которое будет использоваться в caller ID. Параметр extension-pattern задает dial-plan, который будет сопоставляться с pattern.

#translation-profile {incoming | outgoing} name – voice translation profile можно использовать в dial-peer, source-groups, trunk-groups, voice-ports, voice service POTS, а так же в call-manager-fallback. Incoming и outgoing – для входящих и исходящих звонков соответственно. Параметр name задает имя translation profile.

#cor {incoming | outgoing} cor-list-name [cor-list-number starting-number – ending-number | default] – при звонках на маршрутизаторе в режиме SRST именно здесь задаются правила доступа пользователей, кто туда может звонить. Параметры incoming и outgoing задают входящий и исходящий dial-peer соответственно. Параметр cor-list-number – просто идентификатор номера cor-листа. Параметр starting-number – ending-number – начальный и конечный номер телефона (DN)

#alias tag number-patternto alternate-number [ preference preference-value ] [ cfw number timeout timeout-value ] [ huntstop ] – команда определяет набор правил для переадресации вызовов в режиме SRST fallback. Здесь tag – идентификатор переадресации, значение от 1 до 50. Значения number-pattern и alternate-number – откуда и куда осуществлять переадресацию. Опциональная команда preference задает приоритет команды, от 0 до 10. Опциональная команда cfw позволяет сделать переадресацию для случая no answer и call forward busy, параметрtimeout задает время в секундах, через которое сработает переадресация в случае no answer.

#timeouts interdigit seconds – задает интервал времени в секундах, сколько телефон, зарегистрированный на маршрутизаторе в режиме SRST будет ждать набора каждой последующей цифры.

Практика настройки SRST маршрутизатора в Cisco IOS

Рассмотрим полную настройку маршрутизатора для работы в режиме SRST fallback, расположенного в удаленном офисе компании.

Рассмотрим типовой сценарий подключения маршрутизатора ISR в филиале компании, где есть WAN канал с центральным офисом, где расположен CUCM, а так же провайдер городских линий по SIP.

  1. Для начала, общие настройки: имя, пароли, часовой пояс, удаленный доступ, убрать лишние настройки, если оборудование новое, из коробки

hostname Router-SRST

enable secret Pa$$word

username admin privilege 15 secret Pa$$word

aaa new-model

aaa authentication login default local

no ip domain-lookup

crypto key generate rsa #сгенерировать ключ длиной не менее 1024

ssh version 2

clock timezone MSK 4 0

line vty 0 4

 exec-timeout 0 0

 logging synchronous

 login local

 transport input telnet ssh

 transport output telnet ssh

 no access-class 23 in #если маршрутизатор новый, из коробки

line vty 5 15

exec-timeout 0 0

 logging synchronous

 login local

 transport input telnet ssh

 transport output telnet ssh

 no access-class 23 in #если маршрутизатор новый, из коробки

! убрать следующее, если маршрутизатор новый

no access-list 23

no banner login

no banner moth

no banner login

no ip dhcp excluded-address 10.10.10.1

no ip dhcp pool ccp-pool

interface GigabitEthernet0/0

description VoIP

ip address 10.0.1.254 255.255.255.0

interface GigabitEthernet0/1

 description SIP_Provider

 ip address 192.168.1.1 255.255.255.0

  1. Настройка DHCP пула на маршрутизаторе или DHCP Relay (если используется внешний DHCP сервер)

ip dhcp excluded-address 10.0.1.1 10.0.1.10

ip dhcp excluded-address 10.0.1.254

ip dhcp pool IP_Phone

 network 10.0.1.0 255.255.255.0

 default-router 10.0.1.254

 option 150 ip 10.0.0.1 10.0.0.2

 dns-server 10.0.0.3 10.0.0.4

interface GigabitEthernet0/0

ip helper-address 10.0.0.5 #в том случае, если используется внешний DHCP сервер, указывается куда перенаправлять DHCP запросы

  1. Общие настройки VoIP

voice service voip

 ip address trusted list

  ipv4 10.0.1.0 255.255.255.0 #внутренняя сеть VoIP предприятия

  ipv4 192.168.1.254 255.255.254.254 #SIP сервер провайдера

 allow-connections h323 to h323

 allow-connections h323 to sip

 allow-connections sip to h323

 allow-connections sip to sip

 redirect ip2ip

 fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback pass-through g711alaw

 h323

 sip

  registrar server expires max 300 min 60

  early-offer forced

  no call service stop

voice class codec 1

 codec preference 1 g711alaw #задаем список кодеков с приоритетом

!Задаем COR (class of restriction) листы 

dial-peer cor custom

 name Internal

 name City

 name Mobile

!

dial-peer cor list Internal

 member Internal

!

dial-peer cor list City

 member Internal

 member City

!

dial-peer cor list Moible

 member Internal

 member City

 member Mobile

! настройка translation-rule для звонков в город «через девятку»

voice translation-rule 1

 rule 1 /^91/ /1/

 rule 2 /^92/ /2/

 rule 3 /^93/ /3/

 rule 4 /^94/ /4/

 rule 5 /^95/ /5/

 rule 6 /^96/ /6/

 rule 7 /^97/ /7/

 rule 8 /^65/ /8/

 rule 9 /^99/ /9/

 rule 10 /^90/ /0/

voice translation-profile OutCall

 translate calling 1

  1. Настройка SRST-fallback

call-manager-fallback

 max-conferences 16

 timeouts interdigit 4

 ip source-address 10.0.1.254 port 2000

 max-ephones 500

 max-dn 500 dual-line

Если на удаленном сайте свой префикс, 555, то для звонков внутри маршрутизатора нужно указать префикс, а так же длину локального номера:

 dialplan-pattern 1 555…. extension-length 4

Безусловная переадресация вызова с 5551001 номера на 5551002

 alias 1 5551001 to 5551002

Безусловная переадресация вызова с диапазона номеров 5551100-5551199 номера на 5551002

 alias 1 55511.. to 5551002

Переадресация в случае если занятости абонента или недоступности, а так же после 12 секунд «длинного гудка» выглядит так:

alias 2 5551002 to 5551002 preference 1 cfw 5551003 timeout 12

В примере ниже звонок на 5551000 будет «охотиться» на номера 1005, 1006, 1007 соответственно:

 alias 3 5551000 to 5551005 cfw 5551000 timeout 12

 alias 4 5551000 to 5551006 cfw 5551000 timeout 12

 alias 5 5551000 to 5551007 cfw 5551000 timeout 12

!

Настройка доступа абонентов:

cor incoming Internal 1 5551000 – 5551099

cor incoming City 1 5551100 – 5551199

cor incoming Mobile 1 5551200 – 5551299

Пример применения COR листа на dial-peer

dial-peer voice 10 voip

 corlist outgoing City

 description City

 translation-profile outgoing OutCall

 destination-pattern 9[0-9]T

 session protocol sipv2

 session target ipv4:192.168.1.1:5060

 voice-class codec 1 

 voice-class sip bind control source-interface GigabitEthernet0/1

 voice-class sip bind media source-interface GigabitEthernet0/1

 dtmf-relay rtp-nte

 clid network-number 7777777

 no vad

dial-peer voice 20 voip

 corlist outgoing Mobile

 description Mobile

 translation-profile outgoing OutCall

 destination-pattern 989………

 session protocol sipv2

 session target ipv4:192.168.1.1:5060

 voice-class codec 1 

 voice-class sip bind control source-interface GigabitEthernet0/1

 voice-class sip bind media source-interface GigabitEthernet0/1

 dtmf-relay rtp-nte

 clid network-number 7777777

 no vad

При обрыве связи с CUCM регистрация SCCP телефонов произойдет в автоматическом режиме, а для регистрации SIP телефонов необходимо создать список из voice register pool. В этих примерах регистрируется каждый телефон в отдельности:

voice register global

 timeouts interdigit 4

 max-dn 100

 max-pool 50

voice register pool 1

id network 10.0.1.0 mask 255.255.255.0

 number 1 5551001

 cor incoming City default

 dtmf-relay rtp-nte

 voice-class codec 1

!

voice register pool 2

id network 10.0.1.0 mask 255.255.255.0

 number 1 5551002

 cor incoming Mobile default

 dtmf-relay rtp-nte

 voice-class codec 1

В этом примере разрешается регистрация сразу нескольких телефонов по маске, а именно с 5551100 до 5551199:

voice register pool 3

id network 10.0.1.0 mask 255.255.255.0

 number 1 55511..

 cor incoming Internal default

 dtmf-relay rtp-nte

 voice-class codec 1

Troubleshooting

Существует масса команд для поиска неисправностей, приведу лишь главные и наиболее часто применяемые из них:

#show call-manager-fallback all – Выводит детальную информацию по всей настройке телефонии в SRST маршрутизаторе

#debug ephone register – При обрыве связи с CUCM (обрыв канала WAN и пр.) позволит наблюдать как телефоны перерегистрируются с CUCM на маршрутизатор

Aug 13 16:13:50: VOICE REGISTER POOL-1 has registered. Name:  IP:10.0.1.20  DeviceType:Phone

Aug 13 16:13:51: VOICE REGISTER POOL-2 has registered. Name:  IP:10.0.1.21  DeviceType:Phone

%IPPHONE-6-REGISTER_NEW: ephone-25:ANF70D02EA3D402 IP:10.0.1.23 Socket:56 DeviceType:Phone has registered.

#showephone registered – Покажет зарегистрированные телефоны SCCP
phone-1[0] Mac:40F5.046C.B401 TCP socket:[48] activeLine:0 whisperLine:0 REGISTERED in SCCP ver 21/17 max_streams=1
mediaActive:0 whisper_mediaActive:0 startMedia:0 offhook:0 ringing:0 reset:0 reset_sent:0 paging 0 debug:0 caps:8
IP:10.0.1.25 * 51953 SCCP Gateway (AN)  keepalive 8 max_line 1 available_line 1
port 2/0/1
button 1: cw:1 ccw:(0 0)
  dn 43 number 5551112  CM Fallback CH1   IDLE         CH2   IDLE
Preferred Codec: g711ulaw
Lpcor Type: none
 
#showephonesummary – Аналогичный вывод для SCCP телефонов, но более кратко:
ephone-1[0] Mac:40F5.046C.B401 TCP socket:[48] activeLine:0 whisperLine:0 REGISTERED
mediaActive:0 whisper_mediaActive:0 startMedia:0 offhook:0 ringing:0 reset:0 reset_sent:0 debug:0
IP:10.0.1.25 * SCCP Gateway (AN)  keepalive 13   music 0  1:43  CM Fallback

#show voice register all – Покажет список всех voice register pool (для SIP телефонов) с подробной информацией:

Pool Tag 1

Config:

  Network address is 10.0.1.0, Mask is 255.255.255.0

  Number list 1 : Pattern is 5551112

  Proxy Ip address is 0.0.0.0

  Class of Restriction List Tag: default

    Incoming corlist name is Mobile

  DTMF Relay is enabled, rtp-nte

  kpml signal is enabled

  Lpcor Type is none

  paging-dn: config 0 [multicast]  effective 0 [multicast]

Dialpeers created:

Dial-peers for Pool 1:

dial-peer voice 40035 voip

 corlist incoming Mobile

 destination-pattern 5551112$

 redirect ip2ip

 session target ipv4: 10.0.1.112:15061

 session protocol sipv2

 dtmf-relay rtp-nte

 digit collect kpml

 voice-class codec 1

  after-hours-exempt   FALSE

Statistics:

  Active registrations  : 1

  Total SIP phones registered: 1

  Total Registration Statistics

    Registration requests  : 4

    Registration success   : 4

    Registration failed    : 0

    unRegister requests    : 3

    unRegister success     : 3

    unRegister failed      : 0

    Attempts to register

           after last unregister : 0

    Last register request time   : 16:14:40.572 MSK Wed Aug 13 2014

    Last unregister request time : 10:36:41.196 MSK Tue Aug 12 2014

    Register success time        : 16:14:40.572 MSK Wed Aug 13 2014

    Unregister success time      : 10:36:41.196 MSK Tue Aug 12 2014

Ответить