2 440 подписчиков на нашем канале!

ћерион Ќетворкс

8 минут чтени€

¬сем привет! —егодн€ в статье мы хотим вам рассказать про то как зарегистрировать телефоны 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.

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

”спех! “еперь можем провер€ть телефон и делать звонки!


ѕолезна ли ¬ам эта стать€?


Ёти статьи могут быть вам интересны: