g729 codec は有料なのですが、open source版があるようなのでこちらをインストールしてみます。
このサイトが参考になりました。
open source版を使うには、INTEL COMPILERが必要になってくるみたいですが、面倒なので、bcg729+g729 codecの組み合わせでやってみます。
bcg729のインストール
$ cd ~/src $ wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.0.tar.gz $ tar zxvf bcg729-1.0.0.tar.gz $ cd bcg729-1.0.0 $ ./configure --libdir=/lib $ make $ sudo make install
g729 codecのインストール
autogenを使っているので、libtoolをインストールしておく
$ sudo apt-get install libtool パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされます: libltdl-dev 提案パッケージ: libtool-doc gfortran fortran95-compiler gcj 以下のパッケージが新たにインストールされます: libltdl-dev libtool アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 821 kB のアーカイブを取得する必要があります。 この操作後に追加で 2,360 kB のディスク容量が消費されます。 続行しますか [Y/n]? Y $ cd ~/src $ wget http://asterisk.hosting.lv/src/asterisk-g72x-1.3.tar.bz2 $ tar jxvf asterisk-g72x-1.3.tar.bz2 $ cd asterisk-g72x-1.3
configure.acを修正する。
$ vi configure.ac $ diff configure.ac configure.ac- 30,32c30,32 < armv7l-*-linux-gnueabihf*) < cflags="-Os -pipe -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=vfp -mfloat-abi=hard" < march="armv7-a" --- > armv6l-*-linux-gnueabihf*) > cflags="-mcpu=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -O3 -Wall" > march="armv6zk"
autogen.shを走らせる
$ ./autogen.sh $ ./configure --with-bcg729 --with-asterisk18 $ make $ sudo make install
g729 codecが読み込まれているか確認するため、asteriskを再起動する。
$ sudo /etc/init.d/asterisk restart $ sudo asterisk -vvvvv CLI> core show translation Translation times between formats (in microseconds) for one second of data Source Format (Rows) Destination Format (Columns) g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722 siren7 siren14 slin16 g719 speex16 testlaw g723 - - - - - - - - - - - - - - - - - - - gsm - - 2 2 10001 2 1 10001 40001 - 50001 10001 2 - - 3 - - 2 ulaw - 10001 - 1 10001 2 1 10001 40001 - 50001 10001 2 - - 3 - - 2 alaw - 10001 1 - 10001 2 1 10001 40001 - 50001 10001 2 - - 3 - - 2 g726aal2 - 10001 2 2 - 2 1 10001 40001 - 50001 10001 2 - - 3 - - 2 adpcm - 10001 2 2 10001 - 1 10001 40001 - 50001 10001 2 - - 3 - - 2 slin - 10000 1 1 10000 1 - 10000 40000 - 50000 10000 1 - - 2 - - 1 lpc10 - 20000 10001 10001 20000 10001 10000 - 50000 - 60000 20000 10001 - - 10002 - - 10001 g729 - 10001 2 2 10001 2 1 10001 - - 50001 10001 2 - - 3 - - 2 speex - - - - - - - - - - - - - - - - - - - ilbc - 20000 10001 10001 20000 10001 10000 20000 50000 - - 20000 10001 - - 10002 - - 10001 g726 - 20000 10001 10001 20000 10001 10000 20000 50000 - 60000 - 10001 - - 10002 - - 10001 g722 - 10001 2 2 10001 2 1 10001 40001 - 50001 10001 - - - 1 - - 2 siren7 - - - - - - - - - - - - - - - - - - - siren14 - - - - - - - - - - - - - - - - - - - slin16 - 10002 3 3 10002 3 2 10002 40002 - 50002 10002 1 - - - - - 3 g719 - - - - - - - - - - - - - - - - - - - speex16 - - - - - - - - - - - - - - - - - - - testlaw - 10001 2 2 10001 2 1 10001 40001 - 50001 10001 2 - - 3 - - -
g729が使えるようになってますね。
sip.confとextentions.confを書けばとりあえずは、使える状態になりました。
後は、時間をかけてsip.conf , extentions.confを作成していきます。