Asterisk pjsip parameters

2023年11月10日 (金) 17:34時点におけるTakahashi (トーク | 投稿記録)による版 (凡例)

目次

全般的な注意

省略時のデフォルトが明確でない部分もあるので注意してください。安全のためには明示指定すべきです。
例えば、いくつかのセクションで transport= が指定できますが、これが省略された場合には「最初のtype=transportで指定された」トランスポートが使用されます。明示指定せずとも動作しますが、別なトランスポートを定義し、それが以前のものよりも前に来るように書いてしまうと挙動が変わってしまうということになります。
次の例をみてください

[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5070

[hikari-hgw]
type = registration
transport = transport-udp
outbound_auth = hikari-hgw
server_uri = sip:XXX.XXX.XXX.XXX
client_uri = sip:3@XXX.XXX.XXX.XXX
retry_interval = 60

[hikari-hgw]
type = endpoint
context = from-hikari-hgw
dtmf_mode = inband
disallow = all
allow = ulaw
direct_media = no
send_pai = yes
inband_progress = yes
from_user = 3
from_domain = XXX.XXX.XXX.XXX
language = ja
outbound_auth = hikari-hgw
aors = hikari-hgw

Registerのセクションにはtransport-udpが指定されていますが、endpointのセクションにはtransportが指定されていません。
ですがtransportセクションとしてtransport-udpが定義されているので、省略時にはこれが用いられます。

各セクションのパラメータ

各セクションはtype=で区別されます。例えば[global]はセクション名ですが、type=globalを指定する必要があります。globalやsystemの設定はそのままセクションにglobal,systemと書くのが良いでしょう。
エンドポイントやAOR等はそれぞれの名前を使いますので例えば次のようなケースは

[Alice]
type=endpoint

"Alice"という名前のエンドポイントのセクションという意味になります。

凡例

Custom:指定に制限のある文字列。CODEC指定等でulaw,alawとか決まったワードやフレーズしか指定できない、あるいは設定ファイル内のセクションを指定するものなど。
String:任意の文字列が指定できるもの。
uint,double: 数値を指定するもの。カッコ内で単位が書いてあるものはその単位。
Bool:yes/no指定しかできないかy/n指定しかできないもの。

GLOBAL

[grobal]
グローバル設定
type=global

項目名 内容 種類 デフォルト 記述例
max_forwards SIPのMAXFORWARDERS値 uint 70 -
user_agent SIPのUA名 文字列 Asterisk PBX {Version} -
default_outbound_endpoint デフォルトで使用するエンドポイント(発信) 文字列 - -
keep_alive_interval コネクション型で使用されるキープアライブ 数値(秒) 90 -
contact_expiration_check_interval 期限切れコンタクトを無効にするまでの時間 数値(秒) 30 -
disable_multi_domain マルチドメインのサポートを無効化する yes/no no -
endpoint_identifier_order エンドポイントの判定順序 カンマ区切り文字列 ip,username,anonymous,header,auth_username -
debug デバッグ設定(nまたはIPアドレス) 文字列 n -
max_initial_qualify_time 起動から初期Qualify(全AOR)までの秒数 数値(秒) 4 -
regcontext レジストしてくるエンドポイントにPriority 1のNoOpをエンドポイント名で作成するcontextを指定 文字列 なし -
default_voicemail_extension AORで指定されていない場合にNOTIFYで使用されるボイスメールのexten 文字列 なし -
unidentified_request_count あるIPアドレスからの未識別のリクエストを何回まで許容するか 数値(回数) 5 -
unidentified_request_period 未識別のリクエストを許容する間隔 数値(秒数) 5 -
unidentified_request_prune_interval 未識別のリクエストを隔離する間隔 数値 - -
default_from_user デフォルトのFromユーザ名 文字列 asterisk -
default_realm デフォルトのrealm 文字列 asterisk -
mwi_tps_queue_high - 数値 - -
mwi_tps_queue_low - 数値 -1 -
mwi_disable_initial_unsolicited - yes/no - -
ignore_uri_user_options SIP URIのuser=を無視するかどうか yes/no - -
send_contact_status_on_update_registration デバイスがレジストを更新した際にAMIイベントを送出するかどうか yes/no no -
taskprocessor_overload_trigge タスクプロセッサの過負荷検出要因 global,pjsip_only,none global -
norefersub norefersubを送出するかどうか yes/no yes -
all_codecs_on_empty_reinvite - yes/no no -
allow_sending_180_after_183 183の後に180を送るかどうか yes/no no -

SYSTEM

type=system

項目名 内容 種類 デフォルト 記述例
timer_t1 T1タイマ値(ミリ秒) 数値(uint) 500 -
timer_b タイマB値(ミリ秒 数値(uint) 32000 -
compact_headers コンパクトヘッダを使用するかどうか Bool n -
threadpool_initial_size PjSIPスレッド・プールの初期数 数値(uint) 0 -
threadpool_auto_increment 必要になった際にスレッドを増加させる数 数値(uint) 5 -
threadpool_idle_timeout 使用されなくなったスレッドを破棄するまでの時間(秒) 数値(uint) 60 -
threadpool_max_size PjSIPが使用するスレッドの最大数(0は無制限) 数値(uint) 0 -
disable_tcp_switch UDPからTCPへの自動切り替えを禁止するかどうか Bool n -
follow_early_media_fork - Bool yes -
accept_multiple_sdp_answers - Bool no -
disable_rport rportを無効にするかどうか yes/no no -

ACL(res_pjsip_acl)

type=acl

項目名 内容 種類 デフォルト 記述例
acl acl.conf内の名前付ACL名 Custom - -
contact_acl acl.conf内のContact名前付ACL Custom - -
contact_deny 拒否するSIPヘッダ内のContact Custom - -
contact_permit 許可するSIPヘッダ内のContact Custom - -
deny 拒否するIPアドレス Custom - deny=192.168.1.0/24
deny=0.0.0.0/0.0.0.0
permit 許可するIPアドレス Custom - permit=192.168.2.0/24
permit=192.168.2.1,192.168.2.2

AOR

type=aor

項目名 内容 種類 デフォルト 記述例
authenticate_qualify Qualifyに認証を使用するかどうか Bool no -
contact このAORのコンタクト Custom - -
default_expiration このAORを使用する動的コンタクトのexpire時間(秒) uint 3600 -
mailboxes 指定されたメールボックスへのSubscribeを許可 文字列 - -
max_contacts このAORに接続可能なコンタクト数 uint 0 -
maximum_expiration AORで保持される最大時間(秒) uint 7200 -
minimum_expiration AORの最小キープアライブ時間(秒) uint 60 -
outbound_proxy OPTIONSを送出する際に使用するプロキシ 文字列 - -
qualify_frequency Qualify間隔(秒) uint 0 -
qualify_timeout Qualifyのタイムアウト(秒) double 3.0 -
remove_existing 既存のコンタクトを新しいもので上書きするかどうか Bool no -
remove_unavailable - yes/no no -
support_path REGISTERリクエストのPathサポートを有効にするかどうか Bool no -
voicemail_extension NOTIFYに含めるメールボックスexten Custom - -

AUTH

type=auth

項目名 内容 種類 デフォルト 記述例
auth_type 認証方式 Custom userpass auth_type=userpass
md5_cred 認証に使用するMD5ハッシュ 文字列 - -
nonce_lifetime 認証のnonce寿命時間 uint 32 -
password パスワード 文字列 - password=mypassword
realm エンドポイントのSIPレルム 文字列 - -
username ユーザ名 文字列 - username=myusername

CONTACT

DOMAIN_ALIAS

type=domain_alias

項目名 内容 種類 デフォルト 記述例
domain ドメインのエイリアス 文字列 - -

ENDPOINT

type=endpoint

項目名 内容 種類 デフォルト 記述例
100rel RFC3262を許可 yes/no yes -
aggregate_mwi MWIの通知をひとつのNOTIFYにまとめる yes/no yes -
allow 使用を許可するCODEC Custom - allow=ulaw
allow_overlap RFC3578オーバーラップダイヤルを有効化 yes/no yes -
aors このエンドポイントで使用するAOR(s) 文字列 - -
auth このエンドポイントの認証情報のセクション名 文字列 - -
callerid このエンドポイントのCID 文字列 - -
callerid_privacy デフォルトのプライバシーレベル Custom allowed_not_screend -
callerid_tag このエンドポイントの内部id_tag 文字列 - -
context 着信時のダイヤルプランcontext名 文字列 default -
direct_media_glare_mitigation 再INVITEグレア時のダイレクトメディア緩和 Custom none -
direct_media_method ダイレクトメディアのメソッド Custom invite -
trust_connected_line コネクテッドラインの更新を受け入れる yes/no yes -
send_connected_line コネクテッドラインの更新を送出する yes/no yes -
connected_line_method コネクテッドラインのメソッド Custom invite -
direct_media ダイレクトメディアを使用するか yes/no yes -
disable_direct_media_on_nat NAT時にダイレクトメディアを無効化するかどうか yes/no no -
disallow 使用を禁止するCODEC Custom - disallow=ulaw
dtmf_mode DTMFモード Custom rfc4733 -
media_address SDPのメディアハンドリングで使用するIPアドレス Custom - -
bind_rtp_to_media_address RTPセッションをmedia_addressで指定したアドレスで行うかどうか yes/no no -
force_rport リターンポートを強制使用する yes/no yes -
ice_support NAT時にICEを使用するかどうか yes/no no -
identify_by このエンドポイント識別に使用する情報をカンマ区切りれ列挙 Custom "username,ip" -
redirect_method リダイレクト時のメソッド Custom user -
mailboxes 指定されたメールボックスが更新されたらNOTIFYを送る 文字列 - -
voicemail_extension NOTIFY内で送るメールボックスの内線番号 文字列 - -
mwi_subscribe_replaces_unsolicited 要求されていないNOTIFYをMWIサブスクライブで置換 yes/no no -
moh_suggest デフォルトのMOHクラス 文字列 default -
moh_passthrough - yes/no yes -
outbound_auth 発信時に使用する認証情報 文字列 - -
outbound_proxy アウトバウンドプロキシの指定.フルURIで記述 文字列 - -
rewrite_contact ContactヘッダをソースIPアドレスとポートでリライトするかどうか yes/no no -
rtp_symmetric RTPを対称にするかどうか yes/no no -
send_diversion Diversionヘッダを送出するかどうか yes/no yes -
send_pai PAIヘッダを送出するかどうか yes/no no -
send_rpid RPIヘッダを送出するかどうか yes/no no -
rpid_immediate 着信中(非応答)の呼にコネクテッドライン情報を送出するかどうか yes/no no -
timers_min_se セッションタイマーの寿命最小値 数値 90 -
timers セッションタイマーを使用するかどうか yes/no yes -
timers_sess_expires セッションタイマーの寿命最大値 数値 1800 -
transport このエンドポイントで使用するトランスポートの明示指定 文字列 - -
trust_id_inbound このエンドポイントで識別情報を受け取る yes/no no -
trust_id_outbound このエンドポイントの識別情報を送出する yes/no no -
use_ptime エンドポイントのsリクエストのパケット化間隔 ? no -
use_avpf このエンドポイントでAVPFを使う yes/no no -
media_encryption メディアの暗号化を行う yes/no no -
media_encryption_optimistic このメディアの暗号化を行うが失敗しても失敗として扱わない yes/no no -
g726_non_standard 標準ではないG.726を使う yes/no no -
inband_progress インバンドプログレス(リンギング)を使う yes/no no -
call_group ピックアップグループの番号 数値 - -
pickup_group ピックアップ可能なピックアップグループの番号 数値 - -
named_call_group ピックアップグループの名前 文字列 - -
named_pickup_group ピックアップ可能なピックアップグループの名前 文字列 - -
device_state_busy_at 使用中のチャネル数がこの数に達するとデバイスステータスでBUSYを返す 数値 0(無制限) -
t38_udptl T.38 UDPTLを使用するかどうか yes/no no -
t38_udptl_ec T.38 UDPTLのエラー修正方法 Custom none -
t38_udptl_maxdatagram T.38 UDPTLの最大データグラムサイズ 数値 0 -
fax_detect CNGトーン検出を行うか yes/no no -
fax_detect_timeout fax_detect実行の無効化までの時間(秒数) 数値(秒数) 0 -
t38_udptl_nat UDPTLセッションでのNATの使用 yes/no no -
t38_bind_rtp_to_media_address UDPTLセッションをこのメディアアドレスで使用する Custom no -
tone_zone チャンネルが使用するトーンゾーン(国) Custom - -
language このエンドポイントの言語 Custom - -
one_touch_recording ワンタッチ録音を許可するかどうか yes/no no -
record_on_feature ワンタッチ録音開始時に使う機能 Custom automixmon -
record_off_feature ワンタッチ録音終了時に使う機能 Custom automixmon -
rtp_engine チャンネルで使用するRTPエンジン Custom asterisk -
allow_transfer SIP REFERでの転送を許可するかどうか yes/no yes -
sdp_owner SDPのusername部分を指定する文字列 文字列 """-""(-の文字)" -
sdp_session SDPのセッションs行で使用する文字列 文字列 Asterisk -
tos_audio オーディオストリームのDSCP TOSビット 数値 0 -
tos_video ビデオストリームのDSCP TOSビット 数値 0 -
cos_audio オーディオストリームの優先度 数値 0 -
cos_video ビデオストリームの優先度 数値 0 -
allow_subscribe エンドポイントのsubscribeを許可 yes/no yes -
sub_min_expiry subscribeの最短寿命時間 数値 0 -
from_user このエンドポイントに使用されるFromヘッダのユーザ名 文字列 - -
mwi_from_user MWIのNOTIFYで使われるFromのユーザ 文字列 - -
from_domain このエンドポイントに使用されるドメイン 文字列 - -
dtls_verify ピアの認証証書を確認するかどうか yes/no no -
dtls_rekey TLSセッションとrekeyの再ネゴシエーション間隔 数字 0 -
dtls_auto_generate_cert 一時的DTLS認証証書の生成を有効にするかどうか yes/no no -
dtls_cert_file 認証証書のパス パス文字列 - -
dtls_private_key 認証証書のプライベートキーのパス パス文字列 - -
dtls_cipher DTLSネゴシエーションで使用する暗号化方式 Custom - -
dtls_ca_file CA証書へのパス パス文字列 - -
dtls_ca_path CAファイルを含むディレクトリへのパス パス文字列 - -
dtls_setup DTLS接続の方向 Custom - -
dtls_fingerprint SDPに入れるフィンガープリントに使用するハッシュ Cuatom (SHA-256) -
srtp_tag_32 80バイトではなく32バイトタグを使うかどうか yes/no no -
set_var チャンネルが生成された際に設定するチャネル変数.複数のset_varを列挙することで複数の変数を設定できる 文字列 - -
rtp_keepalive RTPが流れていない場合にコンフォートノイズのRTPを流す間隔 数値(秒数) 0 -
rtp_timeout RTPが受信されない場合にハングアップするまでの秒数 数値(秒数) 0(無効) -
rtp_timeout_hold 保留中にRTPが受信されない場合にハングアップするまでの秒数 数値(秒数) 0(無効) -
contact_user このエンドポイントから発信する際のContactヘッダを指定 文字列 - -
incoming_call_offer_pref SDPのCODECオファー順序(着) Custom local -
outgoing_call_offer_pref SDPのCODECオファー順序(発) Custom remote_merge -
preferred_codec_only 優先CODECのみ使用 yes/no no -
asymmetric_rtp_codec RTPのCODECを非対称で使用するかどうか yes/no no -
refer_blind_progress "ブラインド転送時に詳細な情報を送出(Mitel,Aastra,Snomではnoに設定)" yes/no yes -
notify_early_inuse_ringing dialog-infoのearlyでINUSEとRINGINGを通知 yes/no no -
max_audio_streams オーディオストリームの最大値 数値 1 -
max_video_streams ビデオストリームの最大値 数値 1 -
webrtc "yes'に設定すると以下の値を設定する.media_encryptions=dtls.dtls_verify=fingerprint,dtls_setup=actpass.dtls_cert_fileとdtls_ca_fileは明示指定する必要あり." yes/no no -
incoming_mwi_mailbox 入りのMWI NOTIFYのメールボックス名 文字列 - -
follow_early_media_fork - yes/no yes -
accept_multiple_sdp_answers 発信時にUASが前回とは異なるSDP属性で応答するのを許容するかどうか yes/no no -
suppress_q850_reason_headers Q.850ヘッダを抑止するかどうか yes/no no -
ignore_183_without_sdp SDPを含まない183を転送しない yes/no no -
stir_shaken STIR/SHAKENを行う yes/no no -
stir_shaken_profile stir_shaken.confで指定されたプロファイルを記述する Custom - -
allow_unauthenticated_options 認証なしのOPTIONSを受け入れる yes/no no -
geoloc_incoming_call_profile 着信時のジオロケーションプロファイル Custom - -
geoloc_outgoing_call_profile 発信時のジオロケーションプロファイル Custom - -
send_aoc AOCを送出するかどうか yes/no no -

IDENTIFY(res_pjsip_endpoint_identifier_ip)

type=identify

項目名 内容 種類 デフォルト 記述例
endpoint 識別するエンドポイント名 文字列 -
match 一致させるIPアドレスまたはネットワーク Custom - match = 192.168.100.1
match_header 一致させるヘッダ/値のペア 文字列 - match_header = SIPHeader: 値
srv_lookups ホスト名解決にSRV参照を使用するかどうか Bool yes

REGISTRATION(res_pjsip_outbound_registration)

type=registration

項目名 内容 種類 デフォルト 記述例
auth_rejection_permanent 認証失敗時に恒久的失敗として扱う Bool yes
client_uri アウトバウンドレジスト時に使用するクライアントのSIP URI 文字列 -
contact_user リクエスト内のコンタクトユーザ 文字列 -
endpoint 着信時に使用するエンドポイント 文字列 - line=yes時にしか使えないので注意
expiration レジスタのExpire時間 uint 3600 expiration=3600
fatal_retry_interval Fatalレスポンスの場合のリトライ間隔(秒) uint 0
forbidden_retry_interval 403エラーの場合のリトライ間隔(秒) uint 0
line 着信時のcontactにlineを付加するかどうか Bool no
max_retries レジスタ試行回数 uint 10
server_uri レジスタ先のサーバURI 文字列 -
outbound_auth このレジスタの認証情報 文字列 - outbound_auth=セクション名
outbound_proxy レジスタ先のアウトバウンドproxyのFull SIP URI 文字列 -
retry_interval レジスタ失敗時の再試行間隔(秒) uint 60
support_path レジスタ時のPATHサポートの有効無効 Bool no
transport このReg.が使用するトランスポート 文字列 - trabsport=セクション名

TRANSPORT

type=transport
注意:transportの設定変更は通常、res_pjsip.soモジュールのリロードでは反映されません。Asteriskを再起動する必要があります。res_pjsipのリロードでtransportもリロードするにはallow_reload = yesを設定する必要があります。

項目名 内容 種類 デフォルト 記述例
allow_reload res_pjsipをリロードした際にtransportもリロードするかどうか Bool no -
async_operations 非同期動作の同時実行数 uint 1 -
bind このトランスポートがbindするアドレスとポート Custom - bind=0.0.0.0:5070
ca_list_file 読み込む認証証書のリストが入っているファイル(TLSのみWSSは非対象) 文字列 - -
ca_list_path 読み込む認証証書のリストが入っているファイルへのパス(TLSのみWSSは非対象) 文字列 - -
cert_file エンドポイントの認証証書(TLSのみWSSは非対象) 文字列 - -
cipher 優先する暗号化方式(TLSのみWSSは非対象) 文字列 - -
cos COS値 uint 0 -
domain "入り"方向のドメイン 文字列 - -
external_media_address RTPを扱う際の外部IPアドレス 文字列 - -
external_signaling_address SIPを扱う際の外部IPアドレス 文字列 - -
external_signaling_port SIPの外部ポート番号 uint 0 -
local_net NATを使用する場合にローカルとして扱うアドレス Custom - -
method SSLトランスポートのメソッド Custom - -
password トランスポートに必要とされるパスワード 文字列 - -
priv_key_file プライベートキーファイル(TLSのみWSSは非対象) Custom - -
protocol このトランスポートが使用するプロトコル(TLSのみWSSは非対象) Custom udp protocol=udp
require_client_cert クライアント認証証書が必要(TLSのみWSSは非対象) Custom - -
symmetric_transport 入出力双方で同じトランポートを使用するかどうか Bool no -
tos TOS値 Custom 0 - -
verify_client クライアント認証証書の確認が必要(TLSのみWSSは非対象) Custom - -
verify_server サーバ認証証書の確認が必要(TLSのみWSSは非対象) Custom - -
websocket_write_timeout WebSocket接続のタイムアウト(ミリ秒) 100 - -

res_pjsip_config_wizard

ファイル: pjsip_wizard.conf