Asterisk phone cisco 79xx

Complete Guide for configuring various Cisco 79XX IP Phones with Asterisk

A guide for configuring a variety of Cisco IP Phone models (79XX series) to work with Asterisk PBX systems. All configuration file examples are available as well. Available online and in PDF format:
Online version:
PDF version:

Configuring Cisco 79xx phones with Asterisk

This page documents how you configure a Cisco IP phone with Asterisk.

By default most Cisco VoIP phones come configured for Call Manager, which uses the 'Skinny' protocol - SCCP.
Asterisk has 2 implementations for this channel (required for the 7910/20):
  • Skinny implements a very basic set of telephone functions and ships with asterisk.
  • SCCP has implemented more of the SCCP protocol, so some class 5 features (hold, transfer, forward, etc) should work.

However, the 7905/7912 and 7940/60 can be reconfigured to use SIP (recommended for use with Asterisk):

The 7905 doesn't have Speakerphone (only a speaker for call monitoring or on-hook dialing), its SIP image has by far the best user interface of all cisco SIP phones, plus it's nicely compact, and the display even has a higher resolution than that of the 7960. The 7912 is the same as the 7905, but with a built-in ethernet switch.

The 7912/05 phones use a different configuration file format and syntax; for more information about configuring these phones please refer to Cisco 7905/7912 IP Phones.

With the right Cable, 79xx series phones can use standard POE injectors. They also work out of the box with Aironet power injectors. (N.B., the wrong cable may damage your phone!)

TFTP Manager for FreePBX

Cisco IP Phones use a TFTP server for its configuration files and firmware. A FreePBX module for managing TFTP server files has been created and available on the developers website, or from the FreePBX Trac ticket #1032


Version 8.12 is now released (29 May 2009)
There are a few minor bugs fixed. (For Cisco Discovery Protocol (CDP), the VoIP capabilities bit is missing during initial boot)
There is a guide to installing and updating to this firmware here:
V8.12 Release Notes:
V8.12 Download available at:

Version 8.11 is now released (9 Feb 2009)
There are a few minor bugs fixed. This version has correctly been loaded on an older 7960.
There is a guide to installing and updating to this firmware here:
V8.11 Release Notes:
V8.11 Download available at:

Version 8.10 has been released (21 Oct 2008) then quickly removed and no longer avaiable.

Version 8.9 is now released.
That was the latest as of June 26, 2008
V8.9 Download available at:

Version 8.8 is now released (a few minor bugfixes)
V8.8 Download available at:

Version: v8.7 is now released as per this security advisory.
V8.7 Download available at:

V8.6 Download available at:



Version: v8.3
The file from cisco is designed for the cisco call manager software and is a ".cop" file.
The file from cisco is designed for the cisco call manager software and is a ".cop" file. This file is just a GZIP compressed TAR file. Just ungzip and untar the file to extract the the new files for the phone. It installs just like the version 7 software with a loader and an application file. The standard ZIP file should be released soon.
  • No longer lists server IP on display for caller's number.
  • At least on the 7960, this release seems to break the Asterisk qualify sip.conf setting. The phone shows as unreachable just after it registers. If you set "qualify=no" it works.
  • I have also seen some other phone display strangeness with this release on the 7960

Version: v8.2
  • Using the existing config files (that worked with v7.x) it seems to work, execpt the CID now displays the IP address also.
  • new config params:
    • line1_contact: number, changes the username part that is sent in the sip Contact: header
    • transfer_onhook_enabled: 1 or 0. If enabled, a call will be transferred when the handset is hung up (rather than having to press the Trnsfr button again. The original behaviour still works.)
    • call_manager1_addr and call_manager1_sip_port, not sure what difference these make
    • dscpForAudio: id, tag audio packets for qos with this dscp id, replace tos_media field
    • connection_monitor_duration: sec
    • encrypt_key: 32hexdigits, careful with this one, some config encryption support or similar
    • xml_card_dir and xml_card_file, actually these appeared earlier, doesnt seem to try load the card.xml over tftp for this, anyone know?
    • Current bug: There appears to be a bug in v8.2 that causes the phone to be unable to register with Broadvoice's SIP proxy. Downgrading the firmware appears to resolve the issue.

Version: v7.5
  • There seems to be a bug in the 7.5 SIP software (at least on the 7960) that cause the phones to drop registration with Asterisk and not re-register. A phone reboot forces them to reregister for a time. 7.4 with the same configuration does not seem to have the same registration problem. It's unclear exactly where the issue exists (phone config, asterisk, time settings, etc). - doretel
  • Firmware 7.5 breaks RFC compliance, by not ACKing a 487. Also, we have experienced 7940/60 phone hangs/reboots related to "XML Parse Error" displayed on phone screens. Reverting to v.7.4 eliminated these problems. -vechers (The "XML Parse Error" problem and the previously mentioned fix confirmed by rrizzi7210)





v7.0 and up:
  • A new design approach is used to store the existing software base in the Cisco 7940 and Cisco 7960 telephones. The new approach utilizes a "run from flash" design to use the Flash and RAM memory available more efficiently.
  • Bugfix: Media takes 0.4 sec to be set up (finally...)
  • Bugfix: HTTP requests fail, sysbufs get hung
  • Numerous other bug fixes, too many to mention (see release notes below)
Click here to see a step by step guide to upgrading to sip version 7.x Cisco 7940-7960 upgrade to version 7.x



Cisco 7940/7960 SIP Phone Software Images
Cisco's SIP phone software images including versions 3.0, 4.4, 5.3, 6.x - 8.x work well with Asterisk. Features have been implemented and caveats (earlier problems) corrected with each release. Staring from v5.x images have incorporated a software security feature that makes it impossible to revert back to earlier images, although reverting to earlier versions is possible within the same major release (i.e. 7.5 firmware can be rolled back to 7.4 firmware with no problems). Version 6.0 SIP image has been very stable for many Asterisk users. The new 7.x - 8x images feature mainly bug fixes, not new features.

It appears to be impossible to upgrade directly from v3.x to v8.x (probably any version prior to v6.x), I had to upgrade to v6.3 first. It is very hard to find a copy of this the v6.3 firmware (not even on Cisco site). Search for or get it at

The v6.0 software has implemented:
  • Alert-Info (play internal ring tones based on Alert-Info within the SIP header)
  • Auto Answer (2-way paging conversation without picking up handset)
  • DHCP Option 66
  • Directory Enhancements (user can add/change/delete entries in Personal Directory)
  • DSP (new digital signal processor)
  • DSP Alarms, Debugging Aids, and Logging (help diagnose problems)
  • Enhanced Tone and Ring Support (support for more complex tones and ringing patterns)
  • Hot Line / Speeddials (each line button can be programmed to act as a speeddial button)
  • Local Call Forwarding (redirects incoming calls to another extension/URL)
  • Message Waiting Stutter Tone
  • Multiple Call Appearance (receptionist style, all lines have the same extension)
  • Outbound Proxy Redesign (improves use of outbound proxy based on multiple DNS records)
  • SIP Call Statistics (call statistics sent in BYE / 200 OK messages)
  • Resolved Caveats (several previously documented problems have been resolved)

Note: Cisco software images are only available from Cisco's web site and are protected by copyright laws. Access to their web site requires an account be established. The easiest way to do that is to purchase a Maintenance Agreement from Cisco for approximately $8 per year (US).

Cisco 7941/7961 SIP Phone Software Images

Cisco's SIP phone range now includes the 7941/7961, as new firmware v8.0(1) came out for these that supports SIP in March 2006. Previously some v7.0 releases of SCCP had been released. These phones look physically identical to the 7940 phone with the exception of the much better quality display which can display grey shades, however the software for the 7941/7961 appears to have major differences to the 7940/7960 software.

Release notes for 7941/7961 are at

Note that the release notes clearly state at the top of the document that "This SIP firmware was designed and tested to interoperate with Cisco call control, most notably Cisco Unified CallManager version 5.0. Although this SIP deployment is IETF RFC 3261 compliant, it is not supported by Cisco TAC or Engineering for use with non-Cisco call control systems.". So YMMV if you call the TAC for support.

The v8.0 software for the 7941/7961 has these significant differences over the v8.0 software for the 7940/7960:
  • The built-in web server previously only in the non-SIP images is now in the v8.0 SIP builds
  • The phone does not appear to support the old style config files, all configs for this phone need to be in XML
  • The phone does not appear to support telnet, but instead supports SSH-2.0, although this appears to be undocumented on CCO. At this stage unsure what the default user/password is
  • The config file name is therefore now SEP<mac-address>.cnf.xml
  • Upgrading the firmware load involves the phone uploading 5 signed binary files:jar41sip.8-3-4-16.sbn, cnu41.8-3-4-16.sbn, apps41.8-3-4-16.sbn, dsp41.8-3-4-16.sbn, and cvm41sip.8-3-4-16.sbn (this was for release load version 8-3-4-16 which is the latest as of late April 2008). These phones can be upgraded and the protocol support changed via the normal means of adding <loadInformation>term41.default</loadInformation> to the .cfg.xml file

At this stage, documentation on the format of the xml config file for SIP has proven to be extremely hard to find. Cisco are likely assuming that all adopters of this phone will be running it in a CallManager environment whereby the configs are automatically generated by the CCM. If you do find some or have access to a CallManager 5.0 which can generate these files, please document the basic format so others can configure these phones for SIP in a non CCM environment.

More information on this new config file format and this new series of phones can be found at the 79x1 xml config page Please edit it and improve it as much as you can as information of the nature in that document has not to date been easy to find.

Firmware packing/unpacking utility

There is an utility to pack/unpack CNU firmware files (7941/7961 and some others):

Project page:

Researcher's notes:

You can use it to get full root access on devices or just to look deeper in the firmware. There are still much work to do with kernel/root FS image, but it is suitable for most needs.

Software Upgrade Requirements

All software images are upgraded through a TFTP server at your location. If you don't have one, several free Unix and Windows packages are available via the Internet. The specific instructions as to exactly how to accomplish the upgrade should be reviewed from Cisco's web site as the exact steps (and possible backout steps) may change from version to version.

The TFTP server directory must include the following files as a minimium (most are upper/lower case sensitive):
  • OS79XX.TXT (The content of this file is solely the software image filename stripped of the .bin, i.e. P0S3-06-1-00)(Contains the universal application loader image in 7.x)
Note:(The 7.1 image upload needs to be spelled P003-07-1-00 in the OS79XX.TXT and P0S3-07-1-00 in the SIPDefault.cnf)
Note:(7941G does not fetch OS79XX.TXT when upgrading from SCCP 8.x to SIP 8.x)
Note:(7940G/7960G SIP v8.x and above does not fetch OS79XX.TXT at all)
  • P003-xx-y-zz.bin (Nonsecure universal application loader for upgrades from pre-5.x images.)
  • P003-xx-y-zz.sbn (Secure universal application loader for upgrades from images 5.x or later.)
  • P0a3-xx-y-zz.loads (File that contains the universal application loader and application image, where "a" represents the protocol of the application image loads file 0-SCCP, S-SIP, M-MGCP.)
  • P0a3-xx-y-zz.sb2 (Application firmware image, where "a" represents the application firmware image.)
  • SIPDefault.cnf (Contains generic parameters for all Cisco phones at your location)
  • SIP00036BAAD139.cnf (Where the last 12 hex digits is the MAC address of your Cisco phone) Sample php script to create the cnf file.

In addition, the following optional files may also be present in the TFTP directory:
  • dialplan.xml (contains entries like "9,1...." that cause the phone to automatically dial after a match)
  • RINGLIST.DAT (a list of ringing tones to be downloaded, like ringer1.pcm)
  • ringer1.pcm (a ringing tone to be downloaded to the phone)

See also: John Todd's examples

*** Simplify Updates (Auto-Loader Support) ***

This will save you alot of wasted time trying to update newer firmware! For easiest, direct firmware updates from say factory installed SCCP images direct to latest SIP firmware (e.g. SCCP v3.1 to SIP v7.4) — add the following files to your TFTP directory to assist the SCCP based generic Auto-Loader added as of v5.x to Cisco's SIP/SCCP images:
  • XMLDefault.cnf.xml
  • xmlDefault.CNF.XML

Due to inconsistent coding by Cisco, different firmware may look for different case-sensitive versions of the same file, thus the need for at least the two variations above to cover new phones and a good portion of older one's. Additionally, here is a usable example of the XML content that should be inserted into the files (be sure and update with the firmware version you wish to load, and match the SIPDefault.cnf and SIPxxxxxxx.cnf file's "image_version=" entries to match!):

Just add the loadInformation lines relevant to the phone that you have.

         <member priority="0">
   <loadInformation30002  model="Cisco 7920">cmterm_7920.4.0-03-02</loadInformation30002>
   <loadInformation30006  model="Cisco 7970">SCCP70.8-3-1S</loadInformation30006>
   <loadInformation115  model="Cisco 7941">SCCP41.8-3-1S</loadInformation115>
   <loadInformation30016  model="Cisco IP Communicator"></loadInformation30016>
   <loadInformation30032  model="SCCP gateway virtual phone"></loadInformation30032>
   <loadInformation308  model="Cisco 7961G-GE">SCCP41.8-3-1S</loadInformation308>
   <loadInformation309  model="Cisco 7941G-GE">SCCP41.8-3-1S</loadInformation309>
   <loadInformation30019  model="Cisco 7936">cmterm_7936.3-3-13-0</loadInformation30019>
   <loadInformation12  model="Cisco ATA 186">ATA030203SCCP051201A</loadInformation12>
   <loadInformation412  model="Cisco 3951">SIP3951.8-0-1</loadInformation412>
   <loadInformation365  model="Cisco 7921">CP7921G-1.0.3</loadInformation365>
   <loadInformation30007  model="Cisco 7912">CP7912080003SCCP070409A</loadInformation30007>
   <loadInformation30035  model="IP-STE"></loadInformation30035>
   <loadInformation369  model="Cisco 7906">SCCP11.8-3-1S</loadInformation369>
   <loadInformation30018  model="Cisco 7961">SCCP41.8-3-1S</loadInformation30018>
   <loadInformation20000  model="Cisco 7905">CP7905080003SCCP070409A</loadInformation20000>
   <loadInformation446  model="Cisco 3911"></loadInformation446>
   <loadInformation307  model="Cisco 7911">SCCP11.8-3-1S</loadInformation307>
   <loadInformation4  model="Cisco 12 S"></loadInformation4>
   <loadInformation3  model="Cisco 12 SP"></loadInformation3>
   <loadInformation2  model="Cisco 12 SP+"></loadInformation2>
   <loadInformation1  model="Cisco 30 SP+"></loadInformation1>
   <loadInformation5  model="Cisco 30 VIP"></loadInformation5>
   <loadInformation30  model="Analog Access">A001C030</loadInformation30>
   <loadInformation47  model="Analog Access WS-X6624">A002H024</loadInformation47>
   <loadInformation51  model="Conference Bridge WS-X6608">C00104000001</loadInformation51>
   <loadInformation40  model="Digital Access">D001M022</loadInformation40>
   <loadInformation43  model="Digital Access WS-X6608">D00404000029</loadInformation43>
   <loadInformation42  model="Digital Access+">D00303010033</loadInformation42>
   <loadInformation61  model="H.323 Phone"></loadInformation61>
   <loadInformation7  model="Cisco 7960">P00308000500</loadInformation7>
   <loadInformation100  model="Load Simulator"></loadInformation100>
   <loadInformation111  model="Media Termination Point Hardware">M00104000004</loadInformation111>
   <loadInformation120  model="MGCP Station"></loadInformation120>
   <loadInformation121  model="MGCP Trunk"></loadInformation121>
   <loadInformation348  model="Cisco 7931">SCCP31.8-3-1S</loadInformation348>
   <loadInformation9  model="Cisco 7935">P00503021600</loadInformation9>
   <loadInformation431  model="Cisco 7937"></loadInformation431>
   <loadInformation375  model="Cisco TelePresence"></loadInformation375>
   <loadInformation30008  model="Cisco 7902">CP7902080002SCCP060817A</loadInformation30008>
   <loadInformation11  model="Cisco VGC Virtual Phone"></loadInformation11>
   <loadInformation10  model="Cisco VGC Phone"></loadInformation10>
   <loadInformation6  model="Cisco 7910">P00405000700</loadInformation6>
   <loadInformation8  model="Cisco 7940">P00308000500</loadInformation8>
   <loadInformation30027  model="Analog Phone"></loadInformation30027>
   <loadInformation124  model="7914 14-Button Line Expansion Module">S00105000300</loadInformation124>
   <loadInformation119  model="Cisco 7971">SCCP70.8-3-1S</loadInformation119>
   <loadInformation437  model="Cisco 7975"></loadInformation437>
   <loadInformation404  model="Cisco 7962"></loadInformation404>
   <loadInformation435  model="Cisco 7945"></loadInformation435>
   <loadInformation302  model="Cisco 7985">cmterm_7985.4-1-4-0</loadInformation302>
   <loadInformation434  model="Cisco 7942"></loadInformation434>
   <loadInformation30028  model="ISDN BRI Phone"></loadInformation30028>
   <loadInformation358  model="Cisco Unified Personal Communicator"></loadInformation358>
   <loadInformation335  model="Motorola CN622"></loadInformation335>
   <loadInformation436  model="Cisco 7965"></loadInformation436>  <authenticationURL></authenticationURL>


See A perl script to handle remote rebooting of the 79xx class phones (useful for multiple-phone upgrades). Requires Net::Telnet.

NOTE: (Sept 2009): Cisco phones with SIP firmware version SIP41-8-4-1S and 8-3-xx using asterisk over UDP do NOT respond to the SIP NOTIFY message!! You can get around this using Emulated User Interaction and a PHP script that essentially presses "Settings -> **#**" for you. In the SEP<MAC>.cnf.xml file, make sure that the authorization page returns authorized for the username and password in the script. You can download it at This script must be run on the asterisk box because it asks asterisk to convert the extension into a valid IP address via SIP SHOW PEERS. The syntax is like this: php phonePush.php <command> <extension>. You can add other operations to the script as well by editing the array. The first part is the button you want the phone to press and the second is the delay, or how long to wait before sending the next command.

So you blew up your 7940/7960 trying to load new firmware

Tone Parameters

When connecting to the 79xx range of phones (Tested on 7912) through the web browser, you are able to change the cadance settings etc for different locations via the "Tone Parameters" screen.
This sets call progress indication, such as the busy tone, system busy tone, and ring tone etc.

The default US are as follows: US


The Settings for the United Kingdom settings are: UK


Logo Displayed on 79XX Screen

A non-Cisco logo can be displayed on the 79XX screen. Cisco's documentation suggests the logo be a Windows Bitmap form (*.BMP) with 256 colors and 90 x 56 pixels in size. Only two colors are displayed, black or white. The image must be saved in greyscale format. In GIMP it is Image->Mode->Greyscale. If the size of the logo is larger then this specification, the phone will rescale to fit (within reason). Microsoft Paint and many other applications can be used to create the logo image.

Once the image is created, place the *.BMP file on any web site available to you (suggest /asterisk/mylogo.bmp, where the /asterisk directory is not freely advertised).
Modify the SIPDefault.cnt file entry to point to the web site:
logo_url: ""
and reboot the Cisco phone.
Note: the smaller the logo file, the quicker it will load. Typcial logo files should be around 10k bytes.

Note: 7940/7960 phones actually display two colors at 2-bit depth, or four solid colors. For best results creating images/logos that don't dither and degrade, use #000000 (black) and #FFFFFF (white or clear on the LCD display), then #404040 (dark grey) and #808080 (light gray) as your alternate solid colors (or as the antialiasing colors for excellent results).

Company Telephone Directory

The 79XX phones have four panel keys labeled as Messages, Services, Directories, and Settings. The Directory key can be programmed to view your company's telephone directory by displaying Names and Telephone Numbers that are stored on any web site available to you.
Modify the SIPDefault.cnf file entry to point to the web site:
directory_url: ""
The phone must be rebooted in order to read the above file.
The web site file /asterisk/directory.xml should include xml entries like:
    <Title>IP Telephony Directory</Title>
    <Prompt>People reachable via VoIP</Prompt>                    

Note: Each time a user presses the Directory key and accesses the External Directory option from the menu, the phone will access the contents of this html file and display whatever text entries included in it. Therefore, changes to the html file do not require any futher rebooting of the Cisco phone. Cisco has published Cisco IP Phone Services Application Development Notes (CMXML_App_Guide.pdf ) that further explains options and file contents.

Asterisk Cisco 79XX XML Services

Services Button

The 79XX phones have four panel keys labeled as Messages, Services, Directories, and Settings. The Services key can be programmed to execute CGI scripts that are stored on any web site available to you. The CGI scripts can perform any action that you are capable of programming. None are provided by Cisco.
Modify the SIPDefault.cnf file entry to point to the web site:
services_url: ""
The phone must be rebooted in order to read the above file.
The web site file /asterisk/myscriptpage.html should include entries for each service that you plan to make available to your phone users. The exact content and syntax is also documented in the Cisco IP Phone Services Application Development Notes (CMXML_App_Guide.pdf ) noted above.

Messages Button

When the Messages button is pressed, you can cause the phone to directly dial an extension in your asterisk dialplan. Just configure the phone as:
messages_uri: "<extension>"
where <extension> is what you wish the phone to dial when the Messages button is pressed. You can then catch the call in either a standard VoiceMailMain() invocation a la
exten => _42,1,VoiceMailMain()
or, be cute and bypass entry of mailbox number and password a la
exten => _42,1,VoiceMailMain(s<mbox num>)
To make the Messages button work for any extension (assuming your extensions are numbered appropriately), use:
exten => _42,1,VoiceMailMain(s${CALLERIDNUM})

Asterisk Cisco 79XX XML Services

The Cisco SIP IP phone ships with two ring types: Chirp1 and Chirp2. By
default, your ring type options will be those two choices. However,
using the RINGLIST.DAT file, you can customize the ring types that are
available to the Cisco SIP IP phone users.

Step 1
Create a pulse code modulation (PCM) file of the desired ring
types and store the PCM files in the root directory of your TFTP server.
PCM files must contain no header information and comply with the
following format guidelines:
  • 8000 Hz sampling rate
  • 8 bits per sample
  • ulaw compression
  • 240 - 16080 samples long ( 0.03 sec - 2.01 sec )

For example, to use sox to generate the tones, use

sox -t wav in.wav -t raw -r 8000 -U -b -c 1 out.raw resample -ql 

Step 2
Using a ASCII editor, open the RINGLIST.DAT file and for each
of the ring types you are adding, specify the name as you want it to
display on the Ring Type menu, press Tab, and then specify the filename
of the ring type. For example, the format of a pointer in your
RINGLIST.DAT file should appear similar to the following:

Ring Type 1 ringer1.pcm

Step 3
After defining pointers for each of the ring types you are
adding, save your modifications and close the RINGLIST.DAT file.


If you have configured a secondary tftp-server(ie. dyn_tftp_addr : in SIPDefault.cnf, or SIP<MACADDR>.cnf which cannot be reached then the phone will not attempt to download the RINGLIST.DAT file.

Controlling ring tones from Asterisk

By setting the Asterisk variable ALERT_INFO before you call Dial, Asterisk will add ringer tone info to the SIP invite that is sent to the phone. Note that this only seems to work for the internal ringtones and not for any custom ringtones.

Asterisk version <1
exten => 3010,1,SetVar(__ALERT_INFO=<Bellcore-dr1>)

Assterisk 1.0 and 1.2
exten => 3010,1,SetVar(_ALERT_INFO=<Bellcore-dr1>)

Asterisk 1.4
exten => 3010,1,SIPAddHeader(Alert-Info: <Bellcore-dr1>)

Available ring tones by default


While examining the firmware for the 7940/7960 I found the following strings. I have not verified if these are in fact ringtones because I don't have a phone to test them with at the moment but they might be worth a try. {I have tried them, and they don't seem to do anything on the 7940 with




DialPlan Notes (dialplan.xml)

The dialplan.xml file controls the phone's matching of digits. By default, the file contains an entry that causes the phone to wait 5 seconds after you dial the last digit. You can add additional TEMPLATE entries to cause the phone to dial after a shorter time, or to dial immediately when a specific pattern is entered. When creating rules, you can use the wildcards "*" and ".". "*" matches anything and "." matches only one digit (ie: "1* will match any dialstring that begins with 1, while "1.." will match any three character string that begins with "1". If you specify a timeout greater than "0", users must push 'Dial' or '#' to cause the phone to dial without waiting. For a variety of reasons, not least of which being that most phone users are not accustomed to pressing 'Dial' on their office phones, it may be desirable to configure a dial plan for your organization. Be careful with setting an entry to dial immediately, as that can cause trouble if you need to dial a longer number that matches that string (ie: if you match "1.." for extensions 100-199, and dial immediately, the phone number "18005551212" will match that pattern and you may not be able to dial it.).

If you wish to use the hash (by default it will immediately dial the number entered) include it explicitly as part of a pattern in DIALPLAN.XML
<TEMPLATE MATCH="#..." Timeout="5" User="Phone" /><!-- Hash, plus three digits, Wait 1 second, then dial. >
<TEMPLATE MATCH="*" Timeout="5" User="Phone" /><!-- Anything else. -->

If you wish to use the star key (*), such as for entries like "*86", you must escape the '*' in the XML, like below:
<TEMPLATE MATCH="\*.." Timeout="5" User="Phone" /><!-- Feature Codes, like *86 --, Dial immediately. >
<TEMPLATE MATCH="*" Timeout="5" User="Phone" /><!-- Anything else. -->

In another example, we immediately match 9+10digits or 9+1+10digits, and match 5+2digits as internal extensions
<TEMPLATE MATCH="5.." TIMEOUT="0"/><!-- Internal Extensions 500 to 599. Dial immediately. -->
<TEMPLATE MATCH="9,1.........." TIMEOUT="0" Tone="Bellcore-Alerting"/><!-- 9+1+10-digits. Dial immediately. -->
<TEMPLATE MATCH="9,.........." TIMEOUT="0"/><!-- Anything else. -->

In the above example, a secondary dial tone is invoked by the comma character. If the Tone attribute is left blank, the default will be used. Or you can specify one of the following:

  • Bellcore-Alerting
  • Bellcore-Busy
  • Bellcore-BusyVerify
  • Bellcore-CallWaiting
  • Bellcore-Confirmation
  • Bellcore-dr1
  • Bellcore-dr2
  • Bellcore-dr3
  • Bellcore-dr4
  • Bellcore-dr5
  • Bellcore-dr6
  • Bellcore-Hold
  • Bellcore-Inside
  • Bellcore-None
  • Bellcore-Outside (default)
  • Bellcore-Permanent
  • Bellcore-Reminder
  • Bellcore-Reorder
  • Bellcore-Stutter

  • CallWaiting-2
  • CallWaiting-3
  • CallWaiting-4

  • Cisco-BeepBonk
  • Cisco-Zip
  • Cisco-ZipZip

Here is an example for US phones that sets entries for Extensions 100-299, plus 7-digit dialing, 10-digit dialing, and 1+10-digit dialing, plus "*86" for voicemail access.

<TEMPLATE MATCH="1.." TIMEOUT="1"/><!-- Internal extensions 100 to 199. Wait 1 second, then dial. -->
<TEMPLATE MATCH="2.." TIMEOUT="1"/><!-- Internal extensions 200 to 299. Wait 1 second, then dial. -->
<TEMPLATE MATCH="......." TIMEOUT="1"/><!-- 7 digits. Wait 1 second, then dial. -->
<TEMPLATE MATCH=".........." TIMEOUT="1"/><!-- 10 digits. Wait 1 second, then dial. -->
<TEMPLATE MATCH="1.........." TIMEOUT="0"/><!-- 1+10 digits. Dial immediately -->
<TEMPLATE MATCH="\*86" TIMEOUT="0"/><!-- *86 (*VM) for voicemail. Dial immediately. -->
<TEMPLATE MATCH="*#" TIMEOUT="0" REWRITE="%1"/><!-- Dial immediately after pressing #. -->
<TEMPLATE MATCH="*" TIMEOUT="5"/> <!-- Anything else -->

The above example includes a line to cause the phone to dial immediately after pressing "#". This is not needed for the 7940/7960, as that functionality is built-in. However, it is needed for some other phones that may also download this file, namely the 7970 and others.

Notes: This file is case sensitive in some firmware versions; all elements and attributes should be uppercase (except Tone) or the entries may be ignored. According to Cisco, the phone will always match the LONGEST expression.

Call Waiting Feature

The 79XX series phones have a good way of handling SIP registrations provided the Call Waiting feature isn't turned off. Most other SIP phones require an individual SIP username and password for each line appearance. Instead, the 79XX will automatically roll-over to the next available line. So, for example, on a 7960 you can have all six lines programmed to the same SIP username/password and the phone will automatically handle the call waiting function. Note: If you use any other method of ringing multiple lines on the phone (i.e. dialing SIP/123&SIP/456) your phone will show a confusingly high number of missed calls.

For example:


# Line 1 Settings
line1_name: "510" ; Line 1 Extension\User ID

line1_displayname: "x510" ; Line 1 Display Name
line1_shortname: "x510" ; Comment next to the button
line1_authname: "510" ; Line 1 Registration Authentication
line1_password: "test" ; Line 1 Registration Password

# Line 2 Settings
line2_name: "510" ; Line 2 Extension\User ID
line2_displayname: "x510" ; Line 2 Display Name
line2_shortname: "x510" ; Comment next to the button
line2_authname: "510" ; Line 2 Registration Authentication
line2_password: "test" ; Line 2 Registration Password

In your sip.conf:


In your extensions.conf:

exten => 510,1,Dial(SIP/510,20,mTt)
exten => 510,2,Voicemail(u510@default)
exten => 510,3,Hangup
exten => 510,102,Voicemail(b510@default)
exten => 510,103,Hangup

Asterisk Configuration File Examples


type=friend ; This device takes and makes calls
host=dynamic ; This host is not on the same IP addr every time
username=3014 ; Username programmed into Cisco phone
secret=mypassword ; Password for device
context=from-sip ; Inbound calls from this phone go to this context
nat=yes ; nat=yes if this phone is behind a NAT box or firewall
callgroup=2 ; the group to which this phone belongs for *8 phone ringing pickup
pickupgroup=2 ; the pickup group allowed from this phone when *8 is dialed
mailbox=3014 ; Activate the message waiting light if this voicemailbox has messages in it


exten => 3014,1,Dial(SIP/3014,15,t) ; see "show application dial" for options and formats
exten => 3014,2,Voicemail2(u3014) ; go to Voicemail2 if phone is "U"nanswered
exten => 3014,102,Voicemail2(b3014) ; go to Voicemail2 if phone is "B"usy
exten => 3014,103,Hangup ; and then hangup.



fromstring=NPI VM
emailbody=\nVM for x ${VM_MAILBOX} from ${VM_CALLERID} dur: ${VM_DUR} \n
following sends a text message to a cell phone telling me someone left a voicemail
3014 => 3014,FirstName LastName,

Troubleshooting Phone Registration

NOTE: 7940/7960 phones (and similar) seem to be limited to a password of 30 characters or less, but recent versions of FreePBX automatically generate 32 character random passwords when creating new extensions. You must modify the auto-generated FreePBX password to be 30 characters or less, or the phones will complain of an error parsing the SIP<mac>.cnf configuration file and fail to register.

From the asterisk command line, execute "sip show peers" and "sip show users" to display the current status of the Cisco phone. If no entries appear in the list for this phone, then review the "username=3014" and "secret=mypassword" in sip.conf to ensure they match the entries programmed into the Cisco phone.
  • CLI> sip show peers
Name/username Host Mask Port Status

3014/3014 (D) 5060 Unmonitored
  • CLI> sip show users
Username Secret Authen Def.Context A/C
3014 mypassword md5,plaintext from-sip No

Troubleshooting Cisco Phone

The Cisco 79XX phones support telnet. (Enable telnet_level: 2 in the config) To diagnose problems with the Company Directory function noted above (as an example), telnet to the phone's IP address using the login password provided in the SIP00036BAAD139.cnf file noted above. For example, to diagnose a possible http problem, do the following:

SIP Phone> debug http
Enabling bug logging on this terminal - use 'tty mon 0' to disable
debugs: http timestamp
SIP Phone> [11:39:39] Connect2WWWIPPort called IpAddr[0], port[80], hostName[]
[11:39:39] Connect2WWWIPPort Sending Request to IpAddr[], port[80]
[11:39:39] HTTP RECV (ACK CMD)
[11:39:39] HTTP RECV (OPEN CMD)
HTTP Send [178] Bytes of Data
Data Packet is:
GET /asterisk/directory.html?name=SIP00036BC38B88 HTTP/1.1
User-Agent: Allegro-Software-WebClient/3.10b1
Connection: Close

Troubleshooting Cisco Phone Configuration issues.

  • Any configuration parse error warnings are shown in the phone menu (Settings - Status - Status messages). Or from the telnet CLI, you can type "show status"

  • Check the file that it reports a problem with. Check the permissions on the TFTP server that it can read the file.

  • Carefully check the config file for obvious errors (missing speechmarks, spurious spaces etc.)

If you still cannot locate the problem, you can do the following to erase the phone config and debug it when it loads it back in again:
(Unfortunately this will delete any speed dial keys configured on the handset, and also auto answer setting as these cannot be put back again via TFTP.)

  • Telnet to the phone:


Connected to
Escape character is ']'.

Password :*****

Cisco Systems, Inc. Copyright 2000-2005
Cisco IP phone MAC: 000a:8a2c:864a
Loadid: SW: P0S3-08-6-00 ARM: PAS3ARM1 Boot: PC030301 DSP: 4.0(2.0)[A0]
SIP Phone> show status

Current Phone Status
W350 unprovisioned proxy_backup
W351 unprovisioned proxy_emergency
W310 1 Error(s) Parsing: SIPDefault.cnf

Phone has reported an error parsing the SIPDefault.cnf, but unfortunately does not say exactly what it was!
The warnings about proxy_backup and proxy_emergency are normal in my case because I do not use that feature.

Now (Make sure your TFTP files are in place and that your DHCP server is set to tell your phone the next-server of it.)

SIP Phone> debug xml-events
SIP Phone> debug xml-vars
SIP Phone> erase protflash

Now among the (copious) output you will see the phone parsing the config:

[00:28:46:4136406] ---LIST---
[00:28:46:4136407] href=basic
[00:28:46:4136407] card=status
[00:28:46:4136407] icon=WAIT
[00:28:46:4136407] status=Requesting Configuration
[00:28:46:4136408] ------
[00:28:46:4136408] XML Event: href=basic, event=(null), target=(null), action=(null), card=status
[00:28:46:4136410] TFTP: Request file:SIPDefault.cnf from: <x.x.x.x>
[00:28:48:4136630] TFTP: File received successfully!

[00:28:48:4136633] Parse error: var: wibble_foo not found in table
[00:28:48:4136636] Parse error: 1 Errors found

[00:28:48:4136636] %W350 unprovisioned proxy_backup
[00:28:48:4136637] %W351 unprovisioned proxy_emergency
[00:28:48:4136637] %W362 No Valid Line Names Provisioned
[00:28:48:4136649] %W310 1 Error(s) Parsing: SIPDefault.cnf
[00:28:48:4136650] TFTP: Request file:SIP0009E8B4AE3E.cnf from: <x.x.x.x>
[00:28:48:4136668] TFTP: File received successfully!
[00:28:48:4136672] %W350 unprovisioned proxy_backup
[00:28:48:4136673] %W351 unprovisioned proxy_emergency
[00:28:48:4136685] upgrade_check(P0S3-08-6-00)

In this case it did not like my "wibble_foo: thing" in SIPDefault.conf !

Asterisk + SIP + Cisco 7931

The 7931 are a great phone, with a smallish screen and lots of BLF buttons. However, there are no hard buttons for options like settings. The 7931 will configure in a very similar manner to all of the other 79xx phones except for these buttons.

To configure an Applications button (to access directories, missed calls, settings etc), include the following into your SEPmac.cnf.xml:

            <line button="24">

Some of the feature codes available to be connected to buttons:
  • 2 Speed Dial
  • 5 Forward All
  • 19 Privacy
  • 18 Services
  • 104 Conference
  • 123 Meetme
  • 130 DoNotDisturb
  • 194 Messages
  • 195 Directory
  • 197 Applications
  • 198 Headset

Asterisk + SIP + Cisco 7975

This is working configuration of my server and runing gr8 with all feature....enjoy it...

Home page:-

contact detail:-

Satish Patel
Mobile:- +1-646-327-9153

Installation method

Copy this configuration file in your tftp root directory and configure your phone for tftp and reboot your ip phone. beafore doing this change your setting accoring your setup.


NOTE: MAC_ADDRESS must be in all caps and at least on the 7975g this file name should conclude with the full extention ending as .cnf.xml
To reassure yourself of the actual file name the phone is requesting go into Settings, Status, Status Messages for the results of the TFTP attempts.

<device xsi:type="axl:XIPPhone" ctiid="203849429" uuid="{96f8508b-10ef-f98c-d20d-0471777ec725}">
<devicePool uuid="{a755aa55-089c-2b47-9603-c7d51b9ca4b5}"> 
<name>Dallas 5.0 Beta</name> 
<dateTimeSetting uuid="{9ec4850a-7748-11d3-bdf0-00108302ead1}"> 
<timeZone>GMT Standard/Daylight Time</timeZone> 
<name>5.0 Beta</name> 
<member priority="0"> 
<description>CallManager 5.0 Beta Pub -</description> 





<line button="1"> 

<line button="2"> 












If you still cannot find it, try adding "debug config" which will generate even more config debugging.

(Note: You can also reset the 7960 by pressing *+6+settings at the same time.)
(Note: additional technical data was displayed but it was clipped from this documentation.)

Check out:
^ This site has all the information you will need to help you work with the phone in the telnet prompt!

See also:

Where to buy:


There is about 3.3GB of misc Cisco firmware images and other good stuff @

Asterisk | Asterisk Configuration | Channel Configuration | Configuration for Specific Phones | Asterisk Appliances
Created by: oej, Last modification: Thu 22 of Jan, 2015 (17:08 UTC) by trymes
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+