89
回編集
差分
→対応2
==a) Asteriskサーバがグローバル、端末がNAT背後==
[[画像:Asterisk NAT1.gif|thumb|イメージ図]]
Asteriskサーバ側がグローバルIPアドレスを持ち、それにアクセスする端末側がNAT背後にある場合の対応は比較的簡単です。<br>
sip.confの各セクションに次のように記述します。<br>
この方法でフリースポットやM-Zoneなどのホットスポット系から使用できることを確認しています。<br>
==b) AsteriskサーバがNAT背後==
この場合は、かなりやっかいです。接続ないしRegisterする相手側がAsteriskの場合で、グローバルIPアドレスを持つ場合には相手にnat=yesを記述してもらえれば解決しますが、そうでない場合には対向先の状況にかなり依存するようです。<br>
===対応1===
externhost=sip.hogehoge.net
localnet=192.168.0.0/255.255.0.0
外側のIPアドレスが不明な場合にはDDNS(Dynamic DNS)サービスを利用するなどしてextenhostサービスを利用するなどしてexternhost=を記述します。<br>
ルータのNATを調整し、SIP(5060/UDP)とRTP(デフォルトでは10000~20000/UDP)をAsteriskサーバのローカルIPアドレスに向けます。<br>
ただし、これらの対処を行ってもRegisterできないITSPがあります。<br>
===対応2===
*ルータ自体のVoIP(IP電話)機能はオフにします
*(当然ながら)SIPとRTPのポートはフィルタで開けます
localnet=192.168.0.0/255.255.0.0
対応1の方法ではRegisterできなかったITSPも、これで使用できる場合があります。
===qualify===
NATテーブルの保持のためITSP接続時でも相手に対してqualifyを指定するとテーブル維持に効果があります。ただし、ITSP側から文句を言われる可能性はあります。
==c) Asteriskも端末もNAT背後==
a)とb)の方法を組み合わせます。なお、b)の方法を実施するには外側IPアドレスがわからなくてはなりませんので、DDNSを使用する必要があります。端末側からAsteriskに接続するにはDDNSで取得したFQDNを指定します。<br>
==d) どうしてもダメな場合==
IAXで接続させてくれるITSPを選択するのがベストでしょう。