Configuring a Cisco 7961 for SIP and Asterisk

By eric

Just prior to writing this, I think I was about ready to kill someone. Setting up this phone was probably one of the most challenging things I have done in a long time. So this will be my attempt to explain to other’s what I did and I will hopefully save some people some time.

Since we all need to be on the same page, let’s start out with the conventions:

  • Asterisk: Gentoo Linux,
  • Workhorse: Gentoo Linux (DHCP, TFTP, NTP),
  • Phone: Cisco 7961
  • Anything starting with a $ means you put your value in it. I will name the variable something descriptive for you
  • Remember that all filenames with Cisco are case sensitive
  • If there are some files you need examples of or access to and aren’t listed, please don’t hesitate to contact me.

I am not going to go into a lot of detail with things, just give some overview and some examples and it will hopefully be enough to get you in the right direction. Check throughout the document for some references and read up on those if need be.

DISCLAIMER: I am not an expert. If you break your phone while doing anything I mention here, I am not responsible. This is just what I did to get everything to work.

1. The first order of business was to add the phone’s MAC address to DHCP so I could be sure what was accessing the tftp server. I also needed to know the MAC address to create the proper files in the tftp directory. Ensure that you set the tftp server, ntp server, and SIP server in DHCP.

group voip {
        option domain-name-servers,;
        option domain-name "";
        option smtp-server;
        option ntp-servers;
        option time-servers;
        option routers;
        option sip-server;
        default-lease-time 86400; # 1 day
        max-lease-time 86400;
        server-name "";
        option tftp-server-name "";

        host myphone {
            hardware ethernet 00:19:E8:F4:B4:D0;

2. When you first plug in the phone, it’s loaded with the Skinny protocol software only (SCCP), nothing for SIP. This is because the phone was designed to work best (and really only) with the Cisco Call Manager. The first thing I had to do was to obtain the files that go in the tftproot on In the upgrade package were the files:

  • apps41.1-1-3-15.sbn
  • cnu41.3-1-3-15.sbn
  • cvm41sip.8-0-3-16.sbn
  • dsp41.1-1-3-15.sbn
  • jar41sip.8-0-3-16.sbn
  • load115.txt
  • load30018.txt
  • load308.txt
  • load309.txt
  • SIP41.8-0-4SR1S.loads
  • term41.default.loads
  • term61.default.loads

3. Once you place these files in the tftp root directory, you are ready for the upgrade. (Note: You need a Cisco smartnet file (or be good with Google) to find these files). Upgrading requires a factory reboot of the phone so it will look for the term61.default.loads file. To perform a factory reset of the phone, hold down the ‘#‘ as the phone powers up. Then dial ‘123456789*0#‘ and then let it work. The next time it reboots, it should then grab the necessary files from the tftp server and upgrade itself. You can watch the tftp logs and the phones LCD to ensure that everything that is supposed to be happening is happening.

4. At this point, the phone should be able to completely boot up and will likely just show you the word Unprovisioned at the bottom of the screen. The next step is to create the files that each phone needs to survive. The first file we are going to create is the SEP$MAC.cnf.xml. In the case of the phone that I am going to use for this demo, the filename is: SEP0019E8F490AD.cnf.xml. I know that the phone is also requesting the file CTLSEP0019E8F490AD.tlv, but you can safely ignore that. The minimalist version of the SEP$MAC.cnf.xml file:

         <timeZone>Eastern Standard/Daylight Time</timeZone>
            <member priority="0">
         <line button="1">
            <displayName>Eric Lubow</displayName>

5. You will also need to create a dialplan so the phone doesn’t try to dial immediately. Below is a minimalist dialplan.xml (which is the filename we used in the above schema).

  <TEMPLATE MATCH="." TIMEOUT="5" User="Phone" />
  <TEMPLATE MATCH="2500" TIMEOUT="2" User="Phone" />
  <TEMPLATE MATCH=".97" TIMEOUT="2" User="Phone" />
  <TEMPLATE MATCH="5..." TIMEOUT="2" User="Phone" />
  <TEMPLATE MATCH="1.........." TIMEOUT="2" User="Phone" />

6. Although I am still not entirely sure that you need them, here are 2 other files that I was told need to be referenced:

# Image Version
image_version: "P0S3-08-6-00"

# Proxy Server
proxy1_address: ""

# Proxy Server Port (default - 5060)

# Emergency Proxy info
proxy_emergency: "" # IP address here alternatively
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: "false"
nat_address: ""
voip_control_port: "5061"
start_media_port: "16384"
end_media_port: "32766"
nat_received_processing: "0"

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

# TOS bits in media stream [0-5] (Default - 5)
tos_media: "5"

# Enable VAD (0-disable (default), 1-enable)
enable_vad: "0"

# Allow for the bridge on a 3way call to join remaining parties upon hangup
cnf_join_enable: "1" ; 0-Disabled, 1-Enabled (default)

# Allow Transfer to be completed while target phone is still ringing
semi_attended_transfer: "0" ; 0-Disabled, 1-Enabled (default)

# Telnet Level (enable or disable the ability to telnet into this phone
telnet_level: "2" ; 0-Disabled (default), 1-Enabled, 2-Privileged

# Inband DTMF Settings (0-disable, 1-enable (default))
dtmf_inband: "1"

# Out of band DTMF Settings (none-disable, avt-avt enable (default), avt_always - always avt ) dtmf_outofband: "avt" ~np~# DTMF dB Level Settings (1-6dB down, 2-3db down, 3-nominal (default), 4-3db up, 5-6dB up)
dtmf_db_level: "3"

# SIP Timers
timer_t1: "500" ; Default 500 msec
timer_t2: "4000" ; Default 4 sec
sip_retx: "10" ; Default 11
sip_invite_retx: "6" ; Default 7
timer_invite_expires: "180" ; Default 180 sec

# Setting for Message speeddial to UOne box
messages_uri: "*97"

# TFTP Phone Specific Configuration File Directory
tftp_cfg_dir: "./"
# Time Server
sntp_mode: "unicast"
sntp_server: "" # IP address here alternatively
time_zone: "EST"
dst_offset: "1"
dst_start_month: "April"
dst_start_day: ""
dst_start_day_of_week: "Sun"
dst_start_week_of_month: "1"
dst_start_time: "02"
dst_stop_month: "Oct"
dst_stop_day: ""
dst_stop_day_of_week: "Sunday"
dst_stop_week_of_month: "8"
dst_stop_time: "2"
dst_auto_adjust: "1"

# Do Not Disturb Control (0-off, 1-on, 2-off with no user control, 3-on with no user control)
dnd_control: "0" ; Default 0 (Do Not Disturb feature is off)

# Caller ID Blocking (0-disabled, 1-enabled, 2-disabled no user control, 3-enabled no user control)
callerid_blocking: "0" ; Default 0 (Disable sending all calls as anonymous)

# Anonymous Call Blocking (0-disbaled, 1-enabled, 2-disabled no user control, 3-enabled no user control)
anonymous_call_block: "0" ; Default 0 (Disable blocking of anonymous calls)

# Call Waiting (0-disabled, 1-enabled, 2-disabled with no user control, 3-enabled with no user control)
call_waiting: "1" ; Default 1 (Call Waiting enabled)

# DTMF AVT Payload (Dynamic payload range for AVT tones - 96-127)
dtmf_avt_payload: "101" ; Default 100

# XML file that specifies the dialplan desired
dial_template: "dialplan"

# Network Media Type (auto, full100, full10, half100, half10)
network_media_type: "auto"

#Autocompletion During Dial (0-off, 1-on [default])
autocomplete: "0"

#Time Format (0-12hr, 1-24hr [default])
time_format_24hr: "1"

# URL for external Phone Services
services_url: "" # IP address here alternatively

# URL for external Directory location
directory_url: "" # IP address here alternatively

# URL for branding logo
logo_url: "" # IP address here alternatively

# Remote Party ID
remote_party_id: 1 ; 0-Disabled (default), 1-Enabled


       <member priority="0">
<loadInformation30018 model="IP Phone 7961">P0S3-08-6-00</loadInformation30018>
<loadInformation308 model="IP Phone 7961G-GE">P0S3-08-6-00</loadInformation308>

This should be all the examples and information that you need to get going with your Cisco 7961(|G|GE) phone. Simplicity at it’s finest, eh Cisco?

UPDATE (3/11/12): Thanks to Ken Alker for letting me know that natEnabled now only accepts true/false and no longer 1/0. I’ve updated it on the page.

  • Bal

    Hi i have used a 7961 also but for some reason when i go via my external sip provider sipgate i cannot dial calls out. The dial plan seems to fail do you have a solution?

  • I don’t know what you mean by the dialplan fails. Are you sure its getting picked up by the phone?

  • Bal

    the dial plan is what the phone uses to dial out. I am using SIP and Sipgate when i dial out i cannot get it to work.

  • Are you talking about the dialplan.xml file or the dialplan that contains the outbound context in the extensions.conf? What happens when it “doesn’t work?”

  • Henrique

    Flash Files Link would be Great?
    Cisco don’t like Guest Accounts :S
    i’ll keep Searching seems hard to find
    any help would great Cheers
    7961G needs SIP 🙂

  • Cisco 7961G does support SIP, assuming you update the firmware. However, the SIP implementation seems to be developed towards an ease of use and functionality with Cisco call manager. Cisco is putting a lot of effort into developing a better SIP stack, but again they are doing it for their CCM.
    You can get that software by signing up for a Cisco Smartnet Contract, its only $8 US.

  • Henrique

    Hello Again,
    Managed to get the Sip Image
    After Doing some Reading and Setting it up it’s doesn’t seem to register with Asterisk
    it’s just says Registering all the time
    Running Trixbox 2.2 with all updates
    Flash = ok
    i got Dial Tone
    FreePbx Replies by saying
    “The number you have Dialed is not in Service…..”
    it might me Firmware Compatibility Issues
    not sure what to do next

  • I have a problem with the 7961G I did all of the above my problem is I had a hell of a time finding the files

    • apps41.1-1-3-15.sbn
    • cnu41.3-1-3-15.sbn
    • cvm41sip.8-0-3-16.sbn
    • dsp41.1-1-3-15.sbn
    • jar41sip.8-0-3-16.sbn
    • SIP41.8-0-4SR1S.loads
    • term41.default.loads
    • term61.default.loads
    But now is missing

    • load115.txt
    • load30018.txt
    • load308.txt
    • load309.txt

    and after doing the upgrade I still do not see any SIP options did I miss something ???? Please Help I also have 7914 Not sure if that will show me the extension that are busy. I am regisering on a SIP server on the internet. All of my phone are doing that SPA942 but this is my fist Cisco and man its dificult to setup

  • Henrique

    Tried Softphone with no luck
    also stuck on registering
    Reinstalling trixbox and starting from Scratch

  • *John,
    The only file you need is the load30018.txt file. That is likely what’s preventing the file from doing the upgrade properly. What makes you 100% sure that the phone did the upgrade? Yes, the Cisco phones are a PITA to setup. They also don’t even work 100% when they are setup unless they have a Cisco CCM attached to them somewhere.

    30018 TAB SIP41.8-0-4SR1S TAB 11

  • Marvin

    i need to configure a cisco ip phone 7941 series for sip and asterisk, i have all the necesary files but i can´t configure the CTLSEP001759767068.tlv file, What parameters i need to place in this file and Which
    is the format ?

  • jeff chang

    quite note that the Phone tries to download jar file with a capital J, no doubt a windows dev enviroment.
    Version 8-2-2ES6

  • dap182

    I am not being able to register two SIP lines to the same Asterisk server with the 7961G, anyone else having this problem?

  • I got as far as the upgrade but it never registers I tried both a local asteriskds (Trisbox) and 2 different SIP providers still no luck.

    I have also found serveral newer SIp upgrades I used the one listed above but shouldn’t I use the latest one ???

  • ig

    Thanks for posting this, it saved me a lot of time. One change I had to make: the setting for natEnabled had to be “false” rather than “0” otherwise my 7961 choked on the config. Other than that it was perfect.

  • hello eric,

    i am searching the firmware for 2 months now. could you help me… or any other guy who is using the sipfirmware.

    my mailadresse is


  • oiram

    > You can get that software by signing up for a Cisco Smartnet Contract, its only $8 US.

    Eric, just searched and the only one I’ve found was some £30 for that. Any other recommendations? or places to go and get CCO account? Thanks a lot


  • Fab

    My cisco 7961 can register, it can receive calls from other SIP soft phone but I have only one-way audio (I can hear on the Cisco phone, but not on other SIP soft phone). Any idea ? (they are on the same LAN, no NAT).

  • Reg Samuel

    Hi Eric,

    I’ve been trying to get the files listed in Step 2. for quite a while.
    I have a smartnet contract with Cisco. I have searched their website with no luck.
    Could you let me know where you got them from?



  • Hi Eric, thanks for this report it’s very interessant.

    (Sorry in advance for my bad English).

    I use a Cisco 7960 (i think the procedure is the same like a 7961) with SIP protocol :

    When i first plug in the phone he try to join this file ; OS79XX.TXT in this file i put the version (bin) of the firmware i use : P003-07-1-00.

    After that, the phone try automaticaly to find the SEPmacaddress.cnf.xml file.

    In this file i indicate :


    The phone starts his upgrade and stop with the message “Protocol Application Invalid”.

    I have to edit the SEPmacaddress.cnf.xml file and modify it like this :


    After that, the phone ends his upgrade.

    Anybody has an idea ?

  • Paul

    Hello Eric,
    Everything works well with the exception of receiving calls onto the Cisco 7961 from any other device.
    I can place calls from Cisco 7961 to Softphone – Okay. Also 7960 to FXS ports works.

    Running Trixbox CE
    Any ideas?

  • shadow7777

    Do you have a link for this => Cisco Smartnet Contract.
    And can you put the necessary file some where ???
    It will be great. As i bought 7961 and i would like to use it with sip.
    Thanks in advance

  • Mauricio


    I’m using a 7911G, and the procedure is the same. I’ve got it all working. Now I was wondering if you’ve ever been able to set up auto-dial. I want to set up a phone that will dial as soon as it’s picked up (bat phone). Any ideas?

    • Batman

      you have to configure PLAR-Private Line Automatic Ringdown for that

  • Nice article! I have done this on a 7970G, on that one I can have nice color background images also.. This was very well documented article!

  • mercdei

    Did 123456789*0# on a 7961 phone and now there is no image on lcd display … How can I get back to old configs ?

    • Robert

      try this code 1673492850*# or maybe 3491672850*#

  • Hi! I was surfing and found your blog post… nice! I love your blog. 🙂 Cheers! Sandra. R.

    • sklim1

      man, this phone is an absolute pain. My 7961's LCD is now blank but it does reboot itself every so often. I've tried doing the reset using 3491672850*# but doesn't seem to help with the LCD display issue.

      Anyway to bring this back to life?

      Using wireshark, I see attempts for arp and stuff but doesn't seem to connect to my tftp32 dhcp/tftp server.

      This is insane!

      • Sorry, I haven't touched this stuff in a while. I wish I could help. The
        first thing I would try is to set up the DHCP server to listen for the
        specific MAC address of the phone and assign things from there.

        • troy_11

          hi there
          we here are having the same problem and can get no answers as to why. it is doinh our heads in and would love it if anyone could help out and give us some sort of answer, we have this problem with 5 of these VOIP phones now

  • troy_11

    hi there
    we here are having the same problem and can get no answers as to why. it is doinh our heads in and would love it if anyone could help out and give us some sort of answer, we have this problem with 5 of these VOIP phones now

  • troy_11

    Hi all
    i am having serious problems with my VOIP 7961G-GE phone they are now just rebooting over and over again. i have tried the factory reset code and now have no LCD screen. i have 5 phones like this is there anyone that has an answer to help fix this problem.

    • Horst

      Hello. I tried to configure a 7961 to run with SIP. Now i habe the same problem. There is not output on the LCD an the phone is rebootin gover and over. Did you solve your problem? If yes i would be thankful for the solution.

      • Kristof

        I had one 7961 like that, no display, rebooting. It happend after unsuccessfull firmware upgrade and a code 3491672850*# execution. Managed to fix this by pluging in an external power supply, changing DHCP server additional option (in tftpd32) from 150 to 66. Strangely, it sucked the firmware still being blank, then rebooted to the normal state.

        • douwe bergwerf

          I have experienced the same problems with the 7961 many times.
          When I run into trouble with this phone I connect it to a windows machine with tftp32 on a standalone network.
          This software makes it easy to debug trouble.
          Most of the time the problem is caused by the network speed settings.
          You must set it to 100 MB Full for the switch and the PC from within the phone menu.
          If you cannot enter the menu because of no display, try to connect it to a switch or hub where you can control the speed, or use your windows machine and a cross cable to set the speed by hardware.
          These steps have always fixed my problems with 7961 and 7941 phones.

  • I have recently put together a thorough guide on connecting various different models of Cisco IP Phones to an Asterisk PBX with SIP firmware. A few of the newer color screen models are included in this guide. I've also included examples of all the necessary config files for the configurations. A PDF version of the guide is also available. All info is confirmed and tested to be accurate. I've added as much troubleshooting tips and tricks as possible wherever possible as well. Hope it helps out some at the very least.

  • Thomas Simon012

    I have found a new software invention for Asterisk. You may be interested. You can check the solution
    Share your opinion!

  • OneRepairForce

    This is information is out dated but I have found information that can save you lots of time and make this phone work behind nat or not. Below is information that you need to understand.

    First of all Cisco is very bad at documenting the template functions for this sip protocal because they want you to pay for call manager and licenses that cost a lot of money.

    To start out with upgrade to the latest firmware that will be 9-3-1SR2-1S, this is available on cisco website for free just register for free account and download. I can not provide this and if you search the internet you will find places to download it. Once you have it use tftp server to get it on the phone, you can set the tftp manually by unlocking the settings **# will unlock them and you can enter it in once flashed proceed to the template.

    One thing to understand NAT sounds complicated but really it is not, most home and small business routers address do not modify packets for forwarded ports so you can be behind double or trip NAT it doesnt matter as long as you have your ports forwarded correctly. The template below allows you to specify what port the phone will listen on this can be the default 5060 or anything you want. This is called the signalling port if you have multiple phones you can set it to be different for each phone because you will need to forward this individual port to the phone from the router. The protocal used will be UDP, TCP can be used but not all versions of asterisk support it. Setup your port forward and select your port. Second set of ports that need to be forwared are you media ports these are the ports audi is actually sent on, if you dont forward these you will hear one way audio below in the template i choose them to be 16384 – 16394 you dont need a lot of ports and i change this from the default 16384 to 32325 because i dont want to forward 16,000 ports to one device. I set it to only forward 10 ports this way if you have multiple phones you can easliy use the other ports. Most basic routers that are not SIP aware wont forward these automatically so you have to define it manually.

    Asterisk setup, I am using version 1.8 I will provide the configuration for the extension as well as this is a two part process part 1 is setting up the phone part 2 asterisk and of coarse the small part to forward the port on the router. Below you will see the sample extension config, you only need to worry about the listed items other items can be set up to your choosing.

    dtmfmode: Inband
    canreinvite: No
    host: Dynamic
    type: Friend
    nat: No (RFC3581)
    port: (This is your Signalling port Same port you forwarded in router and set in your template)
    qualify: NO (Cisco doesnt like to qualify over NAT not sure why)
    transport: All UDP – Primary (Depending on Asterisk Version you man you many not have this option, don’t worry its UDP by default)
    disallow: All
    allow: Ulaw (This is your codec of choice can be whatever you want)

    To review a couple of items your setting host as dynamic so the phone hs to register, nat is set to no which automatically defaults to RFC3581 which will allow asterisk to respond back on the signalling port instead of symetic nat port. What this means is these cisco phones send their traffic from a very high port like 49,915 with nat set to any other option even setting it to never will make asterisk behave in symetic mode which will have it send replys back on the original port it received traffic from. This would be port 49,915 unfortunatley our friends at cisco made it that this phone can only receivce signalling traffic on the signalling port and no other. So in any other mode besides NO (RFC3581) the packets go to the phone and are dropped. Setting this to NO (RFC3581) forces asterisk to reply back only to the signalling port which in this example is 5060.

    Phone Template,


    Central Standard/Daylight Time

    (NTP Server IP)

    (Asterisk IP)

    (Signalling Port Usually 5060)

    (Outside external IP or dns name)


    (Phone Lable)
    (Media Port Start Usually 16384)
    (Media Port End 16394)

    (Signal Port)
    (Auth Name)

    (Signalling Port)


    Lets review the template there is only a couple of key factors signalling port this is usually 5060 but can be whatever you want as long as your router and asterisk config match. Keep it uniform and you will not have any problems. Nat enabled true, this tells the phone to send the external ip in all outgoing communication instead of its private IP this is very important if not set to true phone will send its private ip and asterisk will try to reply back to private ip with no luck. Nat address this can be your external ip or dns. If you set this to your external ip, if that changes you will need to update and reload the template. Because most people have a dynamic external ip a service like dyn dns or similar will allow you to have your exteranl ip updated automatically and set the dns name into the template. Next thing to mentcion is under line proxy we set USECALLMANAGER and transportLayerProtocol is set to 2 this is cisco secret way to tell the phone to communicate over UDP protocal. If you dont set this excatly like that the phone will try to use TCP first and on some asterisk versions that can not receive the signalling information on TCP this will mean the phone wont work. There are more configs you can put into the tempalte but this is the minimum to make it work with SIP you can research those on your own.

    I hope this has helped someone use these old phones again, even though they have been out for quite some time they are still good work horses. Shame on Cisco for making it so complicated and not publishing tempalte definitions and config information.

  • Pieter van Veen

    Eric: thank you (and commenters below) very much for sharing this info. Most useful. Would you perhaps also have a config example how to setup a 7961 for TLS & SRTP with self-signed certificates?

Follow My Travels

Buy My Book


  • 2017
  • 2014
  • 2013
  • 2012
  • 2011
  • 2010
  • 2009
  • 2008
  • 2007
  • 2006