Cisco

From Pbxnsip Wiki

Jump to: navigation, search

Contents

Cisco 7940/7960

Version 2.0.0.1612 and on supports the Cisco 7940/7960 phones with plug and plug configuration.

In order to run such a phone, you need to do the following steps:

Preparing plug and play

As with any other phone, you need to make sure that at least one exctension either matches the MAC address of the phone or you are using a wildcard ('*' or '?') in the Registration tab of the extension ("Bind to MAC Address"). Other settings like the "Default PnP Dialplan Scheme" or the time zone in the domain settings might also be important.

Directing the phone to the PBX

You need to tell the phone to pick its configuration up from the PBX. With Cisco phones, the best way to do this is to program your DHCP server. You need to set the option 66 to the IP address of the PBX.

Software Upgrade

The PBX expects version 8.6 of the Cisco phones. You need to have the following files in your tftp directory:

-rw-r--r--   1 benjamin root       15 Dez 13 15:52 OS79XX.TXT
-rw-r--r--   1 benjamin root   129824 Dez 12 16:54 P003-08-6-00.bin
-rw-r--r--   1 benjamin root   130228 Dez 12 17:21 P003-08-6-00.sbn
-rw-r--r--   1 benjamin root      459 Dez 12 17:40 P0S3-08-6-00.loads
-rw-r--r--   1 benjamin root   753560 Dez 12 17:20 P0S3-08-6-00.sb2

You get those files from the place were you bought your devices. There are also other places in the Internet which make those files available.

If you wish to use another firmware load, you need to change the parameter "firmware" in the pnp.xml file. Please contact pbxnsip if you wish to do that.


Booting the Device

After preparing everything, you should boot your phone. The phone should report that it upgrades to the above firmware, and then pull down the configuration file from the server.

In most of the cases this upgrade is smooth. But sometimes you may see issues upgrading the Cisco phones (7940/60). This can happen if the phone is running several version behind the version that is being upgraded to. In such cases you need to upgrade the phone to some intermediate version first. Optionally, creating the following files and placing them in the tftp directory (along with the firmware files, SIP<MAC>.cnf files) would help.

SIPDefault.cnf with content

image_version : "P0S3-08-6-00"
SEP<MAC>.cnf.xml with content (where <MAC> is the MAC address of the phone)

<loadInformation>P0S3-08-6-00</loadInformation>

Note that, in the above example, we are upgrading the phone to SIP version 8.6

There are other cases where CISCO phones are running SCCP (skinny) versions. This is not a SIP version. You can not make this phone talk to pbxnsip IP-PBX (for that matter, any SIP based PBX). The following link explains how to convert your phone from SCCP to SIP. http://www.cisco.com/en/US/products/hw/phones/ps379/products_tech_note09186a0080094584.shtml#topic2

Compatibility Notes

The SIP image for the phones does not support Intercom per call mode. Other feature like line monitoring or secure calls are also missing. However, the basic features like call transfer and music on hold are working.

Sample Cisco Config File

CISCO 7960 phones should work fine with the PnP and the phone should be registered to the PBX at the end of PnP. For any reason, if the PnP does not work, please use this section to have your phone registered to the PBX. One of the reasons is that if the pnp.xml file does not have the MAC address range of the CISCO phone. We are adding these ranges as and when we discover them!

Cisco phones require a SIP<MAC>.cnf file in the tftp directory (or any other directory relative the tftp root). A sample file with the parameters is shown below. You can arrange the parameters in any order you like. Please refer http://www.cisco.com/en/US/docs/voice_ip_comm/cuipph/7960g_7940g/sip/4_4/english/administration/guide/sipmn44.html for detailed explanation.

 image_version : "P0S3-08-6-00"
 
 directory_url : ""
 services_url : ""
 logo_url : ""
 
 http_proxy_addr : ""
 http_proxy_port : ""
 transfer_onhook_enabled : "1"
 dscpForAudio : 184
 date_format : "M/D/Y"
 time_format_24hr : 0
 dial_template : "dialplan"
 sntp_server : "192.168.1.115"
 sntp_mode : "Unicast"
 time_zone : "EST"
 dst_auto_adjust : 1
 dst_offset : 01/00
 dst_start_day : 0
 dst_start_day_of_week : Sunday
 dst_start_month : 3
 dst_start_week_of_month : 2
 dst_start_time : "02/00"
 dst_stop_day : 0
 dst_stop_day_of_week : Sunday
 dst_stop_month : 11
 dst_stop_week_of_month : 1
 dst_stop_time : "02/00"
 proxy1_address : "192.168.1.115"
 proxy_backup : "192.168.1.115"
 proxy_emergency : "192.168.1.115"
 connection_monitor_duration : 120
 line1_shortname : "560"
 line1_name : "560"
 line1_displayname : "pk test"
 line1_authname : "560"
 line1_password : "560"
 messages_uri : "8560"
 line2_shortname : ""
 line2_name : ""
 line2_displayname : ""
 line2_authname : ""
 line2_password : ""
 phone_label : "Chris"
 cnf_join_enable : "1"
 rfc_2543_hold : "0"
 call_hold_ringback : "2"
 semi_attended_transfer : "1"
 anonymous_call_block : "2"
 callerid_blocking : "2"
 dnd_control : "0"
 sip_invite_retx : "6"
 sip_retx : "10"
 timer_invite_expires : "180"
 timer_register_expires : "3600"
 timer_register_delta : "5"
 timer_keepalive_expires : "120"
 timer_t1 : "500"
 timer_t2 : "4000"
 sip_max_forwards : "70"
 enable_vad : "0"
 dtmf_avt_payload : "101"
 dtmf_db_level : "3"
 user_info : "None"
 stutter_msg_waiting : "2"
 call_stats : "1"
 start_media_port : "16384"
 end_media_port : "32766"
 phone_password : "cisco"
 voip_control_port : "5060"
 proxy_emergency_port : "5060"
 outbound_proxy : "192.168.1.115"
 outbound_proxy_port : "5060"
 proxy_register : "1"
 dtmf_outofband : "avt"
 autocomplete : "2"
 network_media_type : "Auto"
 local_cfwd_enable : "1"
 call_waiting : "1"
 preferred_codec : "none"
 remote_party_id : "1"
 telnet_level : 2

With the above configuration, after the phone is rebooted, you will have line1 registered for account 560. You can register more lines by properly filling in the lineX_<parameters>. Note: Once you register a line and if you do not want to use it, you can not simply delete those lines. You have to keep those line with empty data (similar to line2 parameters in the above file) and reboot the phone at least once.

Also, CISCO phones have the habit of changing the IP:Port every now and then. To avoid this, add "nat_enable : 1" to the above configuration file.

Cisco 7941/7961

Well, configuring Cisco 7941/7961 is entirely different from 7940/7960. To unlock the phone, please press, settings and then **#. Then wait for the password prompt.

Note on PnP: We have found some issue with the 3.3 PBX software version and CISCO 79x1 phones. This will be fixed in the future releases.

For 7941, these are the files needed in the TFTP folder for 8.4.3 firmware version.

   1 -rw-r--r--  1 root root     638 Mar  6 15:57 SIP41.8-4-4S.loads
2859 -rw-r--r--  1 root root 2926641 Mar  6 15:57 apps41.8-4-3-16.sbn
 472 -rw-r--r--  1 root root  482686 Mar  6 15:57 cnu41.8-4-3-16.sbn
3019 -rw-r--r--  1 root root 3091350 Mar  6 15:58 cvm41sip.8-4-3-16.sbn
 525 -rw-r--r--  1 root root  537209 Mar  6 15:57 dsp41.8-4-3-16.sbn
 439 -rw-r--r--  1 root root  449129 Mar  6 15:58 jar41sip.8-4-3-16.sbn
   1 -rw-r--r--  1 root root     642 Mar  6 15:57 term41.default.loads


To load the firmware, it is recommended that first doing a hard-reset of your phone. Here are the steps for hard reset (I could not find a way to do the factory reset from the phone menu!!)

(DO NOT DO THE HARD RESET UNLESS YOU HAVE THE ABOVE FILES!!!)

  • Power on the phone while pressing “#”,
  • Let go of "#" when you see the line buttons start flashing.
  • Press in sequence “1234567890*0#”
  • This will initiate the reset.

Make sure that the above firmware files are in your TFTP root (<pbx-install dir>/tftp). Also, make your DHCP server tell the phone where to find the TFTP server.

During the reboot, the phone first downloads all firmware files and updates itself to the specified version. Then phone will ask for file a CTL<mac>.tlv file. If you do not have this file on the server, it's okay. This is used for certificates or something. Then it will ask for a file called XMLDefaults.cnf.xml. Not sure whether this file is really required. I have successfully booted the phone without this file(because, the content of this file is included in the SEP<mac>.cnf.xml file). This file tells the phone what firmware it should load, and should look like this (substitute your phone model and SIP firmware version):

<Default>
 <callManagerGroup>
 <members>
   <member priority="0">
     <callManager>
       <ports>
         <analogAccessPort>2002</analogAccessPort> 
         <digitalAccessPort>2001</digitalAccessPort> 
         <ethernetPhonePort>2000</ethernetPhonePort> 
         <mgcpPorts>
           <listen>2427</listen> 
           <keepAlive>2428</keepAlive> 
         </mgcpPorts>
       </ports>
       <processNodeName><pbxnsip PBX IP></processNodeName> 
     </callManager>
   </member>
 </members>
</callManagerGroup>
<loadInformation8 model="Cisco 7941">SIP41.8-4-4S</loadInformation8> 
</Default>

Next the phone will ask for SEP<mac>.cnf.xml. This is very important configuration file. The below is the working copy of the file, where PBX is running at IP address 192.168.1.100. You can add or delete parameters based on you setup. At the end of the reboot cycle, the Cisco phone will be registered to the PBX with extension 200 at line 1. Also, "Park" and "Retrieve" buttons are configured on button 5 and 6.

<?xml version="1.0" encoding="UTF-8"?>
<device  xsi:type="axl:XIPPhone"
        ctiid="28"
        uuid="{5396ed3e-c273-46f7-be31-beef726e0586}">
 <fullConfig>true</fullConfig>
 <deviceProtocol>SIP</deviceProtocol>
 <sshUserId>cisco</sshUserId>
 <sshPassword>cisco</sshPassword>
 <devicePool  uuid="{1b1b9eb6-7803-11d3-bdf0-00108302ead1}">
   <revertPriority>0</revertPriority>
   <name>Default</name>
   <dateTimeSetting>
     <name>CMLocal</name>
     <dateTemplate>M/D/Ya</dateTemplate>
     <timeZone>Eastern Standard/Daylight Time</timeZone>
   </dateTimeSetting>
   <callManagerGroup>
     <name>Default</name>
     <tftpDefault>false</tftpDefault>
     <members>
       <member  priority="0">
         <callManager>
           <name>PBXnSIP</name>
           <description>SIP Softswitch</description>
           <ports>
             <ethernetPhonePort>2000</ethernetPhonePort>
             <sipPort>5060</sipPort>s
             <securedSipPort>5061</securedSipPort>
             <mgcpPorts>
               <listen>2427</listen>
               <keepAlive>2428</keepAlive>
             </mgcpPorts>
           </ports>
           <processNodeName>192.168.1.100</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>
   <mlppDomainId>-1</mlppDomainId>
   <mlppIndicationStatus>Default</mlppIndicationStatus>
   <preemption>Default</preemption>
   <connectionMonitorDuration>120</connectionMonitorDuration>
 </devicePool>
 <sipProfile>
   <sipProxies>
     <backupProxy></backupProxy>
     <backupProxyPort>5060</backupProxyPort>
     <emergencyProxy></emergencyProxy>
     <emergencyProxyPort>5060</emergencyProxyPort>
     <outboundProxy></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>
     <localCfwdEnable>true</localCfwdEnable>
     <semiAttendedTransfer>true</semiAttendedTransfer>
     <anonymousCallBlock>2</anonymousCallBlock>
     <callerIdBlocking>2</callerIdBlocking>
     <dndControl>0</dndControl>
     <remoteCcEnable>true</remoteCcEnable>
     <retainForwardInformation>true</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>true</transferOnhookEnabled>
   <enableVad>false</enableVad>
   <preferredCodec>none</preferredCodec>
   <dtmfAvtPayload>101</dtmfAvtPayload>
   <dtmfDbLevel>3</dtmfDbLevel>
   <dtmfOutofBand>avt</dtmfOutofBand>
   <kpml>3</kpml>
   <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
   <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
   <phoneLabel>CISCO-7961</phoneLabel>
   <stutterMsgWaiting>2</stutterMsgWaiting>
   <callStats>false</callStats>
   <offhookToFirstDigitTimer>15000</offhookToFirstDigitTimer>
   <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
   <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
   <poundEndOfDial>false</poundEndOfDial>
   <startMediaPort>16384</startMediaPort>
   <stopMediaPort>32766</stopMediaPort>
   <sipLines>
     <line button="1">
       <featureID>9</featureID>
       <featureLabel>Mike</featureLabel>
       <proxy> 192.168.1.100 </proxy>
       <port>5060</port>
       <name>200</name>
       <displayName>Mike</displayName>
       <autoAnswer>
         <autoAnswerEnabled>2</autoAnswerEnabled>
       </autoAnswer>
       <callWaiting>3</callWaiting>
       <authName>200</authName>
       <authPassword>200</authPassword>
       <sharedLine>false</sharedLine>
       <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
       <messagesNumber>*97</messagesNumber>
       <ringSettingIdle>4</ringSettingIdle>
       <ringSettingActive>5</ringSettingActive>
       <contact>200</contact>
       <forwardCallInfoDisplay>
         <callerName>true</callerName>
         <callerNumber>false</callerNumber>
         <redirectedNumber>false</redirectedNumber>
         <dialedNumber>true</dialedNumber>
       </forwardCallInfoDisplay>
     </line>
     <line button="5">
       <featureID>2</featureID>
       <featureLabel>Park</featureLabel>
       <speedDialNumber>*85</speedDialNumber>
     </line>
     <line button="6">
       <featureID>2</featureID>
       <featureLabel>Retrieve</featureLabel>
       <speedDialNumber>*86</speedDialNumber>
     </line>
   </sipLines>
   <externalNumberMask></externalNumberMask>
   <voipControlPort>5060</voipControlPort>
   <dscpForAudio>184</dscpForAudio>
   <dscpVideo>136</dscpVideo>
   <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
   <dialTemplate>dialplan.xml</dialTemplate>
   <softKeyFile>SK72f64050-7ad5-4b47-9bfa-5e9ad9cd4aa9.xml</softKeyFile>
 </sipProfile>
 <commonProfile>
   <phonePassword>cisco</phonePassword>
   <backgroundImageAccess>true</backgroundImageAccess>
   <callLogBlfEnabled>2</callLogBlfEnabled>
 </commonProfile>
 <loadInformation>SIP41.8-4-4S</loadInformation>
 <vendorConfig>
   <disableSpeaker>false</disableSpeaker>
   <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
   <pcPort>0</pcPort>
   <settingsAccess>1</settingsAccess>
   <garp>1</garp>
   <voiceVlanAccess>0</voiceVlanAccess>
   <videoCapability>0</videoCapability>
   <autoSelectLineEnable>1</autoSelectLineEnable>
   <webAccess>0</webAccess>
   <spanToPCPort>1</spanToPCPort>
   <loggingDisplay>2</loggingDisplay>
   <loadServer></loadServer>
   <recordingTone>0</recordingTone>
   <recordingToneLocalVolume>100</recordingToneLocalVolume>
   <recordingToneRemoteVolume>50</recordingToneRemoteVolume>
   <recordingToneDuration></recordingToneDuration>
   <rtcp>1</rtcp>
   <moreKeyReversionTimer>5</moreKeyReversionTimer>
   <autoCallSelect>1</autoCallSelect>
   <logServer></logServer>
   <g722CodecSupport>2</g722CodecSupport>
   <headsetWidebandUIControl>0</headsetWidebandUIControl>
   <handsetWidebandUIControl>0</handsetWidebandUIControl>
   <headsetWidebandEnable>0</headsetWidebandEnable>
   <handsetWidebandEnable>1</handsetWidebandEnable>
   <peerFirmwareSharing>0</peerFirmwareSharing>
   <enableCdpSwPort>1</enableCdpSwPort>
   <enableCdpPcPort>1</enableCdpPcPort>
   <enableLldpSwPort>1</enableLldpSwPort>
   <enableLldpPcPort>1</enableLldpPcPort>
   <lldpAssetId></lldpAssetId>
   <powerPriority>0</powerPriority>
 </vendorConfig>
 <versionStamp>1210005433-9cbe31b7-eb01-4365-a0d8-023ce98a7418</versionStamp>
 <networkLocale>United_States</networkLocale>
 <deviceSecurityMode>1</deviceSecurityMode>
 <idleTimeout>0</idleTimeout>
 <authenticationURL></authenticationURL>
 <idleURL></idleURL>
 <messagesURL></messagesURL>
 <proxyServerURL>192.168.1.100</proxyServerURL>
 <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
 <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
 <dscpForCm2Dvce>96</dscpForCm2Dvce>
 <transportLayerProtocol>4</transportLayerProtocol>
 <dndCallAlert>5</dndCallAlert>
 <phonePersonalization>0</phonePersonalization>
 <capfAuthMode>0</capfAuthMode>
 <capfList>
 </capfList>
 <certHash></certHash>
 <encrConfig>false</encrConfig>
 <advertiseG722Codec>1</advertiseG722Codec>
 <mobility>
   <handoffdn></handoffdn>
   <dtmfdn></dtmfdn>
   <ivrdn></ivrdn>
   <dtmfHoldCode>*81</dtmfHoldCode>
   <dtmfExclusiveHoldCode>*82</dtmfExclusiveHoldCode>
   <dtmfResumeCode>*83</dtmfResumeCode>
   <dtmfTxfCode>*84</dtmfTxfCode>
   <dtmfCnfCode>*85</dtmfCnfCode>
 </mobility>
</device>


Lastly, you need a dial plan file - dialplan.xml. A simple working dialplan.xml is shown below. The first line tells the phone to make the call (send SIP INVITE to PBX) when 3 digit number starting with 2 is pressed. Ex: 201, 202 etc

<DIALTEMPLATE>
 <TEMPLATE MATCH="2.." TIMEOUT="0"/>
 <TEMPLATE MATCH="9,1.........." TIMEOUT="0" Tone="Bellcore-Alerting"/>
 <TEMPLATE MATCH="9,.........." TIMEOUT="0"/>
</DIALTEMPLATE>
Personal tools
Getting Help