Asterisk 20 サンプル設定ファイル 解説 pjsip

提供: VoIP-Info.jp
2024年7月29日 (月) 10:15時点におけるTakahashi (トーク | 投稿記録)による版 (pjsip.conf)
移動先: 案内検索

PJSIPの設定は基本がpjsip.confですが可読性を上げるため複数のファイルに分けて#includeしています。
PJSIPの各種パラーメータは [Asterisk_pjsip_parameters] を参照してください。

pjsip.conf

[system]
type = system
disable_rport = yes

[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5070
local_net = 192.168.0.0/16

[acl]
type=acl
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/16
;ITSP/IP電話によってはpermitを指定する必要あり
;SIPメッセージ上で『見える』IPアドレスに注意

;ブラウザフォン用トランスポート(Websocket)
;使う場合にはコメントを外す
;#include "pjsip_wsstransport.conf"

;外線接続用例
;#include "pjsip_trunk_hgw.conf"
;#include "pjsip_trunk_hikari-rtx.conf"

pjsip.conf には基本の設定を記述しています。トランスポートは基本はUDPでポートを5070としています。SIPのデフォルトである5060ではなく5070な点に注意してください。
外線接続時はACLの設定に注意してください。ACLで引っ掛かるとCLIに出ますのでメッセージを確認し所定のアドレスに許可を与えるようにします。
WSS(Websocket)トランスポートはブラウザフォン用です。使用する場合にはコメントを外します。

pjsip_wizard.conf

電話機の収容設定はpjsip_wizard.confで行っています。ただしサンプル設定ファイルのセットではpjsip_wizard.confはスクリプト、pj_phonegen.shで生成できるようにしてあります。
電話機の基本設定は共通部分はテンプレート化してあります。

;電話機用テンプレート(共通設定)
[phone-defaults](!)
type=wizard
transport = transport-udp
accepts_registrations = yes
sends_registrations = no
accepts_auth = yes
sends_auth = no
endpoint/context = default
endpoint/dtmf_mode = rfc4733
endpoint/call_group = 1
endpoint/pickup_group = 1
endpoint/language = ja
endpoint/disallow = all
endpoint/allow = ulaw
endpoint/rtp_symmetric = yes
endpoint/force_rport = yes
endpoint/direct_media = no
endpoint/send_pai = yes
endpoint/send_rpid = yes
endpoint/rewrite_contact = yes
endpoint/inband_progress = yes
endpoint/allow_subscribe = yes
aor/max_contacts = 2
aor/qualify_frequency = 30
aor/authenticate_qualify = no
aor/remove_existing = yes

各パラーメータの意味と内容は [Asterisk_pjsip_parameters] を参照してください。スラッシュ(/)で区切られているものはそれぞれのセクションに記述すべき内容のことで、例えば endpoint/context= は endpoint セクションに書く context= の意味です。テンプレートは普通の電話機用とブラウザフォン用の2つが用意されています。
各電話機部分は基本、認証情報のみです。

[phone1](phone-defaults)
inbound_auth/username = phone1
inbound_auth/password = f0064c965a91e513fec766ac0d658ed8

phone1はテンプレートにphone-defaultsを使用し、認証情報はusernameとpasswordで行います。
参考:電話機に対してQualifyした際に認証エラーが出る場合(GS電話機など)には電話機に対して認証付きでQualifyを投げます。その際の認証情報は以下のように記述します。

[phone1](phone-defaults)
inbound_auth/username = phone1
inbound_auth/password = f0064c965a91e513fec766ac0d658ed8
outbound_auth/username = phone1
outbound_auth/password = f0064c965a91e513fec766ac0d658ed8

outbound_authも入れるようにシェルスクリプトを修正するのもアリです。