Cisco 7940/7960 SIP with BroadVoice

Using BroadVoice SIP Services with a Cisco 7940/7960 Phone

I have spent far too much time trying to figure out the myriad configuration settings required by both BroadVoice and Cisco to forget them now. Therefore, I’ve determined to document my findings and share them with the rest of the SIP world.


Goal
Use a Cisco 7960 phone (7940 should work fine also), running SIP software, with BroadVoice SIP service. That’s it, nothing more, nothing less…

Requirements
Here is the list of hardware and software used in this configuration. Works for me, your mileage may vary.
  • Cisco 7940/7960 phone
o Running Cisco SIP release P0S3-08-8-00
o You can obtain a Cisco service contract to obtain the SIP firmware/binaries for about $8 from any Cisco reseller
o There are many documents on the net regarding upgrading the firmware of the 7940/7960 phone, find one and do it
  • BroadVoice contract
o The Bring Your Own Device (BYOD) is a great plan for starting $6/month. If it works for you, they don’t charge for an uplift to their WorldPlan - $20/month
  • TFTP Server
o You’ll need a TFTP server to host the Cisco configuration and binary files
o The TFTP server does not need to be running once the phone has loaded the configs unless you want to change ring tones
o If your OS preference is Windows, check out the Solar Winds free TFTP server
o For example, I run my local TFTP server on my laptop – boot the phone and I’m good until I lose power in the house

Procedure
1. Set up your TFTP server on your local network
2. Obtain the Cisco SIP firmware.
3. Install the Cisco SIP firmware in the TFTP boot directory
4. “Locate” the ringtones you’d like and place them in the TFTP boot directory
5. The configuration files used for my setup and documented below; you should be able to copy the text, create the exact filename in the TFTP boot directory and paste the contents into the files.
6. Update the RINGLIST.DAT to reflect the ringer list on your own TFTP server.
7. Update the SIP<your MAC Address>.cnf
1. line1_password - to your BroadVoice account password
2. line1_authname - to your BroadVoice phone number
3. line1_name - to your BroadVoice phone number
4. line1_contact - to your BroadVoice phone number
5. line1_displayname - (optional) to your name
6. nat_address - you must place your router’s external IP address in this location. If you use DDNS, you can use whatever your resolvable name would be instead of the hardcoded IP
8. Update the SIPDefault.cnf
1. outbound_proxy - Change this to your “closest” BroadVoice service location. Click here for assistance.
9. Reset the phone and try calling your mom just to say hello…

Misc Notes
  • To perform a soft reset of the Cisco 7940/7960 phone; hold the *, 6 and <Settings> key at the same time
  • To help debug SIP connections:
o Telnet to the Cisco 7940/7960 phone (You can find the IP address by looking at the network settings on the phone)
o Login using the password you set in the SIPDefault.cnf file - cisco
+ To watch the sip messages, type: debug sip-messages+ To turn off, type: tty mon 0o To see errors in the *.cfg file, type: show status
Note: You will see the following messages and can ignore them…
W351 unprovisioned proxy_emergency
W350 unprovisioned proxy_backup


TFTPBOOT directory file list
-rwxr-xr-x 1 JBATES2 Domain Users 16080 Mar 26 16:50 CTU24raw.raw
-rw-r--r-- 1 JBATES2 Domain Users 15 Sep 12 2007 OS79XX.TXT
-rw-r--r-- 1 JBATES2 Domain Users 130548 Sep 12 2007 P003-08-8-00.bin
-rw-r--r-- 1 JBATES2 Domain Users 130952 Sep 12 2007 P003-08-8-00.sbn
-rw-r--r-- 1 JBATES2 Domain Users 459 Sep 12 2007 P0S3-08-8-00.loads
-rw-r--r-- 1 JBATES2 Domain Users 755912 Sep 12 2007 P0S3-08-8-00.sb2
-rwxr-xr-x 1 JBATES2 Domain Users 230 Apr 7 09:08 RINGLIST.DAT
-rw-r--r-- 1 JBATES2 Domain Users 67 Apr 3 12:09 SEP003094C3350C.cnf.xml
-rwxr-xr-x 1 JBATES2 Domain Users 1413 Apr 3 17:10 SIP003094C3350C.cnf
-rwxr-xr-x 1 JBATES2 Domain Users 2217 Apr 3 17:11 SIPDefault.cnf
-rwxr-xr-x 1 JBATES2 Domain Users 641 Apr 7 09:09 XMLDefault.cnf.xml
-rw-r--r-- 1 JBATES2 Domain Users 353 Apr 3 17:13 dialplan.xml
-rwxr-xr-x 1 JBATES2 Domain Users 9570 Mar 26 16:50 merlin2.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9604 Mar 26 16:50 merlin3.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9553 Mar 26 16:50 merlin4.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9627 Mar 26 16:50 merlin5.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9604 Mar 26 16:50 merlin6.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9605 Mar 26 16:50 merlin7.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 16080 Mar 26 16:50 ringer1.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 8160 Mar 26 16:50 ringer2.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 8160 Mar 26 16:50 ringer3.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 16040 Mar 26 16:50 ringer4.pcm

OS79XX.TXT
P003-08-8-00

RINGLIST.DAT
CTU24 CTU24raw.raw
Merlin_2 merlin2.pcm
Merlin_3 merlin3.pcm
Merlin_4 merlin4.pcm
Merlin_5 merlin5.pcm
Merlin_6 merlin6.pcm
Merlin_7 merlin7.pcm
Ringer_1 ringer1.pcm
Ringer_2 ringer2.pcm
Ringer_3 ringer3.pcm
Ringer_4 ringer4.pcm

SEP003094C3350C.cnf.xml
<device>
<loadInformation>P0S3-08-8-00</loadInformation>
</device>


SIP003094C3350C.cnf
phone_label : "Jim Bates"
;
Authname
Name used by phone for auth if registration challenges
line1_authname : "8045551212"
line2_authname : ""
line3_authname : ""
line4_authname : ""
line5_authname : ""
line6_authname : ""
;
Contact
The URL that appears in the SIP contact field
line1_contact : "8045551212"
line2_contact : ""
line3_contact : ""
line4_contact : ""
line5_contact : ""
line6_contact : ""
;
Displayname
Caller ID as it appears to remote users
line1_displayname : "Jim Bates"
line2_displayname : ""
line3_displayname : ""
line4_displayname : ""
line5_displayname : ""
line6_displayname : ""
;
Name
Name used for registering with SIP server
line1_name : "8045551212"
line2_name : ""
line3_name : ""
line4_name : ""
line5_name : ""
line6_name : ""
;
Password
Password used by phone for auth if registration challenges – Put BroadVoice Password here
line1_password : "XXXXXXXXXX"
line2_password : ""
line3_password : ""
line4_password : ""
line5_password : ""
line6_password : ""
;
Shortname
Used on the phone LCD display next to the line button
line1_shortname : ""
line2_shortname : ""
line3_shortname : ""
line4_shortname : ""
line5_shortname : ""
line6_shortname : ""
;
speed_label2 : ""
speed_line2 : ""
speed_label3 : ""
speed_line3 : ""
speed_label4 : ""
speed_line4 : ""
speed_label5 : ""
speed_line5 : ""
speed_label6 : ""
speed_line6 : ""
; Enable NAT – Put YOUR External (Outside of your firewall) Address in the nat_address field
nat_enable: 1
nat_address: 111.222.111.222
; Enable Message Waiting Indicator (MWI)
messages_uri: "*86"

SIPDefault.cnf
image_version : "P0S3-08-8-00"
network_media_type : Auto
network_port2_type : Hub/Switch
dscpForAudio : 184
tftp_cfg_dir : "./"
phone_password : "cisco"
phone_prompt : ">>"
language : english
sntp_mode : DirectedBroadcast
sntp_server : 0.north-america.pool.ntp.org
time_zone : EST
dst_offset : 1
dst_start_month : Mar
dst_start_day : 2
dst_start_day_of_week : Sun
dst_start_week_of_month : 1
dst_start_time : 02
dst_stop_month : Nov
dst_stop_day : 1
dst_stop_day_of_week : Sun
dst_stop_week_of_month : 1
dst_stop_time : 2
dst_auto_adjust : 1
time_format_24hr : 1
date_format : M/D/Y
nat_enable : 0
nat_address : UNPROVISIONED
voip_control_port : 5060
start_media_port : 16384
end_media_port : 32766
sync : "1"
xml_card_dir : ""
xml_card_file : "CARD.XML"
telnet_level : 2
services_url : ""
directory_url : ""
logo_url : ""
http_proxy_addr : UNPROVISIONED
http_proxy_port : 80
garp_enable : 0
enable_vad : 0
dial_template : "dialplan"
callerid_blocking : 0
anonymous_call_block : 0
autocomplete : 1
messages_uri : "*89"
dnd_control : 0
preferred_codec : g711ulaw
dtmf_outofband : avt
dtmf_avt_payload : 101
dtmf_db_level : 4
dtmf_inband : 0
proxy1_address : "sip.broadvoice.com"
proxy2_address : ""
proxy3_address : ""
proxy4_address : ""
proxy5_address : ""
proxy6_address : ""
proxy1_port : 5060
proxy2_port : 5060
proxy3_port : 5060
proxy4_port : 5060
proxy5_port : 5060
proxy6_port : 5060
sip_retx : 10
sip_invite_retx : 6
timer_t1 : 500
timer_t2 : 4000
timer_invite_expires : 180
timer_register_expires : 3600
proxy_register : 1
proxy_backup : ""
proxy_emergency : ""
proxy_backup_port : 5060
proxy_emergency_port : 5060
outbound_proxy : "proxy.dca.broadvoice.com"
outbound_proxy_port : 5060
nat_received_processing : 1
mwi_status : 0
call_waiting : 1
user_info : ""
cnf_join_enable : 1
remote_party_id : 1
semi_attended_transfer : 0
transfer_onhook_enabled : 0
call_hold_ringback : 0
stutter_msg_waiting : 0
cfwd_url : ""
call_stats : 0
auto_answer : 0
local_cfwd_enable : 1
timer_register_delta : 5
sip_max_forwards : 70
rfc_2543_hold : 0
version_stamp : ""
timer_keepalive_expires : 120
connection_monitor_duration : 120

XMLDefault.cnf.xml
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<mgcpPorts>
<listen>2427</listen>
<keepAlive>2428</keepAlive>
</mgcpPorts>
</ports>
<processNodeName></processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation8 model="IP Phone 7940">P0S3-08-8-00</loadInformation8>
<loadInformation7 model="IP Phone 7960">P0S3-08-8-00</loadInformation7>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<servicesURL></servicesURL>
</Default>

dialplan.xml
<DIALTEMPLATE>
<TEMPLATE MATCH="0" Timeout="1" User="Phone"/>
<TEMPLATE MATCH="10.............." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="1.........." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="......." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="*.." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="*" Timeout="15" User="Phone"/>
</DIALTEMPLATE>

Using BroadVoice SIP Services with a Cisco 7940/7960 Phone

I have spent far too much time trying to figure out the myriad configuration settings required by both BroadVoice and Cisco to forget them now. Therefore, I’ve determined to document my findings and share them with the rest of the SIP world.


Goal
Use a Cisco 7960 phone (7940 should work fine also), running SIP software, with BroadVoice SIP service. That’s it, nothing more, nothing less…

Requirements
Here is the list of hardware and software used in this configuration. Works for me, your mileage may vary.
  • Cisco 7940/7960 phone
o Running Cisco SIP release P0S3-08-8-00
o You can obtain a Cisco service contract to obtain the SIP firmware/binaries for about $8 from any Cisco reseller
o There are many documents on the net regarding upgrading the firmware of the 7940/7960 phone, find one and do it
  • BroadVoice contract
o The Bring Your Own Device (BYOD) is a great plan for starting $6/month. If it works for you, they don’t charge for an uplift to their WorldPlan - $20/month
  • TFTP Server
o You’ll need a TFTP server to host the Cisco configuration and binary files
o The TFTP server does not need to be running once the phone has loaded the configs unless you want to change ring tones
o If your OS preference is Windows, check out the Solar Winds free TFTP server
o For example, I run my local TFTP server on my laptop – boot the phone and I’m good until I lose power in the house

Procedure
1. Set up your TFTP server on your local network
2. Obtain the Cisco SIP firmware.
3. Install the Cisco SIP firmware in the TFTP boot directory
4. “Locate” the ringtones you’d like and place them in the TFTP boot directory
5. The configuration files used for my setup and documented below; you should be able to copy the text, create the exact filename in the TFTP boot directory and paste the contents into the files.
6. Update the RINGLIST.DAT to reflect the ringer list on your own TFTP server.
7. Update the SIP<your MAC Address>.cnf
1. line1_password - to your BroadVoice account password
2. line1_authname - to your BroadVoice phone number
3. line1_name - to your BroadVoice phone number
4. line1_contact - to your BroadVoice phone number
5. line1_displayname - (optional) to your name
6. nat_address - you must place your router’s external IP address in this location. If you use DDNS, you can use whatever your resolvable name would be instead of the hardcoded IP
8. Update the SIPDefault.cnf
1. outbound_proxy - Change this to your “closest” BroadVoice service location. Click here for assistance.
9. Reset the phone and try calling your mom just to say hello…

Misc Notes
  • To perform a soft reset of the Cisco 7940/7960 phone; hold the *, 6 and <Settings> key at the same time
  • To help debug SIP connections:
o Telnet to the Cisco 7940/7960 phone (You can find the IP address by looking at the network settings on the phone)
o Login using the password you set in the SIPDefault.cnf file - cisco
+ To watch the sip messages, type: debug sip-messages+ To turn off, type: tty mon 0o To see errors in the *.cfg file, type: show status
Note: You will see the following messages and can ignore them…
W351 unprovisioned proxy_emergency
W350 unprovisioned proxy_backup


TFTPBOOT directory file list
-rwxr-xr-x 1 JBATES2 Domain Users 16080 Mar 26 16:50 CTU24raw.raw
-rw-r--r-- 1 JBATES2 Domain Users 15 Sep 12 2007 OS79XX.TXT
-rw-r--r-- 1 JBATES2 Domain Users 130548 Sep 12 2007 P003-08-8-00.bin
-rw-r--r-- 1 JBATES2 Domain Users 130952 Sep 12 2007 P003-08-8-00.sbn
-rw-r--r-- 1 JBATES2 Domain Users 459 Sep 12 2007 P0S3-08-8-00.loads
-rw-r--r-- 1 JBATES2 Domain Users 755912 Sep 12 2007 P0S3-08-8-00.sb2
-rwxr-xr-x 1 JBATES2 Domain Users 230 Apr 7 09:08 RINGLIST.DAT
-rw-r--r-- 1 JBATES2 Domain Users 67 Apr 3 12:09 SEP003094C3350C.cnf.xml
-rwxr-xr-x 1 JBATES2 Domain Users 1413 Apr 3 17:10 SIP003094C3350C.cnf
-rwxr-xr-x 1 JBATES2 Domain Users 2217 Apr 3 17:11 SIPDefault.cnf
-rwxr-xr-x 1 JBATES2 Domain Users 641 Apr 7 09:09 XMLDefault.cnf.xml
-rw-r--r-- 1 JBATES2 Domain Users 353 Apr 3 17:13 dialplan.xml
-rwxr-xr-x 1 JBATES2 Domain Users 9570 Mar 26 16:50 merlin2.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9604 Mar 26 16:50 merlin3.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9553 Mar 26 16:50 merlin4.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9627 Mar 26 16:50 merlin5.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9604 Mar 26 16:50 merlin6.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 9605 Mar 26 16:50 merlin7.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 16080 Mar 26 16:50 ringer1.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 8160 Mar 26 16:50 ringer2.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 8160 Mar 26 16:50 ringer3.pcm
-rwxr-xr-x 1 JBATES2 Domain Users 16040 Mar 26 16:50 ringer4.pcm

OS79XX.TXT
P003-08-8-00

RINGLIST.DAT
CTU24 CTU24raw.raw
Merlin_2 merlin2.pcm
Merlin_3 merlin3.pcm
Merlin_4 merlin4.pcm
Merlin_5 merlin5.pcm
Merlin_6 merlin6.pcm
Merlin_7 merlin7.pcm
Ringer_1 ringer1.pcm
Ringer_2 ringer2.pcm
Ringer_3 ringer3.pcm
Ringer_4 ringer4.pcm

SEP003094C3350C.cnf.xml
<device>
<loadInformation>P0S3-08-8-00</loadInformation>
</device>


SIP003094C3350C.cnf
phone_label : "Jim Bates"
;
Authname
Name used by phone for auth if registration challenges
line1_authname : "8045551212"
line2_authname : ""
line3_authname : ""
line4_authname : ""
line5_authname : ""
line6_authname : ""
;
Contact
The URL that appears in the SIP contact field
line1_contact : "8045551212"
line2_contact : ""
line3_contact : ""
line4_contact : ""
line5_contact : ""
line6_contact : ""
;
Displayname
Caller ID as it appears to remote users
line1_displayname : "Jim Bates"
line2_displayname : ""
line3_displayname : ""
line4_displayname : ""
line5_displayname : ""
line6_displayname : ""
;
Name
Name used for registering with SIP server
line1_name : "8045551212"
line2_name : ""
line3_name : ""
line4_name : ""
line5_name : ""
line6_name : ""
;
Password
Password used by phone for auth if registration challenges – Put BroadVoice Password here
line1_password : "XXXXXXXXXX"
line2_password : ""
line3_password : ""
line4_password : ""
line5_password : ""
line6_password : ""
;
Shortname
Used on the phone LCD display next to the line button
line1_shortname : ""
line2_shortname : ""
line3_shortname : ""
line4_shortname : ""
line5_shortname : ""
line6_shortname : ""
;
speed_label2 : ""
speed_line2 : ""
speed_label3 : ""
speed_line3 : ""
speed_label4 : ""
speed_line4 : ""
speed_label5 : ""
speed_line5 : ""
speed_label6 : ""
speed_line6 : ""
; Enable NAT – Put YOUR External (Outside of your firewall) Address in the nat_address field
nat_enable: 1
nat_address: 111.222.111.222
; Enable Message Waiting Indicator (MWI)
messages_uri: "*86"

SIPDefault.cnf
image_version : "P0S3-08-8-00"
network_media_type : Auto
network_port2_type : Hub/Switch
dscpForAudio : 184
tftp_cfg_dir : "./"
phone_password : "cisco"
phone_prompt : ">>"
language : english
sntp_mode : DirectedBroadcast
sntp_server : 0.north-america.pool.ntp.org
time_zone : EST
dst_offset : 1
dst_start_month : Mar
dst_start_day : 2
dst_start_day_of_week : Sun
dst_start_week_of_month : 1
dst_start_time : 02
dst_stop_month : Nov
dst_stop_day : 1
dst_stop_day_of_week : Sun
dst_stop_week_of_month : 1
dst_stop_time : 2
dst_auto_adjust : 1
time_format_24hr : 1
date_format : M/D/Y
nat_enable : 0
nat_address : UNPROVISIONED
voip_control_port : 5060
start_media_port : 16384
end_media_port : 32766
sync : "1"
xml_card_dir : ""
xml_card_file : "CARD.XML"
telnet_level : 2
services_url : ""
directory_url : ""
logo_url : ""
http_proxy_addr : UNPROVISIONED
http_proxy_port : 80
garp_enable : 0
enable_vad : 0
dial_template : "dialplan"
callerid_blocking : 0
anonymous_call_block : 0
autocomplete : 1
messages_uri : "*89"
dnd_control : 0
preferred_codec : g711ulaw
dtmf_outofband : avt
dtmf_avt_payload : 101
dtmf_db_level : 4
dtmf_inband : 0
proxy1_address : "sip.broadvoice.com"
proxy2_address : ""
proxy3_address : ""
proxy4_address : ""
proxy5_address : ""
proxy6_address : ""
proxy1_port : 5060
proxy2_port : 5060
proxy3_port : 5060
proxy4_port : 5060
proxy5_port : 5060
proxy6_port : 5060
sip_retx : 10
sip_invite_retx : 6
timer_t1 : 500
timer_t2 : 4000
timer_invite_expires : 180
timer_register_expires : 3600
proxy_register : 1
proxy_backup : ""
proxy_emergency : ""
proxy_backup_port : 5060
proxy_emergency_port : 5060
outbound_proxy : "proxy.dca.broadvoice.com"
outbound_proxy_port : 5060
nat_received_processing : 1
mwi_status : 0
call_waiting : 1
user_info : ""
cnf_join_enable : 1
remote_party_id : 1
semi_attended_transfer : 0
transfer_onhook_enabled : 0
call_hold_ringback : 0
stutter_msg_waiting : 0
cfwd_url : ""
call_stats : 0
auto_answer : 0
local_cfwd_enable : 1
timer_register_delta : 5
sip_max_forwards : 70
rfc_2543_hold : 0
version_stamp : ""
timer_keepalive_expires : 120
connection_monitor_duration : 120

XMLDefault.cnf.xml
<Default>
<callManagerGroup>
<members>
<member priority="0">
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<mgcpPorts>
<listen>2427</listen>
<keepAlive>2428</keepAlive>
</mgcpPorts>
</ports>
<processNodeName></processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
<loadInformation8 model="IP Phone 7940">P0S3-08-8-00</loadInformation8>
<loadInformation7 model="IP Phone 7960">P0S3-08-8-00</loadInformation7>
<authenticationURL></authenticationURL>
<directoryURL></directoryURL>
<idleURL></idleURL>
<informationURL></informationURL>
<messagesURL></messagesURL>
<servicesURL></servicesURL>
</Default>

dialplan.xml
<DIALTEMPLATE>
<TEMPLATE MATCH="0" Timeout="1" User="Phone"/>
<TEMPLATE MATCH="10.............." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="1.........." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="......." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="*.." Timeout="0" User="Phone"/>
<TEMPLATE MATCH="*" Timeout="15" User="Phone"/>
</DIALTEMPLATE>

Created by: jbates, Last modification: Mon 07 of Apr, 2008 (16:24 UTC)
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+