Лирическое отступление.
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, для скачивания достаточно простой регистрации.Все необходимые файлы выложены здесь.
А эти несколько ссылок помогут с настройкой и прошивкой:
- https://supportforums.cisco.com/discussion/12107656/cisco-7942g-sip9-3-1sr4-1
- http://bos-info.com/asterisk/cisco-7961g.html
- http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+7970+SIP