基于Linux开源VOIP系统LinPhone[四]

本文详细介绍了基于Linux的开源VOIP系统LinPhone的编译过程,包括SPEEX的编译、ncurses、readline、osip、eXosip等库的配置及编译步骤,并提供了具体的shell脚本实现自动化编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/wavemcu/article/details/8710551

 

***************************************************************************************************************************
作者:EasyWave                                                                                 时间:2013.03.23

类别:Linux 应用LinPhone                                                              声明:转载,请保留链接

注意:如有错误,欢迎指正。这些是我学习的日志文章......

***************************************************************************************************************************

在《 基于Linux开源VOIP系统LinPhone[三] 》中,简单的介绍了SPEEX的编译和所需的库文件,如果需要编译linphone的话,最好先只需编译不带UI和不带视频传输的,这样在后期调试的时候,会比较方便,如果想要自己修改linphone的代码,需要熟悉ffmpeg(libav)、speex、readline、SDL、x264、osip、eXosip等等一大堆的第三方库函数,如果不带视频的话,一般只需要speex、readline、osip、eXosip以及ncurses库即可。至于G722和G729,需要熟悉mediastreamer2之后,才可以根据具体的项目,进行二次开发。如下图所示:

看到了吗,不过,如果你的平台中本身就带有摄像头的接口的话,图中的libv4l其实用不上,我后来仔细分析了mediastreamer2之后,发现根本就没有用上它,因为在mediastreamer2中有msv4l.c和msv4l2.c。

1):ncurses的编译

最好在ncurses的目录下建立一个build.sh文件,这样每次就执行./build.sh文件即可。如下所示:

  1. #!/bin/bash 
  2.  
  3. INSTALL_PATH=`pwd`/_install 
  4.  
  5. mkdir -p $INSTALL_PATH 
  6.  
  7. #autoreconf -iv 
  8.  
  9. make distclean 
  10.  
  11. ./configure --prefix=$INSTALL_PATH \ 
  12.             --host=arm-none-linux-gnueabi \ 
  13.             --target=arm-none-linux-gnueabi  \ 
  14.             --build=i486-linux-gnu \ 
  15.             --with-shared \ 
  16.   
  17. if [ $? -eq 0 ]; then 
  18.         make  
  19.         if [ $? -eq 0 ]; then 
  20.                 make install 
  21.                 exit 0 
  22.         fi 
  23. fi 
  24. exit 1 
#!/bin/bash

INSTALL_PATH=`pwd`/_install

mkdir -p $INSTALL_PATH

#autoreconf -iv

make distclean

./configure --prefix=$INSTALL_PATH \
            --host=arm-none-linux-gnueabi \
            --target=arm-none-linux-gnueabi  \
			--build=i486-linux-gnu \
            --with-shared \
 
if [ $? -eq 0 ]; then
        make 
        if [ $? -eq 0 ]; then
                make install
                exit 0
        fi
fi
exit 1


2):readline的编译

build.sh的脚本文件如下所示:

  1. #!/bin/bash 
  2.  
  3. INSTALL_PATH=`pwd`/_install 
  4.  
  5. mkdir -p $INSTALL_PATH 
  6.  
  7. #autoreconf -iv 
  8.  
  9. make distclean 
  10.  
  11. ./configure --prefix=$INSTALL_PATH \ 
  12.             --host=arm-none-linux-gnueabi \ 
  13.             --build=i486-linux-gnu \ 
  14.             --enable-multibyte \ 
  15.             --enable-shared \ 
  16.             --disable-static 
  17.   
  18. if [ $? -eq 0 ]; then 
  19.         make  
  20.         if [ $? -eq 0 ]; then 
  21.                 make install 
  22.                 exit 0 
  23.         fi 
  24. fi 
  25. exit 1 
#!/bin/bash

INSTALL_PATH=`pwd`/_install

mkdir -p $INSTALL_PATH

#autoreconf -iv

make distclean

./configure --prefix=$INSTALL_PATH \
            --host=arm-none-linux-gnueabi \
			--build=i486-linux-gnu \
            --enable-multibyte \
            --enable-shared \
            --disable-static
 
if [ $? -eq 0 ]; then
        make 
        if [ $? -eq 0 ]; then
                make install
                exit 0
        fi
fi
exit 1


3):osip的编译

osip的build.sh文件如下所示:

  1. #!/bin/bash 
  2.  
  3. INSTALL_PATH=`pwd`/_install 
  4.  
  5. mkdir -p $INSTALL_PATH 
  6.  
  7. make distclean 
  8.  
  9. ./configure --prefix=$INSTALL_PATH \ 
  10.             --host=arm-none-linux-gnueabi \ 
  11.             --build=i486-linux-gnu \ 
  12.             --disable-option-checking  \ 
  13.             --disable-dependency-tracking \ 
  14.             --enable-shared=yes \ 
  15.             --enable-static=no \ 
  16.             --enable-fast-install=no \ 
  17.             --disable-libtool-lock \ 
  18.             --disable-debug \ 
  19.             --enable-trace \ 
  20.             --disable-mpatrol \ 
  21.             --disable-gprof \ 
  22.             --enable-mt \ 
  23.             --enable-pthread  \ 
  24.             --enable-semaphore \ 
  25.             --enable-sysv \ 
  26.             --disable-gperf \ 
  27.             --disable-hashtable \ 
  28.             --enable-test \ 
  29.             --disable-minisize \ 
  30.             --with-gnu-ld 
  31.  
  32.   
  33. if [ $? -eq 0 ]; then 
  34.         make  
  35.         if [ $? -eq 0 ]; then 
  36.                 make install 
  37.                 exit 0 
  38.         fi 
  39. fi 
  40. exit 1 
#!/bin/bash

INSTALL_PATH=`pwd`/_install

mkdir -p $INSTALL_PATH

make distclean

./configure --prefix=$INSTALL_PATH \
            --host=arm-none-linux-gnueabi \
			--build=i486-linux-gnu \
            --disable-option-checking  \
            --disable-dependency-tracking \
            --enable-shared=yes \
            --enable-static=no \
            --enable-fast-install=no \
            --disable-libtool-lock \
            --disable-debug \
            --enable-trace \
            --disable-mpatrol \
            --disable-gprof \
            --enable-mt \
            --enable-pthread  \
            --enable-semaphore \
            --enable-sysv \
            --disable-gperf \
            --disable-hashtable \
            --enable-test \
            --disable-minisize \
            --with-gnu-ld

 
if [ $? -eq 0 ]; then
        make 
        if [ $? -eq 0 ]; then
                make install
                exit 0
        fi
fi
exit 1


4):libeXosip的编译

  1. #!/bin/bash 
  2.  
  3. INSTALL_PATH=`pwd`/_install 
  4.  
  5. mkdir -p $INSTALL_PATH 
  6.  
  7.  
  8. make distclean 
  9.  
  10. ./configure --prefix=$INSTALL_PATH \ 
  11.             --host=arm-none-linux-gnueabi \ 
  12.         --build=i486-linux-gnu \ 
  13.             --disable-option-checking  \ 
  14.             --disable-dependency-tracking \ 
  15.             --enable-shared=yes \ 
  16.             --enable-static=no \ 
  17.             --enable-fast-install=no \ 
  18.             --disable-libtool-lock \ 
  19.             --disable-tool \ 
  20.             --disable-debug \ 
  21.             --enable-trace \ 
  22.             --disable-mpatrol \ 
  23.             --disable-gprof \ 
  24.             --enable-mt \ 
  25.             --enable-pthread  \ 
  26.             --enable-semaphore \ 
  27.             --enable-sysv \ 
  28.             --disable-openssl \ 
  29.             --enable-srvrec \ 
  30.             --disable-minisize \ 
  31.             --with-gnu-ld \ 
  32.             OSIP_LIBS="-lpthread -losip2 -losipparser2 -L$INSTALL_PATH/lib"
  33.             OSIP_CFLAGS="-I$INSTALL_PATH/include" 
  34.  
  35. if [ $? -eq 0 ]; then 
  36.         make  
  37.         if [ $? -eq 0 ]; then 
  38.                 make install 
  39.                 exit 0 
  40.         fi 
  41. fi 
  42. exit 1 
#!/bin/bash

INSTALL_PATH=`pwd`/_install

mkdir -p $INSTALL_PATH


make distclean

./configure --prefix=$INSTALL_PATH \
            --host=arm-none-linux-gnueabi \
	    --build=i486-linux-gnu \
            --disable-option-checking  \
            --disable-dependency-tracking \
            --enable-shared=yes \
            --enable-static=no \
            --enable-fast-install=no \
            --disable-libtool-lock \
            --disable-tool \
            --disable-debug \
            --enable-trace \
            --disable-mpatrol \
            --disable-gprof \
            --enable-mt \
            --enable-pthread  \
            --enable-semaphore \
            --enable-sysv \
            --disable-openssl \
            --enable-srvrec \
            --disable-minisize \
            --with-gnu-ld \
            OSIP_LIBS="-lpthread -losip2 -losipparser2 -L$INSTALL_PATH/lib" \
            OSIP_CFLAGS="-I$INSTALL_PATH/include"

if [ $? -eq 0 ]; then
        make 
        if [ $? -eq 0 ]; then
                make install
                exit 0
        fi
fi
exit 1


最后,就是编译linphone的代码了。这个自己去运行./configure -h来进行设置和编译了。最后,还需要根据具体的芯片去修改oss和alsa的代码,否则会出现无法播放的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值