Cisco 7962g IP Phone (SIP Firmware) with VOIP.ms


I bought a Cisco 7962g phone on ebay recently for $25 – great phone for the price…  I use VOIP.ms as a VOIP provider (they’re amazing…  No affiliation, but they’re the first phone company I’ve ever been happy with.)  It took a bit of work to get the phone configured for Voip.ms, but it’s working now.  I thought I’d document it here in case it’s of any use to anyone.

You’ll need a TFTP server set up on your network.  I’m not going to go into detail on how to set that up – there’s plenty of documentation on the internet.  Briefly: I use tftpd-hpa on a linux box, and direct to that using my router’s dhcp settings.  (My router uses dnsmasq – the tftp setting line is “dhcp-option=150,X.X.X.X” where X.X.X.X is the ip address of your tftp box.)

When the phone boots up, it looks for config files on the tftp server.  You can see these requests using wireshark, or by looking at your tftp logs.  One of the files the phone will look for is called SEP#######.cnf.xml, where #### is the mac address of your phone.  So, for example, if your phone’s MAC address is A2:03:A2:11:C1:ED, then the file should be called SEPA203A211C1ED.cnf.xml

Here’s the contents of that file on my setup.  Replace [VOIP_LOGIN] with your Voip.ms login name, [VOIP_PASSWORD] with your password.  Look for anything in [SQUARE BRACKETS] and replace that with your info.  You can have up to 6 <line> sections on the 7962g.  Replace toronto6.voip.ms with your SIP server.

This config is based on the SIP42.9-4-2SR3-1S firmware, which can be downloaded from cisco’s support site – you need to set up an account, but it’s free.  Download the firmware, and unzip it into the TFTP server’s root directory.  The first time you boot up the phone, it should download the firmware and reflash itself.

You will also need to put a file called “dialplan.xml” in the root directory of the TFTP server.  My version of that file is at the bottom of this page.

Here’s SEP######.cnf.xml

<?xml version="1.0" encoding="UTF-8"?>
 <device  xsi:type="axl:XIPPhone" ctiid="281" uuid="{3959fb5c-c46f-9020-520b-6de8a8132929}">
 <fullConfig>true</fullConfig>
 <portalDefaultServer>toronto6.voip.ms</portalDefaultServer>
 <deviceProtocol>SIP</deviceProtocol>
 <sshUserId></sshUserId>
 <sshPassword></sshPassword>
 <ipAddressMode>0</ipAddressMode>
 <allowAutoConfig>false</allowAutoConfig>
 <dadEnable>true</dadEnable>
 <redirectEnable>false</redirectEnable>
 <echoMultiEnable>false</echoMultiEnable>
 <ipPreferenceModeControl>0</ipPreferenceModeControl>
 <ipMediaAddressFamilyPreference>0</ipMediaAddressFamilyPreference>
 <mlppDomainId>000000</mlppDomainId>
 <mlppIndicationStatus>Off</mlppIndicationStatus>
 <preemption>Disabled</preemption>
 <executiveOverridePreemptable>false</executiveOverridePreemptable>
 <devicePool  uuid="{676e8b2a-de8a-43f5-afdb-07367fa5ccd2}">
         <revertPriority>0</revertPriority>
         <name>US-RDU-DP</name>
         <dateTimeSetting  uuid="{9ec4850a-7748-11d3-bdf0-00108302ead1}">
                 <name>US-EDT-DTG</name>
                 <dateTemplate>M/D/YA</dateTemplate>
                 <timeZone>Eastern Standard/Daylight Time</timeZone>
                 <olsonTimeZone>America/Toronto</olsonTimeZone>
                 <ntps>
                         <ntp>
                                 <name>192.95.27.155</name>
                                 <ntpMode>Unicast</ntpMode>
                         </ntp>
                 </ntps>
         </dateTimeSetting>
         <callManagerGroup>
                 <name>CMG</name>
                 <tftpDefault>true</tftpDefault>
                 <members>
                 <member  priority="0">
                 <callManager>
                         <name>toronto6.voip.ms</name>
                         <description>my sip server</description>
                         <ports>
                                 <ethernetPhonePort>2000</ethernetPhonePort>
                                 <sipPort>5060</sipPort>
                                 <securedSipPort>5061</securedSipPort>
                         </ports>
                         <processNodeName>toronto6.voip.ms</processNodeName>
                 </callManager>
                 </member>
                 </members>
         </callManagerGroup>
         <srstInfo  uuid="{cd241e11-4a58-4d3d-9661-f06c912a18a3}">
                 <name>Disable</name>
                 <srstOption>Disable</srstOption>
                 <userModifiable>false</userModifiable>
                 <ipAddr1></ipAddr1>
                 <port1>2000</port1>
                 <ipAddr2></ipAddr2>
                 <port2>2000</port2>
                 <ipAddr3></ipAddr3>
                 <port3>2000</port3>
                 <sipIpAddr1></sipIpAddr1>
                 <sipPort1>5060</sipPort1>
                 <sipIpAddr2></sipIpAddr2>
                 <sipPort2>5060</sipPort2>
                 <sipIpAddr3></sipIpAddr3>
                 <sipPort3>5060</sipPort3>
                 <isSecure>false</isSecure>
         </srstInfo>
         <connectionMonitorDuration>120</connectionMonitorDuration>
 </devicePool>
 <sipProfile>
         <sipProxies>
                 <backupProxy>USECALLMANAGER</backupProxy>
                 <backupProxyPort>5060</backupProxyPort>
                 <emergencyProxy>USECALLMANAGER</emergencyProxy>
                 <emergencyProxyPort>5060</emergencyProxyPort>
                 <outboundProxy>USECALLMANAGER</outboundProxy>
                 <outboundProxyPort>5060</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>
                 <URIDialingDisplayPreference>1</URIDialingDisplayPreference>
                 <localCfwdEnable>true</localCfwdEnable>
                 <semiAttendedTransfer>true</semiAttendedTransfer>
                 <anonymousCallBlock>2</anonymousCallBlock>
                 <callerIdBlocking>2</callerIdBlocking>
                 <dndControl>0</dndControl>
                 <remoteCcEnable>true</remoteCcEnable>
                 <retainForwardInformation>false</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>true</remotePartyID>
                 <userInfo>None</userInfo>
         </sipStack>
         <autoAnswerTimer>1</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>
         <kpml>3</kpml>
         <natReceivedProcessing>true</natReceivedProcessing>  
         <natEnabled>true</natEnabled>  
         <natAddress>76.10.128.208</natAddress>  
         <phoneLabel>My 7962g</phoneLabel>
         <stutterMsgWaiting>2</stutterMsgWaiting>
         <callStats>true</callStats>
         <offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
         <T302Timer>15000</T302Timer>
         <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
         <disableLocalSpeedDialConfig>true</disableLocalSpeedDialConfig>
         <poundEndOfDial>false</poundEndOfDial>
         <startMediaPort>16384</startMediaPort>
         <stopMediaPort>16399</stopMediaPort>
         <startVideoPort>0</startVideoPort>
         <stopVideoPort>0</stopVideoPort>
         <organizationTopLevelDomain>toronto6.voip.ms</organizationTopLevelDomain>
         <sipLines>
                 <line  button="1" lineIndex="1">
                 <featureID>9</featureID>
                 <featureLabel>Line 1 name</featureLabel>
                 <proxy>USECALLMANAGER</proxy>
                 <port>5060</port>
                 <name>[VOIP_LOGIN]</name>
                 <authName>[VOIP_LOGIN]</authName>  
                 <authPassword>[VOIP_PASSWORD]</authPassword>  
                 <directoryUri></directoryUri>
                 <displayName>[Your Caller ID Name]</displayName>
                 <autoAnswer>
                 <autoAnswerEnabled>2</autoAnswerEnabled>
                 </autoAnswer>
                 <callWaiting>3</callWaiting>
                 <sharedLine>true</sharedLine>
                 <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
                 <messageWaitingAMWI>0</messageWaitingAMWI>
                 <messagesNumber>7500</messagesNumber>
                 <ringSettingIdle>4</ringSettingIdle>
                 <ringSettingActive>5</ringSettingActive>
                 <contact>[YOUR CALLERID PHONE #]</contact>
                 <forwardCallInfoDisplay>
                 <callerName>false</callerName>
                 <callerNumber>false</callerNumber>
                 <redirectedNumber>false</redirectedNumber>
                 <dialedNumber>false</dialedNumber>
                 </forwardCallInfoDisplay>
                 <maxNumCalls>4</maxNumCalls>
                 <busyTrigger>2</busyTrigger>
                 </line>
                 
                 <line  button="2" lineIndex="2">
                 <featureID>9</featureID>
                 <featureLabel>Line 2 name</featureLabel>
                 <proxy>USECALLMANAGER</proxy>
                 <port>5060</port>
                 <name>[VOIP_LOGIN]</name>
                 <authName>[VOIP_LOGIN]</authName>  
                 <authPassword>[VOIP_PASSWORD] </authPassword>  
                 <directoryUri></directoryUri>
                 <displayName>[Your Caller ID Name]</displayName>
                 <autoAnswer>
                 <autoAnswerEnabled>2</autoAnswerEnabled>
                 </autoAnswer>
                 <callWaiting>3</callWaiting>
                 <sharedLine>true</sharedLine>
                 <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
                 <messageWaitingAMWI>0</messageWaitingAMWI>
                 <messagesNumber>7500</messagesNumber>
                 <ringSettingIdle>4</ringSettingIdle>
                 <ringSettingActive>5</ringSettingActive>
                 <contact>[YOUR CALLERID PHONE #]</contact>
                 <forwardCallInfoDisplay>
                 <callerName>false</callerName>
                 <callerNumber>false</callerNumber>
                 <redirectedNumber>false</redirectedNumber>
                 <dialedNumber>false</dialedNumber>
                 </forwardCallInfoDisplay>
                 <maxNumCalls>4</maxNumCalls>
                 <busyTrigger>2</busyTrigger>
                 </line>

                <line  button="3" lineIndex="3">
                 <featureID>9</featureID>
                 <featureLabel>Line 3 name</featureLabel>
                 <proxy>USECALLMANAGER</proxy>
                 <port>5060</port>
                 <name>[VOIP_LOGIN]</name>
                 <authName>[VOIP_LOGIN]</authName>  
                 <authPassword>[VOIP_PASSWORD] </authPassword>  
                 <directoryUri></directoryUri>
                 <displayName>[Your Caller ID Name]</displayName>
                 <autoAnswer>
                 <autoAnswerEnabled>2</autoAnswerEnabled>
                 </autoAnswer>
                 <callWaiting>3</callWaiting>
                 <sharedLine>true</sharedLine>
                 <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
                 <messageWaitingAMWI>0</messageWaitingAMWI>
                 <messagesNumber>7500</messagesNumber>
                 <ringSettingIdle>4</ringSettingIdle>
                 <ringSettingActive>5</ringSettingActive>
                 <contact>[YOUR CALLERID PHONE #]</contact>
                 <forwardCallInfoDisplay>
                 <callerName>false</callerName>
                 <callerNumber>false</callerNumber>
                 <redirectedNumber>false</redirectedNumber>
                 <dialedNumber>false</dialedNumber>
                 </forwardCallInfoDisplay>
                 <maxNumCalls>4</maxNumCalls>
                 <busyTrigger>2</busyTrigger>
                 </line>
                 
                 <line  button="4" lineIndex="4">
                 <featureID>9</featureID>
                 <featureLabel>Line 4 name</featureLabel>
                 <proxy>USECALLMANAGER</proxy>
                 <port>5060</port>
                 <name>[VOIP_LOGIN]</name>
                 <authName>[VOIP_LOGIN]</authName>  
                 <authPassword>[VOIP_PASSWORD]</authPassword>  
                 <directoryUri></directoryUri>
                 <displayName>[Your Caller ID Name]</displayName>
                 <autoAnswer>
                 <autoAnswerEnabled>2</autoAnswerEnabled>
                 </autoAnswer>
                 <callWaiting>3</callWaiting>
                 <sharedLine>true</sharedLine>
                 <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
                 <messageWaitingAMWI>0</messageWaitingAMWI>
                 <messagesNumber>7500</messagesNumber>
                 <ringSettingIdle>4</ringSettingIdle>
                 <ringSettingActive>5</ringSettingActive>
                 <contact>[YOUR CALLERID PHONE #]</contact>
                 <forwardCallInfoDisplay>
                 <callerName>false</callerName>
                 <callerNumber>false</callerNumber>
                 <redirectedNumber>false</redirectedNumber>
                 <dialedNumber>false</dialedNumber>
                 </forwardCallInfoDisplay>
                 <maxNumCalls>4</maxNumCalls>
                 <busyTrigger>2</busyTrigger>
                 </line>
                 
         </sipLines>
         <externalNumberMask>[YOUR CALLERID PHONE # - look this up, adjust accordingly]</externalNumberMask>
         <voipControlPort>5060</voipControlPort>
         <dscpForAudio  tcl="conversational.audio.aq:admitted">184</dscpForAudio>
         <dscpVideo  tcl="conversational.video.avconf.aq:admitted">136</dscpVideo>
         <dscpAudioForVideo  tcl="conversational.audio.avconf.aq:admitted">136</dscpAudioForVideo>
         <dscpForTelepresence  tcl="conversational.video.immersive.aq:admitted">128</dscpForTelepresence>
         <dscpAudioForTelepresence  tcl="conversational.audio.immersive.aq:admitted">128</dscpAudioForTelepresence>
         <dscpForPriorityAudio>180</dscpForPriorityAudio>
         <dscpForImmediateAudio>176</dscpForImmediateAudio>
         <dscpForFlashAudio>164</dscpForFlashAudio>
         <dscpForFlashOverrideAudio>168</dscpForFlashOverrideAudio>
         <dscpForExecutiveOverrideAudio>168</dscpForExecutiveOverrideAudio>
         <dscpForPriorityVideo>156</dscpForPriorityVideo>
         <dscpForImmediateVideo>148</dscpForImmediateVideo>
         <dscpForFlashVideo>140</dscpForFlashVideo>
         <dscpForFlashOverrideVideo>132</dscpForFlashOverrideVideo>
         <dscpForExecutiveOverrideVideo>132</dscpForExecutiveOverrideVideo>
         <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
         <dialTemplate>dialplan.xml</dialTemplate>
         <softKeyFile></softKeyFile>
         <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
         <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
 </sipProfile>
 <MissedCallLoggingOption>10</MissedCallLoggingOption>
 <commonProfile>
         <phonePassword></phonePassword>
         <backgroundImageAccess>true</backgroundImageAccess>
         <callLogBlfEnabled>3</callLogBlfEnabled>
 </commonProfile>
 <loadInformation>SIP42.9-4-2SR3-1S</loadInformation>
 <vendorConfig>
         <disableSpeaker>false</disableSpeaker>
         <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
         <forwardingDelay>1</forwardingDelay>
         <pcPort>0</pcPort>
         <garp>1</garp>
         <voiceVlanAccess>0</voiceVlanAccess>
         <autoSelectLineEnable>0</autoSelectLineEnable>
         <spanToPCPort>1</spanToPCPort>
         <loggingDisplay>1</loggingDisplay>
         <recordingTone>0</recordingTone>
         <recordingToneLocalVolume>100</recordingToneLocalVolume>
         <recordingToneRemoteVolume>50</recordingToneRemoteVolume>
         <recordingToneDuration></recordingToneDuration>
         <moreKeyReversionTimer>5</moreKeyReversionTimer>
         <autoCallSelect>1</autoCallSelect>
         <g722CodecSupport>0</g722CodecSupport>
         <headsetWidebandUIControl>0</headsetWidebandUIControl>
         <headsetWidebandEnable>0</headsetWidebandEnable>
         <lldpAssetId></lldpAssetId>
         <powerPriority>0</powerPriority>
         <ehookEnable>0</ehookEnable>
         <displayRefreshRate>0</displayRefreshRate>
         <ipv6LogServer></ipv6LogServer>
         <minimumRingVolume>0</minimumRingVolume>
         <sideToneLevel>0</sideToneLevel>
         <sendGain>0</sendGain>
         <handsetHeadsetMonitor>1</handsetHeadsetMonitor>
         <headsetRecording>0</headsetRecording>
 </vendorConfig>
 <commonConfig>
         <sshAccess>1</sshAccess><RingLocale>0</RingLocale>
         <ice></ice>
         <instantMessaging></instantMessaging>
         <desktopClient></desktopClient>
 </commonConfig>
 <enterpriseConfig>
         <incomingCallToastTimer>15</incomingCallToastTimer>
         <screenLockDuringDisplayOnTime>false</screenLockDuringDisplayOnTime>
         <webProtocol>1</webProtocol>
         <webAccess>0</webAccess>
         <ice></ice>
         <instantMessaging></instantMessaging>
         <desktopClient></desktopClient>
 </enterpriseConfig>
 <versionStamp>1488384714-fac12150-d96d-45a0-b304-f93c0ebcd1bf</versionStamp>
 <deviceSecurityMode>1</deviceSecurityMode>
 <idleTimeout>0</idleTimeout>
 <authenticationURL></authenticationURL>
 <directoryURL></directoryURL>
 <idleURL></idleURL>
 <informationURL></informationURL>
 <messagesURL></messagesURL>
 <proxyServerURL></proxyServerURL>
 <servicesURL></servicesURL>
 <secureAuthenticationURL></secureAuthenticationURL>
 <secureDirectoryURL></secureDirectoryURL>
 <secureUDSUsersAccessURL></secureUDSUsersAccessURL>
 <secureIdleURL></secureIdleURL>
 <secureInformationURL></secureInformationURL>
 <secureMessagesURL></secureMessagesURL>
 <secureServicesURL></secureServicesURL>
 <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
 <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
 <dscpForCm2Dvce>96</dscpForCm2Dvce>
 <transportLayerProtocol>4</transportLayerProtocol>
 <dialToneSetting>1</dialToneSetting>
 <dndCallAlert>5</dndCallAlert>
 <phonePersonalization>0</phonePersonalization>
 <rollover>0</rollover>
 <singleButtonBarge>0</singleButtonBarge>
 <joinAcrossLines>0</joinAcrossLines>
 <autoCallPickupEnable>true</autoCallPickupEnable>
 <blfAudibleAlertSettingOfIdleStation>0</blfAudibleAlertSettingOfIdleStation>
 <blfAudibleAlertSettingOfBusyStation>0</blfAudibleAlertSettingOfBusyStation>
 <capfAuthMode>0</capfAuthMode>
 <certHash></certHash>
 <encrConfig>false</encrConfig>
 <advertiseG722Codec>1</advertiseG722Codec>
 <mobility>
         <handoffdn>3975</handoffdn>
         <dtmfdn></dtmfdn>
         <ivrdn></ivrdn>
         <dtmfHoldCode>*81</dtmfHoldCode>
         <dtmfExclusiveHoldCode>*82</dtmfExclusiveHoldCode>
         <dtmfResumeCode>*83</dtmfResumeCode>
         <dtmfTxfCode>*84</dtmfTxfCode>
         <dtmfCnfCode>*85</dtmfCnfCode>
 </mobility>
 <TLSResumptionTimer>3600</TLSResumptionTimer>
 <userId></userId>
 <ownerId></ownerId>

</device>

Here’s my dialplan.xml file:

<DIALTEMPLATE>
<TEMPLATE MATCH="0" Timeout="1" User="Phone"/>
<TEMPLATE MATCH="10.............." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="1.........." Timeout="0" User="Phone"/>
<TEMPLATE MATCH=".........." Timeout="1" User="Phone"/>
<TEMPLATE MATCH="*.." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="*" Timeout="15" User="Phone"/>
</DIALTEMPLATE>

 

 

Leave a comment

Your email address will not be published. Required fields are marked *