CISCO IP Phone SCCP to SIP
I have had no end of trouble trying to find ways to upgrade some CISCO IP phones from SCCP (Skinny) to SIP. The biggest problem I found was trying to find information. Here I list what I did to upgrade some CISCO IP Phones from SKINNY to SIP.
Prerequisite
DHCP
You network must be using option 66 for DHCP, which points to a TFTP server, either using IP or FQDN.
TFTP
There are a lot of articles that say not all TFTP servers work with the CISCO Phones. I first used OpenFTPServer as that was the recommended. I also used SolarWinds TFTP Server as that is my favourite for Windows. For Linux my standard is vsftpd.
You will need to make a choice of which TFTP server to use.
Firmware P0S3-08-9-00
Files
The following information is based on SIP firmware P0S3-08-9-00. It seems that you can only download old firmware form the CISCO web site unless you have an account/contract with CISCO. I called CISCO and said I required the latest SIP firmware. A help desk person made the files available to me. I may have been lucky.
Extract the ZIP file which contains the firmware files to the root of your TFTP server. These files should be as follows:
- OS79XX.TXT
- P0S3-08-9-00.loads
- P0S3-08-9-00.sb2
- P003-08-9-00.bin
- P003-08-9-00.sbn
OS79XX.TXT
Edit the contents of the OS79XX.TXT file. By default it will have P003-08-9-00. Change that to be P0S3-08-9-00. The S represents SIP.
SIPdefault.cnf
You will need to create a file called SIPdefault.cnf. The phone will look for the field image_version. You need to specific the firmware version that you would like to use.
NOTE: Not all phones used this field to automatically upgrade via TFTP. The CISCO 7912 phone requires a manual process. See that sections for more details.
image_version: P0S3-08-9-00
I would recommend that you use the SIPdefault.cnf file listed below. This will be a global file that you would like all of your phones to use.
configuration files
SIPdefault.cnf
This file will be used by all CISCO phones. Any non-global or specific configuration required for an individual phones needs to be placed in the file SIP<mac_address>.cnf. For Example, if the MAC address of your phone is 1C17D3C2FF93 then you need a file called SIP1C17D3C2FF93.cnf that contains the individual setting for that phone. See the next section for that information.
# For 7940 Phones image_version: P0S3-08-9-00 # Proxy Server proxy1_address: "192.168.25.250" # Outbound Proxy info outbound_proxy: "192.168.25.250" outbound_proxy_port: "5060" # Proxy Registration (0-disable (default), 1-enable) proxy_register: "1" # Phone Registration Expiration [1-3932100 sec] (Default - 3600) timer_register_expires: "3600" # Codec for media stream (g711ulaw (default), g711alaw, g729) preferred_codec: "g711ulaw" # Setting for Message speeddial to Voice Mail messages_uri: "9999" # Set Dialplan File name dial_template: dialplan # Time Server sntp_mode: "unicast" sntp_server: "ntp.bri.connect.com.au" # Time Zone phone will reside in # http://www.cisco.com/en/US/products/hw/optical/ps2011/products_user_guide_chapter09186a00800bd9d7.html time_zone: "JST" #Time Format (0-12hr, 1-24hr [default]) time_format_24hr: "0" # Emergency Proxy info proxy_emergency: "" proxy_emergency_port: "5060" # Backup Proxy info proxy_backup: "" proxy_backup_port: "5060" # Outbound Proxy info outbound_proxy: "" outbound_proxy_port: "5060" # NAT/Firewall Traversal nat_enable: "0" nat_address: "" voip_control_port: "5060" start_media_port: "16384" end_media_port: "32766" nat_received_processing: "1" # Telnet Level (enable or disable the ability to telnet into this phone telnet_level: "2" ; 0-Disabled (default), 1-Enabled, 2-Privileged # Phone prompt/password for telnet/console session phone_prompt: "" ; Telnet/Console Prompt phone_password: "" ; Telnet/Console Password # Enable_VAD (1-enabled, 0-disabled) enable_vad: "0" # Network Media Type (auto, full100, full10, half100, half10) network_media_type: "auto" user_info: phone # URL for external Directory location #logo_url: "http://10.0.1.3/10-20logo.bmp" ; URL for branding logo to be used on phone display
SIP<mac_address>.cnf
This file contains specific information for each phone. The information here is more about registration information to the PBX.
The following configuration file is for a CISCO 7940 which is a 2 line phone. If you have a 1, 3 or more line phone then add/remove the lineX lines appropriately.
# SIP Configuration Generic File (start) # Line 1 Settings line1_name: "8952" ; Line 1 Extension\User ID line1_displayname: "" ; Line 1 Display Name line1_authname: "8952" ; Line 1 Registration Authentication line1_password: "" ; Line 1 Registration Password # Line 2 Settings line2_name: "8952" ; Line 2 Extension\User ID line2_displayname: "" ; Line 2 Display Name line2_authname: "8952" ; Line 2 Registration Authentication line2_password: "" ; Line 2 Registration Password # Phone Label (Text desired to be displayed in upper right corner) phone_label: "Exten: 8952 " ; Has no effect on SIP messaging # SIP Configuration Generic File (stop)
dialplan
You will notice in the SIPdefault.cnf file there is a line that sais:
# Set Dialplan File name dial_template: dialplan
This is informing the phone as to where the dialplan or number pattern matching scheme is for the phone. My dialplan is based on Queensland Australia.
<DIALTEMPLATE> <TEMPLATE MATCH="000" TIMEOUT="0"/> <!-- Emergency Services. Dial immediately --> <TEMPLATE MATCH="89.." TIMEOUT="0"/> <!-- Internal extensions 8900 to 8999. Dial immediately --> <TEMPLATE MATCH="3......." TIMEOUT="0"/> <!-- QLD Local 8 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="4......." TIMEOUT="0"/> <!-- QLD Local 8 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="5......." TIMEOUT="0"/> <!-- QLD Local 8 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="02........" TIMEOUT="0"/> <!-- Sydney 10 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="03........" TIMEOUT="0"/> <!-- Victoria 10 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="07........" TIMEOUT="0"/> <!-- Brisbane 10 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="08........" TIMEOUT="0"/> <!-- WA/SA/NT 10 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="04........" TIMEOUT="0"/> <!-- AU Mobiles 10 Digit Numbers. Dial immediately --> <TEMPLATE MATCH="1300......" TIMEOUT="0"/> <!-- AU 1300 Calls. Dial immediately --> <TEMPLATE MATCH="1800......" TIMEOUT="0"/> <!-- AU 1800 Calls. Dial immediately --> <TEMPLATE MATCH="131..." TIMEOUT="0"/> <!-- 13[1-9]xxx Numbers. Dial immediately --> <TEMPLATE MATCH="132..." TIMEOUT="0"/> <TEMPLATE MATCH="133..." TIMEOUT="0"/> <TEMPLATE MATCH="134..." TIMEOUT="0"/> <TEMPLATE MATCH="135..." TIMEOUT="0"/> <TEMPLATE MATCH="136..." TIMEOUT="0"/> <TEMPLATE MATCH="137..." TIMEOUT="0"/> <TEMPLATE MATCH="138..." TIMEOUT="0"/> <TEMPLATE MATCH="139..." TIMEOUT="0"/> <TEMPLATE MATCH="70." TIMEOUT="0"/> <!-- Call Parking 70x numbers. Dial immediately --> <TEMPLATE MATCH="71." TIMEOUT="0"/> <!-- Call Parking 71x numbers. Dial immediately --> <TEMPLATE MATCH="72." TIMEOUT="0"/> <!-- Call Parking 72x numbers. Dial immediately --> <TEMPLATE MATCH="0011*" TIMEOUT="5"/> <!-- International Calls. Wait 5 seconds, then dial --> <TEMPLATE MATCH="9999" TIMEOUT="0"/> <!-- For voicemail. Dial immediately --> <TEMPLATE MATCH="*#" TIMEOUT="0" REWRITE="%1"/> <!-- Dial Immediately After Pressing # --> <TEMPLATE MATCH="*" TIMEOUT="5"/> <!-- Anything else. Wait 5 seconds, then dial --> </DIALTEMPLATE>