The goal was simple. Get a Cisco phone talking to Google Voice via Sipsorcery.com It can be done, but it's not easy. I would advise the squeamish amongst us to just drop the $70 and get an off-the-shelf SIP phone. For this post, the scope will be getting the phone registered to Sipsorcery.com.
SIPDefault.cnf
Before copying and pasting that, make note of the nat traversal IP. I don't know if it matters, but there is definitely an invalid value in there currently.
Ignore anything about Line 2 and do a search through the files for variables marked with $. Replace with your values.
This should be enough to get your phone talking to SipSorcery.com.
First, acquire the phone. They're about $20 on ebay.
Initially, I tried this with a 7911, but gave up after reading that they are incapable of authenticating with a SIP proxy. My own efforts reflected similar issues.
That said, strap in.
The targeted phone should resemble something like this.
First issue is power. Here, we have options.
1. Already own a Cisco POE switch.
2. Purchase a 48v power compatible supply and plug directly into the phone.
3. Use a power injector to inject 48v POE to multiple devices.
I used the latter, it looks something like this:
For most devices, your power woes end here. However, these old 7940s were built before the 802.3af standard was established. But, we're not cooked. They can still take the POE, we just have to present it to them differently. We'll need a patch cable with the following pinouts:
I'll admit I did not perform my due diligence to find out why this worked, but I can confirm that it worked for me.
At this point, you need to find the SIP firmware for your phone. I can't help you except to advise that you practice your Google-fu. There are enough resources on how to do a factory reset. I won't cover that here.
With the power issues solved, we can move on to the next step, the TFTP server. Unless you need a TFTP server daily, I'd just suggest getting TFTP64.
Modify your DHCP server to point option 150 at your TFTP server's IP, power on your phone and wait.
If everything's configured correctly, we'll see this in the logs. We're worried about 2 files here: SIP0034EBC7634D.cnf and SIPDefault.cnf. Your phone will be looking for SIP<macofthephone>.cnf My working files look like this:
SIP<mac>.cnf
# phone-specific configuration file sampleline1_name : "$authname"line1_authname : "$authname"line1_password : "$authpassword"line1_shortname : "Sipsorcery"line1_displayname : "sipsorcery"proxy1_address: "sipsorcery.com" ; Can be dotted IP or FQDNproxy1_port: 5060line2_name : asteriskline2_shortname : "Asterisk"line2_displayname : "Asterisk"proxy2_address: "192.168.10.7" ; Can be dotted IP or FQDNproxy2_port: 5060
####### New Parameters added in Release 2.0 ######## Phone Label (Text desired to be displayed in upper right corner)phone_label: "VoIP/Sorcery " ; Has no effect on SIP messaging# Line 1 Display Name (Display name to use for SIP messaging)line1_displayname: "Sipsorcery"line2_displayname: "Unused"####### New Parameters added in Release 3.0 ####### Phone Prompt (The prompt that will be displayed on console and telnet)phone_prompt: "SIP_7940: " ; Limited to 15 characters (Default - SIP Phone)# Phone Password (Password to be used for console or telnet login)phone_password: "cisco" ; Limited to 31 characters (Default - cisco)# User classifcation used when Registering [ none(default), phone, ip ]user_info: none
SIPDefault.cnf
# sip default configuration file# Image Version for upgradeimage_version: P0S3-8-12-00;image_version: P0S3-08-6-00 ;;image_version: P0S3-07-5-00 ;# Proxy server address# Proxy Registration (0-disable (default), 1-enable)proxy_register: 1proxy1_address: "sipsorcery.com" ; Can be dotted IP or FQDNproxy2_address: "192.168.10.7" ; Can be dotted IP or FQDN# Phone Registration Expiration [1-3932100 sec] (Default - 3600)timer_register_expires: 600# Codec for media stream (g711ulaw (default), g711alaw, g729a)preferred_codec: g711ulaw# TOS bits in media stream [0-5] (Default - 5) ?changed to dscp# tos_media: 5dscpForAudio: 184# 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# DTMF dB Level Settings (1-6dB down, 2-3db down, 3-nominal (default), 4-3db up, 5-6dB up)dtmf_db_level: 3# SIP Timerstimer_t1: 500 ; Default 500 msectimer_t2: 4000 ; Default 4 secsip_retx: 10 ; Default 10sip_invite_retx: 6 ; Default 6timer_invite_expires: 180 ; Default 180 sec# Dialplan template (.xml format file relative to the TFTP root directory)dial_template: dialplan# TFTP Phone Specific Configuration File Directorytftp_cfg_dir: "" ; Example: ./sip_phone/# Time Server (There are multiple values and configurations refer to Admin Guide for Specifics)# sntp_server: "194.81.227.227" ; SNTP Server IP Address (this is ntp1.ja.net)sntp_server: "17.254.0.49" ; SNTP Server IP Address (this is ntp2.usno.navy.mil)sntp_mode: directedbroadcast ; unicast, multicast, anycast, or directedbroadcast (default)time_zone: EST ; Time Zone Phone is indst_offset: 1 ; Offset from Phone's time when DST is in effectdst_start_month: "March" ; Month in which DST startsdst_start_day: 0 ; Day of month in which DST startsdst_start_day_of_week: "Sun" ; Day of week in which DST startsdst_start_week_of_month: 2 ; Week of month in which DST startsdst_start_time: 02 ; Time of day in which DST startsdst_stop_month: "Nov" ; Month in which DST stopsdst_stop_day: 0 ; Day of month in which DST stopsdst_stop_day_of_week: "Sun" ; Day of week in which DST stopsdst_stop_week_of_month: 1 ; Week of month in which DST stops 8=last week of monthdst_stop_time: 2 ; Time of day in which DST stopsdst_auto_adjust: 1 ; Enable(1-Default)/Disable(0) DST automatic adjustmenttime_format_24hr: 0 ; Enable(1 - 24Hr Default)/Disable(0 - 12Hr)dnd_control: 0 ; Default 0 (Do Not Disturb feature is off)callerid_blocking: 0 ; Default 0 (Disable sending all calls as anonymous)anonymous_call_block: 0 ; Default 0 (Disable blocking of anonymous calls)dtmf_avt_payload: 101 ; Default 101# Sync value of the phone used for remote resetsync: 1 ; Default 1proxy_backup: "" ; Dotted IP of Backup Proxyproxy_backup_port: 5060 ; Backup Proxy port (default is 5060)proxy_emergency: "" ; Dotted IP of Emergency Proxyproxy_emergency_port: 5060 ; Emergency Proxy port (default is 5060)# Configurable VAD optionenable_vad: 0 ; VAD setting 0-disable (Default), 1-enablenat_enable: 1 ; 0-Disabled (default), 1-Enablednat_address: "$my.no-ip.org.address" ; WAN IP address of NAT box (dotted IP or DNS A record only)voip_control_port: 5060 ; UDP port used for SIP messages (default - 5060)start_media_port: 16384 ; Start RTP range for media (default - 16384)end_media_port: 32766 ; End RTP range for media (default - 32766)nat_received_processing: 1 ; 0-Disabled (default), 1-Enabled# outbound_proxy: "206.165.50.116" ; restricted to dotted IP or DNS A record only (this is fwdnat.pulver.com)outbound_proxy_port: 5060 ; default is 5060# Allow for the bridge on a 3way call to join remaining parties upon hangupcnf_join_enable : 1 ; 0-Disabled, 1-Enabled (default)# Allow Transfer to be completed while target phone is still ringingsemi_attended_transfer: 1 ; 0-Disabled, 1-Enabled (default)# Telnet Level (enable or disable the ability to telnet into the phone)telnet_level: 2 ; 0-Disabled (default), 1-Enabled, 2-Privileged# XML URLsservices_url: "http://phone-xml.berbee.com/menu.xml" ; URL for external Phone Services# services_url: "http://www.ip-phone-services.com/bt/" ;bt services# services_url: "http://your.site/services.xml" ; URL for external Phone Services# services_url: "http://193.113.58.136/bt/" ;bt servicesdirectory_url: "http://your.site/directory.xml" ; URL for external Directory locationlogo_url: "http://hostsvg.com/logo.bmp" ; URL for branding logo to be used on phone display# logo_url: "http://kermit/asterisk-tux.bmp"# HTTP Proxy Supporthttp_proxy_addr: "" ; Address of HTTP Proxy serverhttp_proxy_port: 80 ; Port of HTTP Proxy Server (80-default)# Dynamic DNS/TFTP Supportdyn_dns_addr_1: "" ; restricted to dotted IPdyn_dns_addr_2: "" ; restricted to dotted IPdyn_tftp_addr: "" ; restricted to dotted IP# Remote Party IDremote_party_id: 1 ; 0-Disabled (default), 1-Enabled# Call Hold Ringback (0-disabled, 1-enabled, 2-disabled no user control, 3-enabled no user control)call_hold_ringback: 1 ; Default 0 (Disable ringback of held call)
Before copying and pasting that, make note of the nat traversal IP. I don't know if it matters, but there is definitely an invalid value in there currently.
Ignore anything about Line 2 and do a search through the files for variables marked with $. Replace with your values.
This should be enough to get your phone talking to SipSorcery.com.



