如果有问题,请加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文件夹里面,到这里,库移植的工作就算完成了。好了,今天就先说到这。谢谢。

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

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

    如果有问题,请加QQ群 891339868 进行交流 昨天我已经把pjsip工程相关的库移植好,今天开始使用库里面自带的测试程序进行测试,在这之前需要搭建一个测试环境,我使用的是minsipserve ...

  2. 在NUC972上利用pjsip实现VOIP网关

    如果有问题,请加QQ群 891339868 进行交流 上次在NUC972上移植好了pjsip库后,实现了一个简单的VOIP网关的功能,由于前一段时间再忙别的事情,没有来得及整理,今天忙里偷闲,总结一下 ...

  3. STM32CubeMx移植DSP库 傅立叶变化(FFT)测试

    文章目录 前言 一.STM32L496简介? 二.FFT简介 三.STM32CubeMx配置 四.MDK配置与程序 4.1宏定义的添加 4.2程序编写 五.结果 总结 前言 本篇文章采用的是ST公司的 ...

  4. 在openwrt(mips架构上)移植libusb库

    背景 有个项目,需要在openwrt的linux系统中使用libusb与挂载的一颗芯片进行USB通信,我要尝试在应用层通过libusb与外挂芯片进行USB通信. 调研 网上刚开始检索时,有网友说ope ...

  5. pjsip库简单应用

    PJSIP的实现是为了能在嵌入式设备上高效实现SIP/VOIP. 1.PJSIP库的主要特征: 1).极具移植性.(Extremely portable)    当前可支持平台包括:    * Win ...

  6. FreeRTOS学习及移植笔记之二:在IAR和STM32F103VET上移植FreeRTOS

     上一次,我们简单的测试了FreeRTOS的基于IAR EWARMv6.4和STM32F103VET6平台的Demo,对其有了一个基本认识.接下来我们开始自己移植FreeRTOS的过程. 1.创建 ...

  7. stm32 lwip 如何发送不出_mbedtls | 移植mbedtls库到STM32裸机的两种方法

    一.mbedtls 开源库 1. mbedtls是什么 Mbed TLS是一个开源.可移植.易于使用.代码可读性高的SSL库.可实现加密原语,X.509证书操作以及SSL / TLS和 DTLS 协议 ...

  8. 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明

    本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法.同上一篇文章中介绍的miracl密码库相比 ...

  9. 嵌入式设备中支持国密算法的方法——移植Miracl库的步骤说明

    上一篇文章中我们为大家介绍了嵌入式设备中支持国密算法的几种方法.本篇我们详细的介绍一下第一种方法:移植Miracl库的具体操作步骤. 第一步 获取源码 MIRACL密码库是开源软件,可以直接到官网下载 ...

最新文章

  1. Oracle10g安装中遇到的错误及解决办法
  2. 敏捷(七)精美的预测艺术
  3. SPOJ 375 树链剖分学习
  4. echarts各种事件
  5. 一个前端开发人员多年苦心搜集的Chrome开发者工具使用技巧
  6. 王道考研 计算机网络11 数据链路层 封装成帧 透明传输 流量控制 停止-等待协议 后退N帧协议GBN 选择重传协议SR
  7. 深度学习(八)caffe源码学习-未完待续
  8. Tomcat Connector
  9. Thanos 简介和实践
  10. 云小课 | 网站接入WAF失败怎么办?看这里就够了
  11. Neutron中Linux Bridge与Open vSwitch优劣势对比
  12. 得到app文稿导出_得到APP使用报告
  13. 转行软件测试,简历怎么包装成1年工作经验的测试工程师
  14. leetcode845. 数组中的最长山脉
  15. mysql frm_mysqlfrm初步使用
  16. Mac系统更新之前需要准备什么?
  17. 录屏存储为gif图片
  18. python实现sklearn的基本操作流程,sklearn预处理方法,sklearn基础算法的使用,以及sklearn模型的选择方法。
  19. RAID基础(附RAID10搭建)
  20. js 原生代码跳转页面,返回上一级页面

热门文章

  1. 行业观察 | 从公共数据平台建设运营出发,探索政府数字化改革之路
  2. 短信发送(M800)
  3. .ipynb文件转为.py文件的具体步骤
  4. 邮箱地址是什么?163手机邮箱怎么登录?
  5. [答疑]用例规约中像5.中说的保存、修改功能,怎么写合适
  6. 程序员必须知道的网站
  7. c语言菜单怎么清空,你好,请教个C语言菜单实现清屏功能。就是用switch里面输入一个数子,就实现部分清屏或者全清屏...
  8. rtorrent一键安装脚本rtinst指定版本号
  9. Shell--计算两个日期的相差天数及输出这两个日期内的所有日期【工作笔记】
  10. matlab做偏最小二乘法(PLSR)(无精度验证)