From KlavoWiki
Jump to navigationJump to search

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.



You network must be using option 66 for DHCP, which points to a TFTP server, either using IP or FQDN.


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


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


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.


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


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: ""

# Outbound Proxy info
outbound_proxy: ""
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: ""

# Time Zone phone will reside in
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: ""                    ; URL for branding logo to be used on phone display


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)


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.

  <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 -->