利用者:MR G
オッス!おらMR G
注目しているURL
Standalone Cisco 7941/7961 without a local PBX
79XX系電話機とAsterisk
ファームウェア
http://www.xs4all.nl/~graver1/cisco/7905/ 7905のファームウェア
ftp://ftp.cisco.com/pub/voice/ip-phone/sip-7960/ 7961のSIPファームウェア
Cisco 7905/7912
chan sccp
Cisco 79XX カスタマイズ
いぢくり中
Cisco IP Phone
79XX
マルチライン動かないぞガッデム
SIPファームウェア入れたら、壁紙サイズとか日本語表示用ファイルが変わってた。
とか散々な目に遭ってしまった。
Cisco 7961G(SIPファームウェア)
ぶち込みかた
- 7960/7940のファームウェア(SIP用)を解凍し、TFTPサーバーに置いておく。
- (DHCP Optionが指定可能な)DHCPサーバーを立てておく。
- DHCPサーバーの設定で、TFTPサーバーのIPを指定しておく。
- #キーを押しながら電源(PoEならUTPケーブル)を挿す。(着信ランプが点滅するまで#を押し続けること)
- 1着信ランプが点滅しはじめたら、23456789*0#の順に押す。(取り消しは、他のキー二度押し)
- ファームウェアが真っ白になり、電話機再起動
- 電話機再起動後、ファームウェアをTFTPサーバーから引っ張ってくる。
ソフトキー設定
SEP<MAC Address>.cnf.xml中の
<softKeyFile>SK50719900-3bee-4594-bc3f-6400e1a33bf0.xml</softKeyFile>
という箇所が、ソフトキーのテンプレファイル読み込み設定らしい。
<softKeyFile>
こいつで本当に動くんだろうか?
[元ネタ]
AutoAnswer
AutoAnswer機能を利用したスクリプト作成中
プログラム力の無さに絶望した。
AstLinux
Microclient JRにAstLinux入れてみた。
AstLinuxとchan_sccp
AstLinuxには、あらかじめchan_sccpが入っているので、ファイルを追加する必要がない。
Forneus ~ # mount -o rw,remount / Forneus ~ # vi /stat/etc/asterisk/sccp.conf
という具合に/stat/etc/asterisk/以下にsccp.confを新規作成。
sccp.confを作成したら、再起動かけるか、
下記の手順でファイルを読みこむようにする。
Forneus # cp /stat/etc/asterisk/sccp.conf /etc/asterisk/sccp.conf Forneus # asterisk -vvvvvvvvvvvvvvvvvvvvr Forneus*CLI> unload chan_sccp.so Forneus*CLI> load chan_sccp.so
SEP<MACアドレス>.cnf.xmlの編集も忘れてはいけない
設定が正しければ、Cisco電話機がRegistする。
EXTIF
#EXTIF=eth0
/stat/etc/rc.conf内の、EXTIFをコメントアウト解除すると、PBXオンリーモードになり、
HTTPの設定とかTFTPサーバーの設定が効かなくなる。
INTIF
#INTIF=eth0
/stat/etc/rc.conf内の、INTIFをコメントアウト解除すると、ゲートウェイとして使えるモードになるが、
EXTGW="10.0.0.1" DNS="192.168.0.1"
デフォルトゲートウェイやDNSの設定が効かなくなる。(rc.confの設定が無視される)
rc.confの設定を見直すのが正攻法ではあるものの、小細工も結構効いたりする。
DNS
INTIF=eth0を有効にしていると、/etc/resolv.conf
Forneus init.d # cat /etc/resolv.conf search hoge. nameserver 127.0.0.1
という具合に、外部DNSを参照してくれない。
rc.conf内のDNSの項目が無視される。
/etc/init.d/dnsmasqを開くと
if [ "$LOCALDNS" ] then RCONF="/tmp/etc/resolv-up.conf" echo "search $DOMAIN nameserver 127.0.0.1" > /tmp/etc/resolv.conf else RCONF="/tmp/etc/resolv.conf" fi
とあるので、
nameserver 192.168.0.1" > /tmp/etc/resolv.conf
と小細工することで任意のDNSサーバーを参照することが出来る。
デフォルトゲートウェイ
vi /etc/init.d/network
とやると、/stat/etc/rc.conf内のネットワークの挙動が(ちょっと)わかる
デフォルトルートは
route add -net default gw "$EXTGW" dev "$EXTIF"
と設定されているようだ。
余りスペースを活用する
英語版astlinuxが使用する(CFカードの)ディスクスペースは64MB。
1GBのカード使ったとしたら残り900MBは無駄。こいつはMOTTAINAI
TFTPサーバーとして使うため、ディスクスペースを有効活用する事にした。
とりあえずメモ
スライス
fdisk /dev/hda
command action e extended p primary partition(1-4)
と聞かれたのでpを押す。
次に2を押す。パーティション番号らしい
pと押したら、一応スライス区切れた予感がする。
wを押すと、実際に書き込む。
そして再起動だ。
自動でmountさせる
mount /dev/hda2 /mnt
とやると、とりあえず/mntにマウントされた。 が、さすがに毎回手動マウントする訳には行かない。
mount -o rw,remount / vi /etc/rc
と入力し、起動スクリプトを直接編集することにした。
ここで注意すべきは"/etc/fstab"を直接編集しても意味が無いということだ。
自動マウントさせたいなら、"/etc/rc"を直接編集すべしである。
mount -t ほげ
という分を探すと111行目あたりに、それっぽい設定が見つかるので、
mount /stat/dev/hda2 /mnt
という行をテキトーに追加、保存したのち、再起動
これでAstlinuxが使ってない領域を自由に使えるようになった。
Forneus ~ # df -m Filesystem 1M-blocks Used Available Use% Mounted on /dev/hda1 62 51 10 83% / none 0 0 0 0% /dev none 5 0 5 3% /var none 10 0 9 5% /tmp /stat/dev/hda2 176 20 147 12% /mnt/hda2
資源(あいたスペース)の有効活用
標準の保留音では「Asteriskでござる」と言わんばかりであり、ちょっち個性に欠けるので、
/mnt/hda2/に保留音をぶちこむ。みっくみくにしてやんYO!!
Astlinuxで使える保留音のファイルフォーマットはMP3ではなく、ulawファイルなので注意が必要である。
/var/lib/asterisk/moh/default以下には収まりきれないので、下記の方法で解決する
リンク張る
設定要らずで済ますなら、lnコマンドを使う。ファイルが少ないなら問題ないだろう。
Forneus # ln -s /mnt/hda2/MoH/clouds.ulaw /var/lib/asterisk/moh/default/
設定変更
/stat/etc/asterisk/musiconhold.confを直接編集しても良い。
Forneus asterisk # vi /stat/etc/asterisk/musiconhold.conf [default] mode=files ;directory=/var/lib/asterisk/moh/default directory=/mnt/hda2/MoH random=yes ; Play the files in a random order
tftpd
Cisco電話機を動かす前にtftpサーバーを動かす必要がある。
Cisco電話機は、tftpサーバーから設定ファイル、壁紙、着信音などを引っ張ってくるからである。
Forneus # vi /stat/etc/rc.conf (略) ##Configure TFTPD support ##Works the same as FTPD above. TFTPD=inetd ←コメントはずした ##TFTP Server options (flags to pass to TFTP) ##This only works in standalone TFTP server mode #TFTPDOPTIONS="-l -s /tftpboot" TFTPDOPTIONS="-l -s /mnt/tftp" ←付け足しても無視される模様
TFTPD=inetdにすると、TFTPDOPTIONSが無視されてしまうようだ。
TFTPD=tftpdにすると、tftpd自体が動かない模様。
tftpの設定も小細工が可能である。
/vi/etc/init.d/inet if [ "$TFTPD" -a "$TFTPD" = "inetd" ] then if [ -d /mnt/kd/tftpboot ] then ln -s /mnt/kd/tftpboot /tmp/tftpboot else mkdir /tmp/tftpboot fi echo "tftp dgram udp wait root /usr/sbin/tftpd tftpd -s /tmp/tftpboot" >> /tmp/etc/inetd.conf ←ここの行を小細工(Before) fi }
fi echo "tftp dgram udp wait root /usr/sbin/tftpd tftpd -s /mnt/hda2/tftp/" >> /tmp/etc/inetd.conf ←ここの行を小細工(After) fi }
ファイルを変更したら、再起動をかける。
とりあえず動いたらしい
Forneus log # ps |grep tftp 1226 root 272 S tftpd -s /mnt/hda2/tftp/ 1364 root 296 S