Введение
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 маршрутизатора:
Рис. 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).
Рис. 2 Добавление SRST маршрутизатора в CUCM
Ссылка на SRST маршрутизатор ассоциируется с IP телефоном, используя Device Pool. Так, в меню System > Device Pool в требуемом пуле можно выбрать SRST маршрутизатор из списка заданных:
Рис. 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.
- Для начала, общие настройки: имя, пароли, часовой пояс, удаленный доступ, убрать лишние настройки, если оборудование новое, из коробки
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
- Настройка 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 запросы
- Общие настройки 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
- Настройка 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