7970 Config & 3cx
Hi Guys,
My apologies to those who were waiting for this information, Time was a cut a bit short for me to provide a reply as I went overseas to Japan for a holiday.
Anyways, to cut the crap, here is the information needed to get a Cisco 7970 SIP firmware loaded IP Phone to work with 3cx.
Some helpful reading i would recommend would be the following links before attempting this to familiarise yourself with how the phone works. The online video link below will give a clear understanding of this.
Understanding the config xml file for Cisco IP Phones & SIP:
http://www.voip-info.org/wiki/index.php?page=Asterisk+phone+cisco+79x1+xml+configuration+files+for+SIP
Understanding the Cisco 7970:
http://www.voip-info.org/wiki/view/Asterisk+phone+cisco+7970+SIP
Video on configuring a Cisco 7970 - using Asterisk but very similar to 3cx when registering
http://asterisktutorials.com/showproduct.php?ProductID=10
As mentioned in the helpful reading links provided above, after installing 3cx on your windows based pc/server, you will need to install a tftp server and a dhcp server on either the same pc with 3cx or another pc.
If you are running 3cx on a win2k3, you can use the DHCP server with option 66 to point to the tftp server.
Once you've installed and configured your DHCP server, ensure that you point option 66 'tftp server ip address' to the IP address which you wish to install your tftp server is installed on. This could be the same ip address as your 3cx. I have it configured this way.
Install your tftp server on the pc/server which you've pointed the TFTP server ip address on your dhcp server. Once installed you will need to drag your firmware SIP files for the Cisco IP Phone (7970) into the tftp root.
The Next Step is to then create the XMLDefault.cnf.xml text file
This file i required by the IP Phone to load the correct firmware and load files for the phone to work.
This is what the phone looks for first before refering to the SEP(mac address).cnf.xml file
The Contents of the file which need to be pasted in are:
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<mgcpPorts>
<listen>2427</listen>
<keepAlive>2428</keepAlive>
</mgcpPorts>
</ports>
<processNodeName></processNodeName> ** 3cx server name or ip address **
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation8 model="IP Phone 7940">P003-07-4-00</loadInformation8>
<loadInformation7 model="IP Phone 7960">P003-07-4-00</loadInformation7>
<loadInformation6 model="IP Phone 7970">SIP70.8-0-3S</loadInformation6>; ** identifies the filename to LOAD (SIP70.8-0-3S.loads), you will need to change this accordingly to the load file which you have in your tftp root. Careful, its case sensitive **
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<servicesURL></servicesURL>
</Default>
Once updated with the correct load file, save the file and load it into your tftp root
In 3cx you will then need to create your extension and keep in mind the Firstname/Lastname, sip authentication user/pass, Outbound Caller ID and extension number as you will need to statically set this for the 7970s config file you wish to register.
Next you will have to create an xml filename in notepad or in a text editor in the following format:
SEP<Mac Address>.cnf.xml
This file needs to match the MAC Address of the IP Phone you wish to register with 3cx
eg. SEP1234ABCDEFG0.cnf.xml
Once created you will need to paste the following config information & edit where required to register the phone with 3cx
<device>
<deviceProtocol>SIP</deviceProtocol>
<sshUserId>admin</sshUserId> ** username of 7970 ip phone when logging into ip phone via SSH **
<sshPassword>testbed</sshPassword> ** password of 7970 ip phone when logging into ip phone via SSH **
<devicePool>
<dateTimeSetting>
<dateTemplate>D-M-YA</dateTemplate> ** Date format **
<timeZone>Central Standard/Daylight Time</timeZone> ** Select your timezone. See this link for more info: http://www.cisco.com/univercd/cc/td/doc/product/voice/its/cme34/cme_cr/cme_t1ht.htm#wp1071293 **
<ntps>
<ntp>
<name>A.B.C.D</name> ** Enter the server name or IP of your NTP Server **
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>A.B.C.D</processNodeName> ** Enter the name/IP of your 3CX Server **
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>
<sipProfile>
<sipProxies> ** Self explanatory, you can put the 3cx server ip addresses here on port 5060 (optional) **
<backupProxy></backupProxy>
<backupProxyPort></backupProxyPort>
<emergencyProxy></emergencyProxy>
<emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort>5060</outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>
<sipCallFeatures> ** Do not modify any of these settings **
<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> ** Do not modify any of these settings **
<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>g711ulaw</preferredCodec> ** Select your preferred codec - G711ulaw, G711alaw, or G729a.
NOTE: All 3 codecs will be sent, but the preferred one will be listed first. But for 3cx put in G711alaw **
<dtmfAvtPayload>101</dtmfAvtPayload>
<dtmfDbLevel>3</dtmfDbLevel>
<dtmfOutofBand>avt</dtmfOutofBand>
<alwaysUsePrimeLine>false</alwaysUsePrimeLine>
<alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
<kpml>3</kpml>
<natEnabled>0</natEnabled>
<natAddress></natAddress>
<phoneLabel>0296862222</phoneLabel> ** Name that will display in upper right hand corner of the phone, its usually best to put your external PSTN or DID number. **
<stutterMsgWaiting>2</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>
<sipLines>
<line button="1">
<featureID>9</featureID> ** This must be 9 (this is not for acceessing an outside line) for a regular SIP phone extension.
Use 21 here to create a speed dial **
<featureLabel>6755</featureLabel> ** Text that displays next to line button, usually best to put the extension no. of the IP Phone here. **
<proxy>A.B.C.D</proxy> ** ip address or server name of your 3cx server**
<port>5060</port> ** SIP Port 3cx communicates on **
<name>6755</name> ** SIP registration name - this is the firstname and last name you create the extension with in 3cx **
<displayName>Steve</displayName> ** SIP Display name **
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName></authName> ** sip authentication username you set in 3cx **
<authPassword></authPassword> ** sip authenication password you set in 3cx **
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>3</messageWaitingLampPolicy>
<messagesNumber>505</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact></contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line> ** you can use the extra buttons along the top right hand side of phone as speed dials by using the following below as an example
<line button="3">
<featureID>21</featureID> ** the feature id needs to be set as 21 if its to be used as a speed dial **
<featureLabel>Lounge</featureLabel> ** Label on phone next to speed dial button **
<speedDialNumber>212</speedDialNumber> ** the ext or phone number speed dial will dial/ring **
</line>
<line button="4">
<featureID>21</featureID>
<featureLabel>Sunroom</featureLabel>
<speedDialNumber>213</speedDialNumber>
</line>
<line button="5">
<featureID>21</featureID>
<featureLabel>Cordless</featureLabel>
<speedDialNumber>214</speedDialNumber>
</line>
<line button="7"> ** you can configure the speed dial button to dial an external number aswell **
<featureID>21</featureID>
<featureLabel>Mum</featureLabel>
<speedDialNumber>92860002</speedDialNumber>
</line>
<line button="8">
<featureID>21</featureID>
<featureLabel>Dad</featureLabel>
<speedDialNumber>92860001</speedDialNumber>
</line>
</sipLines>
<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
<dialTemplate>dialplan.xml</dialTemplate> ** dial plan set for the phone locally not for 3cx **
</sipProfile>
<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>
<loadInformation>SIP41.8-0-2SR1S</loadInformation> ** SIP load file name needs to be inserted here - refer firware files loaded in tftp for the cisco phone. Do not add ".load"**
<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>
<webAccess>1</webAccess>
<spanToPCPort>1</spanToPCPort>
<loggingDisplay>1</loggingDisplay>
<loadServer></loadServer>
</vendorConfig>
<versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
<networkLocale></networkLocale>
<networkLocaleInfo>
<name></name>
<version>5.0(2)</version>
</networkLocaleInfo>
<deviceSecurityMode>0</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>4</transportLayerProtocol>
<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>
<certHash></certHash>
<encrConfig>false</encrConfig>
</device>
Note: where i have added comments in the config file "** blah blah blah **" please remove these.
Once completed, Save the file and copy it to the TFTP root directory.
Lastly you will need to create the dialplan.xml text file
you will then need to paste the following information.
<DIALTEMPLATE>
<TEMPLATE MATCH="#..." Timeout="5" User="Phone" />
<TEMPLATE MATCH="*" Timeout="5" User="Phone" />
</DIALTEMPLATE>
This basically means by default '*' means anything and that it will times out after 5 seconds.
Users must push 'Dial' or '#' to connect if they don't want to wait 5 seconds
Once you have completed all of the follow, you should be able to boot your Cisco 7970 up.
It should then recognise the config details and register.
If it has not already been loaded with the SIP firmware you will need to push the phone to obtain the correct sip firmware.
To do this you will need to hold the '#' button down and turn the phone on. Remain holding the '#' button until orange lights cycle down where the speed dial buttons are. Once its begins to cycle release the '#' button and press each of the following button after each other: 1 2 3 4 5 6 7 8 9 0 * #, this should then turn the orange speed dial lights to red. This will then begin the firmware reload on the phone which pick up the files off the TFTP server.
Once it has completed the firmware upgrade, it will then register the phone using the SEP(mac address).cnf.xml file which you configured and saved in the tftp root.
You should see the phone registered in 3cx under the Line Status link in 3cx and be able to dial your IP phones extensions from each other.
Please be aware that the message wait indicator (MWI) does not work on some of the firmware releases. Im currently using the latest firmware release and where the MWI works to no avail when messages are left.
As for configuring the SPA-3102 to use these phones with 3cx, i'll have to post that information tomorrow as i've run out of time while at work
Any questions, feel free to ask
To 3cx : do i get a free copy of business edition for providing this information
Cheers,
Dion