You should compile Asterisk 11, so prepare your PC/server for it. Install development packages, get Asterisk 11 source, compile and install it.
Suppose you don’t want to install Asterisk 11 in your PC/server. You can configure and compile Asterisk 11, but don’t need to install it. After that you can continue compile the codec.
Now, assumed you have compiled Asterisk 11 and install it in /opt/asterisk on your PC/server.
Follow below steps to compile codec g723 and g729:
wget -c http://asterisk.hosting.lv/src/asterisk-g72x-1.1.tar.bz2 tar -jxf asterisk-g72x-1.1.tar.bz2 cd asterisk-g72x-1.1/ ./configure --with-asterisk-includes=/opt/asterisk/include --with-asterisk100 --enable-pentium4 --with-itu make cd .libs ls -l *.so
Copy codec_g723.so and codec_g729.so to your Asterisk 11 modules directory.
Should you use not a Pentium 4 compatible just replace –enable-pentium4 with your PC/server architecture. Get options by running ./configure –help in the codec source directory asterisk-g72x-1.1.
These are complete steps when you don’t want to install Asterisk 11 but need to compile the codec.
apt-get install build-essential wget -c http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz tar -zxf asterisk-11-current.tar.gz cd asterisk-11.4.0 ./configure --disable-xmldoc make cd ../ wget -c http://asterisk.hosting.lv/src/asterisk-g72x-1.1.tar.bz2 tar -jxf asterisk-g72x-1.1.tar.bz2 cd asterisk-g72x-1.1/ ./configure --with-asterisk-includes=../asterisk-11.4.0/include --with-asterisk100 --enable-pentium4 --with-itu make cd .libs ls -l *.so
apt-get install build-essential checkinstall cvs subversion git-core mercurial cd /usr/src wget http://download-mirror.savannah.gnu.org/releases/linphone/plugins/sources/bcg729-1.0.0.tar.gz tar xzf bcg729-1.0.0.tar.gz cd bcg729-1.0.0/ ./configure make && make install ldconfig cd /usr/src hg clone http://bitbucket.org/arkadi/asterisk-g72x cd asterisk-g72x/ vi configure.ac
在 case "${host}" in 這行下方
armv7l-unknown-linux-gnueabihf*) cflags="-O3 -funroll-loops -marm -mtune=cortex-a7 -Wall" march="armv7-a" ;;
NOTE:
以上修改適合 Raspberry Pi 與 Cubieboard v1
開始編譯
./autogen.sh ./configure --with-asterisk-includes=/usr/src/asterisk-12.4.0/include/ --with-bcg729 make make install ldconfig
NOTE:
* 必須先下載 Asterisk 安裝原始檔
* 執行 autogen.sh 後才會有 configure 指令,如果遇到錯誤,必須先安裝 autoconf , automake 套件。
* --with-asterisk-includes Asterisk 原始安裝檔目錄內的 include 目錄
* --with-bcg729 會自動偵測 bcg729 函式庫,如果想指定特定目錄,直接改成 --with-bcg729=/path/to/lib
錯誤:
autoreconf: failed to run aclocal: No such file or directory
解答:apt-get insatll automake
錯誤:
configure.ac:11: warning: macro `AM_PROG_LIBTOOL' not found in library
解答:apt-get install libtool
錯誤:
configure: error: unable to find Bcg729 library
解答:必須先編譯 bcg729 函式庫,且安裝路徑為預設值。