Поиск по этому блогу

19.03.2010

Телефония на маршрутизаторе по-быстрому

Наконец-то начал описывать Call Manager Express (CME).

Для начала необходимо в 2800 или 3800 серию "залить" соответствующий IOS. Это может быть 12.4Т voice или advipservices. PVDM требуется только при подключении к телефонной станции потоком E1, либо при организации на cisco ip-телефонах hardware конференций, т.е. конференций, где участников больше чем 3.

Если маршрутизатор не подключается к телефонной станции, к нему планируются подключаться еще и телефонные SIP ip-шлюзы с FXS-портами, то необходимо разрешить устанавливать соединения между ними. Предполагается, что для локального использования будет достаточно трехзначной нумерации и со всеми другими маршрутизаторами передача голоса будет осуществляться по H323-протоколу



voice rtp send-recv
!
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
fax protocol t38 nse ls-redundancy 0 hs-redundancy 0 fallback cisco
h323
sip

Отсутствие строк allow-connections ** to ** в конфигурационном файле означает, что взаимодействие voip-устройств возможно только через dial-peer pots.

Пусть имеем некий интерфейс:
interface FastEthernet0/1.100
description LAN
encapsulation dot1Q 100
ip address 10.10.9.254 255.255.255.0

interface FastEthernet0/1.110
description Voice LAN
encapsulation dot1Q 110
ip address 10.10.10.254 255.255.255.0
h323-gateway voip bind srcaddr 10.10.10.254

Отсутствие лубкека и наличие желания фиксировать адрес, с которого будет устанавливаться rtp-сессия с другими маршрутизаторами, подразумевает наличие строки h323-gateway voip bind srcaddr в интерфейсе.


Настраивается сервис телефонии для ip-телефонов Сisco.
telephony-service
ip source-address 10.10.10.254 port 2000
calling-number initiator
timeouts interdigit 3
system message MyCompany
cnf-file location flash:
time-zone 42
time-format 24
date-format dd-mm-yy
dialplan-pattern 1 ... extension-length 3
max-conferences 6 gain -6
call-forward pattern .T
call-forward system redirecting-expanded
transfer-system full-consult
transfer-pattern .T
В настройках указан часовой пояс, который никак не связан с настройками часового пояса в маршрутизаторе. Текущее время телефон получает только при загрузке конфигурации и самостоятельно никак не синхронизируется. Поэтому важно синхронизировать маршрутизатор и не забывать осуществлять руками в сервисе телефонии переход на летнее/зимнее время. Понятно, что смена часового пояса должна в итоге сопровождаться командой:
router(config)#telephony-service 
router(config-telephony)#reset all
Разные модели маршрутизаторов поддерживают разное количество телефонов. Почитать.
Не указанная в списке 72ая серия похоже поддерживает 500 телефонов.
Таким образом, в зависимости от модели, оперативной памяти и еще чего-нибудь, задается количество телефонов и DN (что-то вроде профиля для номера).
telephony-service
max-ephones 30
max-dn 100
Далее создаются телефонные номера. Например, хочу создать 10 номеров и чтобы все они раздались автоматически при подключении телефона.
ephone-dn  10  dual-line
number 210
!
!
ephone-dn 11 dual-line
number 211
!
!
ephone-dn 12 dual-line
number 212
!
!
ephone-dn 13 dual-line
number 213
!
!
ephone-dn 14 dual-line
number 214
!
!
ephone-dn 15 dual-line
number 215
!
!
ephone-dn 16 dual-line
number 216
!
!
ephone-dn 17 dual-line
number 217
!
!
ephone-dn 18 dual-line
number 218
!
!
ephone-dn 19 dual-line
number 219

telephony-service
auto assign 10 to 19

Настраиваются DHCP пулы, который будет раздавать адреса рабочим станциям и телефонам. Наличие опции 150 укажет им с какого адреса они будут скачивать конфигурационный файл в формате xml по протоколу tftp. В качестве tftp-сервера выступает сам маршрутизатор.
Часть адресов резервируется для голосовых шлюзов, которые должны иметь статические адреса.
ip dhcp excluded-address 10.10.10.1 10.10.10.50

ip dhcp pool LAN
network 10.10.9.0 255.255.255.0
default-router 10.10.9.254
dns-server 10.0.0.1 10.0.1.1
domain-name mycompany.com
netbios-node-type h-node

ip dhcp pool VoiceLAN
network 10.10.10.0 255.255.255.0
default-router 10.10.10.254
dns-server 10.0.0.1 10.0.1.1
option 150 ip 10.10.10.254

Предполагается, что использоваться будет только кодек G729, который поддерживается всеми телефонами Cisco, в том числе и софтфоном Cisco Communicator. Поэтому после регистрации телефонов в каждом ephone прописывается:
ephone  1
..
codec g729r8
..
Если будут использоваться различные сервисы на телефонах, например конференции, то необходимо включить sccp.
sccp local FastEthernet0/1.110
sccp

Вот и все по настройкам подключения телефонов Cisco на маршрутизаторе. Hardware'ные конференции пока описывать не буду. Для их работы в маршрутизаторе должны быть установлены PVDM.

Далее подключаются ip-шлюзы с двумя FXS-портами, для которых необходимо писать dial-peer'ы
dial-peer voice 220 voip
huntstop
destination-pattern 22[01]
session protocol sipv2
session target ipv4:10.10.10.1
session transport udp
no vad

dial-peer voice 222 voip
huntstop
destination-pattern 22[23]
session protocol sipv2
session target ipv4:10.10.10.1
session transport udp
no vad
На шлюзах настроено использовать g729 кодек, который dial-peer'ы используют по-умолчанию, если списка кодеков не указано.

Теперь необходимо хотя бы минимально настроить коммутатор:
interface FastEthernet1/0/1
description cisco ip-phone
switchport access vlan 100
switchport voice vlan 110
switchport mode access

interface FastEthernet1/0/2
description voip-adapter
switchport access vlan 110
switchport mode access

interface FastEthernet1/0/48
description Uplink
switchport trunk encapsulation dot1q
switchport mode trunk
На коммутаторе должен быть включен CDP или LLDP, чтобы цисковский телефон автоматически попал в голосовой vlan.

В заметке не описано куда же отправляется голосовой трафик. Вот к примеру так можно сделать:
dial-peer voice 1 voip
translation-profile outgoing AON
destination-pattern .T
session target ipv4:10.0.100.100
dtmf-relay rtp-nte
fax-relay ecm disable
fax rate 14400
fax nsf 000000
fax protocol t38 nse ls-redundancy 0 hs-redundancy 0 fallback cisco
no vad
Что касается dtmf-relay rtp-nte. Столкнулся однажды, что при звонках с cisco телефонов на какую-нибудь DISA невозможно было набрать добавочный номер в тоне. Пришлось экспериментировать с dtmf-relay.

Выше указывается профиль AON, который исправляет непонятные три номера на приемлемую для всех кашу. В конкретном случае АОН приводится к виду 7654321xxx.
voice translation-rule 76
rule 1 /^\(...\)$/ /7654321\1/
!
!
voice translation-profile AON
translate calling 76
Понятно, что обратную операцию надо сделать для входящих звонков. Можно написать аналогичный профиль и добавить его в dial-peer как incoming или можно сделать общее для всего маршрутизатора правило для номеров, начинающихся на двойку:
voip-incoming translation-rule called 1

translation-rule 1
Rule 0 ^76543212 2
Или так еще
router(config)#voip-incoming translation-profile ?
WORD Profile name

Про прошивки, сервисы, конференции напишу как-нибудь в другой раз.