img

Настройка Cisco 7811 на Asterisk

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

Всем привет! Сегодня в статье мы хотим вам рассказать про то как зарегистрировать телефоны Cisco серии 78хх на IP-АТС Asterisk. Рассматривать настройку мы будем на примере телефона Cisco 7811, самого простого из этой серии, отличающегося от других тем что, имеет только одну линию. Если вам интересно как настроить телефон для работы с оригинальными АТС от Cisco, то тут вы можете прочитать про CUCM, а тут про CME.

Cisco 7811

Процесс загрузки телефона

Телефоны Cisco 78хх поддерживают протокол SIP, в отличие от старых моделей, которые работали по проприетарному протоколу SCCP, и это облегчит нам настройку.

Когда телефон Cisco загружается он выполняет следующие действия:

  • Телефон получает питание c помощью блока питания или при помощи PoE;
  • Телефон загружает ПО, которое хранится локально в его памяти;
  • Телефон узнает голосовой VLAN ID при помощи CDP;
  • Телефон использует DHCP чтобы узнать свой IP адрес, маску подсети, шлюз и адрес TFTP сервера;
  • Телефон связывается с TFTP сервером и запрашивает конфигурационный файл. (У каждого телефона есть конфигурационный файл, который имеет вид SEP<мак_адрес>.cnf.xml);
  • Телефон регистрируется на АТС CUCM, который указан в конфигурационном файле;

А нам, поскольку у нас Asterisk вместо CUCM, нужно изменить конфигурационный файл, который находится на TFTP и в нем указать адрес нашей АТС, его номер и прочие параметры.

Начнем по порядку.


Настройка DHCP и TFTP

Прежде всего нам нужно настроить DHCP сервер который будет выдавать адрес телефона и сообщать ему о TFTP сервере, а также соответственно сам TFTP сервер, на котором будут лежать все необходимые файлы.

Если вы используете в качестве DHCP сервера оборудование Cisco то прочитать про то как создать на нем DHCP сервер можно здесь, а если вы используете оборудование Mikrotik то здесь.

Основной момент – телефоны Cisco получают информацию о TFTP сервере при помощи параметра Option 150, и именно его нужно настроить и в нем указать адрес TFTP сервера, с которым должен связаться телефон чтобы забрать необходимые файлы.

Для Cisco нужно использовать следующую команду в настройках DHCP:

option 150 ip 192.168.1.20

Для Mikrotik нужно в WinBox перейти в меню IP - DHCP Server – Options и нажать “+”. Тут необходимо указать в поле Code значение 150, а в поле Value – адрес сервера. А затем в разделе Networks в поле DHCP Options указать созданную нами опцию.

В нашем примере мы будем использовать бесплатную программу Tftpd64, которая может выступать в качестве DHCP и TFTP сервера, а также может показывать логи, что очень удобно для траблшутинга.

 Tftpd64

В меню настроек во вкладке DHCP можно настроить все нужные параметры, в том числе и необходимую нам опцию 150.

 Tftpd64 настройка DHCP

Во вкладке TFTP указываем необходимые параметры, такие как адрес директории где будут находится файлы.

 Tftpd64 настройка TFTP

Если ваше оборудование не поддерживает Option 150 или вы не хотите заморачиваться с этим, то адрес TFTP сервера можно прописать на самом телефоне в разделе Настройки – Параметры администратора – Настройка сети – Настройка IPv4 и тут в пункте Дополнительный TFTP сервер установить значение “Да”, а ниже в поле TFTP-сервер вручную прописать нужный адрес.

 Настройка TFTP на телефоне  Настройка TFTP на телефоне
Создание экстеншена на Asterisk

Создадим новый номер на нашей АТС при помощи графического интерфейса FreePBX.

Для этого переходим в меню Applications – Extensions, нажимаем Add Extension и выбираем Add New PJSIP Extension. Да мы будем использовать PJSIP, поскольку телефон будет слать пакеты на стандартный порт 5060, который в Asterisk использует PJSIP.

 Создание экстеншена

Этого будет достаточно, сохраняем и применяем конфиг.


Создание необходимых файлов

При загрузке телефона он будет пытаться скачать файл конфигурации и обновить свою прошивку.

После того как мы подняли наш TFTP сервер нам нужно залить на него все файлы, которые будут необходимы телефону.

Для начала нужно скачать файл прошивки для нашего телефона, потому что телефон будет всегда запрашивать его при загрузке. Скачать его можно с официального сайта Cisco, предварительно зарегистрировавшись там. Оттуда же нам нужно скачать файл с локалью.

Далее идет самое важное – файл конфигурации телефона. Нам нужно создать XML файл, который должен называться SEP<mac_адрес_телефона>.cnf.xml. Например, SEPA1B2C3D4E5F6.cnf.xml

Для создания этого файла лучше всего использовать специальный XML-редактор (например, EditiX), чтобы не было проблем с валидацией.

Его содержание должно быть таким:

<?xml version="1.0" encoding="UTF-8"
<device>
 <versionStamp>{7821 Aug 28 2015 12:40:48}</versionStamp>
 <devicePool>
 <dateTimeSetting>
 <dateTemplate>D.M.Y</dateTemplate>
 <timeZone>E. Europe Standard/Daylight Time</timeZone>
 <ntps>
 <ntp>
 <name>time.windows.com</name>
 <ntpMode>Unicast</ntpMode>
 </ntp>
 </ntps>
 </dateTimeSetting>
 <callManagerGroup>
 <members>
 <member priority="0">
 <callManager>
 <ports>
 <ethernetPhonePort>2000</ethernetPhonePort>
 </ports>
 <processNodeName>192.168.1.17</processNodeName>
 </callManager>
 </member>
 </members>
 </callManagerGroup>
 </devicePool>
 <commonProfile>
 <callLogBlfEnabled>3</callLogBlfEnabled>
 </commonProfile>
 <loadInformation>sip78xx.12-5-1-16</loadInformation>
 <userLocale>
 <name>Russian_Russia</name>
 <uid/>
 <langCode>ru_RU</langCode>
 <version/>
 <winCharSet>utf-8</winCharSet>
 </userLocale>
 <networkLocale>United_States</networkLocale>
 <networkLocaleInfo>
 <name>Russian_Russia</name>
 </networkLocaleInfo>
 <idleTimeout>0</idleTimeout>
 <authenticationURL/>
 <directoryURL/>
 <idleURL/>
 <informationURL/>
 <messagesURL/>
 <proxyServerURL/>
 <servicesURL/>
 <capfAuthMode>0</capfAuthMode>
 <capfList>
 <capf>
 <phonePort>5060</phonePort>
 <processNodeName/>
 </capf>
 </capfList>
 <deviceSecurityMode>1</deviceSecurityMode>
 <sipProfile>
 <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>true</rfc2543Hold>
 <callHoldRingback>2</callHoldRingback>
 <localCfwdEnable>true</localCfwdEnable>
 <semiAttendedTransfer>true</semiAttendedTransfer>
 <anonymousCallBlock>2</anonymousCallBlock>
 <callerIdBlocking>0</callerIdBlocking>
 <dndControl>0</dndControl>
 <remoteCcEnable>true</remoteCcEnable>
 </sipCallFeatures>
 <sipStack>
 <sipInviteRetx>6</sipInviteRetx>
 <sipRetx>10</sipRetx>
 <timerInviteExpires>180</timerInviteExpires>
 <timerRegisterExpires>120</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>true</transferOnhookEnabled>
 <enableVad>false</enableVad>
 <preferredCodec>g729</preferredCodec>
 <dtmfAvtPayload>101</dtmfAvtPayload>
 <dtmfDbLevel>3</dtmfDbLevel>
 <dtmfOutofBand>avt</dtmfOutofBand>
 <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
 <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
 <kpml>3</kpml>
 <stutterMsgWaiting>1</stutterMsgWaiting>
 <callStats>false</callStats>
 <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
 <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
 <startMediaPort>16384</startMediaPort>
 <stopMediaPort>16399</stopMediaPort>
 <voipControlPort>5069</voipControlPort>
 <dscpForAudio>184</dscpForAudio>
 <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
 <dialTemplate>dialplan.xml</dialTemplate>
 <phoneLabel>Office</phoneLabel>
 <sipLines>
 <line button="1">
 <featureID>9</featureID>
 <featureLabel>Merion Networks</featureLabel>
 <name>200</name>
 <displayName>Cisco</displayName>
 <contact>200</contact>
 <proxy>192.168.1.17</proxy>
 <port>5060</port>
 <autoAnswer>
 <autoAnswerEnabled>2</autoAnswerEnabled>
 </autoAnswer>
 <callWaiting>3</callWaiting>
 <authName>200</authName>
 <authPassword>qwe123</authPassword>
 <sharedLine>false</sharedLine>
 <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
 <messagesNumber>121</messagesNumber>
 <ringSettingIdle>4</ringSettingIdle>
 <ringSettingActive>5</ringSettingActive>
 <forwardCallInfoDisplay>
 <callerName>true</callerName>
 <callerNumber>false</callerNumber>
 <redirectedNumber>false</redirectedNumber>
 <dialedNumber>true</dialedNumber>
 </forwardCallInfoDisplay>
 </line>
 </sipLines>
 </sipProfile>
</device>

Что нас здесь интересует и что нужно изменить:

  • <timeZone> - E. Europe Standard/Daylight Time - в нашем примере мы используем временную зону, которая подходит для Москвы UTC+3.
  • <processNodeName> – адрес нашего Asterisk
  • <loadInformation> – имя файла прошивки (который с расширением .loads)
  • <userLocale><name> и <networkLocaleInfo> - Russian_Russia – папка с локалью
  • <phonePort> - 5060 – номер SIP порта
  • <voipControlPort> - номер порта телефона

И рассмотрим блок <line button="1"> с настройкой линии. Здесь нужно изменить в соответствии с нашими данными:

  • <featureLabel>Merion Networks</featureLabel> - Имя на телефона
  • <name>200</name> - Номер экстеншена
  • <displayName>Cisco</displayName> - Имя экстеншена
  • <contact>200</contact> - Снова номер экстеншена
  • <proxy>192.168.1.17</proxy> - Адрес Asterisk
  • <port>5060</port> - номер SIP порта
  • <authName>200</authName> - Еще раз номер экстеншена
  • <authPassword>qwe123</authPassword> - Пароль экстеншена

Помимо этого, создаем файл диалпана dialplan.xml, без которого телефон не загрузится:

<DIALTEMPLATE> 
<TEMPLATE MATCH="8,800......." Timeout="1"/> 
<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="**...." Timeout="0"/> 
<TEMPLATE MATCH="*" Timeout="3"/> 
</DIALTEMPLATE>

Далее создаем файл g3-tones.xml со следующим содержанием:

<tones>
<trkLocaleName>Russian_Federation</trkLocaleName>
<trkBaseClearcaseVersion>/main/3.3.release/1</trkBaseClearcaseVersion>
<trkTranslationVersion>0</trkTranslationVersion>
<tone c1="30959" i1="-1879" d="1" t="ringing">
<part m="on" t="800"/>
<part m="off" t="3200"/>
<repeat c="65535"/>
</tone>
<tone c1="30959" i1="-1879" d="1" t="reorder">
<part m="on" t="200"/>
<part m="off" t="200"/>
<repeat c="65535"/>
</tone>
<tone c1="30959" i1="-1879" d="1" t="busy">
<part m="on" t="400"/>
<part m="off" t="400"/>
<repeat c="65535"/>
</tone>
<tone c1="30959" i1="-1879" d="1" t="odial">
<part m="on" t="65535"/>
<repeat c="65535"/>
</tone>
<tone c1="30959" i1="-1879" d="1" t="idial">
<part m="on" t="65535"/>
<repeat c="65535"/>
</tone>
<tone c1="14876" i1="-5346" d="1" t="recording">
<part m="on" t="400"/>
<part m="off" t="15000"/>
<repeat c="65535"/>
</tone>
<tone c1="30743" i1="-1384" c2="29780" i2="-1252" c3="30743" i3="-1384" c4="29780" i4="-1252" d="34" t="amwi">
<part m="on" t="100" />
<part m="off" t="100" />
<part m="on" t="65535" />
<repeat c="65535" pc1="10" pc2="65535"/>
</tone>
<tone c1="30831" i1="-2032" d="17" t="monitoring">
<part m="on" t="1500"/>
<part m="off" t="8000"/>
<part m="on" t="500"/>
<part m="off" t="8000"/>
<repeat c="65535"/>
</tone>
</tones>

После этого создаем в директории TFTP папку Russian_Russia (или ту которую указали в <userLocale><name> и <networkLocaleInfo><name>) и переносим туда файл g3-tones.xml. Также туда необходимо перенести файл локали sp-sip.jar.

И наконец нам нужно создать три пустых файла:

  • CTLSEPSEP<mac_адрес_телефона>.tlv
  • ITLSSEPSEP<mac_адрес_телефона>.tlv
  • ITLFile.tlv

Эти файлы нужны чтобы у нас не было ошибки “No Trust List Installed”.

На этом все. По итогу в директории нашего TFTP сервера должны быть следующие файлы:

  • SEP<mac_адрес_телефона>.cnf.xml
  • dialplan.xml
  • sip78xx.12-5-1-16.loads
  • CTLSEP<mac_адрес_телефона>.tlv
  • ITLSSEP<mac_адрес_телефона>.tlv
  • ITLFile.tlv
  • Папка Russian_Russia с файлами: g3-tones.xml и sp-sip.jar

Загрузка телефона

На этом наша подготовка закончена, и мы теперь можем включить телефон. Он начнет загружаться, получит IP адрес и пойдет на TFTP чтобы скачать все необходимые файлы.

При помощи Tftfd64 можно смотреть за происходящем через вкладку Log Viewer, где можно увидеть какие файлы скачивает, и каких ему не хватает, в случае ошибки.

 Процесс скачивания файлов с TFTP

Если все нормально, то телефон скачает файл конфигурации, затем установит новую версию прошивки с TFTP и выбранную локаль, после чего перезагрузится. После прошивки он начнет связываться с нашей IP-АТС Asterisk и начнется процесс регистрации в результате, которого мы получим телефон Cisco, работающий с Asterisk по протоколу SIP.

 Телефон зарегистрирован

Успех! Теперь можем проверять телефон и делать звонки!

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Привет, дорогой читатель! В повседневной работе зачастую не хватает автоматизации. Поэтому, мы решили создать калькулятор инстал
img
Мы подумали, а почему бы не консолидировать все знания по Cisco VoIP продуктам и их настройке в единый документ? Добавить в них
img
Привет! Для удобства, мы структурировали все материалы по графическому интерфейсу FreePBX в нашей базе знаний в единый файл. Сам
img
Вам, как сетевому инженеру, крайне важно разбираться в том, каким образом вызовы VoIP влияют на пропускную способность канала в
img
В этой статье расскажем как отправлять различные СМС сообщения пользователям, позвонившим в контакт-центр Октелл и запросившим т
img
Всем современным кампаниям, производящим товары и оказывающим услуги, необходимо иметь специалистов, работающих с потенциальными
21 ноября
20:00
Бесплатный вебинар
Введение в Docker