After spending many hours trying to solve this issue, I thought I’d post what I’ve learned while trying to get my new Cisco 7941 IP Phone connected from my house to my remote asterisk server. The same steps should work for a Cisco 7961 as well.
First, you’ll need a SMARTnet license that covers the phone. These cost about US $10.00 from CDW. Be prepared to go round and round with CDW support while they attempt to process your request. It took about two weeks once I purchased my contract to the time it was actually activated with Cisco. You need this license in order to legally download the latest SIP firmware from Cisco’s site.
Once you’ve got everything downloaded, you need to extract the following files into the root folder of your tftp server:
apps41.8-5-2TH1-9.sbn
cnu41.8-5-2TH1-9.sbn
cvm41sip.8-5-2TH1-9.sbn
dsp41.8-5-2TH1-9.sbn
jar41sip.8-5-2TH1-9.sbn
SIP41.8-5-2S.loads
term41.default.loads
term61.default.loads
Next, you’ll need to add two new files to your tftp folder:
XMLDefault.cnf.xml
SEP[_MAC-ADDR_].cnf.xml
I’ve included links to my XMLDefault.cnf.xml file that you can use as well as a sample SEP[_MAC-ADDR_].cnf.xml file that you can use. Remember to replace the [_MAC-ADDR_] with the actual MAC address of your phone (in all caps). In the example file, wherever you see words like _USER_ or _PASSWD_, replace those fields with the actual username or password you’re using from your /etc/asterisk/sip.conf file.
Speaking of that sip.conf file, let’s look at the proper way to configure it for one of these phones. The key issue with these phones and asterisk is that they WILL NOT WORK if you have “nat=yes” anywhere in your sip definition for that phone. This is because the Cisco 79×1 phones send their SIP traffic from a very high source port, however they will only accept responses from port 5060 (or whatever you’ve defined in the .cnf.xml file). Asterisk, however, will try to send it’s responses back on the source port that traffic arrived on if “nat=yes” is set. Instead, be sure to use “nat=no”. Here’s an example from my server:
[_USER_]
type=friend
secret=_PASSWD_
username=_USER_
context=phones
nat=no
canreinvite=no
host=dynamic
callerid="Warren Selby" <_EXT_>
mailbox=_MBOX_
Once you’ve got all the files loaded and ready to go, you need to reconfigure the TFTP server setting on your phone itself. Boot the phone and press your Settings button (the one with the checkmark on it). Go to Network Configuration, and then go to IPv4 Configuration. Scroll down until you find the option “Alternate TFTP” and set this to “Yes” (if your settings are locked, press **# and wait a few seconds to unlock them). Once you’ve changed this to yes, change your TFTP Server 1 setting to the IP address of your TFTP server. Once you’ve validated your settings, click Save, and then exit back to the main Settings menu. You can then reboot your phone by pressing **#** quickly from the settings menu and waiting.
As the phone reboots, you should hold down the # key until the line buttons flash. Once they begin to flash, press 1,2,3,4,5,6,7,8,9,*,0,#, which should make your phone reboot again and check for firmware updates. Allow this process to run on it’s own for about 10-15 minutes. Once it’s successfully been reflashed to the latest SIP firmware, it should attempt to automatically download the SEP[_MAC-ADDR_].cnf.xml file you configured earlier. If everything’s been setup correctly, your phone should register with your server and you’ll be good to go!
Let me know if you have any questions or run into any other issues, leave a comment and I’ll help where I can!
15 Responses to “Setup Cisco 7941 or 7961 with Asterisk”
Trackbacks/Pingbacks
- Cisco IP Phones 79XX with Asterisk | Reza Samimi's Web Page - [...] Setup Cisco 7941 or 7961 with Asterisk [...]




I’ve got two articles you may be interested in:
http://www.dave.vc/wordpress/?p=14
http://www.dave.vc/wordpress/?p=38
–Dave
Can you post a snip of your sip.conf? You seem to be using IP addresses, is your domain= and realm= commented out?
I’m using the following for my sip.conf entry for my Cisco 7941:
[*****]
type=friend
secret=***********
username=*****
context=phones
nat=no
canreinvite=no
host=dynamic
callerid=”Warren Selby” <7300>
mailbox=7300
setvar=callid=7133437300
I don’t have any domain= or realm= in my sip.conf file at all. I have a “fromdomain=” in the entry for my sip provider, but that’s it, and is unrelated to the Cisco 7941.
As a complete novice I’m having a problem converting a 7961 to SIP. Followed all the instuctions given above but find nothing in the Log TFTP Server (Solar Winds).
Can you help? have set “yes” for “Alternate TFTP” and checked that the “TFTP 1″ is set to the “TFTP Sever address”. The SolarWinds TFTP settings are as default.
Help would be much appreciated.
Have you made sure that the Windows Firewall on the TFTP server is accepting TFTP connections, or turned off altogether? TFTP connections are on UDP port 69.
You are a life saver, tried other tutorials but yours was the only one that said something about pressing # at startup, THANKS A MILLION!!!
Thanks very much for your very informative web site. Your pages helped me overcome a lot of painful issues getting 7961′s and ’41′s working with Asterisk. However, I am still having one problem – when I try to put multiple line presences on these phones (using separate registrations for each line, of course) it works great except when /receiving/ calls on the second – nth line, the incoming calls all go to the first line on the phone (button 1). Any idea what I might be missing? I’m thinking there is /something/ missing and that this should work. I am using SIP version 8.5(2)S.
Turns out the problem was in the line – I had left the default content in there (“_USER_”) but when I changed it to be the extension number for that line, all the multiple lines started working correctly.
Thanks for supporting us.
i want to put logo on 7941 but i am not finding the same.
Kindly suggest.
Nice Piece. Was wondering can you tell me how to connect to the telephone directory (address book) of my sip box? Thanks
Can i use the same configuration for cisco 7911 , if not can guide me or you can give me a link. . ??
Thanks in advance
Hi,
I tried your config with a Cisco 7942, but without success. The display says it’s registering, but Asterisk never receives a packet.
*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status
1002 (Unspecified) D 0 Unmonitored
1001/1001 192.168.1.100 D 5060 Unmonitored
…
4 sip peers [Monitored: 1 online, 0 offline Unmonitored: 2 online, 1 offline]
The 1002 is my 7942 and the 1001 is my working 7960.
The (ssh) error log on the phone says:
822: NOT 05:12:57.580879 JVM: SIPCC-SIP_REG_STATE: 1/51, sip_reg_sm_process_event: SIP_REG_STATE_IDLE <- E_SIP_REG_TMR_EXPIRE
823: ERR 05:12:57.581558 JVM: ccsip_register_send_msg: Error: cc_cfg_table is null.
824: NOT 05:12:57.582216 JVM: SIPCC-UI_API: 1/0, ui_set_sip_registration_state: 0
Do you have any idea?
If you enable sip debug for that peer on asterisk, do you see any of the packets coming in at all?
if we use the phone outside the network which case nat should be yes in your sip
how can we make 7961 talk with your asterisk server
We have CISCO IP phone 7941 for using VOIP from SIP provider, IINET is providing to us, it is New SIP phone, I configured code in Xml file(SEP001B2AC76B9A.cnf.xml) & keep on TFTP Server but I saw on TFTP Server phone got config from TFTP, but phone saying error “unprovisioned”
I think my config is correct, but please anyone help me
Kindly Help me
Vikrant