利用者:MR G

提供: VoIP-Info.jp
2008年1月30日 (水) 11:16時点における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 と入力。

fdisk /dev/hda
The number of cylinders for this disk is set to 3957.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

コマンド?と聞かれたら"n"(Newの略らしい)を押す。
command actionと聞かれたらpを押す。

Command (m for help): n

 command action
   e   extended
   p primary partition(1-4)

次に2を押す。パーティション番号らしい

Partition number (1-4):

次はそのままデフォルト値でいいかな。そのままエンターキー

First cylinder (521-3957, default 521):

次はサイズを聞かれる。デフォルト値(全部使う)でいいかな。そのままエンターキー

Last cylinder or +size or +sizeM or +sizeK (521-3957, default 3957):

何も無かったように、最初に戻った。

Using default value 3957

Command (m for help):

pを押したら、スライス切れた気がする。

Command (m for help): p

Disk /dev/hda: 2042 MB, 2042191872 bytes
16 heads, 63 sectors/track, 3957 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks  Id System
/dev/hda1               1         520      262048+ 83 Linux
/dev/hda2             521        3957     1732248  83 Linux

wを押すと、実際に書き込む。 そして再起動だ。

文句言われることもある。
使用中ですかそうですか。

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table
fdisk: WARNING: rereading partition table failed, kernel still uses old table: Device or resource busy

自動で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