Ни для кого не секрет, что компания Cisco делает отличное сетевое оборудование. Но даже у их железяк есть свои недостатки. Итак, сегодня мы рассмотрим и решим один из недостатков, а именно заточка IP телефонов под SIP.
Для того что бы прошить телефон из серии CP-6941 нам понадобиться TFTP сервер и указать его на DHCP сервере, для того что бы телефон знал от куда забирать файлы прошивки и конфигурации. Этот пункт расписывать мы не будем, так как по нему есть много информации в сети. Далее когда мы настроили TFTP сервер, закидываем файлы прошивки в корневой каталог сервера(прошивку можно скачать на офф сайте Cisco). Перезагружаем телефон следующим образом: заходим в настройки телефона(кнопка с шестеренкой) и вводим комбинацию **#**, после перезагрузки телефон должен будет подтянуть прошивку.
После перепрошивки, нужно подготовить конфигурацию для нашего телефона. Что бы облегчить вам жизнь, ниже рассмотрим готовую конфигурацию, в которой вам надо поменять несколько значений.
Эти значения нужно поменять на свои:
- @SipServ — ip адрес вашего SIP сервера
- @SipPort — порт вашего SIP сервера
- @SipUser — номер SIP юзера
- @SipPass — пароль вашего SIP юзера
<device>
<fullConfig>true</fullConfig>
<deviceProtocol>SIP</deviceProtocol>
<devicePool>
<dateTimeSetting>
<dateTemplate>D.M.Y</dateTemplate>
<timeZone>Ekaterinburg Standard Time</timeZone>
<ntps>
<ntp>
<name>@SipServ</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<tftpDefault>true</tftpDefault>
<members>
<member priority=»0″>
<callManager>
<name>@SipServ</name>
<description>CallManager 5.0</description>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>@SipPort</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>@SipServ</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>0</callLogBlfEnabled>
</commonProfile>
<loadInformation>SIP9.4.1.3</loadInformation>
<loadInformation434 model=»Cisco 6941″>SIP69xx.9-4-1-3</loadInformation434>
<vendorConfig>
<disableSpeaker>false</disableSpeaker>
<disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
<pcPort>0</pcPort>
<settingsAccess>1</settingsAccess>
<garp>0</garp>
<voiceVlanAccess>0</voiceVlanAccess>
<videoCapability>0</videoCapability>
<autoSelectLineEnable>0</autoSelectLineEnable>
<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>10:30</displayOnTime>
<displayOnDuration>06:05</displayOnDuration>
<displayIdleTimeout>00:05</displayIdleTimeout>
<webAccess>1</webAccess>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<userLocale>
<name>Russian_Russian_Federation</name>
<uid></uid>
<langCode>ru_RU</langCode>
<version>8.4.3.1000-1</version>
<winCharSet>utf-8</winCharSet>
</userLocale>
<networkLocale>Russian_Federation</networkLocale>
<networkLocaleInfo>
<name>Russian_Federation</name>
<uid></uid>
<version>8.4.3.1000-1</version>
</networkLocaleInfo>
<deviceSecurityMode>1</deviceSecurityMode>
<idleTimeout>0</idleTimeout>
<directoryURL></directoryURL>
<servicesURL>$SERVICESURL</servicesURL>
<idleURL></idleURL>
<messagesURL></messagesURL>
<proxyServerURL></proxyServerURL>
<dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
<dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
<dscpForCm2Dvce>96</dscpForCm2Dvce>
<transportLayerProtocol>1</transportLayerProtocol>
<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
<sipProfile>
<sipProxies>
<backupProxy>@SipServ</backupProxy>
<backupProxyPort>@SipPort</backupProxyPort>
<emergencyProxy>@SipServ</emergencyProxy>
<emergencyProxyPort>@SipPort</emergencyProxyPort>
<outboundProxy>@SipServ</outboundProxy>
<outboundProxyPort>@SipPort</outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<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>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
</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>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>
<preferredCodec>g711alaw</preferredCodec>
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<stutterMsgWaiting>1</stutterMsgWaiting>
<callStats>true</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
<startMediaPort>10100</startMediaPort>
<stopMediaPort>10300</stopMediaPort>
<voipControlPort>@SipPort</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate>
<phoneLabel>Cisco</phoneLabel>
<natReceivedProcessing>false</natReceivedProcessing>
<natEnabled>false</natEnabled>
<natAddress></natAddress>
<sipLines>
<line button=»1″>
<featureID>9</featureID>
<featureLabel>@SipUser</featureLabel>
<proxy>@SipServ</proxy>
<port>@SipPort</port>
<name>@SipUser</name>
<displayName>@SipUser</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>@SipUser</authName>
<authPassword>@SipPass</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messagesNumber></messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>$ACCOUNT</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>
<line button=»2″>
<featureID></featureID>
<featureLabel></featureLabel>
<speedDialNumber></speedDialNumber>
</line>
</sipLines>
</sipProfile>
</device>
Файл конфигурации должен называться в формате SEP<mac адрес телефона>.cnf.xml. Закидываем файл с конфигурацией в корневой каталог TFTP сервера и перезагружаем телефон.
Далее если у вас телефон закачал прошивку и не может подцепиться к нашему SIP серверу, нужно проверить включено ли хождение пакетов по TCP(на нашем Asterisk серваке по умолчанию стоит UDP и запрет на TCP), если у вас Asterisk, то вам нужен файлик sip.conf и в нем поменять следующие значения:
[general]
transport = udp,tcp
tcpenable = yes
tcpbindaddr = 0.0.0.0:5060
Далее релоадим наш asterisk и смотрим наш телефон, все должно заработать.