Возникла необходимость настроить телефон Cisco Unified IP Phone 7931G для работы по протоколу SIP и подключению его к серверу с Asterisk.
Ранее я не имела опыта по настройке данных аппаратов и пришлось разбираться с нуля.
Итак у нас имеется аппарат, который штатно работает по протоколу SCCP (Skinny Client Control Protocol, проприетарный протокол Cisco).
Первостепенная задача — перепрошить телефон SIP прошивкой, взятой с официального сайта.
На сайте есть прошивка версии 9+ и я сначала поставила ее, но возникли проблемы с конфигом. Примеров конфигурационного файла для 9ой версии в Инете не нашлось и телефон отказывался работать (даже с сокращенным до минимума конфигом для прошивок версии 8) я решила откатиться до версии 8.5(3)SR1 как самой популярной по мануалам из разных источников.
Для настройки телефона нам понадобится:
- DHCP сервер
- tftp сервер
В моем случае — все делалось на рабочей станции под OS FreeBSD.
IP-адрес машины для внутренней сети — 10.20.1.1/24
Если вдруг Ваш телефон не настроен на DHCP, то это можно изменить через меню телефона. Надо разблокировать возможность менять настройки комбинацией клавиш **#, и, покопавшись в не сильно просторном меню, выставить искомый параметр.
Для запуска tftp требуется расскоментировать (или добавить) строчку в /etc/inetd.conf
tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot
Создать директорию в корне (если она отсутствует):
#mkdir /tftpboot
Установить права доступа на эту директорию:
#chown -R nobody:nogroup /tftpboot
Далее запустить
#/etc/rc.d/inetd onestart
Для автозапуска, после перезагрузки системы, добавить в /etc/rc.conf:
inetd_enable=”YES”
Проверяем, запустился ли демон inetd:
#sockstat | grep :69
root inetd 1094 5 udp4 *:69 *:*
Настраиваем DHCP. Установила из портов сервер isc-dhcp42-server:
#cd /usr/ports/net/isc-dhcp42-server/
#make install clean
Далее правим конфиг DHCP и добавляем DHCP Option 66 и Option 150:
#ee /usr/local/etc/dhcpd.conf
option voip-tftp-server code 150 = { ip-address }; subnet 10.20.1.0 netmask 255.255.255.0 { ...skiped... option tftp-server-name "10.20.1.1"; option voip-tftp-server "10.20.1.1"; ...skiped... }
Cisco Systems использует нестандартную опцию в DHCP – option 150 (проприетарная опция) для настройки своих аппаратов. Опция 66 — ее аналог.
Тоже самое можно сделать и на микротике, для этого в настройки DHCP сервера нужно добавить:
/ip dhcp-server option
add code=66 name=tftp66 value=»‘IP tftp‘»
add code=150 name=tftp150 value=»‘IP tftp’”
Где IP tftp это IP-адрес нашего TFTP сервера. Пишем его в одинарных кавычках, если добавлять через винбокс, а если через консоль, то в одинарных, а потом в двойных.
/ip dhcp-server network
add address=Network/mask dhcp-option=tftp66,tftp150 dns-server=DNS1,DNS2 gateway=IP-router netmask=24
В папку /tftpboot выкладываем файлы из скаченного архива с прошивкой.
Список файлов:
- SIP31.8-5-3SR1S.loads
- apps31.8-5-3ES4.sbn
- cnu31.8-5-3ES4.sbn
- cvm31sip.8-5-3ES4.sbn
- dsp31.8-5-3ES4.sbn
- jar31sip.8-5-3ES4.sbn
- term31.default.loads
На этом приготовления окончены и мы приступаем к самому процессу.
Необходимо удалить с телефона старую прошивку. Для этого:
- отключаем телефон от питания
- включаем держа клавишу # до тех пор пока программируемые кнопки не начнут мигать по очереди оранжевым светом
- отпускаем кнопку и вводим на телефоне код: 3491672850*#
Телефон должен начать мигать кнопками, красным цветом. Это значит процесс стирания старой прошивки пошел. Затем телефон выключается и визуально не видно, делает ли он что-либо. Следует спокойно подождать 3-5 минут.
А пока я смотрела в tcpdump трафика на интерфейсе в сторону телефона и логи tftp-сервера, чтобы убедиться что есть обращения от телефона к DHCP и получения файлов по TFTP.
Итак телефон прошился новой прошивкой и загружается. Для его дальнейшей работы в /tftpboot нам требуется создать конфигурационный файл телефона в формате XML, который должен иметь название вида: SEP000000000000.cnf.xml
Где 000000000000 – МАС-адрес телефона, который написан на нем на наклейке сзади.
Содержимое конфигурационного файла (наиболее интересные строки, на которые стоит обратить внимание, выделены синим):
<device> <fullConfig>true</fullConfig> <deviceProtocol>SIP</deviceProtocol> <sshAccess>0</sshAccess> <sshPort>22</sshPort> <sshUserId>cisco</sshUserId> <sshPassword>cisco</sshPassword> <devicePool> <dateTimeSetting> <dateTemplate>D.M.Y</dateTemplate> <timeZone>Russian Standard/Daylight Time</timeZone> <ntps> <ntp> <name>IP-address-ntp</name> <ntpMode>Unicast</ntpMode> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <tftpDefault>true</tftpDefault> <members> <member priority="0"> <callManager> <name></name> <description></description> <ports> <ethernetPhonePort>2000</ethernetPhonePort> <sipPort>5060</sipPort> <securedSipPort>5061</securedSipPort> </ports> <processNodeName>DNS-name-or-IP-address-Asterisk-server</processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <commonProfile> <phonePassword></phonePassword> <backgroundImageAccess>true</backgroundImageAccess> <callLogBlfEnabled>0</callLogBlfEnabled> </commonProfile> <loadInformation>SIP31.8-5-3SR1S</loadInformation> <loadInformation434 model="Cisco 7931">SIP31.8-5-3SR1S</loadInformation434> <vendorConfig> <disableSpeaker>false</disableSpeaker> <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> <pcPort>0</pcPort> <settingsAccess>1</settingsAccess> <garp>0</garp> <voiceVlanAccess>0</voiceVlanAccess> <videoCapability>0</videoCapability> <autoSelectLineEnable>0</autoSelectLineEnable> <daysDisplayNotActive>1,7</daysDisplayNotActive> <displayOnTime>10:30</displayOnTime> <displayOnDuration>06:05</displayOnDuration> <displayIdleTimeout>00:05</displayIdleTimeout> <webAccess>0</webAccess> <spanToPCPort>1</spanToPCPort> <loggingDisplay>1</loggingDisplay> <loadServer></loadServer> </vendorConfig> <userLocale> <name>Russian_Federation</name> <uid></uid> <langCode>en_En</langCode> <version>SIP31.8-5-3SR1S</version> <winCharSet>utf-8</winCharSet> </userLocale> <networkLocale>Russian_Federation</networkLocale> <networkLocaleInfo> <name>Russian_Federation</name> <uid></uid> <version>SIP31.8-5-3SR41S</version> </networkLocaleInfo> <deviceSecurityMode>1</deviceSecurityMode> <idleTimeout>0</idleTimeout> <directoryURL></directoryURL> <servicesURL></servicesURL> <idleURL></idleURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig> <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices> <dscpForCm2Dvce>96</dscpForCm2Dvce> <transportLayerProtocol>2</transportLayerProtocol> <capfAuthMode>0</capfAuthMode> <capfList> <capf> <phonePort>3804</phonePort> </capf> </capfList> <certHash></certHash> <encrConfig>false</encrConfig> <sipProfile> <sipProxies> <backupProxy></backupProxy> <backupProxyPort></backupProxyPort> <emergencyProxy></emergencyProxy> <emergencyProxyPort></emergencyProxyPort> <outboundProxy></outboundProxy> <outboundProxyPort></outboundProxyPort> <registerWithProxy>true</registerWithProxy> </sipProxies> <sipCallFeatures> <cnfJoinEnabled>true</cnfJoinEnabled> <callForwardURI>x--serviceuri-cfwdall</callForwardURI> <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI> <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI> <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI> <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI> <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI> <rfc2543Hold>false</rfc2543Hold> <callHoldRingback>2</callHoldRingback> <localCfwdEnable>false</localCfwdEnable> <semiAttendedTransfer>false</semiAttendedTransfer> <anonymousCallBlock>2</anonymousCallBlock> <callerIdBlocking>2</callerIdBlocking> <dndControl>0</dndControl> <remoteCcEnable>true</remoteCcEnable> </sipCallFeatures> <sipStack> <sipInviteRetx>6</sipInviteRetx> <sipRetx>10</sipRetx> <timerInviteExpires>180</timerInviteExpires> <timerRegisterExpires>300</timerRegisterExpires> <timerRegisterDelta>5</timerRegisterDelta> <timerKeepAliveExpires>120</timerKeepAliveExpires> <timerSubscribeExpires>120</timerSubscribeExpires> <timerSubscribeDelta>5</timerSubscribeDelta> <timerT1>500</timerT1> <timerT2>4000</timerT2> <maxRedirects>70</maxRedirects> <remotePartyID>false</remotePartyID> <userInfo>None</userInfo> </sipStack> <autoAnswerTimer>1</autoAnswerTimer> <autoAnswerAltBehavior>false</autoAnswerAltBehavior> <autoAnswerOverride>true</autoAnswerOverride> <transferOnhookEnabled>false</transferOnhookEnabled> <enableVad>false</enableVad> <preferredCodec>g711alaw</preferredCodec> <dtmfAvtPayload>101</dtmfAvtPayload> <dtmfDbLevel>3</dtmfDbLevel> <dtmfOutofBand>avt</dtmfOutofBand> <alwaysUsePrimeLine>false</alwaysUsePrimeLine> <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail> <kpml>3</kpml> <stutterMsgWaiting>1</stutterMsgWaiting> <callStats>true</callStats> <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts> <disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig> <startMediaPort>16100</startMediaPort> <stopMediaPort>19300</stopMediaPort> <voipControlPort>5061</voipControlPort> <dscpForAudio>184</dscpForAudio> <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy> <dialTemplate></dialTemplate> <phoneLabel>301</phoneLabel> <natReceivedProcessing>false</natReceivedProcessing> <natEnabled>false</natEnabled> <natAddress></natAddress> <sipLines> <line button="1"> <featureID>9</featureID> <featureLabel>Number</featureLabel> <proxy>DNS-name-or-IP-address-Asterisk-server</proxy> <port>5060</port> <name>SIP-account-number</name> <displayName>SIP-account-number-or-Name</displayName> <autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer> <callWaiting>3</callWaiting> <authName>SIP-account-auth-name</authName> <authPassword>SIP-password</authPassword> <sharedLine>false</sharedLine> <messageWaitingLampPolicy>3</messageWaitingLampPolicy> <messagesNumber></messagesNumber> <ringSettingIdle>4</ringSettingIdle> <ringSettingActive>5</ringSettingActive> <contact>SIP-account-number</contact> <forwardCallInfoDisplay> <callerName>true</callerName> <callerNumber>false</callerNumber> <redirectedNumber>false</redirectedNumber> <dialedNumber>true</dialedNumber> </forwardCallInfoDisplay> </line> <line button="2"> <featureID>21</featureID> <featureLabel>Name</featureLabel> <speedDialNumber>Number</speedDialNumber> </line> </sipLines> </sipProfile> </device>
Следует отметить, что если телефон не принимает конфигурационный файл, например из-за наличия ошибок в нем, то он будет отображать на экране состояние «Unprovisioned» и каждые 30 секунд обращаться к tftp-серверу, пытаясь вновь скачать конфигурационный файл (вдруг, на этот раз он не будет содержать ошибок). Эти попытки прекрасно видны по tcpdump`у и в логах TFTP.
Для проверки корректности XML синтаксиса конфигурационного файла мне дали хороший совет: просто открыть файл конфига браузером. Лично мне это помогло, помогло осознать почему конфиг не принимается, а так же браузер точно указал в каком именно месте ошибка синтаксиса.
Пробежимся по настройкам:
dateTemplate — формат День — Месяц — Год.
timeZone — Временные зоны, например, перечислены тут
loadInformation — Версия прошивки, которую брать. Должно совпадать с названием файла .loads
phoneLabel — в правом верхнем углу будет висеть этот лейбл. Не длинее 12 символов.
preferredCodec — голосовой кодек, который будет использовать телефон
webAccess — Включение WEB-сервера на телефона. Обратите внимание, что для включение веб-интерфейса необходимо установить значение параметра в ноль.
sshAccess — Тоже самое касается ssh доступа на устройство.
Причем основная часть инструкций считает достаточным ввести 2 строки с UserID и Password для работы сервиса ssh, некоторые источники указывают еще верхние 2, и поясняют их актуальность только для версий прошивки старше 8.5.1. У меня не получилось подключиться по ssh ни в одном из найденных мной версий написания этих параметров.
Настройки сети:
registerWithProxy — для регистрации SIP линий
natEnable — ставим «true» если телефон находится за NAT
Если natEnable в «true», то телефону необходимо знать внешний IP-адрес NAT`а. Для этого есть две опции:
- natReceivedProcessing — внешний IP-адрес будет автоматически браться из поля VIA (received=XXX.XXX.XXX.XXX) SIP-пакета 200 ОК полученный от сервера в ответ на пакет REGISTER от телефона, вместо поля Contact
- natAddress — явное указание внешнего IP адрес NAT`a
При работе за NAT`ом выбрала установку natReceivedProcessing, а natAddress оставила пустым:
<natReceivedProcessing>true</natReceivedProcessing> <natEnabled>true</natEnabled> <natAddress></natAddress>
Указание диапазона RTP портов:
- startMediaPort
- stopMediaPort
voipControlPort — если значение пустое, то по умолчанию порт 5060. Обратите внимание, что в зависимости от значения параметра natEnabled поведение разное.
Если natEnabled «false», то этот порт используется в кач-ве SRC порта для отправки SIP пакетов. Если natEnabled «true», то телефон будет отправлять пакеты с непривилегированных портов, а на этом порту будет ожидать ОТВЕТЫ от SIP-сервера.
Таким образом, при установке телефона за NAT и без дополнительной настройки шлюза (проброс порта) он работать не будет.
Изыскания на эту тему написаны в топике «Cisco 7931g SIP» на forum.asterisk.ru:
1.1.1.16 — сервер
10.10.1.153 — Cisco 7931G11:12:05.794376 IP (tos 0x60, ttl 64, id 249, offset 0, flags [none], proto UDP (17), length 609) 10.10.1.153.49287 > 1.1.1.16.5060: SIP, length: 581 REGISTER sip:1.1.1.16 SIP/2.0 Via: SIP/2.0/UDP 10.10.1.153:5060;branch=z9hG4bKb92b2996 From: <sip:7896@1.1.1.16>;tag=5cfc665d4f9a00100ee171b2-9eb423e6 To: <sip:7896@1.1.1.16> Call-ID: 5cfc665d-4f9a0002-b7a3ced0-c1c67a5a@10.10.1.153 Max-Forwards: 70 Date: Tue, 01 Jun 2010 06:05:18 GMT CSeq: 110 REGISTER User-Agent: Cisco-CP7931G/8.5.3 Contact: <sip:7896@10.10.1.153:5060;transport=udp>;+sip.instance="";+u.sip!model.ccm.cisco.com="348" Supported: (null),X-cisco-xsi-7.0.1 Content-Length: 0 Expires: 300 11:12:05.831242 IP (tos 0x0, ttl 60, id 57479, offset 0, flags [none], proto UDP (17), length 588, bad cksum 0 (->8afc)!) 1.1.1.16.5060 > 10.10.1.153.49287: SIP, length: 560 SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 10.10.1.153:5060;branch=z9hG4bKb92b2996;received=1.1.1.16;rport=49287 From: <sip:7896@1.1.1.16>;tag=5cfc665d4f9a00100ee171b2-9eb423e6 To: <sip:7896@1.1.1.16>;tag=as35525338 Call-ID: 5cfc665d-4f9a0002-b7a3ced0-c1c67a5a@10.10.1.153 CSeq: 110 REGISTER Server: sip8.domain.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="070714aa" Content-Length: 0
После чего телефон утверждает udp port 49287 unreachable:
11:12:05.832048 IP (tos 0x0, ttl 64, id 250, offset 0, flags [none], proto ICMP (1), length 56) 10.10.1.153 > 1.1.1.16: ICMP 10.10.1.153 udp port 49287 unreachable, length 36 IP (tos 0x0, ttl 60, id 57479, offset 0, flags [none], proto UDP (17), length 588) 1.1.1.16.5060 > 10.10.1.153.49287: SIP, length: 560 [|sip]
….SKIPED….
Снова попробовал через NAT и наконец разобрался.
Могу сказать, что в предыдущий раз, это я ОЛЕНЬ (правда не пойму как так получилось), но судя по дампу, и наличию «rport» в конце строки VIA на которую я не обратил внимания, в пире в этот момент точно стояло nat=yes, а не nat=no.Установил nat=no на стороне Asterisk, в конфиге телефона:
<voipControlPort>5061</voipControlPort> <natReceivedProcessing>true</natReceivedProcessing> <natEnabled>true</natEnabled> <natAddress></natAddress>
И… и это не взлетело, но на этот раз причина ясна:
- 1.1.68.16 — Asterisk
- 1.1.68.72 — IPшник NAT`а
- 10.10.1.153 — IPшник телефона
Прохождение пакета REGISTER от телефона: 10.10.1.153.49845 > 1.1.68.72.49845 > 1.1.68.16.5060 (поле Contact: <sip:7896@1.1.68.72:5061;transport=udp>)
Прохождение ответного пакета 401 Unauthorized: 1.1.68.16.5060 > 1.1.68.72.5061
Пакет доезжает до 1.1.68.72, но не проходит к 10.10.1.153 т.к. в таблице NAT трансляций отсутствует запись о 10.10.1.153:5061, т.к. изначальный пакет 10.10.1.153.49845, посему пакет просто отбрасывается.Соответственно становится логично, что если сделать проброс порта 5061 с внешнего 1.1.68.72 на 10.10.1.153, то все конечно же заработает.
Делаем проброс 5061 и ч.т.д.Дамп на стороне Asterisk`а:
11:04:44.251049 IP (tos 0x0, ttl 60, id 767, offset 0, flags [none], proto UDP (17), length 768) 1.1.68.72.49845 > 1.1.68.16.5060: SIP, length: 740 REGISTER sip:1.1.68.16 SIP/2.0 Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bKff66d16c From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c To: <sip:7896@1.1.68.16> Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153 Max-Forwards: 70 Date: Wed, 28 Oct 2015 08:04:43 GMT CSeq: 165 REGISTER User-Agent: Cisco-CP7931G/8.5.3 Contact: <sip:7896@1.1.68.72:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348" Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="6a2ea6fed25e34d552573634601fb9d1",nonce="19016509",algorithm=MD5 Supported: (null),X-cisco-xsi-7.0.1 Content-Length: 0 Expires: 300 11:04:44.251109 IP (tos 0x0, ttl 64, id 63304, offset 0, flags [none], proto UDP (17), length 590) 1.1.68.16.5060 > 1.1.68.72.5061: SIP, length: 562 SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bKff66d16c;received=1.1.68.72 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c To: <sip:7896@1.1.68.16>;tag=as2a67ddfa Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153 CSeq: 165 REGISTER Server: sip8.domain.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="4a6dbb1e", stale=true Content-Length: 0 11:04:44.258586 IP (tos 0x0, ttl 60, id 768, offset 0, flags [none], proto UDP (17), length 768) 1.1.68.72.49846 > 1.1.68.16.5060: SIP, length: 740 REGISTER sip:1.1.68.16 SIP/2.0 Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bK398ff65c From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c To: <sip:7896@1.1.68.16> Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153 Max-Forwards: 70 Date: Wed, 28 Oct 2015 08:04:43 GMT CSeq: 166 REGISTER User-Agent: Cisco-CP7931G/8.5.3 Contact: <sip:7896@1.1.68.72:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348" Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="4a56a3e3f5e1b272274fa7cc3ce48d19",nonce="4a6dbb1e",algorithm=MD5 Supported: (null),X-cisco-xsi-7.0.1 Content-Length: 0 Expires: 300 11:04:44.258686 IP (tos 0x0, ttl 64, id 63321, offset 0, flags [none], proto UDP (17), length 609) 1.1.68.16.5060 > 1.1.68.72.5061: SIP, length: 581 SIP/2.0 200 OK Via: SIP/2.0/UDP 1.1.68.72:5061;branch=z9hG4bK398ff65c;received=1.1.68.72 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a003e6c2253cc-3c681c9c To: <sip:7896@1.1.68.16>;tag=as2a67ddfa Call-ID: 5cfc665d-4f9a0002-30c35668-66fda434@10.10.1.153 CSeq: 166 REGISTER Server: sip8.domain.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Expires: 300 Contact: <sip:7896@1.1.68.72:5061;transport=udp>;expires=300 Date: Wed, 28 Oct 2015 08:04:44 GMT Content-Length: 0
Состояние регистрации на сервере:
7896/7896 1.1.68.72 D 5061 Unmonitored
Addr->IP : 1.1.68.72:5061
Useragent : Cisco-CP7931G/8.5.3
Reg. Contact : sip:7896@1.1.68.72:5061;transport=udp
Дамп на стороне NAT`а (после процесса NAT):
11:45:08.033612 IP (tos 0x60, ttl 64, id 25, offset 0, flags [none], proto UDP (17), length 762) 10.10.1.153.49182 > 1.1.68.16.5060: SIP, length: 734 REGISTER sip:1.1.68.16 SIP/2.0 Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK79f75193 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357 To: <sip:7896@1.1.68.16> Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153 Max-Forwards: 70 Date: Wed, 28 Oct 2015 08:45:05 GMT CSeq: 103 REGISTER User-Agent: Cisco-CP7931G/8.5.3 Contact: <sip:7896@10.10.1.153:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348" Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="7f6cf3decde843e30c6475cef15d7bc4",nonce="40839bef",algorithm=MD5 Supported: (null),X-cisco-xsi-7.0.1 Content-Length: 0 Expires: 0 11:45:08.035579 IP (tos 0x0, ttl 60, id 9145, offset 0, flags [none], proto UDP (17), length 588, bad cksum 0 (->47cb)!) 1.1.68.16.5060 > 10.10.1.153.5061: SIP, length: 560 SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK79f75193;received=1.1.68.72 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357 To: <sip:7896@1.1.68.16>;tag=as31ab4c73 Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153 CSeq: 103 REGISTER Server: sip8.domain.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="10809208", stale=true Content-Length: 0 11:45:08.041848 IP (tos 0x60, ttl 64, id 26, offset 0, flags [none], proto UDP (17), length 762) 10.10.1.153.49183 > 1.1.68.16.5060: SIP, length: 734 REGISTER sip:1.1.68.16 SIP/2.0 Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK32b5e3e0 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357 To: <sip:7896@1.1.68.16> Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153 Max-Forwards: 70 Date: Wed, 28 Oct 2015 08:45:05 GMT CSeq: 104 REGISTER User-Agent: Cisco-CP7931G/8.5.3 Contact: <sip:7896@10.10.1.153:5061;transport=udp>;+sip.instance="<urn:uuid:00000000-0000-0000-0000-5cfc665d4f9a>";+u.sip!model.ccm.cisco.com="348" Authorization: Digest username="7896",realm="asterisk",uri="sip:1.1.68.16",response="7951fc7add50cbbceb0608a3a8b4379a",nonce="10809208",algorithm=MD5 Supported: (null),X-cisco-xsi-7.0.1 Content-Length: 0 Expires: 0 11:45:08.043572 IP (tos 0x0, ttl 60, id 9161, offset 0, flags [none], proto UDP (17), length 539, bad cksum 0 (->47ec)!) 1.1.68.16.5060 > 10.10.1.153.5061: SIP, length: 511 SIP/2.0 200 OK Via: SIP/2.0/UDP 10.10.1.153:5061;branch=z9hG4bK32b5e3e0;received=1.1.68.72 From: <sip:7896@1.1.68.16>;tag=5cfc665d4f9a0002a072f674-1c4da357 To: <sip:7896@1.1.68.16>;tag=as31ab4c73 Call-ID: 5cfc665d-4f9a0002-f3129326-816fc831@10.10.1.153 CSeq: 104 REGISTER Server: sip8.domain.com Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE Supported: replaces, timer Expires: 0 Date: Wed, 28 Oct 2015 08:45:08 GMT Content-Length: 0
SIP линии:
featureID — про этот параметр ниже
proxy- IP-адрес нашего сервера c Asterisk
port — SIP порт
name — Имя или номер SIP аккаунта
displayName — Отображаемое имя, соответственно указываем или имя или номер.
authName — имя вашего аккаунта для авторизации на сервере, обычно это ваш номер
authPassword — пароль вашего SIP аккаунта
contact — номер SIP аккаунта
Линия с Speed Dial
SD (Speed Dial — набор номера по нажатии кнопки) на программируемых кнопках (коих 24 штуки).
Хотелось настроить еще и BLF, но это оказалось все непросто с этим на этом телефоне. Идея была отодвинута (отлично гуглятся решения, вроде работы телефона с Cisco Call Manager), т.к. необходимо пропатчить Астериск, а именно chan_sip.
Кнопки линий пронумерованы от 24 до 1 сверху вниз, чередуясь слева вправо. Соответвенно, 1 линия находится в правом нижнем углу.
featureLabel- выводимое описание
speedDialNumber — номер для набора
featureID — код фичи, то что будет делаться по нажатию кнопки:
- feature id 1 last number redial
- feature id 2 speed dial
- feature id 3 hold
- feature id 5 fwd all
- feature id 9 line — Для SIP регистрации
- feature id 19 private
- feature id 20 service uri
- featureid 21 speed dial — Для набора сохраненного номера
- feature id 22 paging
- feature id 27 Malicious call ID
Полезные ссылки:
- http://www.voip-info.org/wiki/index.php?page_id=3624
- http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+79×1+xml+configuration+files+for+SIP
- http://docs.acsdata.co.nz/asterisk-cisco/document-overview.shtml
- http://forum.asterisk.ru/viewtopic.php?f=6&t=4956
P.S. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Уважайте чужой труд.
Автор: Гриднева Мария