Asterisk pjsip parameters
目次
全般的な注意
省略時のデフォルトが明確でない部分もあるので注意してください。安全のためには明示指定すべきです。
例えば、いくつかのセクションで 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"という名前のエンドポイントのセクションという意味になります。
また
[Alice] type=registration
は"Alice"が外に対してREGISTERするための情報のセクションという意味になります。
凡例
Custom:指定に制限のある文字列。CODEC指定等でulaw,alawとか決まったワードやフレーズしか指定できない、あるいは設定ファイル内のセクションを指定するものなど。数字指定でもCustomになっているものもあり。
String:任意の文字列が指定できるもの。
uint,double: 数値を指定するもの。カッコ内で単位が書いてあるものはその単位。
Bool:yes/no指定しかできないかy/n指定しかできないもの。
参考にしている情報は
ですが、CustomとStringの使い分けがいまひとつわかりません。
GLOBAL
[grobal]
グローバル設定
type=global
項目名 | 内容 | 種類 | デフォルト | 記述例 |
---|---|---|---|---|
max_forwards | SIPのMAXFORWARDERS値 | uint | 70 | - |
user_agent | SIPのUA名 | String | Asterisk PBX {Version} | - |
default_outbound_endpoint | デフォルトで使用するエンドポイント(発信) | String | - | - |
keep_alive_interval | コネクション型で使用されるキープアライブ | Uint | 90 | - |
contact_expiration_check_interval | 期限切れコンタクトを無効にするまでの時間 | Uint | 30 | - |
disable_multi_domain | マルチドメインのサポートを無効化する | Bool | no | - |
endpoint_identifier_order | エンドポイントの判定順序 | String | ip,username,anonymous,header,auth_username | - |
debug | デバッグ設定(nまたはIPアドレス) | String | n | - |
max_initial_qualify_time | 起動から初期Qualify(全AOR)までの秒数 | Uint | 4 | - |
regcontext | レジストしてくるエンドポイントにPriority 1のNoOpをエンドポイント名で作成するcontextを指定 | String | なし | - |
default_voicemail_extension | AORで指定されていない場合にNOTIFYで使用されるボイスメールのexten | String | なし | - |
unidentified_request_count | あるIPアドレスからの未識別のリクエストを何回まで許容するか | Uint | 5 | - |
unidentified_request_period | 未識別のリクエストを許容する間隔 | Uint | 5 | - |
unidentified_request_prune_interval | 未識別のリクエストを隔離する間隔 | Uint | - | - |
default_from_user | デフォルトのFromユーザ名 | String | asterisk | - |
default_realm | デフォルトのrealm | String | asterisk | - |
mwi_tps_queue_high | - | Uint | - | - |
mwi_tps_queue_low | - | Int | -1 | - |
mwi_disable_initial_unsolicited | - | Bool | - | - |
ignore_uri_user_options | SIP URIのuser=を無視するかどうか | Bool | - | - |
send_contact_status_on_update_registration | デバイスがレジストを更新した際にAMIイベントを送出するかどうか | Bool | no | - |
taskprocessor_overload_trigge | タスクプロセッサの過負荷検出要因 | Custom | global | 注:指定できるのはglobal,pjsip_only,none |
norefersub | norefersubを送出するかどうか | Bool | yes | - |
all_codecs_on_empty_reinvite | - | Bool | no | - |
allow_sending_180_after_183 | 183の後に180を送るかどうか | Bool | 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を無効にするかどうか | Bool | 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を許可 | String | - | - |
max_contacts | このAORに接続可能なコンタクト数 | uint | 0 | - |
maximum_expiration | AORで保持される最大時間(秒) | uint | 7200 | - |
minimum_expiration | AORの最小キープアライブ時間(秒) | uint | 60 | - |
outbound_proxy | OPTIONSを送出する際に使用するプロキシ | String | - | - |
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ハッシュ | String | - | - |
nonce_lifetime | 認証のnonce寿命時間 | uint | 32 | - |
password | パスワード | String | - | password=mypassword |
realm | エンドポイントのSIPレルム | String | - | - |
username | ユーザ名 | String | - | username=myusername |
DOMAIN_ALIAS
type=domain_alias
項目名 | 内容 | 種類 | デフォルト | 記述例 |
---|---|---|---|---|
domain | ドメインのエイリアス | 文字列 | - | - |
ENDPOINT
type=endpoint
項目名 | 内容 | 種類 | デフォルト | 記述例 |
---|---|---|---|---|
100rel | RFC3262を許可 | Custom | yes | - |
aggregate_mwi | MWIの通知をひとつのNOTIFYにまとめる | Bool | yes | - |
allow | 使用を許可するCODEC | Codec | - | allow=ulaw |
allow_overlap | RFC3578オーバーラップダイヤルを有効化 | Bool | yes | - |
aors | このエンドポイントで使用するAOR(s) | String | - | - |
acl | acl.conf内で定義されたACL名 | Custom | - | - |
auth | このエンドポイントの認証情報のセクション名 | Custom | - | - |
callerid | このエンドポイントのCID | Custom | - | - |
callerid_privacy | デフォルトのプライバシーレベル | Custom | allowed_not_screend | - |
callerid_tag | このエンドポイントの内部id_tag | Custom | - | - |
context | 着信時のダイヤルプランcontext名 | String | default | - |
direct_media_glare_mitigation | 再INVITEグレア時のダイレクトメディア緩和 | Custom | none | - |
direct_media_method | ダイレクトメディアのメソッド | Custom | invite | - |
trust_connected_line | コネクテッドラインの更新を受け入れる | Bool | yes | - |
send_connected_line | コネクテッドラインの更新を送出する | Bool | yes | - |
connected_line_method | コネクテッドラインのメソッド | Custom | invite | - |
direct_media | ダイレクトメディアを使用するか | Bool | yes | - |
disable_direct_media_on_nat | NAT時にダイレクトメディアを無効化するかどうか | Bool | no | - |
disallow | 使用を禁止するCODEC | Custom | - | disallow=ulaw |
dtmf_mode | DTMFモード | Custom | rfc4733 | - |
media_address | SDPのメディアハンドリングで使用するIPアドレス | Custom | - | - |
bind_rtp_to_media_address | RTPセッションをmedia_addressで指定したアドレスで行うかどうか | Bool | no | - |
force_rport | リターンポートを強制使用する | Bool | yes | - |
ice_support | NAT時にICEを使用するかどうか | Bool | no | - |
identify_by | このエンドポイント識別に使用する情報をカンマ区切りれ列挙 | Custom | "username,ip" | - |
redirect_method | リダイレクト時のメソッド | Custom | user | - |
mailboxes | 指定されたメールボックスが更新されたらNOTIFYを送る | String | - | - |
voicemail_extension | NOTIFY内で送るメールボックスの内線番号 | Custom | - | - |
mwi_subscribe_replaces_unsolicited | 要求されていないNOTIFYをMWIサブスクライブで置換 | Bool | no | - |
moh_suggest | デフォルトのMOHクラス | String | default | - |
moh_passthrough | - | Bool | yes | - |
outbound_auth | 発信時に使用する認証情報 | Custom | - | - |
outbound_proxy | アウトバウンドプロキシの指定.フルURIで記述 | String | - | - |
rewrite_contact | ContactヘッダをソースIPアドレスとポートでリライトするかどうか | Bool | no | - |
rtp_symmetric | RTPを対称にするかどうか | Bool | no | - |
send_diversion | Diversionヘッダを送出するかどうか | Bool | yes | - |
send_pai | PAIヘッダを送出するかどうか | Bool | no | - |
send_rpid | RPIヘッダを送出するかどうか | Bool | no | - |
rpid_immediate | 着信中(非応答)の呼にコネクテッドライン情報を送出するかどうか | Bool | no | - |
timers_min_se | セッションタイマーの寿命最小値 | uint | 90 | - |
timers | セッションタイマーを使用するかどうか | Bool | yes | - |
timers_sess_expires | セッションタイマーの寿命最大値 | uint | 1800 | - |
transport | このエンドポイントで使用するトランスポートの明示指定 | String | - | - |
trust_id_inbound | このエンドポイントで識別情報を受け取る | Bool | no | - |
trust_id_outbound | このエンドポイントの識別情報を送出する | Bool | no | - |
use_ptime | エンドポイントのsリクエストのパケット化間隔 | ? | no | - |
use_avpf | このエンドポイントでAVPFを使う | Bool | no | - |
media_encryption | メディアの暗号化を行う | Bool | no | - |
media_encryption_optimistic | このメディアの暗号化を行うが失敗しても失敗として扱わない | Bool | no | - |
g726_non_standard | 標準ではないG.726を使う | Bool | no | - |
inband_progress | インバンドプログレス(リンギング)を使う | Bool | no | - |
call_group | ピックアップグループの番号 | Custom | - | - |
pickup_group | ピックアップ可能なピックアップグループの番号 | Custom | - | - |
named_call_group | ピックアップグループの名前 | Custom | - | - |
named_pickup_group | ピックアップ可能なピックアップグループの名前 | Custom | - | - |
device_state_busy_at | 使用中のチャネル数がこの数に達するとデバイスステータスでBUSYを返す | uint | 0(無制限) | - |
t38_udptl | T.38 UDPTLを使用するかどうか | Bool | no | - |
t38_udptl_ec | T.38 UDPTLのエラー修正方法 | Custom | none | - |
t38_udptl_maxdatagram | T.38 UDPTLの最大データグラムサイズ | uint | 0 | - |
fax_detect | CNGトーン検出を行うか | Bool | no | - |
fax_detect_timeout | fax_detect実行の無効化までの時間(秒数) | uint | 0 | - |
t38_udptl_nat | UDPTLセッションでのNATの使用 | Bool | no | - |
t38_bind_rtp_to_media_address | UDPTLセッションをこのメディアアドレスで使用する | Custom | no | - |
tone_zone | チャンネルが使用するトーンゾーン(国) | Custom | - | - |
language | このエンドポイントの言語 | Custom | - | - |
one_touch_recording | ワンタッチ録音を許可するかどうか | Bool | no | - |
record_on_feature | ワンタッチ録音開始時に使う機能 | Custom | automixmon | - |
record_off_feature | ワンタッチ録音終了時に使う機能 | Custom | automixmon | - |
rtp_engine | チャンネルで使用するRTPエンジン | Custom | asterisk | - |
allow_transfer | SIP REFERでの転送を許可するかどうか | Bool | yes | - |
sdp_owner | SDPのusername部分を指定する文字列 | String | """-""(-の文字)" | - |
sdp_session | SDPのセッションs行で使用する文字列 | String | Asterisk | - |
tos_audio | オーディオストリームのDSCP TOSビット | Custom | 0 | - |
tos_video | ビデオストリームのDSCP TOSビット | Custom | 0 | - |
cos_audio | オーディオストリームの優先度 | Uint | 0 | - |
cos_video | ビデオストリームの優先度 | Uint | 0 | - |
allow_subscribe | エンドポイントのsubscribeを許可 | Bool | yes | - |
sub_min_expiry | subscribeの最短寿命時間 | Uint | 0 | - |
from_user | このエンドポイントに使用されるFromヘッダのユーザ名 | Custom | - | - |
mwi_from_user | MWIのNOTIFYで使われるFromのユーザ | String | - | - |
from_domain | このエンドポイントに使用されるドメイン | String | - | - |
dtls_verify | ピアの認証証書を確認するかどうか | Bool | no | - |
dtls_rekey | TLSセッションとrekeyの再ネゴシエーション間隔 | Custom | 0 | - |
dtls_auto_generate_cert | 一時的DTLS認証証書の生成を有効にするかどうか | Bool | no | - |
dtls_cert_file | 認証証書のパス | Custom | - | - |
dtls_private_key | 認証証書のプライベートキーのパス | Custom | - | - |
dtls_cipher | DTLSネゴシエーションで使用する暗号化方式 | Custom | - | - |
dtls_ca_file | CA証書へのパス | Custom | - | - |
dtls_ca_path | CAファイルを含むディレクトリへのパス | Custom | - | - |
dtls_setup | DTLS接続の方向 | Custom | - | - |
dtls_fingerprint | SDPに入れるフィンガープリントに使用するハッシュ | Cuatom | (SHA-256) | - |
srtp_tag_32 | 80バイトではなく32バイトタグを使うかどうか | Bool | no | - |
set_var | チャンネルが生成された際に設定するチャネル変数.複数のset_varを列挙することで複数の変数を設定できる | Custom | - | - |
rtp_keepalive | RTPが流れていない場合にコンフォートノイズのRTPを流す間隔 | uint | 0 | - |
rtp_timeout | RTPが受信されない場合にハングアップするまでの秒数 | uint | 0(無効) | - |
rtp_timeout_hold | 保留中にRTPが受信されない場合にハングアップするまでの秒数 | uint | 0(無効) | - |
contact_user | このエンドポイントから発信する際のContactヘッダを指定 | Custom | - | - |
incoming_call_offer_pref | SDPのCODECオファー順序(着) | Custom | local | - |
outgoing_call_offer_pref | SDPのCODECオファー順序(発) | Custom | remote_merge | - |
preferred_codec_only | 優先CODECのみ使用 | Bool | no | - |
asymmetric_rtp_codec | RTPのCODECを非対称で使用するかどうか | Bool | no | - |
refer_blind_progress | "ブラインド転送時に詳細な情報を送出(Mitel,Aastra,Snomではnoに設定)" | Bool | yes | - |
notify_early_inuse_ringing | dialog-infoのearlyでINUSEとRINGINGを通知 | Bool | no | - |
max_audio_streams | オーディオストリームの最大値 | Uint | 1 | - |
max_video_streams | ビデオストリームの最大値 | Uint | 1 | - |
webrtc | "yes'に設定すると以下の値を設定する.media_encryptions=dtls.dtls_verify=fingerprint,dtls_setup=actpass.dtls_cert_fileとdtls_ca_fileは明示指定する必要あり." | Bool | no | - |
incoming_mwi_mailbox | 入りのMWI NOTIFYのメールボックス名 | String | - | - |
follow_early_media_fork | - | Bool | yes | - |
accept_multiple_sdp_answers | 発信時にUASが前回とは異なるSDP属性で応答するのを許容するかどうか | Bool | no | - |
suppress_q850_reason_headers | Q.850ヘッダを抑止するかどうか | Bool | no | - |
ignore_183_without_sdp | SDPを含まない183を転送しない | Bool | no | - |
stir_shaken | STIR/SHAKENを行う | Bool | no | - |
stir_shaken_profile | stir_shaken.confで指定されたプロファイルを記述する | Custom | - | - |
allow_unauthenticated_options | 認証なしのOPTIONSを受け入れる | Bool | no | - |
geoloc_incoming_call_profile | 着信時のジオロケーションプロファイル | Custom | - | - |
geoloc_outgoing_call_profile | 発信時のジオロケーションプロファイル | Custom | - | - |
send_aoc | AOCを送出するかどうか | Bool | no | - |
IDENTIFY(res_pjsip_endpoint_identifier_ip)
type=identify
項目名 | 内容 | 種類 | デフォルト | 記述例 |
---|---|---|---|---|
endpoint | 識別するエンドポイント名 | String | - | |
match | 一致させるIPアドレスまたはネットワーク | Custom | - | match = 192.168.100.1 |
match_header | 一致させるヘッダ/値のペア | String | - | match_header = SIPHeader: 値 |
srv_lookups | ホスト名解決にSRV参照を使用するかどうか | Bool | yes |
REGISTRATION(res_pjsip_outbound_registration)
type=registration
項目名 | 内容 | 種類 | デフォルト | 記述例 |
---|---|---|---|---|
auth_rejection_permanent | 認証失敗時に恒久的失敗として扱う | Bool | yes | |
client_uri | アウトバウンドレジスト時に使用するクライアントのSIP URI | String | - | |
contact_header_params | Contactヘッダに入れるパラメータ | String | - | - |
contact_user | リクエスト内のコンタクトユーザ | String | - | |
endpoint | 着信時に使用するエンドポイント | String | - | 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_random_initial_delay | 初期REGISTERでランダムに遅延させる最大の秒数 | uint | 10 | - |
max_retries | レジスタ試行回数 | uint | 10 | |
server_uri | レジスタ先のサーバURI | String | - | |
outbound_auth | このレジスタの認証情報 | Custom | - | outbound_auth=セクション名 |
outbound_proxy | レジスタ先のアウトバウンドproxyのFull SIP URI | String | - | - |
retry_interval | レジスタ失敗時の再試行間隔(秒) | uint | 60 | - |
security_mechanisms | サポートされるセキュリティメカニズムのリスト | Custom | no | - |
security_negotiation | セキュリティネゴシエーションで使用するメカニズム | Custom | no | 注:現在のところmediasecのみ指定可能 |
server_uri | レジストするサーバのSIP URI | String | - | - |
support_outbound | SIP Outbound Support(RFC5626)のアドバタイズを有効にするかどうか | Bool | no | - |
support_path | レジスタ時のPATHサポートの有効無効 | Bool | no | |
transport | このReg.が使用するトランスポート | String | - | 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は非対象) | Custom | - | - | |
ca_list_path | 読み込む認証証書のリストが入っているファイルへのパス(TLSのみWSSは非対象) | Custom | - | - | |
cert_file | エンドポイントの認証証書(TLSのみWSSは非対象) | Custom | - | - | |
cipher | 優先する暗号化方式(TLSのみWSSは非対象) | Custom | - | - | |
cos | COS値 | uint | 0 | - | |
domain | "入り"方向のドメイン | String | - | - | |
external_media_address | RTPを扱う際の外部IPアドレス | String | - | - | |
external_signaling_address | SIPを扱う際の外部IPアドレス | String | - | - | |
external_signaling_port | SIPの外部ポート番号 | uint | 0 | - | |
local_net | NATを使用する場合にローカルとして扱うアドレス | Custom | - | - | |
method | SSLトランスポートのメソッド | Custom | - | - | |
password | トランスポートに必要とされるパスワード | String | - | - | |
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