asterisk + tailscale でかんたん拠点間通信
sip で簡単に内線が構築できるasteriskですが、iax.conf
をちゃんと設定すれば拠点間内線を構築することもできます。
ただし片方がインターネット経由で見えている必要があり、そのためのVPNの設定が非常に難しかったりします。
これを簡単にVPNを構築できるtailscaleを用いることで、簡単に実装することができたのでこちらに手順を掲載します。
asteriskのインストール
こちらに沿ってインストールしてください。
tailscaleのインストール
基本的にはasteriskを構築したLinuxサーバー上に構築します。
下記を参照されてください。
コマンドは2行です。簡単!
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up
上記コマンド後、Googleなど各種IDによるサインインが発生しますので、そちらに沿って進められてください。
tailscaleのIPアドレスの確認
下記にログインし、マシンごとのIPアドレスを確認してください。
次のiax.conf
の作成に必要となります。
iax.conf
2拠点ごとのiax.conf
とextensions.conf
を作成していきます。
該当箇所のみ記述しますので必要に応じて各自のconfファイルに追記してください。
拠点A側のconfファイル
[forB]
type=friend
username=【適当なユーザ名】
secret=【適当なパスワード】
host=【相手のIPアドレス】
disallow=all
allow=ulaw
context=default
exten=> _22.,1,Set(CALLERID(num)=21${CALLERID(num)})
same=>n,Dial(IAX2/【拠点B側のユーザ名】:【拠点B側のパスワード】@forB/${EXTEN:2})
拠点B側のconfファイル
[forA]
type=friend
username=【適当なユーザ名】
secret=【適当なパスワード】
host=【相手のIPアドレス】
disallow=all
allow=ulaw
context=default
exten=> _21.,1,Set(CALLERID(num)=22${CALLERID(num)})
same=>n,Dial(IAX2/【拠点A側のユーザ名】:【拠点A側のパスワード】@forA/${EXTEN:2})
繋がっているかの確認
こちらは実際にぶら下げて通話してみると良いと思います。
下記のようなLogが確認できました。
iax2 show peers
iax2 show registry
などで確認もできるようですが、うまくレジストできているのかどうかまでは実際に確認できませんでした。
最後に
こちらにはasterisk側の設定のみ掲載いていますが、実際はufw
によるファイアウォールや、fail2ban
による攻撃対策が必要だと思います。
asteriskは本当に自由度が高くて面白いですが、ネットワークはつながらない要素がとても多いです。
使う側のリテラシーも様々ですので、使う際はできるだけ信頼のおける機器で行うようにした方が良いと思います。
Discussion