4,758
回編集
差分
編集の要約なし
=大前提の注意!=
・このページではAsterisk、ヤマハ NVR500、ひかり電話を組み合わせます<br>
Asteriskの設定ファイルのベースは [[Asterisk_20_サンプル設定ファイル]]<br>
NVR500 Rev.11.00.43<br>
===参考===
NVR500でなくともRTXシリーズでSIP-NATが使える機種ならば同様の設定でひかり電話に収容してAsteriskが動作できます。<br>
ただしRTX系はアナログポートを持たないのでAsteriskのATA代わりに使用することはできません。
=目論見=
| +----[IP Phone]内線
|
| Asteriskの内線(ATAとして動作)
+--analog---[phone/fax]
NVR500はいい加減古いのですが、この使い方ならAsteriskを活用できそうですし、市場では中古で安いのが出回っているのでAsteriskで遊びたい向きには最適です。この先、アナログ搭載の新製品は出なさそうな気もしますし。おそらくですがNVR510も同じ方法で使えると思います。<br>
余談ですが中古でNVR500買った方が新品のATA買うより安いし、DP対応してるしでATA買うよりこっちの方がいいんじゃ?<br>
※もしかしてNVR500をB2BUAみたいに使う手段ってあります?知ってる人がいたら教えてください。<br><br>最終的にこういう接続になります。 ===光回線===[ONU]---[NVR500]-----[Asterisk Server] LAN2 <**PPPoE**>NAT(masquarade) Internet <**DHCP**>NAT/SIP-NAT ひかり電話Asteriskが入っているサーバはインターネット接続も、ひかり電話接続もNVR500に対して投げる/受けるかたちとなります。
=ひかり電話情報の取得=
Default gateway: デフォルトゲートウェイ
これをメモかキャプチャして保存しておいてください。Asteriskの設定で必要になります。<br>
この情報、要するにひかり電話端末に対するプロビジョン情報で機器類(まあAsteriskとか)の再起動毎に取得が必要なのかと思ってましたが、そんなことはなく基本的に変わらないようなので自動化しない方針にします。なのでもし発着信ができないような状態になった場合には再度この手順を行って設定情報を確認してください。<br>
情報が取得できたらNGNを使わないに設定してNVRを再起動します。
# ngn type lan2 off
SIPは使うに設定します。アナログポート関連の設定は後で。
# sip use on
==セキュリティ関連情報==
ここで解説している設定でAsteriskはNVR500の『後ろ』にあるものとしています。インターネット接続もNAT(マスカレード)で接続しているものとしています。グローバルIPアドレスを固定し、Asteriskをインターネット側に出しているような場合には以下の点に注意してください。
*ヤマハのSIP-NATは5060ポート固定のため5060番のトランスポートを開けています
*Asteriskが5060を「開けて」いるため固定IP(グローバル)で外に出していると外から5060が見えます
*5060を外から使用しない場合にはPPに対して5060ブロックフィルタを用いてください
通常のインターネット接続でNATを使用している場合、AsteriskはPPのNATビハインドにあるので通常は注意する必要はありません。ですが、外->内に対して5060を静的マスカレードしている場合にはSIPに対するセキュリティを施してください。もっともこの構成を従前から使用している場合には対策済みかと思います。<br>
LAN2のDHCPで取得したIPアドレスは、ひかり電話のIPアドレスのため、このアドレスに到達できるのは、ひかり電話からだけです。このため、それ以外の外(インターネット等)からは到達できませんので通常は対策不要のはずです。PPのアドレスとLAN2のDHCPアドレスは関係ありません(関係しないので明示的に経路を設定しました)。
=Asterisk(PJSIP)の設定=
==IDENTIFY==
identifyはIPアドレスだけなのでシンプルです。
[hikari-nvr]
type = identify
endpoint = hikari-nvr
match = 取得したSIPサーバのアドレス
==REGISTER==
認証情報は不要なので単にREGISTERするだけです。
==ENDPOINT==
endpointではSIP 5060のトランスポートを明示指定します。contextは着信用(incoming)にしてあります。DTMFモードはinbandです。認証情報が無いのでこちらもシンプルです。
[hikari-nvr]
type = endpoint
from_domain = 取得したSIPドメイン
aors = hikari-nvr
==/etc/hosts==
Asteriskの設定ファイルではありませんが、名前解決に使用します。libunbound付の場合には/etc/hostsに以下のようなエントリを書きます。
取得したSIPサーバのIPアドレス 取得したSIPドメイン
インターネット接続にNVR500を使用し、NVR500をDNSサーバとして使っている場合(まあこの場合が多いのでしょうが)にはNVR500にDNSエントリとして登録すればlinunboundなしでも使えると思います。にはNVR500にDNSエントリとして登録すればlinunboundなしでも使えると思います。例えば dns static a 取得したドメイン SIPサーバのIPアドレスのようにNVR500に登録すれば、DNSサーバとしてNVR500を使用することでlibunboundなしでも解決できると思います。
==pjsip.conf==
Objects found: 1
こんな感じでRegisterdになっていればOKです。<br><br>何をやったかというと、こういうことで ひかり電話 =====[ONU]-----[NVR500]-----[Asterisk] NAT/SIP-NAT <--------------------NVR500のひかり電話機能を使わず、NATとSIP-NATを使ってLAN内のAsteriskをひかり電話のネットワークへ出した(IPv4)わけです。
=発着信=
=謎&お悩み=
ちょっと懸念していることがあります。それはヤマハのSIP-UAが「どこ」に居るのかです。<br>
NGNを使うに設定していると、NVR500内のSIP-UA、要はボイスのUAが応答するのでアナログポートの電話が鳴ります。要はNGNオンの状態だとNVR500が網に対してREGISTERしています。UA、ボイスのUAが応答するのでアナログポートの電話が鳴ります。要はNGNオンの状態だとNVR500が網に対してREGISTERしています。<br>
ところがNGNをオフに設定、NVR500を再起動した場合に、過去、網に対して行ったREGISTERが生きているようで(網が覚えている)、NGNオフであっても着信でき、電話が鳴るという現象が観測されました。たぶんこういうことです。
今回の設定ではSIP-NATを使って外からの呼制御(5060)は内側のAsteriskに飛ばしています。ではその時、SIP-UAはどこに居るのか?です。NATデスクリプタの後ろに居て、明示的に設定されたデスクリプタ外で存在しているのならば問題はありません。今のところこの動作はうまくいっているようなので(Asteriskに飛ぶ)、目論見通りSIP-NATでAsteriskが使えていますが、SIP-UAは'A'の位置で制御をガメることはないのかが気になっています。時間経過で様子見していますが、今のところは大丈夫そうなのですが、SIPを使いつつ、ひかり電話の機能だけオフにするという設定がない(NGNオフだけども)のでちょっと気になっています。おかしな挙動を発見した場合には教えてください。<br>
おそらくsip use offにすれば完全にオフになるのですが、今回はアナログポートをATA代わりに使いたいのでオフにできないのです。アナログポートを持たないRTX等であればそれでもかまわないのですが、NVR500にはアナログ付いてますから単にルータとして使うのはもったいないじゃないですか。
=アナログポートを使う=
触ったのが久々すぎて設定がさっぱりわかりません。設定例がありました![[YAMAHA RT57i]] いや~助かります。誰だよこれ書いてくれたの。<br>
inbound_auth/password = c1a0e843d15fb8c9c6067fc099a302d5
aor/qualify_frequency = 0
analog supplementary-service pseudo call-waiting
analog extension dial prefix port=1 sip server=20001
こんな感じでPJSIPのcontactsに各エンドポイントが表示されるはずです。hikari-nvrがトランク、phone1は普通の電話機(ソフトフォン)、phone4がNVR500のアナログポート1です。
=そんなこんなで=
この接続方法には前日談があります。[https://note.com/tsq/n/n54ffb5edf451 たかはしのnote] に書いてありますので詳しい話はそちらで。<br>
もともとRTX+Asteriskでやってたのですが、NVR500を使っている人も少なくないのでは?というのとNVR500のアナログ(FXS)ポートが活用できるはずということで試してみたわけです。