Дружим Cisco IP Phone CP-7925G (WiFi), Cisco IP Conference Station CP-7937G, CP-3905G и Unified IP Phone CP-7965 с Asterisk

в 11:57, , рубрики: asterisk, Cisco, cisco 79xx, freepbx, ip phone, ip-телефония, sccp, sip, Песочница, метки: , , , , , ,

Предисловие

Когда-то давно необходимо было настраивать сетевое оборудование Cisco, тогда же закончил курсы и получил сертификат Cisco CCNA Discovery. Радости работы в консоли на маршрутизаторах и коммутаторах не было предела. Времена те благополучно закончились, и в течении последних нескольких лет я очень редко встречал их оборудование, а еще реже настраивал. Но, недавно необходимо было перевести весь офис клиента на IP телефонию, и они настойчиво утверждали что им нужно только Cisco телефоны и ничего другого. Плюс к этому, нужна конференц-связь в переговорную. Так как вариантов было не много, и бюджета тоже, пришлось отказаться от телефонной станции, в пользу Asterisk-а. Оказалось все не так гладко, как хотелось бы.

Шаг 1

Первый шаг, естественно, это выбор и закупка. Эта ступень казалась непреодолимой очень долго. Итак, что нам необходимо:
Cisco IP Phone CP-7925G — беспроводной телефон, похожий по картинкам на стандартный DECT Panasonic, только с цветным дисплеем. (по факту оказалась не убиваемая, прорезиненная лопата)
Cisco Unified IP Conference Station 7937G — конференц-станция, очень красивая и внушительная. Черно-белый дисплей. 2 дополнительных микрофона я не брал, не укладывалось в бюджет, да и переговорная не сильно большая.
Cisco IP Phone CP-3905G — ничего особенного, с виду — нормальный телефон с черно-белым дисплеем.
Unified IP Phone CP-7965 — большой телефон для секретаря с кучей полезных функций. Имеет цветной 5-ти дюймовый TFT дисплей, 16-ти битная глубина цвета (можно даже видео смотреть), и куча всяких полезных характеристик.

Ого сколько вкусностей, давайте закупать!

Не буду упоминать никаких организаций, но закупались мы с проблемами. После того, как стало понятно какое оборудование будем покупать, были изучены форумы и различные отзывы. Честно — покупал Cisco впервые, ранее только занимался настройкой, не знаю как с другим оборудованием, но с телефонами не все ладно.
Оказалось, что просто купить телефон — не получится, к каждому телефону для работы необходимо закупить еще кучу всяких проводов и мелкого оборудования. Проблема в том, что в интернете нет ни картинок этих устройств, не описания. Подумали что заниматься этим будет очень долго и мучительно, поэтому позвонили одним из представителей Cisco в Москве, и попросили прислать смету на подключение и установку вышеперечисленного железа. Да-да, я понимаю что это не честно, но что поделаешь? Смета составлялась очень долго, через несколько дней мы ее получили и удивились:
— Цифра в смете на настройку этого всего добра была значительная. Хотя нас она не сильно интересовала.
— Начали разбирать оборудование в смете и оказалось что что-то не сходится. К примеру телефонов CP-7925G должно быть 2, и логично было бы получить 2 аккумулятора к ним, но их оказалось три, ну и в таком духе. После нескольких звонков, выяснилось что они сами не понимают что куда подключается и какие индексы у оборудования.
За бутылочкой пива смета все-же была составлена и упорядочена. Приведу необходимые компоненты для каждого устройства, которые мы покупали.

CP-7925G

Cisco IP Phone CP-7925G Сам телефон + CP BATT — 7925 EXT Батарея + Cisco 7925G Power Supply Зарядное устройство. Обыкновенный Mini-usb адаптер оказался. (На самом деле должная была быть еще док-станция, но или мы что-то не досчитали, либо они, адаптер для док-станции приехал, а самой станции -нет. Ну да ладно)

CP-7937G

Cisco Unified IP Conference Station 7937G Сама конференц-станция + CP-7937-PWR-SPL Cisco Power Splitter Разделитель POE + Cisco 7900 Series Transformer Power Cord Шнур питания от розетки до БП. Обыкновенный. На самом деле можно взять шнур питания с компа, но кто знал? + Cisco IP Phone power transformer for the 7900 phone series. Блок питания

CP-3905G

Cisco IP Phone CP-3905G Сам телефон. + CP3905 -PWR-CE Cisco power Adapter for Phone 3905G. Адаптер питания.

CP-7965

Unified IP Phone CP-7965 Сам телефон. + Cisco 7900 Series Transformer Power Cord Шнур питания от розетки до БП. Обыкновенный. + Cisco IP Phone power transformer for the 7900 phone series. Блок питания

Шаг 2

Ну наконец! Нам привезли оборудование, много всяких коробочек, маленьких, больших. Тут должно было дойти дело до фотографирования, но не было не времени, не аппарата под рукой, сделал пару снимков на телефон, и принялся за конфигурацию, сроки поджимали. Не пинайте за качество и количество снимков.
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
Дружим Cisco IP Phone CP 7925G (WiFi), Cisco IP Conference Station CP 7937G, CP 3905G и Unified IP Phone CP 7965 с Asterisk
А, да, посмеялись еще с того, что 7925 пришел в коробке, меньшей чем к нему пришел аккумулятор.

Давайте настраивать уже!

Разводить демагогию по поводу железа для Asterisk-а не хочется, поэтому взял то, что было под рукой. Я выбрал FreePBX Distro, т.к. есть опыт его установки и работает он сразу. Записал на USB, воткнулся, установил. На этом шаге не должно быть проблем. Единственное что, скажу наперёд — зря я выбрал Distro, если буду настраивать еще, в следующий раз выберу чистый CentOS. Единственная разница будет в том, что я не уверен что ntp сервер и tftp сервер настроены на CentOS изначально. Если не настроены — гугл в помощь.

После установки система полностью готова к работе, но тут возникает большое «НО». Так как я не работал до этого с Asterisk-ом и SCCP (а почти все телефоны, представленные тут работают по SCCP), пришлось читать мануалы. Из них стало ясно, что в Asterisk-е протокол SCCP представлен в виде модуля chan_skinny.so, но информации по его работе с этими телефонами- маловато, и зачастую просят установить chan-sccp.so, хотя внятного объяснения на вопрос «Почему?» так и не нашлось. Я решил последовать примеру, чтобы не терять времени.

Самого chan_sccp в репозиториях не найти, надо ставить из исходников. Ничего сложного, качаем отсюда:
# wget http://downloads.sourceforge.net/project/chan-sccp-b/V4/Chan_SCCP-4.1.0_RC1.tar.gz
Распаковываем:
# tar xvfz Chan_SCCP-4.1.0_RC1.tar.gz
А дальше надо установить, но забегая вперед, скажу что просто так на Distro установить не получится, т.к. он при конфигурированиии говорит что asterisk не установлен. Так и есть, в системе установлен asterisk11-core-x64. Что же делать? все оказалось просто:
Заходим в базу RPM-ов и качаем нужные нам пакеты под нужную ОС. У меня стоит CentOS6.

asterisk-devel -> asterisk-devel-11.3.0-1.1.x86_64.rpm
asterisk-mysql -> asterisk-mysql-11.3.0-1.1.x86_64.rpm (Нужен чтобы работал CDR)
asterisk -> asterisk-11.3.0-1.1.x86_64.rpm (Заходим в Advanced search и ставим галку на нужной ОС. По-другому долго искать.)

Далее надо выпилить Asterisk из системы.
# yum erase asterisk*
И устанавливаем скаченные rmp-ки
# yum install asterisk-devel-11.3.0-1.1.x86_64.rpm
# yum install asterisk-mysql-11.3.0-1.1.x86_64.rpm
# yum install asterisk-11.3.0-1.1.x86_64.rpm

Перегружаем amportal
# /usr/bin/amportal restart

И можно собирать SCCP
# cd Chan_SCCP-4.1.0_RC1
<code># yum install make

# ./configure
# make
# make install

Отлично, редактируем modules.conf
# nano /etc/asterisk/modules.conf

Добавляем Chan_sccp в загрузку:
noload => chan_skinny.so
load => chan_sccp.so

Перегружаем Asterisk с FreePBX-ом и проверяем все ли правильно установилось:
# /usr/bin/amportal restart
# asterisk -rvvvvvvvvvvv
# sccp show devices

Должен выдать заголовки пустой таблицы. Или ошибку. Надеюсь на первое )

Отлично, SCCP встало и работает, приступим к настройке телефонов.

Шаг 3

Настройка телефонов.

Эти Cisco телефоны не предназначены работать ни с чем другим. кроме как с АТС Cisco. Поэтому работают они не просто с коробки, а с бубном, который, кстати, не шел в комплекте, пришлось мастерить.
Телефоны при загрузке стягивают конфигурацию из tftp сервера, который мы будем настраивать на этом же компьютере. Хотя чего его настраивать? все уже настроено. Но, рекомендую включить логи, без них тяжеловато следить за тем что происходит.
# nano /etc/xinetd.d/tftp
server_args = -s -t 30 /tftpboot -v
Сохраняемся, перезагружаем xinetd
# /etc/init.d/xinetd restart
Следим за логами:
# tail -f /var/log/messages

Великолепно! осталось раздавать телефонам адрес tftp сервера по DHCP. Если у вас 1-2 телефона, можно задать это в настройках самого телефона, в разделе «Network». Для разблокировки настроек используйте **#* работает везде.

DHCP сервер у меня поднял на Debian-е, но суть одна:
# nano /etc/dhcp/dhcpd.conf

next-server 192.168.1.x;
option tftp-server-name «192.168.1.x»;

*Здесь и далее — вместо х-ов подставляете свои значения.

Теперь, перезагрузив телефон, он начнет случаться на наш tftp, но там пусто.
Принцип работы таков: телефон при загрузке стягивает конфигурацию с файлов, лежащих в /tftpboot директории, у каждого телефона есть свой MAC, и при его помощи составляется название файла-конфигурации. К примеру адрес одного из телефона — E0:2F:6D:64:40:24, значит файл, который он будет искать — SEPE02F6D644024.cnf.xml. Посмотреть эти параметры, а также название прошивки можно в web-интерфейсе телефона.

Часть информации по настройке была взять отсюда.

Начнем от наиболее простого, к наиболее сложному.

Cisco IP Phone CP-3905G

Настройка этого телефона наиболее проста, сам телефон несет на борту прошивку SIP.
Идем в директорию /tftpboot/ и не выходим из нее достаточно долго.
файл SEPXXXXXXXXXXXX.cnf.xml

<device>
<deviceProtocol>SIP</deviceProtocol>
<devicePool>
<dateTimeSetting>

<tzdata>
<tzolsonversion>2013o</tzolsonversion> 
<tzupdater>tzdatacsv.csv</tzupdater>
</tzdata>

<dateTemplate>D.M.Y</dateTemplate>
<timeTemplate>HH:MM</timeTemplate>
<olsonTimeZone>Russian Standard/Daylight Time</olsonTimeZone>
<ntps>
<ntp>
<name>192.168.1.xxx</name> # адрес куда обращаться за настройками ntp
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
</devicePool>

<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>192.168.1.xxx</processNodeName> #Адрес для подключения к Asterisk
</callManager>
</member>
</members>
</callManagerGroup>

<sipProfile>
<preferredCodec>g711alaw</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<sipLines>
<line button="1">
<name>103</name> #Имя для подключения
<displayName>103</displayName> #Отображаемое имя
<authName>103</authName> # Имя для аутентификации
<authPassword>Password</authPassword> # Пароль для аутентификации
<contact>103</contact> # Номер контакта
</line>
</sipLines>
<dialTemplate>dialplan.xml</dialTemplate>
</sipProfile>

<loadInformation>CP3905.9-2-2-0</loadInformation> # версия прошивки. Узнаем в web-интерфейсе и вставляем сюда.
<transportLayerProtocol>2</transportLayerProtocol>
</device>

*Строчки с комментариями подлежат изменениям

Далее — заходите в PBX морду и создаете Extension c введенными параметрами.

Cisco Unified IP Conference Station 7937G

Информация взята отсюда.
файл SEPXXXXXXXXXXXX.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>
  <authenticationURL></authenticationURL>
  <directoryURL></directoryURL>
  <idleURL></idleURL>
  <informationURL></informationURL>
  <messagesURL></messagesURL>
  <servicesURL></servicesURL>
</Default>

Но этого файла для настройки sccp не достаточно,
# nano /etc/asterisk/sccp.conf
Раздел general находится самый первый, далее добавляются в этот файл настройки для каждого из sccp телефонов:

;=========================================================================================
[general]
servername = PBX
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=ru
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.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
hotline_context=from-internal-xfer
hotline_extension=11111

Настройки для телефона:

;=========================================================================================

[SEPXXXXXXXXXXXX]; MAC of 7937G 192.168.1.хх
description = Conference Room
devicetype = 7937
type = device
button = line, 110
deny=0.0.0.0/0.0.0.0
permit=0.0.0.0/0.0.0.0
imageversion = apps37sccp.1-4-4-0
pickupcontext = sccp
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-4-0

[110]
id = 110
type = line
label = Phone 110
description = Line 110
cid_name = CONFROOM
cid_num = 110
echocancel = off
context = from-internal-xfer
transfer = on
vmnum = 600
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=ru
echocancel = on
silencesuppression = off

Строчки «imageversion = apps37sccp.1-4-4-0» меняем на свою версию прошивки

Cisco IP Phone CP-7925G

WiFi телефон. При настройке телефона, изменить тип доступа к вашей WiFi сети, т.к. этот телефон, на стоковой прошивке не знает что такое WPA2-PSK и ни в коем случае не подключится! Он поддерживает все, что старее WPA.
файл SEPXXXXXXXXXXXX.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>
  <authenticationURL></authenticationURL>
  <directoryURL></directoryURL>
  <idleURL></idleURL>
  <informationURL></informationURL>
  <messagesURL></messagesURL>
  <servicesURL></servicesURL>
</Default>

# nano /etc/asterisk/sccp.conf

[SEPXXXXXXXXXXXX] ;(wifi) MAC of 7925G 192.168.1.96
description = WiFi1
devicetype = 7925
type = device
button = line, 104
deny=0.0.0.0/0.0.0.0; Same as general
permit=0.0.0.0/0.0.0.0; Same as general
;imageversion = apps37sccp.1-4-4-0
pickupcontext = sccp
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-4-0

[104]
id = 104
type = line
label = Phone 104
description = Line 104
cid_name = WiFi1
cid_num = 104
echocancel = off
context = from-internal-xfer
transfer = on
vmnum = 600
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=ru
echocancel = on
silencesuppression = off

Строчки «imageversion = apps37sccp.1-4-4-0» меняем на свою версию прошивки

Unified IP Phone CP-7965

Самый ненавистный. Его конфигурация у моего коллеги заняла столько же времени, сколько у меня конфигурация Asterisk-а и всех вышеупомянутых телефонов, которых в сумме получается 7 штук (правда он много ходил курить).

По-умолчанию у него идет прошивка 8(5),SCCP. Но, мой коллега хотел завести его именно на SIP-е(почему- не знаю), существует SIP прошивка бесплатно скачиваемая с сайта cisco версии 9(3), но она не заводится с Asterisk-ом, т.к. Cisco переделала SIP протокол «под себя» и удалила работу по TCP протоколу и поставила UDP. Естественно это все можно поменять в настройках Extension-а, но у нас изменения не привели ни к чему.
Завести телефон в режим перепрошивки — зажать # и включить питание. Когда заморгает — 123456789*0#. В корне tftp сервера должна лежать прошивка. Будьте внимательны! обновившись до 9-й версии, откатиться будет не возможно, т.к. 8(5) прошивка платная на все телефоны. (Ну, если хорошо поискать, то просторы интернета подскажут куда идти).
Прошивка SIP для телефона имеет тоже свои нюансы, но работает. Если вы выставите Nat=yes в настройках extension-а в PBX-е, то он будет давать вам гудок, но звонить никуда не сможет. Принимать, в общем-то, тоже.

Мы настраивали 8(5)SIP

файл SEPXXXXXXXXXXXX.cnf.xml

<device>
  <deviceProtocol>SIP</deviceProtocol>
  <sshAccess>1</sshAccess>
  <sshUserId>admin</sshUserId>
  <sshPassword>admin</sshPassword> 
  <devicePool>
    <dateTimeSetting>
      <dateTemplate>D/M/Y</dateTemplate>
      <timeZone>Russian Standard/Daylight Time</timeZone>
      <ntps>
        <ntp>
          <name>192.168.1.XXX</name>
          <ntpMode>Unicast</ntpMode>
        </ntp>
      </ntps>
    </dateTimeSetting>
    <callManagerGroup>
      <members>
        <member priority="0">
          <callManager>
            <ports>
              <ethernetPhonePort>2000</ethernetPhonePort>
              <sipPort>5060</sipPort>
              <securedSipPort>5061</securedSipPort>
            </ports>
            <processNodeName>192.168.1.XX</processNodeName>
          </callManager>
        </member>
      </members>
    </callManagerGroup>
  </devicePool>
  <sipProfile>
    <sipProxies>
      <backupProxy></backupProxy>
      <backupProxyPort>5060</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>true</localCfwdEnable>
      <semiAttendedTransfer>true</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>3600</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>
    <dtmfAvtPayload>101</dtmfAvtPayload>
    <dtmfDbLevel>3</dtmfDbLevel>
    <dtmfOutofBand>avt</dtmfOutofBand>
    <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
    <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
    <kpml>3</kpml>
    <phoneLabel>CISCO</phoneLabel>
    <stutterMsgWaiting>1</stutterMsgWaiting>
    <callStats>false</callStats>
    <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
    <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
    <sipLines>
      <line button="1">                            #Настройка подключения
        <featureID>9</featureID>
        <featureLabel>BUTTON1</featureLabel>
        <proxy>192.168.1.XX</proxy>
        <port>5060</port>
        <name>100</name>
        <displayName>MAIN</displayName>
        <autoAnswer>
          <autoAnswerEnabled>2</autoAnswerEnabled>
        </autoAnswer>
        <callWaiting>3</callWaiting>
       <authName>100</authName>
        <authPassword>password</authPassword>
        <sharedLine>false</sharedLine>
        <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
        <messagesNumber>*99</messagesNumber>
        <ringSettingIdle>4</ringSettingIdle>
        <ringSettingActive>5</ringSettingActive>
        <contact>100</contact>
        <forwardCallInfoDisplay>
          <callerName>true</callerName>
         <callerNumber>false</callerNumber>
          <redirectedNumber>false</redirectedNumber>
          <dialedNumber>true</dialedNumber>
        </forwardCallInfoDisplay>
      </line>
      <line button="2">
        <featureID>20</featureID>
        <featureLabel>Menu</featureLabel>
       <serviceURI>http://example.domain.ext/services/menu.xml</serviceURI>
      </line>
    </sipLines>
    <voipControlPort>5060</voipControlPort>
    <startMediaPort>16348</startMediaPort>
    <stopMediaPort>20134</stopMediaPort>
    <dscpForAudio>184</dscpForAudio>
    <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
   <dialTemplate>dialplan.xml</dialTemplate>
    <softKeyFile></softKeyFile>
  </sipProfile>
  <commonProfile>
    <phonePassword></phonePassword>
    <backgroundImageAccess>true</backgroundImageAccess>
    <callLogBlfEnabled>2</callLogBlfEnabled>
  </commonProfile>
  <loadInformation>SIP45.8-5-4S</loadInformation> ################### Обязательная строка - версия прошивки. Измените на свою
  <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>
    <webAccess>0</webAccess>
    <daysDisplayNotActive>1,2,3,4,5,6,7</daysDisplayNotActive>
    <displayOnTime>00:00</displayOnTime>
    <displayOnDuration>00:00</displayOnDuration>
    <displayIdleTimeout>00:00</displayIdleTimeout>
    <spanToPCPort>1</spanToPCPort>
    <loggingDisplay>1</loggingDisplay>
    <loadServer></loadServer>
  </vendorConfig>
  <userLocale>
    <name></name>
    <uid></uid>
    <langCode>en_US</langCode>
    <version>1.0.0.0-1</version>
    <winCharSet>iso-8859-1</winCharSet>
  </userLocale>
  <networkLocale></networkLocale>
  <networkLocaleInfo>
    <name></name>
    <uid></uid>
    <version>1.0.0.0-1</version>
  </networkLocaleInfo>
  <deviceSecurityMode>1</deviceSecurityMode>
  <authenticationURL>http://example.domain.ext/services/authenticate.php</authenticationURL>
  <directoryURL>http://example.domain.ext/services/directory.php</directoryURL>
  <servicesURL>http://example.domain.ext/services/menu.xml</servicesURL>
  <idleURL></idleURL>
  <informationURL></informationURL>
  <messagesURL></messagesURL>
  <proxyServerURL></proxyServerURL>
  <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
  <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
  <dscpForCm2Dvce>96</dscpForCm2Dvce>
  <transportLayerProtocol>4</transportLayerProtocol>
  <capfAuthMode>0</capfAuthMode>
  <capfList>
    <capf>
      <phonePort>3804</phonePort>
    </capf>
  </capfList>
  <certHash></certHash>
  <encrConfig>false</encrConfig>
</device>

Далее создаем Extension. Не Забывайте про отсутствие опции NAT.

XMLDefault.cnf.xml

Файл с расширениями и настройками. У меня он выглядит так:

<loadInformation436 model=”Cisco 7965″>SIP45.8-5-4S</loadInformation436>
<loadInformation7 model="Cisco Phone 7937">apps37sccp.1-4-4-0</loadInformation7>


<DIALTEMPLATE>

<TEMPLATE MATCH="8,800......."              Timeout="1"/> <!— Межгород. После набора первой 8 прозвучит вторичный сигнал -->
<TEMPLATE MATCH="8,.........."              Timeout="1"/>

<TEMPLATE MATCH="0.."               Timeout="1"/>
<TEMPLATE MATCH="1..."              Timeout="1"/>
<TEMPLATE MATCH="2..."              Timeout="1"/>
<TEMPLATE MATCH="3..."              Timeout="1"/>
<TEMPLATE MATCH="4..."              Timeout="1"/>
<TEMPLATE MATCH="[5-7]..."          Timeout="1"/>

<TEMPLATE MATCH="*41...."           Timeout="0"/> <!— Направленный перехват в формате Asterisk -->
<TEMPLATE MATCH="*"                 Timeout="3"/>  <!— Остальные вызовы-->

</DIALTEMPLATE>

<userLocale><name>Russian_Russia</name>
<uid></uid>
<langCode>ru_RU</langCode>
<version></version>
<winCharSet>utf-8</winCharSet>
</userLocale>

* не забываем поменять и тут версии прошивок для телефонов. В противном случае они не заведутся. Все остальное можно не менять.

Ну, наконец!

Вот и подошли мы к выводу. Не знаю как сейчас у Cisco обстоят дела, но меня очень сильно огорчило (в начале — не мог перестать смеяться) что каждый телефон приходится покупать по частям. Мало того, Вам надо будет купить другую версию прошивки, если вы хотите ее использовать. Да, я еще забыл про русификацию пару слов сказать. Мы не пытались прошить на них русский язык, и локализация на прошивки 9(3) — бесплатна, а вот на 8(5) и ниже — извините. Но, т.к. я не стал прошивать ни одно устройство на не очень приятную прошивку 9(3), мы оставили, на данный момент, все телефоны с англоязычной локалью.

Наверное утомил Вас столь долгим рассказом с большим количеством иностранных букв, но на настройку этих девайсов у меня ушло почти 3 дня, буду рад, если эта статья кому-то поможет и будет интересной. Дополнения и исправления приветствуются!

Автор: lethal

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js