差分

移動先: 案内検索

ひかり電話 プロトコル

5,410 バイト追加, 2007年4月30日 (月) 23:42
旧Wikiから移行
以下の情報は東日本、特に東京でしか役に立たないかもです。訂正感謝するです。
==設定情報の取得(ひかり電話家庭用・オフィスタイプのみ)==
RT-200NE/RT-200KI/VG820a等は起動時にPPPoE接続を張って設定情報を取得します。<br>
PPPoE接続先はguest@tk000155で、http://add-con.mcas/ に以下の内容をPOSTします。
CompanyCode=&ServiceCode=&ControlCode=&TerminalID=00022BXXXXXX
ここでTerminalIDはRT-200NE等のMacアドレス(WAN側)です。<br>
POSTすると、以下の内容が戻されます。取得後はPPPoEは切断され、直接IPv4でSIP/RTPの通信が行われます。
ResultCode=0000
ip_addr=172.20.184.XX1
netmask=30
gateway=172.20.184.XX2
dest_nw_addr=220.210.59.0/22&220.210.63.0/24&220.210.32.0/24&220.210.33.0/22
sipsv_addr=220.157.56.YYY
sipsv_port=5060
regsv_addr=220.157.56.YYY
regsv_port=5060
sip_domain=220.157.56.YYY
username=
password=
ip_tel_num=036901ZZZ1
ip_tel_num1=036901ZZZ2
ip_tel_num2=036901ZZZ3
area_code=03
url_update=http://www.cpeinfo.jp/
url_update_cas=http://220.216.147.36:50080/verup/notify.cgi
dscp=32
rtpport1=5004
rtpport2=5035
項目はだいたい自明だと思います。dscp値はtos値としては0x80になります。<br>
dest_nw_addrですが、明らかにおかしいです。(このアドレスレンジはDocomo所有だし…)<br>
2006/10現在、東京で使用されているのは、
220.157.0.0/18
220.216.128.0/17
220.210.192.0/19
ですが、将来変更されるかもしれません。
==SIPプロトコル==
ひかり電話家庭用・オフィスタイプとも、SIPプロトコルはビジネスタイプと同様のようです。<br>
http://www.ntt-east.co.jp/ipc/information/tech/interface.html
Asteriskから直接レジストする場合は、Session Timerの実装が必要になります。 ナカムラさんのページを参照してください。
*sip.confの例
[general]
port=5060
bindaddr=0.0.0.0
srvlookup=no
tos=0x80 ;必要(DSCP=32)
disallow=all
allow=ulaw
language=jp
defaultexpirey=3600
register => 036901ZZZ1@ntt ;複数番号でも親番号のみregister
[ntt]
type=peer
context=fromntt
host=220.157.56.YYY
nat=never ;viaヘッダにrportをつけないために
;;;;fromuser はSetCallerIDでつける
fromdomain=220.157.56.YYY
canreinvite=no
session-expires=300 ;ひかり電話標準値
dtmfmode=inband
username=nttuser ;session-expiresのパッチで必要
insecure=very
*extensions.confの例
[fromntt]
exten => 036901ZZZ1,1,Dial(SIP/901,180) ;電話機
exten => 036901ZZZ2,1,Dial(SIP/999,180) ;FAX
exten => 036901ZZZ3,1,Ringing() ;自動応答 まずRinging()
exten => 036901ZZZ3,2,Wait(2)
exten => 036901ZZZ3,3,Answer()
exten => 036901ZZZ3,4,Wait(1)
exten => 036901ZZZ3,5,Playback(beep)
exten => 036901ZZZ3,6,Hangup()
[from901]
exten => _[0-6]X.,1,SetCallerID(036901ZZZ1) ;発信者番号をセット
exten => _[0-6]X.,2,Dial(SIP/ntt/${EXTEN},180)
[from999]
exten => _[0-6]X.,1,SetCallerID(036901ZZZ2) ;発信者番号をセット
exten => _[0-6]X.,2,Dial(SIP/ntt/${EXTEN},180)
==ルーティング==
SIPパケットはレジストしたSIPサーバとしかやりとりしませんが、 RTPパケットは相手先(の局内NATルータ)と直接通信を行います。そのため、linuxマシンから直接レジストする場合はルーティングが問題になります。
===デフォルトルートとして設定===
一番安全な方法ですが、通常のインターネットルータと兼用したり、あるいは050電話収容と兼用できません。
root# vi /etc/network/interfaces
iface eth1 inet static
address 172.20.184.XX1
netmask 255.255.255.252
gateway 172.20.184.XX2
===使われている範囲だけルーティング===
使われている範囲だけルーティングする方法ですが、将来IPアドレス範囲が変更になった場合に追随しないといけません。また、この範囲はフレッツスクエアでも使用されているため、兼用できません。
root# vi /etc/network/interfaces
iface eth1 inet static
address 172.20.184.XX1
netmask 255.255.255.252
up /sbin/route add -net 220.157.0.0/18 gw 172.20.184.XX2 || true
up /sbin/route add -net 220.216.128.0/17 gw 172.20.184.XX2 || true
up /sbin/route add -net 220.210.192.0/19 gw 172.20.184.XX2 || true
===特定のSIP端末だけ自アドレスをバインド===
端末ごとにbindaddrを指定できるようにするパッチbindaddr.diff.txtを当てれば、以下のようにソースアドレスによるポリシールーティングをかけられます。
root# apt-get install iproute
root# vi /etc/asterisk/sip.conf
register => 036901ZZZ1@ntt ;registerは @セクション名 で対応付け
[ntt]
bindaddr=172.20.184.XX1
...
root# vi /etc/network/interfaces
iface eth1 inet static
address 172.20.184.XX1
netmask 255.255.255.252
up /sbin/ip route add 172.20.184.XX0/30
dev eth1 src 172.20.184.XX1 table 99 || true
up /sbin/ip route add default via 172.20.184.XX2
dev eth1 table 99 || true
up /sbin/ip rule add from 172.20.184.XX1 table 99 || true
down /sbin/ip rule delete from 172.20.184.XX1 || true

案内メニュー

VoIp-Info.jp

HP Directplus -HP公式オンラインストア-