利用者:MR G

提供: VoIP-Info.jp
2007年12月23日 (日) 23:56時点におけるMR G (トーク | 投稿記録)による版 (tftpd)
移動先: 案内検索

オッス!おらMR G
12/31のお祭りは出展者側だ!

注目している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

79XX

マルチライン動かないぞガッデム

AutoAnswer

AutoAnswer機能を利用したスクリプト作成中
プログラム力の無さに絶望した。

AstLinux

Microclient JRにAstLinux入れてみた。
chan_sccp入っていた。
SCCPやるしか?やるしかないネ!

Forneus ~ # ls -la /usr/lib/asterisk/modules/|grep sccp
-rwxr-xr-x    1 root     root       180002 Sep 11 13:46 chan_sccp.so

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