May 2, 2012

Cisco IP Phone 7940G の SIP ファーム 化について

地味に面倒だったのでメモ。 

まず、dhcp,tftp環境を整える。
SELinuxは、あらかじめ例のあの方にごめんなさいをしてから、切っておく。
Firewallはudpの67,69が開いてれば大丈夫。
# yum install tftp-server
# yum install dhcp
# chkconfig xinetd on
# chkconfig dhcpd on

デフォルトではtftpは/etc/xinetd.d/tftp内の記述で殺されているので、
service tftp
{
 socket_type  = dgram
 protocol  = udp
 wait   = yes
 user   = root
 server   = /usr/sbin/in.tftpd
 server_args  = -s -v /var/lib/tftpboot
 disable   = no
 per_source  = 11
 cps   = 100 2
 flags   = IPv4
}
とでもして起動するようにしておく。
また-vオプションによって/var/log/messagesに詳細なログがはかれるようにしておく。

 dhcpは、/etc/dhcp/dhcpd.confを
ddns-update-style interim;
ignore client-updates;

option voip-tftp-servers code 150 = ip-address;
option voip-tftp-servers 192.168.1.1;

subnet 192.168.1.0 netmask 255.255.255.0 {

  option routers                  192.168.1.1;
  option subnet-mask              255.255.255.0;
  option nis-domain               "";
  option domain-name              "";
  option tftp-server-name         "192.168.1.1";


  range dynamic-bootp 192.168.1.200 192.168.1.250;
  default-lease-time 3600;
  max-lease-time 7200;
}
とでもしておけばよい。

/var/lib/tftpbootには、

Ciscoの提供するSIPファームのzipファイルに由来する

OS79XX.TXT
P003-8-12-00.sbn
P0S3-8-12-00.sb2
P003-8-12-00.bin
P0S3-8-12-00.loads

と、別途用意する

XMLDefault.cnf.xml
SIPDefault.cnf
SIPXXXXXXXXXXXX.cnf
XMLDefault.cnf.xml
dialplan.xml

を入れておけばよい。

後者の内容に関しては
http://www.junic.net/archives/325
を参照。
各項目の説明は
http://www.cisco.com/cisco/web/support/JP/docs/VAUC/IPTelep/SIPIPPhoneSW/AG/001/03_sipmn44.html?bid=0900e4b18252979a
http://www.cisco.com/cisco/web/support/JP/docs/VAUC/IPTelep/SIPIPPhoneSW/AG/001/02_sipins44.html?bid=0900e4b18252979a
を参照。

あとは、7940Gに電源とLANをつないで起動させれば、
勝手にファームを読みにきて、
勝手にファームを書き換えて、
起動してくれる。

Asteriskの設定で気をつけるべきはsip.confの[general]内で"nat = no"を宣言しておくこと。
これは、上記の7940Gに食わせた設定との整合のため。

7940Gの電源が地味に面倒である。
というのもIEEE 802.3af制定前のCiscoの独自規格のPoEを採用しているためである。
今回私はHPのProCurve 2600-PWRをつかった。
何の設定もなしに、一発給電!大変よい買い物であった。

No comments:

Post a Comment