利用者:MR G

2008年1月22日 (火) 18:44時点におけるMR G (トーク | 投稿記録)による版

注目しているURL

Standalone Cisco 7941/7961 without a local PBX

CP-7941/7961を単独で動かす法

79XX系電話機とAsterisk

Asterisk phone cisco 79xx

ファームウェア

http://www.xs4all.nl/~graver1/cisco/7905/ 7905のファームウェア
ftp://ftp.cisco.com/pub/voice/ip-phone/sip-7960/ 7961のSIPファームウェア

Cisco 7905/7912

Cisco VoIP_INFO 7905/7912の設定

chan sccp

SCCPドライバの解説
FAQ

Cisco 79XX カスタマイズ

着メロとか壁紙とかのカスタマイズ(日本語)

いぢくり中

Cisco IP Phone

CiscoIP Phone7900シリーズ

マルチライン動かないぞガッデム
SIPファームウェア入れたら、壁紙サイズとか日本語表示用ファイルが変わってた。
とか散々な目に遭ってしまった。

Cisco 7961G(SIPファームウェア)

ぶち込みかた

  1. 7960/7940のファームウェア(SIP用)を解凍し、TFTPサーバーに置いておく。
  2. (DHCP Optionが指定可能な)DHCPサーバーを立てておく。
  3. DHCPサーバーの設定で、TFTPサーバーのIPを指定しておく。
  4. #キーを押しながら電源(PoEならUTPケーブル)を挿す。(着信ランプが点滅するまで#を押し続けること)
  5. 1着信ランプが点滅しはじめたら、23456789*0#の順に押す。(取り消しは、他のキー二度押し)
  6. ファームウェアが真っ白になり、電話機再起動
  7. 電話機再起動後、ファームウェアをTFTPサーバーから引っ張ってくる。

設定ファイル(SIP用)

Asterisk phone cisco 79x1 xml configuration files for SIP

ソフトキー設定

SEP<MAC Address>.cnf.xml中の
<softKeyFile>SK50719900-3bee-4594-bc3f-6400e1a33bf0.xml</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  (vを16連打)
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