ひかり電話HGW Pjsip

2014年12月7日 (日) 08:48時点におけるTakahashi (トーク | 投稿記録)による版 (設定ファイル)

ひかり電話のホームゲートウェイを使用する場合の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が内線からの発信かどうかを識別するためです。
(注: from_userとfrom_domainです。fromuserとfromdomainではありません。英語のドキュメントでも間違っているのがあります)

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