在NUC972上移植pjsip库并使用PJSUA测试VOIP电话(一)

        如果有问题,请加QQ群 891339868 进行交流

        近段时间,突然对VOIP电话有了兴趣,想在NUC972的板子上测试一下VOIP电话,经过查阅资料,了解到VOIP电话是基于sip协议做的,所以对sip这一块儿进行了了解。目前开源的sip库有几种,我选用了pjsip这个库,这也是别人给我推荐的,具体的这几种库的区别说实话我也不清楚,不过目前pjsip的口碑应该还是比较好的。废话不说那么多了,今天主要说一下pjsip在NUC972上的移植。

首先下载pjsip库,其实严格意义上不叫pisip库,应该叫pjsip_project,因为这个工程中包括好多库,sip协议库只是其中的一个会话协议库,下面再详细说明。我使用的是pjsip2.5.5版本的工程,具体的内容如下图所示:

从这个源码中可以看出来,工程中主要包含pjlib、pjlib-util、pjmedia、pjnath、pjsip这几个库:

pjlib:这个库是一个比较底层的库,其他的库都是基于这个库提供的接口搞的;

pjlib-util:这个库应该是pjlib库的扩展工具库,具体功能不想,有兴趣的可以去网上了解,有清楚的可以给我留言,我也学习一下;

pjmedia:这个库是和音视频有关的库;

pjnath:这个库是和网络穿透有关的库;

pjsip:这个库就是sip协议建立会话层的相关的库;

源码中还有一个third_party的文件夹,这个是第三方的一些工具和库,主要包括一些音视频编解码的一些算法和库,比如MP3等,这个很重要。源码中还有一个pjsip-apps的文件夹,这里面有好多例程和代码,包括PJSUA这个VOIP电话源码,这些代码和例程对于初学者很有用。其他的还不甚了解,就先不说了,下面说一下移植过程:

1、进入源码根目录,首先设置配置文件,如果不太清楚各个参数的含义,可以使用./configure -h查看,我是这样配置的:

./configure --prefix=/home/cust/tools/pjsip/pjsip_2.5.5_arm_output --host=arm-none-linux-gnueabi  CFLAGS="-I/mcuzone/nfsroot/basefs/include" LDFLAGS="-L/mcuzone/nfsroot/basefs/lib"

--prefix:配置库的安装路径;

--host:配置交叉编译环境;

--CFLAGS:配置编译过程中头文件的链接路径;

--LDFLAGS:配置编译过程中需要链接的库文件路径,注意,因为是交叉编译,所以链接的库也需要是交叉编译生成的库。

2、配置好编译参数后,就更新一下文件的依赖关系,编译,安装:

输入make dep & make &make install

到这一步,你预先设置的文件夹里面就会有交叉编译生成的头文件和库文件,如下图所示:

把这两个文件夹及其里面的所有文件复制到开发板系统的/usr/local文件夹里面,到这里,库移植的工作就算完成了。好了,今天就先说到这。谢谢。

 

你可能感兴趣的:(ARM)