artem
22.10.2014
28678

Настройка подключения телефона Cisco 9971 (с модулем расширения) к серверу Asterisk

Для настройки данного телефонного аппарат необходим TFTP-сервер (можно настроить на том же сервере где установлен Asterisk) и прописанная опция 66 на роутере.

Cisco 9971 — IP-видеотелефон на 6 линий с сенсорным дисплеем диагональю 5,6» с поддержкой Wi-Fi, Bluetooth, гигабитным интерфейсом и USB интерфейсом для подключения видеокамеры. Также присутствует возможность подключения консолей расширения.

Данный аппарат не поддерживает web-камеры сторонних производителей, следует использовать Cisco Unified Video Camera.

Файлы прошивки: тут 
Файлы локализации: тут

Необходимо извлечь содержимое архивов в папку tftp-сервера

Как извлечь содержимое COP-контейнера было рассказано в статье

Необходимы следующие файлы:

  • SEP<MAC>.cnf.xml — файл с настройками телефона — вместо <MAC> указывается конкретный мак-адрес аппарата;
  • dialplan.xml — файл содержащий план набора исходящих для телефонного аппарата;
  • Russian_Federation/g4-tones.xml — тоны (можно файл не править);
  • Russian_Russia — директория с файлами локализации;
  • softkey.xml — файл описывающий значения программных клавиш;
  • DefaultFP.xml
  • sip9971.9-3-4-24 — файл прошивки

Примеры конфиг-файлов приведены далее

Также следует учесть, что данные аппараты работают по TCP протоколу, соответственно необходимо разрешить Астериску использовать TCP.
Рассмотрим на примере FreePBX: в настройках внутреннего номера необходимо выставить transport TCP Only

Далее Settings > Asterisk SIP Settings > Other SIP Settings добавить параметр tcpenable = yes

Для прохождения видеозвонков необходимо включить поддержку видео: Settings > Asterisk SIP Settings > Video Codecs параметр Video Support выставляется Enabled

Для корректной работы BLF необходимо патчить Asterisk патчем cisco-blf-asterisk.1.8.0.patch
Найти его можно: тут

Так как этот патч для Asterisk версии 1.8, на более свежих версиях лучше изменения внести вручную в исходники Астериска и пересобрать его.

Содержимое конфигурационных файлов (пример):

DefaultFP.xml

<featurePolicy name=»Default Policy»>
     <versionStamp></versionStamp>
     <featureDef name=»Forward All»>
            <id>1</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Park»>
            <id>2</id>
            <enable>false</enable>
     </featureDef>
     <featureDef name=»Divert (Alerting)»>
            <id>3</id>
            <enable>false</enable>
     </featureDef>
     <featureDef name=»Conference List»>
            <id>4</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Speed Dial»>
            <id>5</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Call Back»>
            <id>6</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Redial»>
            <id>7</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Barge»>
            <id>8</id>
            <enable>true</enable>
     </featureDef>
     <featureDef name=»Divert (Connected)»>
            <id>9</id>
            <enable>false</enable>
     </featureDef>
</featurePolicy>

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>

g4-tones.xml

<tones>
     <trkLocaleName>United_States</trkLocaleName>
     <trkBaseClearcaseVersion></trkBaseClearcaseVersion>
     <trkTranslationVersion></trkTranslationVersion>
     <tone c1=»30831″ i1=»-2032″ c2=»30467″ i2=»-1104″ d=»2″ t=»ringing»>
            <part m=»on» t=»2000″/>
            <part m=»off» t=»4000″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»30467″ i1=»-1104″ c2=»28959″ i2=»-1404″ d=»2″ t=»reorder»>
            <part m=»on» t=»250″/>
            <part m=»off» t=»250″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»30467″ i1=»-1104″ c2=»28959″ i2=»-1404″ d=»2″ t=»busy»>
            <part m=»on» t=»500″/>
            <part m=»off» t=»500″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»30743″ i1=»-1384″ c2=»29780″ i2=»-1252″ d=»2″ t=»odial»>
            <part m=»on» t=»65535″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»30831″ i1=»-2032″ c2=»31538″ i2=»-814″ d=»2″ t=»idial»>
            <part m=»on» t=»65535″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»14876″ i1=»-5346″ d=»1″ t=»recording»>
            <part m=»on» t=»425″/>
            <part m=»off» t=»15000″/>
            <repeat c=»65535″/>
     </tone>
     <tone c1=»31538″ i1=»-814″ c2=»30831″ i2=»-1016″ c3=»31538″ i3=»-814″ c4=»30831″ i4=»-1016″ d=»34″ t=»amwi»>
            <part m=»on» t=»1250″ />
            <part m=»off» t=»250″ />
            <part m=»on» t=»65535″ />
            <repeat c=»65535″ pc1=»3″ 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>
     <tone c1=»30959″ i1=»-1966″ c2=»31863″ i2=»-840″ d=»17″ t=»securewarning»>
            <part m=»on» t=»333″ />
            <part m=»off» t=»0″ />
            <part m=»on» t=»333″ />
            <part m=»off» t=»0″ />
            <repeat c=»2″ pc1=»0″ pc2=»65535″/>
     </tone>
     <tone c1=»30959″ i1=»-1966″ c2=»31863″ i2=»-840″ d=»17″ t=»unsecurewarning»>
            <part m=»on» t=»80″ />
            <part m=»off» t=»0″ />
            <part m=»on» t=»80″ />
            <part m=»off» t=»0″ />
            <repeat c=»5″ pc1=»0″ pc2=»65535″/>
     </tone>
</tones>

SEP<MAC>.cnf.xml

<?xml version=»1.0″ encoding=»UTF-8″?>
<device>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>admin</sshUserId>
<sshPassword>cisco</sshPassword>
<!—Описание серверов служб необходимых для работы телефонов (NTP и Asterisk)—>
<devicePool>
<dateTimeSetting> <!—Настройка параметров Даты/Времени—>
<dateTemplate>D/M/Ya</dateTemplate>
<timeZone>Russian Standard Time</timeZone>
<ntps>
<ntp>
<name>Asterisk IP</name> <!—IP адрес NTP-сервера — можно указать Asterisk —>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<!—Указание Call Managera (в нашем случае Asterisk)—>
<callManagerGroup>
<members>
<member priority=»0″>
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>Asterisk IP</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<!—->
</devicePool>
<!——>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>3</callLogBlfEnabled>
</commonProfile>
<loadInformation>sip9971.9-3-4-24</loadInformation> <!—Файл прошивки—>
<featurePolicyFile>DefaultFP.xml</featurePolicyFile>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<!—Настройка видеокамеры—>
<ciscoCamera>1</ciscoCamera>
<videoCapability>1</videoCapability>
<!—->
<usbClasses>0,1,2</usbClasses>
<sdio>1</sdio>
<wifi>0</wifi>
<bluetoothProfile>0,1</bluetoothProfile>
<powerNegotiation>0</powerNegotiation>
<autoSelectLineEnable>0</autoSelectLineEnable>
<webAccess>0</webAccess>
<sshAccess>0</sshAccess>
<g722CodecSupport></g722CodecSupport>
<daysDisplayNotActive>1,2,3,4,5,6,7</daysDisplayNotActive>
<displayOnTime>08:30</displayOnTime>
<displayOnDuration>09:30</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>
<displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<commonConfig>
<usb1>1</usb1>
<usb2>1</usb2>
<ciscoCamera>0</ciscoCamera>
<usbClasses>0,1,2</usbClasses>
<sdio>1</sdio>
<bluetooth>0</bluetooth>
<wifi>0</wifi>
<bluetoothProfile>0,1</bluetoothProfile>
<joinAndDirectTransferPolicy>0</joinAndDirectTransferPolicy>
</commonConfig>
<enterpriseConfig>
<usb1>1</usb1>
<usb2>1</usb2>
<ciscoCamera>0</ciscoCamera>
<usbClasses>0,1,2</usbClasses>
<sdio>1</sdio>
<bluetooth>0</bluetooth>
<wifi>0</wifi>
<bluetoothProfile>0,1</bluetoothProfile>
<joinAndDirectTransferPolicy>0</joinAndDirectTransferPolicy>
<videoCapability>1</videoCapability>
<webAccess>0</webAccess>
<eapAuthentication>2</eapAuthentication>
<webProtocol>0</webProtocol>
</enterpriseConfig>
<addOnModules>
<addOnModule uuid=»» idx=»1″>
<deviceType>CKEM</deviceType>
<deviceLine>36</deviceLine>
<loadInformation></loadInformation>
<phoneTemplateId></phoneTemplateId>
</addOnModule>
</addOnModules>
<advertiseG722Codec></advertiseG722Codec>
<!—Тоны и локализация—>
<networkLocale>Russian_Federation</networkLocale>
<networkLocaleInfo>
<name>Russian_Federation</name>
<uid>64</uid>
<version>8.5.0.0(1)</version>
</networkLocaleInfo>
<userLocale>
<name>Russian_Russia</name>
<uid></uid>
<langCode>ru_RU</langCode>
<version></version>
<winCharSet>utf-8</winCharSet>
</userLocale>
<!—->
<deviceSecurityMode>1</deviceSecurityMode>
<idleTimeout>0</idleTimeout>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesNumber></messagesNumber>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<servicesURL></servicesURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>4</transportLayerProtocol>
<dndCallAlert>5</dndCallAlert>
<phonePersonalization>1</phonePersonalization>
<rollover>0</rollover>
<singleButtonBarge>0</singleButtonBarge>
<joinAcrossLines>1</joinAcrossLines>
<autoCallPickupEnable>false</autoCallPickupEnable>
<blfAudibleAlertSettingOfIdleStation>0</blfAudibleAlertSettingOfIdleStation>
<blfAudibleAlertSettingOfBusyStation>0</blfAudibleAlertSettingOfBusyStation>
<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
<!—Настройки SIP профилей—>
<sipProfile>
<sipProxies> <!—Сервер регистрации—>
<backupProxy>USECALLMANAGER</backupProxy>
<backupProxyPort>5060</backupProxyPort>
<emergencyProxy>USECALLMANAGER</emergencyProxy>
<emergencyProxyPort>5060</emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-cisco-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>
<retainForwardInformation>true</retainForwardInformation>
</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>0</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>g711ulaw</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>true</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>true</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<natEnabled>false</natEnabled>
<natAddress>Aterisk-IP</natAddress> <!—Сервер Астериск—>
<stutterMsgWaiting>2</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32767</stopMediaPort>
<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<dscpVideo>136</dscpVideo>
<dscpForTelepresence>128</dscpForTelepresence>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<softKeyFile>softkey.xml</softKeyFile>
<dialTemplate>dialplan.xml</dialTemplate>
<phoneLabel>Extension</phoneLabel> <!—Подпись телефона — можно указать что угодно—>
<!—Настройки линий—>
<sipLines>
<line button=»1″ lineIndex=»1″>
<featureID>9</featureID> <!—Код указывающий что это стандартная кнопка линии—>
<featureLabel>Extension</featureLabel> <!—Внутренний номер—>
<name>Extension</name> <!—Внутренний номер—>
<displayName>Extension</displayName> <!—Внутренний номер—>
<contact></contact>
<proxy>USECALLMANAGER</proxy>
<port>5060</port>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>1</callWaiting>
<authName>Extension</authName> <!—Внутренний номер—>
<authPassword>Password</authPassword> <!—Пароль внутреннего номера—>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messageWaitingAMWI>1</messageWaitingAMWI>
<messagesNumber>1000</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
<maxNumCalls>4</maxNumCalls>
<busyTrigger>2</busyTrigger>
</line>
<line button=»7″>
<featureID>21</featureID> <!—Код указывающий что данная кнопка BLF—>
<featureLabel>Extension</featureLabel> <!—Подпись кнопки — можно указать что угодно—>
<speedDialNumber>Extension</speedDialNumber> <!—номер для BLF и быстрого набора—>
<featureOptionMask>1</featureOptionMask>
</line>
</sipLines>
<!—->
</sipProfile>
<!—->
<phoneServices>
<provisioning>0</provisioning>
<phoneService type=»1″ category=»0″>
<name>Missed Calls</name>
<url>Application:Cisco/MissedCalls</url>
<vendor></vendor>
<version></version>
</phoneService>
<phoneService type=»2″ category=»0″>
<name>Voicemail</name>
<url>Application:Cisco/Voicemail</url>
<vendor></vendor>
<version></version>
</phoneService>
<phoneService type=»1″ category=»0″>
<name>Received Calls</name>
<url>Application:Cisco/ReceivedCalls</url>
<vendor></vendor>
<version></version>
</phoneService>
<phoneService type=»1″ category=»0″>
<name>Placed Calls</name>
<url>Application:Cisco/PlacedCalls</url>
<vendor></vendor>
<version></version>
</phoneService>
</phoneServices>
</device>

 

 

 

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.