「利用者:MR G」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(記事を整理整頓してみた)
(CiscoIP Phone7900シリーズ)
181行目: 181行目:
  
 
==CiscoIP Phone7900シリーズ==
 
==CiscoIP Phone7900シリーズ==
 +
===XML===
 +
"cisco xml"でぐぐると、ニュース記事ばかり出てくるもんで、<BR>
 +
「具体的に、どんなサービスしてるのか、どんな実現方法なのか」を探すのは、ちょっとメンドーですな!
 +
 +
[http://www.voip-info.org/wiki/view/Asterisk+Cisco+79XX+XML+Services Cisco電話機向けのXMLサービス一覧など]<BR>
 +
[http://www.cisco.com/en/US/docs/voice_ip_comm/cuipph/all_models/xsi/6_0/english/programming/guide/xsi60htp.html HTTPリクエストに関する技術資料(英語)]
 +
 
===古め電話機のファームウェア===
 
===古め電話機のファームウェア===
 
http://www.xs4all.nl/~graver1/cisco/7905/ 7905のファームウェア<BR>
 
http://www.xs4all.nl/~graver1/cisco/7905/ 7905のファームウェア<BR>

2008年8月3日 (日) 14:15時点における版

BayStack 460-24T-PWRが1900円で売られている事に諸行無常の流れを感じる初夏
PoE-SWとしては破格と言わざるを得ない。\14,800で買ってしまった自分を呪う鹿。

目次

ミスプリ用紙の裏

EP-838

おっと(VoIP店)で、1200円で売ってるジャンクなIP電話(EP-838)のログインID/Paasは下記の通り。

  • ID:admin
  • Pass:dbl#admin

色々と動作がクサイのでパケット採取が必要かもしれない。
発信履歴が残ってるとか、どんだけ~

MicroClientとAstlinuxとntpd

MicroClient JRはAsterisk用の箱としてオススメできる一品と言って良いが
時々パケットを拾いもらしたり、他のNTPサーバーから「あんた時間ずれ過ぎ」
と落第扱いされたりして、ヘタレ具合が若干目立つようになってきている。
ちなみに、各NTPサーバーの同期具合は下記の通り

頭に"*"がついている
NTPサーバーとして時刻の同期に使われているサーバー
頭に"+"がついている
NTPサーバーとして時刻同期に使われていないが、同期が可能なサーバー
頭に"x"がついている
NTPサーバーとして失格。と判断されたサーバー
Melchior> ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*192.168.0.5     .GPS.            1 u   14   16  377    0.264    0.044   0.045 ←ごく一般的なUNIX搭載PC
+marbas          192.168.0.5      2 u   15   16  377    1.925    0.346   0.226 ←Ciscoルーター
+balthasar       192.168.0.5      2 u   11   16  377    1.653    0.186   1.594  ←ごく一般的なUNIX搭載PC
xforneus         148.183.101.87   3 u    7   16  377    2.205  -23.469   0.356 ←MicroClien JR

GXP-2000

GXP-2000公式ページ
←の「IP電話機」の項目に増やそうと思って色々考えたら、
「ソース元にリンクしたほうが正確ぢゃね?」
という結論になったんで、概要だけ。

プロビジョニング

Cisco電話機や、Aastraと同様、Configファイルやファームウェアをサーバ側で配布することで、設定の一括管理ができる。
GXP-2000ではTFTPとHTTP経由でファイルを引っ張ってくることが出来る。
しかし、TFTP経由の場合、サーバーに対し大量のパラメータをつけてリクエストしてくるので、エラーになってしまうため、
(AstlinuxについてるTFTPサーバーでは)ダウンロード不可
回避策としてHTTP経由でのプロビジョニングをお勧めする。

Configuration File

Configファイルをいじって、サーバーに置くだけではダメで、
専用ツールを使って、バイナリ形式(暗号化か?)にする必要がある。
Configuration Tools

XML

XML形式の電話帳が使えるGXP-2000 XML Phonebookほか、
アイドル画面にも使える。GXP-2000 XML Idle Screen 当然英語表示

DHCP Options

電話機がサーバーに対し要求するDHCPOptionは下記リストのとおり
設定によっては、DHCPの設定を無視することが出来る(手動設定を優先するという設定も可能)

  • 1(サブネットマスク)
  • 2(Time Offset タイムゾーンのこと。デフォルトはOFF)
  • 3(デフォルトゲートウェイのIPアドレス)
  • 28(ブロードキャストアドレス)
  • 6(DNSサーバーIP)
  • 42(NTPサーバーアドレス)

ラベルテンプレート

安物っぽいイメージのくせにっ!!ビクビクッ
ラインキーに印字するためのラベルテンプレートが公開されている。(PhotoshopとExcel形式)
LabelTemplate
→つくってみた
GXP2000-template.png

Firmware

Build 1.1.6.16 (03/14/2008)が最新。修正されたバグが大量にある。
リリースノートに目を通した方がいいかもしれない。
ファームウェア更新情報

サーバーに置くと良いファイル

GXP-2000が要求してくるファイルは、下記の通り

  • cfgxxxxxxxxxxxx(xxxxにはMACアドレスが入る)
  • boot55a.bin
  • gxp2000a.bin
  • ring1.bin
  • ring2.bin
  • ring3.bin

着信音

SIPAddHeader(Alert-Info:\;info=<ring name>) 

とSIPヘッダに付けると、その着信音が流れるらしい。

chan_sccp

  1. NAT越えの発着信が可能。
  2. chan_sccpにUAの機能はついてない。従ってCallManagerにはぶら下がらない。
  3. 本家(?)のML宛に、Line button patchが投稿されることがある。
  4. 使ってる人が少ない。
  5. 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にぶら下がるやりかたの二種類が確認されている。
このあたりはキッチリ打ち合わせしないと痛い目見る可能性極めて大なり。(ダイヤルプラン的な意味で)
CMEはITSPに直接レジスト可能ではあるが、何も考えずにレジストさせたら、
向こう側で大量のエラーが出たらしく、
担当者に「また何やってるんすか」といわれた

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
  • 60.37.5.105
  • 60.37.5.145
  • 60.37.5.165
  • 60.37.5.177
  • 221.113.143.13
  • 221.113.143.225
  • 221.113.143.229
  • 221.113.143.237

数回ほど試してみたところ、
60.37.5.0/24
221.113.143.0/24
がおしゃべり相手になっている模様

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

WirelessIP 5000

ファームウェアがhttp://www.wirelessip-support.com/software.php にあるらしいが、要登録とのこと。
電話機用電池パックが無償交換の対象になっている。
http://www.wirelessip-phone.com/information/200708w.html

CiscoIP Phone7900シリーズ

XML

"cisco xml"でぐぐると、ニュース記事ばかり出てくるもんで、
「具体的に、どんなサービスしてるのか、どんな実現方法なのか」を探すのは、ちょっとメンドーですな!

Cisco電話機向けのXMLサービス一覧など
HTTPリクエストに関する技術資料(英語)

古め電話機のファームウェア

http://www.xs4all.nl/~graver1/cisco/7905/ 7905のファームウェア
ftp://ftp.cisco.com/pub/voice/ip-phone/sip-7960/ 7960のSIPファームウェア
CP-7960GとCP-7961Gを混同していた時期もありました。

着信音ネタ(鳴り分け)

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>)

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の場合「得体の知れないファイルだけど、どうよ?」と 聞いてくるのでチョット面倒

壁紙設定

SIPファームウェア設定で活きて来るっぽい「壁紙設定の有無」
SCCP電話機にて設定したものの、反応なし。

<commonProfile>
<phonePassword></phonePassword>
<backgroundImageAccess>true</backgroundImageAccess>
<callLogBlfEnabled>2</callLogBlfEnabled>
</commonProfile>

Cisco 7961G(SIP)

設定ファイル(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でぐぐると大量に出てくるあたり、
元ネタが一つしか無いんじゃないかと思ったりする訳で。

AutoAnswer(Astlinux限定)

まずは、extension"300"にはモーニングコールなり、MoHなりの処理を設定しておく。
まずは、テキトーに下記のようなテキストファイルを作成しておく

Forneus tmp # cat outband.txt
Channel: sccp/512/aa1w
Callerid: 511
MaxRetries: 1
RetryTime: 5
WaitTime: 3
Context: default
Extension: 300

次に/var/spool/asterisk/outgoing/ に先ほどのファイルをコピーするとOK

Forneus tmp # cp outband.txt /var/spool/asterisk/outgoing/

cronに、コピー処理を埋め込めば定時発信(モーニングコールなど)することができる。

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枚で上記障害が発生)

Remote UNIX connection

CLIコンソールに出てくる、下記のメッセージは一体何者か。不届き者か。

   -- Remote UNIX connection
   -- Remote UNIX connection disconnected

で、さっそく調べてみた。
どうやら、他のユーザー、もしくは監視サービス(nagios他)がCLI接続したときに出るログらしく、原因は下記の通りとなる

  • 他のユーザーがCLIに入ったかもしれない。
  • asterisk manager (manager.conf)がつなげてるかもしれない。
  • Nagios(のプラグイン)が繋げているかもしれない

対応策としては、下記の通り。

  • こいつは無害なんで気にするな
  • vの数を減らせ(asterisk -vvvvvvvvvvvvvvvvvvvvvrのこと)
  • CLIからログオフしてしまえ

AstLinux小ネタ集

Building a compact Asterisk server with AstLinux
Astlinuxの小ネタ多数。但し英語

  • コンパイル済みのAstlinuxをインストールする
  • crontabを設定する
  • 10Base-Tでリンクさせる
  • 俺様ば~ぢょんのAstlinuxを創る