公司让我从淘宝上买了4部二手的 CISCO IP PHONE 7940 电话(每部300元)【店主家的宝贝挺好的,先后买了11部 7940和7960G,这是店家的链接】,用来拨打网络电话。但是到货之后发现这几个家伙还没有解锁而且是SCCP的固件,纠结了一阵子。最终google了些英文网站和咨询了一个网友,然后通过一个朋友在CISCO官网上下载了SIP固件后(这玩意得是cisco的金牌代理的账号才能下载)成功完成SCCP固件到SIP固件的转变。在此记录一下,也供大家学习交流。
首先看下women要做些什么:让电话有自己的IP(DHCP);寻址到资源所在地(SIP固件),将资源更新到自己身上(TFTP)。这就是刷机或者更新固件的工作原理。
先看下我的环境:安装在ubuntu10.04上的asterisk和DHCP服务;架设在windows上的tftpd的tftp服务
是的,我是将DHCP架设在了linux上,将tftp架设在了windows上面(其实我也想将tftp架设在linux上但是时间有点紧,就懒了一下)
所以大家如果也懒得话,可以将DHCP和TFTP都架设在windows上,当然要借助tftpd32这个强悍实用的小东东。tftpd32是集TFTP,SNTP,DHCP,DNS,和Syslog功能于一身的强悍软件,只要简单配置下就可以起作用。(下载地址和使用方法大家可以google下,现在网上有绿色版本可供下载)
Okay,那么我们首先在ubuntu上配置下DHCP服务:
安装:#apt-get install dhcp3-server
配置:#vi /etc/dhcp3/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
option voip-tftp-servers code 150 = ip-address; //可以解决“协议错误”的问题
option voip-tftp-servers 192.168.1.20; //我的TFTPD服务器的地址是 192.168.1.20
subnet 192.168.1.0 netmask 255.255.255.0 { //网段1.0和子网掩码
option routers 192.168.1.1; //路由
option subnet-mask 255.255.255.0; //掩码
option nis-domain "";
option domain-name "";
option domain-name-servers 192.168.1.1;
option ntp-servers 192.168.1.200;
option tftp-server-name "192.168.1.20";
range 192.168.1.50 192.168.1.60; //可获取的IP范围
default-lease-time 3600; //默认地址租期
max-lease-time 7200; //最长地址租期
}
重启dhcp:#/etc/init.d/dhcp3-server restart
TFTPD32 配置:
从上图可知,我们只需将tftp开启,然后指定下SIP固件的位置即可,我的放在F:/cisco/cisco下面。
注意此时要关闭计算机的防火墙。(我排查了很长时间才发现的 = =)
好了,让我们说下怎么配置sip固件吧:
XMLDefault.cnf.xml
2000
2427
2428
P0S3-8-12-00
P0S3-8-12-00
SIP45.8-4-2S
SIP70.8-0-3S
SIPDefault.cnf
# SIP Default Generic Configuration File
image_version: P0S3-8-12-00
proxy1_address: "192.168.1.200"
proxy1_port: 5060
proxy_register: 1
timer_register_expires: 3600
preferred_codec: g711ulaw
tos_media: 5
dtmf_inband: 1
dtmf_outofband: avt
dtmf_db_level: 3
timer_t1: 500
timer_t2: 4000
sip_retx: 10
sip_invite_retx: 6
timer_invite_expires: 180
tftp_cfg_dir: ""
sntp_server: ""
sntp_mode: directedbroadcast
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
time_format_24hr: 1
dnd_control: 0
callerid_blocking: 0
anonymous_call_block: 0
dtmf_avt_payload: 101
sync: 1
proxy_backup: "192.168.1.200"
proxy_backup_port: 5060
proxy_emergency: "192.168.1.200"
proxy_emergency_port: 5060
enable_vad: 0
nat_enable: 0
nat_address: ""
voip_control_port: 5060
start_media_port: 16384
end_media_port: 32766
nat_received_processing: 0
outbound_proxy: "192.168.1.200"
outbound_proxy_port: 5060
cnf_join_enable : 1
semi_attended_transfer: 1
telnet_level: 1
services_url: ""
directory_url: ""
logo_url: ""
http_proxy_addr: ""
http_proxy_port: 80
dyn_dns_addr_1: ""
dyn_dns_addr_2: ""
dyn_tftp_addr: ""
remote_party_id: 0
call_hold_ringback: 0
stutter_msg_waiting: 0
call_stats: 0
OS79XX.TXT
P003-8-12-00
SEPXXXXXXXXXXXX.cnf.xml //XXXXXXXXXXXX代表电话的类似MAC地址的东东,且一个 SEPXXXXXXXXXXXX.cnf.xml对应一个SIPXXXXXXXXXXXX.cnf(有 几个电话,tftp的目录里面就改有几对这样的文件)
2000
2427
2428
P0S3-8-12-00
P0S3-8-12-00
SIP45.8-4-2S
SIP70.8-0-3S
SIPXXXXXXXXXXXX.cnf //asterisk账户注册信息
line1_name: alan
line1_authname: "alan"
line1_password: "6004"
phone_label: ""
line1_displayname: "alan"
phone_prompt: "SIP Phone"
phone_password: "cisco"
user_info: none
旁的sip固件就不用做什么配置了,来上张我的tftp目录里的东东吧
好了,以上做好之后。将cisco电话加电后先按住 “#”键,然后依次按下“123456789*0#”之后提示你是否保存网络配置,yes or no(任意),之后就等着刷机注册吧。 ^_^ 如有问题 欢迎留言@!