Asterisk WSL
ニーズがあるかどうかわかりませんが。WindowsでAsteriskを動かす方法。
注意:この記事の内容はWindows 10 April 2018 Update以降で動作を確認しています。以前のWSLではLinux上のプログラムがlistenできなかったので正しく動作しません。
基本条件
Windows 10のWindows Subsystem for Linux(WSL)を使用します。
まずこのあたりを参考にWindowsにUbuntuをインストールしてください。
このページではUbuntuを前提にセットアップを行います。
作業は基本的にWSLのbash上でsudo -sしてから行います。
パッケージの追加
apt-get install gcc g++ apt-get install make apt-get install ncurses-dev apt-get install sqlite apt-get install libsqlite3-dev apt-get install uuid-dev apt-get install libjansson-dev apt-get install libxml2-dev
Asteriskをコンパイルするのに最低限これらのパッケージが必要です。
Asteriskのコンパイルとインストール
ごく普通に
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz tar zxvf asterisk-13-current.tar.gz cd asterisk-13.21.1 ./configure make make install make samples
で、Asteriskのインストールができます。make samplesやった後の設定ファイルはじゃまくさいので
cd /etc/asterisk rm * wget https://voip-info.jp/downloads/asterisk/conf/conf-sample-13_0627.tar.gz tar zxvf conf-sample-13_0627.tar.gz
をやっておくとAsterisk_13_サンプル設定ファイルファイルが使えます(セキュリティには注意。デフォルトでインターネット上に放置しないように)。
PJSIP付きでコンパイルしたい場合には13.8.0以降ならば
./configure --with-pjproject-bundled
を実行してからmakeしてください。
Windowsファイアウォールの設定
Windows Defenderの設定を開きます(CortanaにWindows defとか入力すると見つけるのが早い)。
左のメニューの詳細設定をクリック
左の受信の規則をクリック
右の新しい規則をクリック
新しい規則でポートを指定
ここではAsterisk標準で説明します。UDPで5060を指定
接続を許可するを指定
プロファイルにプライベートとドメインを指定。
注意:この部分は使用しているネットワーク環境に応じて設定してください。
適当な名前を付けて保存します。Asterisk-SIPなど。
同様にしてRTPも新しい規則として登録します。
サンプル設定ファイル標準ならUDPの10000-20000を開けておきます。
注:サンプル設定ファイルでPJSIPも使いたい場合には5070/UDPを開けるのも忘れないように。
Asteriskの起動と停止
bash上からフォアグラウンド起動するなら
asterisk -vvvc
で起動するとフォアグラウンド起動します。
バックグラウンド起動したければ普通に
asterisk
を実行すると裏に回るので、CLIに入りたい場合にはasterisk -vvvcrで入ります。
ただし、裏に回した状態でbashからexitしてもWindows上のプロセスとして残るので注意してください。
まあデーモンになるので、この方が便利といえば便利なのですが。
Asteriskのmake時にmake configをやっておけば/etc/init.d/asterisk startも効きます。
ソフトフォンとACL調整
Asteriskを動かしているWindows機上で同時にソフトフォンを使おうとすると、サンプル設定ファイルを使用してる場合にはAsteriskのACLで弾かれます。sip.confの以下の箇所を調整してください。
;ACL ;安全措置のため192.168系以外は受け付けない ;他のネットワークを使用している場合にはここを変更すること deny=0.0.0.0/0 permit=192.168.0.0/255.255.0.0 permit=127.0.0.0/255.0.0.0 <--この行を追加する
1行追加したらCLIでsip reloadして有効化してください。
同一マシン上のWindows上のソフトフォンから使用する場合、Asteriskサーバとして127.0.0.1(localhost)を指定すれば内線として使用できます。