利用者:MR G
Astlinuxネタの一部を引越しさせたYO!!
ミスプリ用紙の裏
chan_sccp
- NAT越えの発着信が可能。(PBX→グローバルIP 電話機→ローカルIPの組み合わせで運用chu!)
- chan_sccpにUAの機能はついてない。従ってCallManagerにはぶら下がらない。
- 本家(?)のML宛に、Line button patchが投稿されることがある。
- 使ってる人が少ない。
- sccp.confの記述方法が変(コンテキスト毎に分けられていない)
chan_sccpは、個人的見解としては「あまりいけてない」
とはいえ、chan_skinnyよりはマシな気が。
SCCP(Skinny)を使うなら、CP-7911のようなラインキー無しの電話機を使ったほうが楽で宜しい。
(但し利用者の環境に依存する)
Skinnyファームウェアを使うよりも、ノウハウの豊富なSIPファームウェアのほうがオススメ。
でも日本語ドキュメントは、ほぼ皆無
SIPに対応していない電話機(CP-7931とかWiFiなCisco電話機とか)を動かすなら、chan_sccp必須ですヨ!奥さん!
Cisco CallManager Express
Quintumと同様、Regist無しでAsteriskにぶら下がるやりかたと、
Regist有りでAsteriskにぶら下がるやりかたの二種類が確認されている。
このあたりはキッチリ打ち合わせしないと痛い目見る可能性極めて大なり。(ダイヤルプラン的な意味で)
ITSPとパケットフィルタリング
ぼちぼちSPIT(Spam over internet telephony)対策も練らんとね。と思いつつ、
まずはSIPポートを開く対象をホワイトリスト化しておこう。
G-LEXおよびOCNと繋ぐためのパケットフィルタリングルールでも創っておこう。
まずレジスト先ホストをリスト化しておく。
whoisからIPアドレス範囲調べて、ポートを開けても良さそうな気もするが、クライアント向けIPアドレスを含めてしまうのは宜しくない。
かと言ってIPアドレス一個だけ決め打ちしていると、サーバー側IPが変わったときに痛い目に遭う。
パケットフィルタリングに対する4つの方針
閉鎖的 ~UDP/5060開放先IPを決め打ち~
特定のIPに限ってUDP/5060を開放する。
- 利点
- 基本的にはITSP経由での通信となるので、セキュリティホールを突付かれ難くなる。
- 弱点
- ITSPのIPが変わった場合、通信できなくなるのでトラブルに見舞われやすい。(と思う)
開放 ~UDP/5060はサブネットで区切る~
WhoisゲートウェイからITSPが使用しているIPアドレスの範囲を調査し、その範囲内に限ってUDP/5060での通信を許可する。
- 利点
- 基本的にはITSP経由での通信となるので、セキュリティホールを突付かれ難くなる。
- 弱点
- ITSPのIPが変わった場合、通信できなくなる可能性が高い
IPを一個だけ開けるよりかはトラブルになり難い。
けっこう開放 ~UDP/5060ばっちこい~
- 利点
- ITSP側でIPアドレス変えても問題なくSIPでの通信が可能
- 弱点
- 某国からUDP5060宛の攻撃がやって来るかもしれない。SIP周りのセキュリティホールに注意すること
走召開放 ~パケットなんでもばっちこい~
インターネットからのパケットは全てサーバーに流すようにする。パケットフィルタリングを行わない。
- 利点
- パケットフィルタリングに悩まないで済む。
- 弱点
- サイバーノーガード戦法を取らざるを得ない。
OCN
210.227.109.0/24っぽいが、voip11.ocn.ne.jp以降の振られ方が謎。
voip-ca3400まで調べたところで挫折。
- voip1.ocn.ne.jp(3350~3359,3385)
- 210.227.109.197
- voip2.ocn.ne.jp
- 210.227.109.203
- voip3.ocn.ne.jp(3340~3349,3386,3680)
- 210.227.109.206
- voip4.ocn.ne.jp(3320~3329,3387,3670~3679)
- 210.227.109.232
- voip5.ocn.ne.jp(3310~3319,3395,3396)
- 210.227.109.215
- voip6.ocn.ne.jp(3300~3309,3388,3389,3390,3391)
- 210.227.109.217
- voip7.ocn.ne.jp(3330~3339,3392)
- 210.227.109.219
- voip8.ocn.ne.jp(3397,3398,3399)
- 210.227.109.245
- voip9.ocn.ne.jp(3363,3364,3371~3376,3378,3379)
- 210.227.109.247
- voip10.ocn.ne.jp
- 210.227.109.249
- voip11.ocn.ne.jp
- 210.227.109.119
- voip12.ocn.ne.jp
- 210.164.27.197
- voip13.ocn.ne.jp(3660~3669,3690~3699)
- 211.123.198.180
- voip14.ocn.ne.jp(3640~3649,3650~3659)
- 211.123.198.181
OCNの例外
3360~3362,3365~3370,3377,3380,3393,3394,3400は
voip-caXXXX.ocn.ne.jpというホスト名では無い模様
nslookupに引っかからない
OCNとRTPパケット
OCNは、SIPサーバー(レジストしたりInviteしたり)とRTP用サーバー(通話時に通信するIP)が別物になっているんで、
RTP用のパケットフィルタ設定が必要となる。
RTPおしゃべり相手履歴
- 60.37.5.97
G-LEX
202.210.173.128/25で括られている模様(ソースはwhois)
- iax002.g-lex.net
- 202.210.173.169
- sip002.g-lex.net(sip001.g-lex.net)
- 202.210.173.154
しかし、以前は222.で始まるIPアドレスだったよーな気がした。
Cisco ACLで書いてみたら、こんな按配。
remark SIP(Invite to G-LEX) permit udp host 192.168.0.1 gt 1023 202.210.173.128 0.0.0.127 eq 5060
注目しているURL
AstLinux小ネタ
Building a compact Asterisk server with AstLinux
Astlinuxの小ネタ多数。但し英語
- コンパイル済みのAstlinuxをインストールする
- crontabを設定する
- 10Base-Tでリンクさせる
- 俺様ば~ぢょんのAstlinuxを創る
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/ 7960のSIPファームウェア
CP-7960GとCP-7961Gを混同していた時期もありました。
Cisco 7905/7912
chan sccp
Cisco 79XX カスタマイズ
短縮ダイヤル
Configuring Speed Dial
ラインキー用、ディレクトリボタン用(電話機単体用、企業共有用)短縮ダイヤル設定解説書。
SIPファームとSCCPファームで機能が別れている(らしい)
いぢくり中
Cisco IP Phone
CiscoIP Phone7900シリーズ
マルチライン動かないぞガッデム
SIPファームウェア入れたら、壁紙サイズとか日本語表示用ファイルが変わってた。
とか散々な目に遭ってしまった。
着信音ネタ(音源ファイルのつくりかた)
sox使え。とあるけど、windowsで作れるかやってみたいところ。
そもそもsoxって何。
astlinuxでの保留音作成と同じ流れでなら作れるかな?
それにしても上限が2秒というのは厳しいなぁ。以下、着信音の仕様
8000 Hz サンプリングレート 8 bits per sample ulaw compression 240 - 16080 samples long (0.03 秒~2.01 秒)
着信音ネタ(鳴り分け)
Asterisk側で着信音を鳴り分けできるらしい。
Asterisk側にて、ダイヤルする前に"ALERT_INFO"をSIP inviteに引っ付けて電話機に送り込むと、指定した着信音が鳴るらしい
ただし、
Note that this only seems to work for the internal ringtones and not for any custom ringtones.
↑このように内線着信で、なおかつカスタマイズした着信音だと使えない(らしい)
本当に動くんだろうかと。(例によって未検証)
Asterisk version <1 exten => 3010,1,SetVar(__ALERT_INFO=<Bellcore-dr1>) Assterisk 1.0 and 1.2 exten => 3010,1,SetVar(_ALERT_INFO=<Bellcore-dr1>) Asterisk 1.4 exten => 3010,1,SIPAddHeader(Alert-Info: <Bellcore-dr1>)
Cisco 7970G(SIPファームウェア)
LOGげっちゅ
最近の、CiscoのIP電話はHTTPを喋るので、http://192.168.0.66 (←電話機のIPアドレス)
とやると、設定内容やらDEBUG logやらが表示されるので便利
LOGから「Unknown」とか「Error」あたりで調べると、コンフィグの書き間違いを探すことができる。
XML Parser Warning: Unknown element 'uid' in element '/device/networkLocaleInfo' (line=67)
この時ばかりは「とりあえず、テキストファイルで出力してしまえ」というInternet Explorerを使ったほうが良い
標準設定なFirefoxの場合「得体の知れないファイルだけど、どうよ?」と 聞いてくるのでチョット面倒
パワーセーブ
Cisco IP Phone7970は液晶ディスプレイなので、夜は消灯しておいたほうが地球に優しい。
地球に優しい設定は、例によってSEP<MACアドレス>中に記述する必要がある。
http://www.redwatervoip.com/cisco/7970pso.txt とか
http://www.trixbox.org/forums/vendor-specific-unmoderated/linksys-cisco/7970g-power-save-configuration
が参考になるかもしれない。
ちなみに、CallManager Expressで(地球に優しい機能を)設定する場合は、
Router> enable Router# telephony-service Router# configure terminal Router(config)# telephony-service Router(config)# service phone displayOnTime 09:00 ←AM 9:00点灯 Router(config)# service phone displayOnDuration 12:00 ←12時間経ったら(PM 9:00になったら)消灯
結局のところ、SEP<MACアドレス>.cnf.xmlファイルに上記設定が書き込まれる訳ですな。
Cisco 7961G(SIPファームウェア)
ぶち込みかた
- 7960/7940のファームウェア(SIP用)を解凍し、TFTPサーバーに置いておく。
- (DHCP Optionが指定可能な)DHCPサーバーを立てておく。
- DHCPサーバーの設定で、TFTPサーバーのIPを指定しておく。
- #キーを押しながら電源(PoEならUTPケーブル)を挿す。(着信ランプが点滅するまで#を押し続けること)
- 着信ランプが点滅しはじめたら、123456789*0#の順に押す。(取り消しは、他のキー二度押し)
- ファームウェアが真っ白になり、電話機再起動
- 電話機再起動後、ファームウェアをTFTPサーバーから引っ張ってくる。
設定ファイル(SIP用)
Asterisk phone cisco 79x1 xml configuration files for SIP
SIP用cnfファイルジェネレータ←動作未検証
ソフトキー設定
SEP<MAC Address>.cnf.xml中の
<softKeyFile>SK50719900-3bee-4594-bc3f-6400e1a33bf0.xml</softKeyFile>
という箇所が、ソフトキーのテンプレファイル読み込み設定らしく、
電話機が起動したら、当該ファイルをTFTPサーバーから読み込みに行く。
しかし中身はどうなっているんだろうか?(↑のxmlファイル名でぐぐると大量に出てくる)
ソフトキー設定の書式が間違っていると、Unprovisionedと表示され、
延々と設定ファイルを読み込むようになる(restartコマンドを繰り返す)
[元ネタ]
と言うかですな。SK50719900-3bee-4594-bc3f-6400e1a33bf0.xmlでぐぐると大量に出てくるあたり、
元ネタが一つしか無いんじゃないかと思ったりする訳で。
ファームウェアバージョン指定
SEP<MAC Address>.cnf.xml中の
<loadInformation>SIP70.8-0-0SR1S</loadInformation>
という箇所がファームウェアに関する設定となり、上記バージョンのファームウェアを
TFTPサーバーから引っ張ってくる
(上記の記述内容では)SIP70.8-0-0SR1S.loadsというファイルをTFTPサーバーから引っ張ってくる
AutoAnswer
AutoAnswer機能を利用したスクリプト作成中
プログラム力の無さに絶望した。
AstLinux
Microclient JRにAstLinux入れてみた。
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_空き容量有効活用に引越ししますた。
資源(あいたスペース)の有効活用
標準の保留音では「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
Astlinuxの小ネタ
起動が超遅い
DNSの正引き逆引きが出来てない可能性大。
謎のポートの2000番
chan_sccpが2000番を絶賛使用中
2GB以上のCFに入らない
DDforWindowsでダメならphysdiskwrite使ってみる。
BOOTしない
CFカードに孔明の罠が仕込まれていることがあり、ファイルの一部が破損していることがある。
configもろもろのバックアップ(CF丸ごとでも良い)を取っておくこと。
ファイルの一部が破損することがあるので、
md5sumにてファイルの同一性を確認すべし。(ファイルの一部が壊れることもある)
特にTranscend製のカード使ったら頻発した。(4枚中3枚で上記障害が発生)