Всем привет!
На днях пришлось очень быстро решить задачу дружбы Asterisk + FreePBX + Cisco 7937G.
Думаю, не все сразу вспомнят, что такое 7937G, намню — это конференц-станция от Cisco.
У нее есть 2 «маленькие особенности»:
- Работает только с SCCP
- Питание через PoE
Сразу оговорюсь, приведенный ниже пример делался на CentOS 5.8 (i386).
Приступим к настройке:
tftp (оционально, если не установлен)
yum install tftp-server.i386 chkconfig xinetd on chmod 777 /tftpboot service xinetd start
В диерктории /tftpboot необходимо создать файл XMLDefault.cnf.xml:
<Default> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <ethernetPhonePort>2000</ethernetPhonePort> <mgcpPorts> <listen>2427</listen> <keepAlive>2428</keepAlive> </mgcpPorts> </ports> <processNodeName></processNodeName> </callManager> </member> </members> </callManagerGroup> <loadInformation431 model="Cisco Phone 7937">apps37sccp.1-4-1-0</loadInformation431> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <servicesURL></servicesURL> </Default>
Здесь, очень важно указать правильную версию ПО железки, в моем случае apps37sccp.1-4-1-0. Посмотреть версию ПО можно, зайдя на 7937G через web.
Asterisk
По умолчанию поддержки SCCP в Asterisk нет (поддреживается chan_skinny, но очень хотелось сделать именно на SCCP), его лучше собрать, не стравить через RPM:
wget http://downloads.sourceforge.net/project/chan-sccp-b/V3/Chan_SCCP-3.1.2_STABLE.tar.gz tar zxf Chan_SCCP-3.1.2_STABLE.tar.gz cd Chan_SCCP-3.1.2_STABLE/ make clean ./configure make && make install
Включим загрузку chan_sccp.so при загрузке Asterisk:
nano /etc/asterisk/modules.conf
Добавляем строки:
noload => chan_skinny.so load => chan_sccp.so load => res_features.so
После этого конфигурируем sccp.conf в /etc/asterisk (я сделал минимальную конфигу, оставив все необходимое):
;========================================================================================= ; ; general definitions ; ;========================================================================================= [general] servername = MyOfficePBX keepalive = 60 debug = 0 context = from-internal-xfer dateformat = D.M.Y bindaddr = 0.0.0.0 port = 2000 disallow=all allow=alaw allow=ulaw allow=g729 firstdigittimeout = 16 digittimeout = 8 autoanswer_ring_time = 1 autoanswer_tone = 0x32 remotehangup_tone = 0x32 transfer_tone = 0 callwaiting_tone = 0x2d musicclass=default language=en deny=0.0.0.0/0.0.0.0 permit=10.10.1.0/255.255.255.0 dnd = on sccp_tos = 0x68 sccp_cos = 4 audio_tos = 0xB8 audio_cos = 6 video_tos = 0x88 video_cos = 5 echocancel = on silencesuppression = off trustphoneip = no private = on callanswerorder=oldestfirst protocolversion=17 hotline_enabled=yes ;can devices without configuration register hotline_context=from-internal-xfer ; context for hotline hotline_extension=11111 ; extension will be dialed on offHook ;========================================================================================= ; ; actual definitions ; ;========================================================================================= [SEPXXXXXXXXXXXX] ; MAC of 7937G description = Conference Room devicetype = 7937 type = device button = line, 200 deny=0.0.0.0/0.0.0.0 ; Same as general permit=10.10.1.0/255.255.255.0 ; Same as general imageversion = apps37sccp.1-4-1-0 pickupcontext = from-internal-xfer tzoffset = +0 transfer = on trustphoneip = no directrtp=off earlyrtp = progress private = on mwilamp = on mwioncall = off setvar=testvar=value cfwdall = on imageversion = apps37sccp.1-4-1-0 [310] id = 1001 type = line label = Phone 200 description = Line 200 cid_name = CONFROOM cid_num = 200 echocancel = off context = from-internal-xfer transfer = on vmnum = 600 trnsfvm = 1000 secondary_dialtone_digits = 9 secondary_dialtone_tone = 0x22 musicclass=default language=en echocancel = on silencesuppression = off
Приведу сильно сокращенное описание: заданы 3 секции [general] — глобальная конфигурация драйвера канала, [SEPXXXXXXXXXXXX] — конфигурация железки, [310] — конфигурация линии. Обращу внимение, что SEPXXXXXXXXXXXX тоже легко доступно через web 7937.
Очень желательно, после создания конфигурации перезагрузить ядро asterisk (core restart now).
После этого можно запросить:
pbx*CLI> sccp show version Skinny Client Control Protocol (SCCP). Release: 3.1.2 STABLE pbx*CLI> sccp show devices NAME ADDRESS MAC Reg. State Reg. Time ======================================== ========================== ================ ========== ========================= Conference Room -- :0 SEPXXXXXXXXXXXX None Sat Mar 24 17:29:55 2012
FreePBX
Для полноценной интеграцие с 7937G с FreePBX необходимо создать (прописать) в FreePBX, то что мы определили в конфигах.
Создаем новый экстеншен: Extensions-> Other (custom) device:
User Extension: 200
Display Name: Conference Room
SIP Alias: 200
dial: SCCP/200
(приведен минимальный и достаточный набор полей к запонению)
Cisco 7379G
Здесь все уже совсем просто, необходимо «с кнопок» выставить настройки сети (IP адрес, маску, шлюз) и IP адрес tftp сервера. Оговорюсь, изменение настроек заблокировано (там замочек закрытый нарсован) и перед началом конфигуграции необходимо ввести **# для разблокировки.
Собственно и все!
Ссылки:
PS: По традиции: это мой первый пост, не бейте сильно )))
Автор: aleksey2000