ひかり電話HGW MAC認証
Asteriskのchan_sipの場合、ひかり電話のHGW等でDigest認証が通らないケースがあります。その場合にはHGWのMACアドレス認証を使えば、パッチを当てることなくAsteriskをHGWに収容することができます。Asteriskをパッケージでインストールしたり派生ディストリビューションを使用する場合には、この方法が使えます。
HGW側の設定
内線として収容しますので、内線設定を行います。
上の例では内線番号7の"IPphone5"をAsteriskの収容先としています。右の[編集]をクリックします。
MACアドレスの箇所にAsteriskをインストールしたサーバのMACアドレスを入力します。
ユーザIDとパスワードはメモしておいてください。
電話番号設定は着信させたい番号と通知番号を指定します。複数の番号を持っている場合、通知番号はAsterisk側からも指定できますが、その際には着信番号として複数番号を指定しておく必要があります。要するに着信できる番号であれば通知できるというわけです。
Asteriskの設定
sip.conf
sip.confは次の例にならって書いてください。例では内線'7'なので7が番号、ユーザIDが007になります。
register => 7:password@hikari-hgw [hikari-hgw] context=from-hikari-hgw type=peer secret=password username=0007 <--ユーザID fromuser=7 <--番号 domain=192.168.1.1 <--HGWのIPアドレス fromdomain=192.168.1.1 host=192.168.1.1 insecure=port,invite disallow=all allow=ulaw dtmfmode=inband
パスワードはたぶん何も効いてないのですが、何か書いておかないとパスワードのフィールドとして認識されないので書いておきます。念のためHGWのパスワードと同じにしておくと何となく安心です。
extensions.conf
落せればs着信でも何でもいいのですが、次のように書いておけば複数番号の着信番号制御ができます。
[from-hikari-hgw] exten => s,1,NoOp(ひかり電話HGW着番処理) exten => s,n,Set(DESTNUM=${SIP_HEADER(To)}) exten => s,n,Set(DESTNUM=${DESTNUM:1:10}) exten => s,n,NoOp(着信番号: ${DESTNUM}) exten => s,n,Goto(incoming,${DESTNUM},1) [incoming] exten => 0312345678,1,Dial(SIP/201)
着信番号はSIPヘッダのToで落ちてくるのでそこから番号だけ取り出します。今の日本では桁数は10で大丈夫だと思うのですが、もし桁数が違う場合には:1:10のところを調整してください。最終的にincoming,着信番号,1に飛んでいくので[incoming]のところに例のように書きます。