見出し画像

0AB~J電話回線を Yeastar TA410 FXO ATA を使って Twilio に収容

以前、定番の FXS/FXO ATAゲートウェイ、Grandstream HT813 を使ってアナログ電話回線(PSTN)を SIP として、Twilio に収容する方法を紹介した。

今回は、中華人民共和国Yeastar社の 4回線FXS ATAゲートウェイ、Yeastar TA410 を使って同じように Twilio に収容。発信、着信する方法を紹介する。

なお本製品は総務省の技術基準適合認定等を受けていないので NTTなどのアナログ回線に繋いで使うことはできない。本記事では、SoftBank のレンタルルータ兼FXSゲートウェイの、光BBユニットに接続して使用している。

本機のような FXOゲートウェイを使うことで、03 や 06、052 といった各社光電話サービスで使っている番号(0AB~J番号)を、Twilio から使えるようになる。(Twilio だけでは、日本国内では 050番号しか使えないため)


Yeastar TA410/810 とは


Yeastar社は中華人民共和国福建省厦門(アモイ)で 2006年に創業した VoIP用デバイスを開発、製造しているメーカで、今回紹介する FXOゲートウェイの TA410、兄弟機の TA810、TA1610 や、FXSゲートウェイの TA400、TA800、TA1600 などを製造、販売している。



今回紹介する TA410 はアナログ回線 4回線を収容するモデルだが、さらに回線数が要る場合は 8回線用の TA810、16回線用の TA1610 もある。

凝った製品というわけではなく、組み込み用Linux の上で Asterisk を動かしているだけだ。


SSH でもログインできる。管理画面から SSHサービスを有効にして、TCP/IP 8022ポートにユーザ名root、パスワードys123456 でログインできる。

他にも小型の IP-PBX などもあって、同社の製品を組み合わせてアナログ回線と SIP電話機でビジネスホンのシステムを組み事もできる。

面白い製品だと、3G/LTE 回線に接続するための TG というシリーズもあってこれを使うとウェブの画面や API で SMS の送受信を行ったり、SIPアカウント経由で 3G/LTE 回線に発信したりすることができる。(日本だとオレオレ詐欺などを行う犯罪集団が機械的に架電するのに使ったりするので、この手の製品を購入すると関係機関にマークされる可能性がある。もちろん、犯罪に使うのは以てのほかだが、自身で使っている携帯電話回線の発着信は固定電話機と使いたい、といった需要に応えることができる。ただし、やはりこちらの製品も総務省の技術基準適合認定等を受けていないため、日本国内で電波を使う使い方として使用することができない)


Twilio での設定


Twilio側の設定は、前回の Grandstream HT813 を使った接続と同じものをそのまま流用するので新たに設定しない。

前回の記事を参照して 3つの SIP Domain、1つの着信用TwiML Bin、1つの発信用Studio Flow を作成して欲しい。

しかし、相性問題の関係で、一部の設定を変えたのでそちらだけ紹介しておく。




変更するのは、発信用の Studio Flow(outgoing-ata-gateway) の、CONNECT CALL TO の、CALLER ID の欄で、前回はフィルタを使って SIP URI の @ より前の部分だけを切り取って使っていたが、そもそも発信時に CALLER ID の設定は不要(FXS ATA後にキャリア側で書き換えられてしまう)なので、USERNAME と同じものを入力する。

今回は紹介しないが、複数の PSTN回線を収容しており、どの回線から発信するか、といった制御を行いたい時は、この USERNAME=CALLER ID を各回線用に設定することで、TA410側で発信に使うポートを特定する。


ルータの設定


次にルータも設定しておく。基本的には前回の HT813 を使ったときの設定をそのまま使えるようにしたいと思うが、TA410 の RTPポートとして UDP/IP 21000~22000ポートを割り当てるので、ルータの設定でこのポート宛のパケットを、TA410 に投げるようにする。

以下は、YAMAHA RTX1200 を使った ip filter と nat-masquarade の設定で、TA410 は IPアドレス、172.30.128.152/24 を割り当てている。

pp select 1
 ip pp secure filter in 42001 42002 42003 42011 42012 42021 42022 42023 42031 42041 42051 42061 49996 49997 49998 49999
 ip pp nat descriptor 1
 netvolante-dns hostname host pp server=1 ht813.aa0.netvolante.jp
 
 pp select none
 
ip filter 42001 pass 54.172.60.0/30 172.30.128.152/32 udp * 5062-5063
ip filter 42002 pass 54.172.60.0/23 172.30.128.152/32 udp * 10000-20000
ip filter 42003 pass 34.203.250.0/23 172.30.128.152/32 udp * 10000-20000
ip filter 42011 pass 54.244.51.0/30 172.30.128.152/32 udp 5062-5063
ip filter 42012 pass 54.244.51.0.24 172.30.128.152/32 udp 10000-20000
ip filter 42021 pass 54.65.63.192/30 172.30.128.152/32 udp * 5062-5063
ip filter 42022 pass 54.65.63.192/26 172.30.128.152/32 udp * 10000-20000
ip filter 42023 pass 3.112.80.0/24 172.30.128.152/32 udp * 10000-20000
ip filter 42031 pass 54.172.60.0/30 172.30.128.152/32 tcp * 5062-5063
ip filter 42041 pass 54.244.51.0/30 172.30.128.152/32 tcp * 5062-5063
ip filter 42051 pass 54.65.63.192/30 172.30.128.152/32 tcp * 5062-5063

ip filter 42061 pass * 172.30.128.152/32 udp * 21000-22000

ip filter 49996 reject * * udp * 21000-22000
ip filter 49997 reject * * udp * 5060-5063
ip filter 49998 reject * * udp * 10000-20000
ip filter 49999 pass * * * * *

nat descriptor type 1 masquerade
nat descriptor address outter 1 ipcp
nat descriptor address inner 1 auto
nat descriptor sip 1 on
nat descriptor masquerade static 1 21 172.30.128.152 udp 5062-5063
nat descriptor masquerade static 1 22 172.30.128.152 udp 10000-20000
nat descriptor masquerade static 1 23 172.30.128.152 udp 21000-22000

ip filter 42061、49996、nat descriptor 1 23 が新たに加わった行。


Yeastar TA410 の設定


Yeastar TA410 には LANポートが 1ポートだけついている。ユーザマニュアルには、DHCP Server のある環境で接続すれば自動で IPアドレスを拾うようなことが書かれているがこれは初期のファームウェアの仕様で、最新のファームウェアの場合は、192.168.5.150/24 が固定で設定されている。

設定に使うパソコンに 192.168.5.1/24 を固定で割り当てて、ウェブブラウザから 192.168.5.150 にアクセスし、自身のネットワーク環境にあった設定に変えて再起動する。

デフォルトのユーザID は admin、パスワードは password なのでログイン後、変更しておく。(本体にラベルで貼ってある)


管理画面にログインするとこのようなメニューになっている。


IPアドレスの設定だけ済ませた状態。


時差と ntp を設定する。


回線種別を設定する。FXO Mode を JAPAN にする。


発信の設定


まずは発信、Twilio から SIP INVITE を Yeastar TA410 に投げて、PSTN(今回は 光BBユニットの FXSポート)から電話を発信する設定を行う。


SIP SettingsGeneralUDP Port5062 に、RTP Port Start21000 に、RTP Port End22000 に設定する。

このあたりはルータの設定と合わせれば良い。上記、Twilio で前回の設定を引き継いだので同じポート、UDP/IP 5062 を使ったが、推測されにくいポート番号を使ったほうが良い。(5060 などの既知のポートを使うと、大量の SIP spam が来るため)


Codecsu-law だけにする。Twilio は u-lawa-law しか使えない。


VoIP Trunk を作成する。TA410 では、Trunk Type として AccountTrunkService Provider(SPS)の 3種類がある。

Account は TA410自身が SIP Server(SIP Proxy)となって外部からの SIP INVITE を受け取るような動作になる。

Trunk は TA410 が SIPクライアントとなって外部SIP Server に SIP REGISTER してその SIP Server からの着信を受ける。Asterisk などと接続する際は、この Trunk が使いやすいが、Twilio では SIPクライアントを SIP Trunk の接続先として使えない(接続先がクライアントのみになっていて、接続先が SIP Trunk になっていて発信する状況を想定していないので、任意の SIP URI(番号)を INVITE できない)。

SPS は信頼できる相手から認証無しでパケットを受け取る方法で、Twilio のように相手の IPアドレスが分かってる場合は使えなくはないが、Twilio を使っている他のユーザからの SIP spam を防げないので、LAN内にある外部との SIP Proxy と接続する場合などに使う設定と考えれば良い。

今回は、Twilio から発信用の SIP Trunk として使いたいので、Trunk Type は Account とする。

Name と Account は同じにしておく。Name は、SIP INVITE のときの、From に設定される SIP URI の、@ から前の部分になる。

Account は SIP Authentication で送られてくる Username で、Twilio の場合は From(Caller ID)とは別に設定できるが今回は同じにした。

Password は SIP Authentication で送られてくる Password で、Twilio の発信用Studio Flow で設定した SIP Password を使う。


外部からのパケットはルータで静的マスカレードを設定しているので、Keep Alive の設定は不要のはずだ。Keep Alive TypeDisabled にしておく。

通話中に切れてしまうようであれば、SIP OPTIONS などを定期的に送るように設定する。


次にいま作った VoIP Trunk を、FXOポートに結びつける。

Routes SettingsIP->Port で、Add IP->Port Route をクリックして新しいルーティングを作成する。


Simple ModeNo にする。

Route Name はわかり易い名前にする。

Call Source に先ほど作成した VoIP Trunk を指定する。

Inbound Caller Pattern は、SIP INVITE で送られてくる From の SIP URI の @ から前の部分を指定する。先程の VoIP Trunk で設定したものと同じ(= Twilio の発信用Studio Flow の CallerID と同じ)にする。ここが一致しない SIP INVITE は不正な発信元ということで、破棄されてしまう。

Two Stage DialNo にする。これは Twilio が SIP接続時に DTMFトーンを発信することができないため。

ここまで設定すれば、Twilio の client.052xxxxxxx.sip.twilio.com に SIP REGISTER したクライアントから、発信することができるようになるはずだ。


見づらくて申し訳ないが、Twilio に SIP REGISTER してる GRANDSTREAM WP820(左の端末)から携帯電話に発信してる。携帯電話側が povo 2.0 の回線なので発信元の電話番号が +81 からになっているが、050-1389-xxxx の回線(光BBユニットに収容されている BBフォンの回線)からかかっていることがわかる。


着信の設定


こんどは逆の着信、PSTN(今回は 光BBユニットの FXSポート)宛に掛かってきた電話を Yeastar TA410 で受けて、SIP で Twilio へ接続する設定を行う。


今度は着信用の VoIP Trunk を作成する。今度は、Yeaster TA410側が SIPクライアントとなって Twilio宛に発信するような動作なので難しいことはない。

VoIP TrunkAdd New Trunk で新しい SIP Trunk を作成する。TypeTrunk とする。

Provider Name は識別用なのでなんでもよい。今回は TwilioInbound とした。

Hostname/IPDomainUser Name は SIP REGISTER で使われる SIP URI で、Hostname/IP で設定したホスト(要する SIP Proxy)宛に、

sip: (User Name) @ (Domain) : (port)

で SIP REGISTER が送られる。


Advanced タブで Keep Alive TypeOptions にする。これはルータの NAPT設定が消えないようにするため。(TCP/IP と違って UDP/IP はセッションという考え方がないので、30秒程度で NAPT を消してしまうルータもある)

Codecu-law だけ指定してあとは None にしておく。


次に、いま作った VoIP Trunk を、FXOポートに結びつける。

Routes SettingsPort->IP/Port で、Add Port->IP/Port Route をクリックして新しいルーティングを作成する。

Simle ModeYes にする。Route Name は識別用なのでわかりやすければなんでもよい。今回は callFromPSTN にした。

Call SourcePort1 - FXO1 を選択する。(もちろん他のポートを使う場合はそのポートにする)

Call Destination に先ほど作った VoIP Trunk を指定する。

Hotline は SIP INVITE する際の、To 欄で使われる。Twilio 側の設定に合わせる。


最後にナンバーディスプレイを取得するための設定を行う。

FXO Port List で Port 1 を選択し、Others タブを開く。

Caller ID StartPolarity(回線の極性反転)にし、Caller ID Signalingv23 - Japan にする。

このあたりの設定は使っている回線との相性だが、うちの環境だと Polarity + v23 Japan、もしくは Polarity + v23 Japan Pure しかナンバーディスプレイは取得できなかった。Ring や Before Ring でも着信は受けられるが CallerID が Unknown になってしまう。


ここまで設定すると着信を受けることができるようになる。


また見づらくて申し訳ないが、携帯電話から BBフォンの番号に発信し、Twilio に収容した GRANDSTREAM WP820 にかかってきていることがわかる。


使ってみた感想


長期間の動作テストを行った訳では無いが、本記事を執筆するためにいろんな設定を行ってみた。

正直言うと、ものすごく使いづらい。Grandstream の製品と違って設定画面は機能に合わせて分類されているのでわかりやすいものの、細かい設定ができないこと、設定した内容がどう反映されるのか予想しづらいこと、が設定する上でやりにくかった。

さらに CPU などのハードウェアが貧弱なので少しでも難しい処理をやらせようとするとハングアップしてしまい、一度ハングアップするようになるとファクトリーリセットしないと復旧できなくなってしまう。

通話を終えたあと、しばらく時間を置かないと次の通話を受けることができない。このあたりはハードウェアの性能の限界が低すぎるように感じる。

なおファクトリーリセットの方法は、電源プラグを抜いたあと、ウラのリセットボタンをボールペンの先で押したたまま、電源プラグを差し込んで 5秒以上置いてからリセットボタンを離す。3分ほど待つと、最初の状態に戻る。(IPアドレスなどもリセットされる)

中身は Linux + Asterisk なので、SSH で入って設定内容などを確認することもできるが、ウェブの画面と簡易なマニュアルだけで使いこなすのは難しそうだな、という感想だ。

syslog も取れないので本体で保存するログファイルを使うしか無いが、これも内容がわかりづらく、デバッグの助けには力不足と言わざるをえない。(もちろん、Linux だと考えて勝手に syslog を設定してしまえば良いが、、、)

私がいつも Grandstream の製品をチャチいと言っているが、Yeastar の製品はもっとチャチい。どこから見てもいかにも中華という作りなので、業務などで使うのであればまだ Grandstream HT813 のほうが使いやすいと思う。


さいごに


技術的な小難しい話題でしたが、最後まで読んでいただいてありがとうございました。

よければ ↓ にある、♡ をクリックしていただけると励みになります。質問のコメントも歓迎です。


目次


twilio で電話をクラウド化

クラウドPBX、twilio で 050番号から外線発信

クラウドPBX、twilio で着信

クラウドPBX、twilio で内線通話

twilio に SIPクライアントを追加するときの注意(特にスマホ)

クラウドPBX、twilio を VoIPフォンで使う(Panasonic KX-UT248)

VoIP回線でファックスを使う

twilio + GRANDSTREAM GRP2613

twilio + GRANDSTREAM GXP1625

twilio + GRANDSTREAM VoIPフォンでカスタム保留音

アナログ電話回線を FXO ATA、Grandstream HT813 を使って Twilio に収容

0AB~J電話回線を Yeastar TA410 FXO ATA を使って Twilio に収容 (この記事)


この記事が気に入ったらサポートをしてみませんか?