匿名

差分

Asterisk pjsip NAT

2,251 バイト追加, 2020年8月14日 (金) 13:16
ページの作成:「== Asteriskサーバがグローバル、端末がNAT背後の場合 == Asteriskサーバ側がグローバルIPアドレスを持ち、それにアクセスする端末...」
== Asteriskサーバがグローバル、端末がNAT背後の場合 ==
Asteriskサーバ側がグローバルIPアドレスを持ち、それにアクセスする端末側がNAT背後にある場合、pjsip.confのtype=endpoint、type=aorのセクションに次のように記載します。
<nowiki>
[201]
type = aor
max_contacts = 1
qualify_frequency = 1000

[201]
type = endpoint
context = default
disallow = all
allow = ulaw
rtp_symmetric = yes
rewrite_contact = yes
direct_media = no
auth = 201
outbound_auth = 201
aors = 201</nowiki>

重要なのはdirect_media, rtp_symmetric, rewrite_contactです。direct_mediaをnoにすると、端末間通話で常にAsteriskが映像・音声を中継しますから、NATの背後の端末同士の通話が可能となります。<br>
rtp_symmetric, rewrite_contactの設定は従来のsip.confではnat=yesに相当します。
また相手(端末側)のNATテーブルをキープするためにtype=aorのセクションに'''qualify_frequency=1000'''(単位はミリ秒)を記述しておくと良いでしょう。遅延の大きい端末相手ならば2000あたりに設定します。

==AsteriskサーバがNAT背後==
この場合は、通信相手となる端末または回線(ITSP)の状況にも大きく依存するようですが、下記の手段が有用と思われます。
===対応1===
pjsip.confのtype=transportのセクションで次のように記載します。
<nowiki>external_media_address=fqdnhostname.example.com
external_signaling_address=fqdnhostname.example.com
local_net=192.168.0.0/16
local_net=127.0.0.1/32</nowiki>

external_media_address, external_signaling_addressにはグローバルIPアドレス、またはDDNS(Dynamic DNS)サービスを利用しホスト名(FQDN)を記載します。

ルータのNATを調整し、SIP(5060/UDP)とRTP(デフォルトでは10000~20000/UDP)をAsteriskサーバのプライベートIPアドレスに向けます。<br>
ただし、これらの対処を行ってもRegisterできないITSPがあります。<br>

===対応2===
上記の方法で解決しない場合、SIP-NAT機能を持つルータを使えば解決する場合があるとのことですがpjsipを使用する場合の詳細は未検証。<BR>