0
0

Asteriskでひかり電話にIPv4/v6同時にRegister

Posted at

自分用メモとしての記載

ひかり電話のIPv6

ひかり電話ではIPv4/v6の両方でSIPを受けることができる。IPv4のみの対応の場合、相手がIPv6でかけてきた場合、受けることができない。
参考:スマホ de ひかり電話 で一部電話番号に発信できない

そこでIPv6のRegisterを行う必要がある。IPv6をRegisterする場合IPv4でのRegister時にまとめてIPv6のアドレスをContactヘッダーに乗せる必要がある。
参考:音声利用 IP 通信網サービス(第 2 種サービス タイプ 2)

Asteriskでの設定

Asteriskのpjsip.confを見るとcontactをRegister時に追加で送るような設定は見当たらない。
しかし、type=registerのcontact_header_paramsを設定するとContactヘッダーの後ろにkey=valueのような形式でパラメータをつけることができる。

目標とするContactヘッダーの中身は以下の通りである(IPv6アドレスは[]で囲む)。

Contact: <sip:電話番号@v4アドレス:5060>,<sip:電話番号@v6アドレス:5060>;

試行錯誤したところ、","をcontact_header_paramsで送るには二重引用符でくくってAsteriskで特殊文字でなく文字として判定させればいいことが分かった。
その結果、以下のような形で設定を行うとRegister時に余計なパラメータが付くがIPv4/v6のRegisterが行えることが分かった。

contact_header_params = a="\",<sip:電話番号@v6アドレス:5060>\;a=\"v"

Register以外の設定について

transport, aor, identify, endpointについてはIPv4と同様の設定をIPv6アドレスで行う必要がある。
SIPサーバーのIPv6アドレスはDHCPv6で取得することが可能。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0