Cisco 7941G (SIP 9.3) и Asterisk (11)

Лирическое отступление.
Cisco 79xx series это некая «классика» в мире IP телефонии. Не знаю у кого они купили дизайн, но он оказался очень удачным. Его воспроизводили и воспроизводят другие производители, его часто можно встретить в фильмах в качестве обязательного офисного аксессуара (хотя скорее это product placement), он приятен на вид, удобен в эксплуатации и достаточно прост в производстве. Сама линейка 79xx конечно очень разнообразна, там аппараты на разных ОС, разного функционала. Сейчас речь о 7941G и его ближайших собратьях.
В сети встречается множество негативных отзывов по этой модели в связке с Asterisk. И связь не держит и настройки слетают, nat не держит, да и сама его настройка вызовет у многих головную боль. На самом деле этот аппарат просто не предназначен для работы с сторонними PBX. Он создан специально для Cisco Call Manager и изначально даже не имел SIP прошивки. SIP был добавлен позже в качестве альтернативы проприетарному SCCP (skinny). Call Manager в свою очередь создавался для корпораций и крупных инсталляций. Настройкой одного-двух аппаратов в таких системах никто не занимается, счет там идет на сотни или тысячи. Весь механизм настройки и отладки создан для масштабных развертываний. Аппараты серии UC (79xx) работают в такой среде как родные, и не вызывают проблем.
Хотите телефон для SMB сектора, со всякими Asterisk — Вам просто нужен другой телефон. Для этих сред создавались аппараты SPAxxx.
Закупать для подключения к простым PBX новые аппараты серии UC просто не выгодно, они стоят в разы дороже. Другое дело вторичный рынок. Именно так чаще всего и попадают телефоны 79xx в среду SMB. Ценник на эти аппараты бу достаточно гуманный, качество отличное, потому и берут. За 30-100 баксов можно купить отличный аппарат. И не стоит жаловаться на сложность настройки, просто аппарат не для таких сред 🙂
После подключения работают телефоны стабильно. Несравнимо стабильнее чем например Avaya старых серий.
Подготовка.
Подготовка к использованию телефонов Cisco UC в среде Asterisk сводится к:
- прошивке аппарата.
- поднятию tftp сервера на Asterisk или в другом месте (если еще не поднят)
- созданию и выкладыванию файлов конфигурации на tftp сервер для каждого телефона отдельно. (я использую OSS endpoint manager для автоматизации создания конфигов)
- настройке опций на DHCP сервере, помогающих телефону найти сервер с конфигой.
Расписывать шаги подробно я здесь не буду, достаточно ссылок и файлов в конце записи.
Поскольку потратил день на поиск в сети рабочей конфигурации для подключения аппаратов Cisco 7941G к Asterisk, то выложу их здесь. Вдруг еще потребуются.
Вот такой конфиг у меня заработал с прошивкой SIP41.9-3-1SR4-1S и Asterisk 11. Он базовый, и мне лень его дальше копать.
Конфигурация.
SEPMAC.cnf.xml:
<?xml version="1.0" ?> <device> <deviceProtocol>SIP</deviceProtocol> <sshUserId></sshUserId> <sshPassword></sshPassword> <devicePool> <dateTimeSetting> <dateTemplate>M/D/Y</dateTemplate> <timeZone>Russian Standard/Daylight Time</timeZone> <ntps> <ntp> <name>192.168.0.3</name> <ntpMode>Unicast</ntpMode> </ntp> </ntps> </dateTimeSetting> <callManagerGroup> <members> <member priority="0"> <callManager> <ports> <sipPort>5060</sipPort> <securedSipPort>5061</securedSipPort> </ports> <processNodeName>192.168.0.3</processNodeName> </callManager> </member> </members> </callManagerGroup> </devicePool> <sipProfile> <sipProxies> <backupProxy></backupProxy> <backupProxyPort></backupProxyPort> <emergencyProxy></emergencyProxy> <emergencyProxyPort></emergencyProxyPort> <outboundProxy>192.168.0.3</outboundProxy> <outboundProxyPort>5060</outboundProxyPort> <registerWithProxy>true</registerWithProxy> </sipProxies> <sipStack> <sipInviteRetx>6</sipInviteRetx> <sipRetx>10</sipRetx> <timerInviteExpires>180</timerInviteExpires> <timerRegisterExpires>1200</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>none</preferredCodec> <dtmfAvtPayload>101</dtmfAvtPayload> <dtmfDbLevel>3</dtmfDbLevel> <dtmfOutofBand>avt</dtmfOutofBand> <alwaysUsePrimeLine>false</alwaysUsePrimeLine> <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail> <kpml>3</kpml> <natReceivedProcessing>true</natReceivedProcessing> <natEnabled>false</natEnabled> <natAddress></natAddress> <phoneLabel>test</phoneLabel> <stutterMsgWaiting>1</stutterMsgWaiting> <callStats>false</callStats> <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts> <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig> <startMediaPort>20000</startMediaPort> <stopMediaPort>24999</stopMediaPort> <sipLines> <line button="1"> <featureID>9</featureID> <featureLabel>100</featureLabel> <proxy>USECALLMANAGER</proxy> <port>5060</port> <name>100</name> <displayName>100</displayName> <autoAnswer> <autoAnswerEnabled>2</autoAnswerEnabled> </autoAnswer> <callWaiting>3</callWaiting> <authName>100</authName> <authPassword>password</authPassword> <sharedLine>false</sharedLine> <messageWaitingLampPolicy>1</messageWaitingLampPolicy> <messagesNumber>880880</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> </sipLines> <voipControlPort>5060</voipControlPort> <dscpForAudio>184</dscpForAudio> <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy> <dialTemplate>dialplan.xml</dialTemplate> </sipProfile> <commonProfile> <phonePassword></phonePassword> <backgroundImageAccess>true</backgroundImageAccess> <callLogBlfEnabled>2</callLogBlfEnabled> </commonProfile> <loadInformation>SIP41.9-3-1SR4-1S</loadInformation> <vendorConfig> <disableSpeaker>false</disableSpeaker> <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset> <pcPort>0</pcPort> <settingsAccess>1</settingsAccess> <garp>1</garp> <voiceVlanAccess>0</voiceVlanAccess> <videoCapability>0</videoCapability> <autoSelectLineEnable>0</autoSelectLineEnable> <webAccess>0</webAccess> <spanToPCPort>0</spanToPCPort> <loggingDisplay>1</loggingDisplay> <loadServer></loadServer> </vendorConfig> <versionStamp></versionStamp> <userLocale> <name></name> <uid></uid> <langCode></langCode> <version></version> <winCharSet></winCharSet> </userLocale> <deviceSecurityMode>1</deviceSecurityMode> <authenticationURL></authenticationURL> <directoryURL></directoryURL> <idleURL></idleURL> <informationURL></informationURL> <messagesURL></messagesURL> <proxyServerURL></proxyServerURL> <servicesURL></servicesURL> <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> </device>
XMLDefault.cnf.xml
<!--
#################PROVISIONER.NET#################
# This Configuration file was generated from the Provisioner.net Library by {$provisioner_processor_info}
# Generated on: {$provisioner_generated_timestamp}
#
# Provisioner Information Follows:
# Brand Revision Timestamp: {$provisioner_brand_timestamp}
# Family Revision Timestamp: {$provisioner_family_timestamp}
#
##################################################
-->
<Default>
<loadInformation8 model="IP Phone 7940">P0S3-8-12-00</loadInformation8>
<loadInformation7 model="IP Phone 7960">P0S3-8-12-00</loadInformation7>
<loadInformation435 model="Cisco 7945">SIP45.8-4-2S</loadInformation435>
<loadInformation436 model="Cisco 7965">SIP45.8-4-2S</loadInformation436>
<loadInformation30006 model="IP Phone 7970">SIP70.8-0-3S</loadInformation30006>
<loadInformation307 model="IP Phone 7911">SIP11.8-5-4S</loadInformation307>
<loadInformation309 model="Cisco 7941G-GE">SIP41.9-3-1SR4-1S</loadInformation309>
</Default>
Dialplan.xml
<DIALTEMPLATE> <TEMPLATE MATCH="*" Timeout="0"/> <TEMPLATE MATCH="1." TIMEOUT="1"/> <TEMPLATE MATCH="2." TIMEOUT="1"/> <TEMPLATE MATCH="7.........." TIMEOUT="3"/> <TEMPLATE MATCH="......" TIMEOUT="2"/> <TEMPLATE MATCH="8.........." TIMEOUT="3"/> </DIALTEMPLATE>
Правда я использую OSS Endpoint плагин, так что в моем случае часть заменяется переменными, но в целом всё так. Для быстрой и комфортной перепрошивки одного — двух аппаратов я использую приложение landvcfd. Нет нужды поднимать TFTP, создавать xml шаблоны для обновления.
Ссылки и используемые материалы.
Последние версии прошивок и локализаций выложены в бесплатном доступе на сайте Cisco, для скачивания достаточно простой регистрации.
Все необходимые файлы выложены здесь.
А эти несколько ссылок помогут с настройкой и прошивкой:
Свежие комментарии