地味に面倒だったのでメモ。
まず、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をつかった。
何の設定もなしに、一発給電!大変よい買い物であった。