FreePBX in Raspberry PiでOPUS Codecを使ってみる。

AcrobitsSoftphoneがなかなかG729コーデックに対応してくれないのでためしにOPUSコーデックを入れてみました!

前々からSoftphoneの設定にOPUSという項目があったのですこし気になっていた物のAsteriskでは正式対応していなかったので使えずにそのままに…

ふと、気になって調べてみると…

OPUSは低帯域用の高圧縮コーデックと広帯域用の高音質コーデックをリアルタイムで切り替え出来るものらしい。

6kb/s~512kb/sの帯域にリアルタイム対応可能という最強のコーデックという事が判明!

これは試してみないと!

 

と、いうことでRasPBXに組み込んでみます。

Asterisk-Opusで検索するとAsterisk用のパッチがいろいろ出てきます。

 

一番定番なのがAsterisk11.9にパッチを当てる物みたいなのでソレでテストしてみます。

●Apt-getで現在入っているAsteriskをアンインストールします。

sudo apt-get remove asterisk11

この作業をしないとAsteriskが更新された時にApt-get Upgradeで上書きされてOPUSが消えてしまうので注意!

設定ファイルは残しておけばOpus対応Asteriskを入れた時にそのまま使えます。

●必要なパッケージをインストール

apt-get update
apt-get install autoconf automake pkg-config
apt-get install libncurses5-dev
apt-get install uuid-dev
apt-get install libjansson-dev
apt-get install libxml2-dev
apt-get install libsqlite3-dev
apt-get install libssl-dev
apt-get install libopus-dev

●Asterisk11.9.0をダウンロードして解凍。

cd /usr/src
wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-11.9.0.tar.gz
tar zxvf asterisk-11.9.0.tar.gz

●AsteriskにGitで配布されてるOpus対応パッチを当てる。

cd asterisk-11.9.0
wget https://raw.githubusercontent.com/netaskd/asterisk-opus/master/asterisk-11.5.0_opus+vp8.diff
patch -p1 -u < asterisk-11.5.0_opus+vp8.diff
./bootstrap.sh
./configure

●AsteriskをMakeしてインストール

make menuselect (日本語音声等を使うときはココで選択。)
make
make install

MakeにはRaspberry Pi本体でやると2時間程かかるのでのんびり待ちましょう。

これでAsterisk自体はOpusに対応しました。

あとはFreePBX側の設定。

Settings>Asterisk Sip SettingsのOther SIP Settingsに

Allow=opus

を設定すればOK

 

後はAcrobitsSoftphoneのコーデック設定でOpusを選択すればOpusを使って通話できます。

AcrobitssoftphoneのOpusはNallowband(8K)とWideband(16K)に分かれていますがコレで使用可能になったのはWideBandのみ。

NarroBandの使い方はまだ調べていませんw

 

試しに内線間(3G経由)で通話してみたところかなり高音質低遅延で素晴らしいCodecだとわかります!

 

しかし・・・Opusには大きな欠点が・・・

G711とのトランスコードに問題があります。

Fusion回線とのトランスコード時はGSM等使えばどうにかなるんですがひかり電話回線とつなぐとどうしてもトランスコードでエラーを起こしRaspberry PiのCPU使用率は100%に張り付いて音飛びや雑音、大幅な遅延が起きて使い物になりません。

まだまだAsteriskが正式対応しない訳だ・・・

 

この後Asterisk、Opusのバージョンを変えて試したもののG711とのトランスコード問題は解決せず・・・

このままお蔵入りですね・・・

当方ではFusionのGSMとの変換は安定しているのでG711以外のコーデックに対応している回線を収容して運用している方は試してみてはいかがですか!?