ひかり電話HGW Pjsip
ひかり電話のホームゲートウェイを使用する場合のpjsipの設定例。
とりあえずレジ、発着信ができるとこまで確認しましたが、この設定が完璧かどうかは疑問なので気付いた点のある方はページを更新してください。
目次
注意!!
chan_sipとpjsipを併用する場合にはどちらかのSIPポートをずらしてください。デフォルトではどちらも5060を使用しようとします。
概念がこれまでのchan_sipと少し違うので混乱するかもしれません。[ ] のセクションに対して type= でそのセクションのタイプが別々に記述されますので注意してください。
設定ファイル
- pjsip.conf
- エンドポイント/トランク名として hikari-trunk を使用しています
まずトランスポートを書きます
;トランスポートの設定 [simpletrans] type=transport protocol=udp bind=xxx.xxx.xxx.xxx ;グローバルを持っている場合には外へ出ていかないようにローカルIPを書く
レジスタ情報を書きます
;トランク設定(レジストあり) [hikari-denwa] type=registration transport=simpletrans ;トランスポートとして上のsimpletransをみる outbound_auth=hikari-trunk ;発信時認証にhikari-trunkのauthを使う server_uri=sip:xxx.xxx.xxx.xxx ;HGWのIPアドレス client_uri=sip:内線番号@:xxx.xxx.xxx.xxx ;内線番号はHGWの内線の1桁番号(例:5@192.168.0.1) retry_interval=60
認証情報を書きます
[hikari-trunk] type=auth auth_type=userpass password=内線のパスワード username=内線のユーザID ;通常は0005のようなやつ
AOR(Address Of Record)を書きます
[hikari-trunk] type=aor contact=sip:xxx.xxx.xxx.xxx ;HGWのIPアドレス
エンドポイントを定義します
from_userとfrom_domainが必要です。これはHGWが内線からの発信かどうかを識別するためです。
[hikari-trunk] type=endpoint transport=simpletrans ;使用するトランスポート context=from-hikari ;着信コンテキスト disallow=all allow=ulaw outbound_auth=hikari-trunk aors=hikari-trunk direct_media=no from_user=内線番号 ;1桁の内線番号 from_domain=xxx.xxx.xxx.xxx ;HGWのIPアドレスを指定します
トランク識別のためidentfyを書きます
[hikari-trunk] type=identify endpoint=hikari-trunk match=xxx.xxx.xxx.xxx ;HGWのIPアドレス
レジストの確認
*CLI> pjsip show registrations <Registration/ServerURI..............................> <Auth..........> <Status.......> ========================================================================================= hikari-denwa/sip:xxx.xxx.xxx.xxx hikari-trunk Registered
ダイヤルプラン
- 発信
chan_sipの場合とほぼ同様です。0から始まる番号はすべて、ひかり電話経由で発信する場合の例
;Hikari-Denwa Dial-out Sample(PJSIP) exten => _0.,1,Set(CALLERID(num)=${MYNUMBER}) exten => _0.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _0.,n,Dial(PJSIP/${EXTEN}@hikari-trunk
- 着信
pjsip.confで指定したコンテキストのsに飛んでくるだけです。
;pjsip ひかり電話着信 [from-hikari] exten => s,1,Dial(SIP/201)