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

昨天我已经把pjsip工程相关的库移植好,今天开始使用库里面自带的测试程序进行测试,在这之前需要搭建一个测试环境,我使用的是minsipserver服务器的window版本,在win10上搭建一个服务器。先简单的说一下搭建流程吧:

1、安装后进入主界面,如下图所示:

2、进入系统配置,配置服务器相关信息,如下图所示:

只需要配置一下IP地址,端口号都是默认的,不需要改变,这样服务器相关的基本信息已经配置完毕。

3、进入分机,配置sip客户端代理相关信息,如线图所示:

在这里可以随意添加、编辑、删除sip客户端用户代理的相关信息,我这里添加了四个,其中两个在线,并且正在通话。

4、点击增加,增加sip用户代理相关信息,如下图所示:

分别设置分机号、密码、IP地址和端口号,这样就可以了。

下面进入正题,使用NUC972的板子和Fanvil的IP电话机进行通话,目前方位的ip电话机已经注册上了,服务器显示在线,现在只需要配置一下NUC972就可以了。首先进入到编译后的pjsip工程的源码中,库中自带的例子都在pjsip-apps中,如下图所示:

bin文件夹里面是源码编译后输出的可执行文件(所以源码一定要编译),build文件夹里面是配置文件、Makefile文件以及编译过程中产生的中间文件等,src文件夹里面是各种例程的源码。首先需要将bin文件夹及其里面的所有文件都复制到NUC972的板子系统上,这样就可以在NUC972上直接运行了,我使用的例子是PJSUA这个例程,首先来介绍一下这个例程的作用:PJSUA是一个开源的命令行SIP用户代理(软电话),用PJSIP协议,PJNATH,和PJMEDIA实现。它虽然只有很简单的命令行界面,但是功能齐全。说白了就是个VOIP电话软件。

首先看一下我复制的这个文件夹里面的内容,如下图所示:

那些大写的文件是运行时产生的文件,不要管它们,alice.cfg是我添加的配置文件,也可以不添加,直接在命令行输入。pjsua-arm-none-linux-gnueabi就是交叉编译后生产的PJSUA可执行文件,pjsystest-arm-none-linux-gnueabi是交叉编译后生产的检测系统硬件的可执行文件,samples文件夹里面包含了其他例程交叉编译后的可执行文件。

我主要用的是音频,所以我使用这个程序先检测一下我的NUC972板子上的声卡是否被正确加载,如下图所示:

可以看出来,我的声卡已经被PJSUA探测到。下面就可以执行PJSUA程序了,在运行之前,先来看一下相关参数,可以使用./pjsua-arm-none-linux-gnueabi --h 查看,选项比较多,我就不一一列举了,选几个我在使用中遇到问题的说明一下:

--config-file=file  这个选型是在启动程序时,从配置的文件里面读取相关指令;

--add-codec=name 添加一个编解码(注意,不是硬件,是编解码算法,诸如speex、G711之类的,默认是全部添加的)

--dis-codec=name 关闭一个编解码

--quality=N 设置传输的媒体质量(0-10,默认是8)。在NUC972平台上,这个需要配置一下,默认值8不行,需要改成比较低的值,如果不改的话,会出现声音卡的问题,是很卡很卡的那种,这可能是和处理器的性能有关系吧,具体的原因我不明白,如果有人知道,请第一时间给我留言,教我一下,谢谢;

--no-vad 关闭语音活动检测功能,默认是打开的

--ec-opt=OPT 选择一种回声消除算法。在NUC972平台上,这个需要配置一下,默认是0,但是使用默认值0和1都不行,声音会很卡,需要选择2或者3。他们分别对应1:speex;2:suppressor;3:WebRtc。具体的原因我不太清楚,我猜大概是默认的算法和speex算法的复杂度或者是优化度没有后两种好,导致NUC972运行起来比较费劲,造成系统运行卡。如果哪位知道原因,可以给我留言。

--auto-answer=code 这个是设置自动接听的,这样可以在无人值守的情况下呼通电话

--use-conpact-form  紧凑模式,我理解应该是省资源模式,在嵌入式平台上最好选这个。

其他的选项使用默认值应该没啥问题。

再来看一下我添加的配置文件alice.cfg:

--id 是NUC972在服务器上的id号,其他ip电话就是通过这个id号找到NUC972的,@后面的IP地址和端口号是服务器的地址和sip端口号

--registrar NUC972注册的sip服务器地址和端口号

--realm 域,默认是*,啥都可以

--username 用户名称

--password 用户密码

注意:这些都需要和服务器配置的用户代理都要相对应,要不然注册不上。

配置好服务器上的用户代理后,就可以运行PJSUA了:

我使用的紧凑模式,回音消除算法使用的是webrtc,媒体质量是0,屏蔽语音活动侦测,可以减少运算量,自动接听模式。出现下面的图就说明正常运行了:

配置到这里,就可以使用指令进行拨号和接听来电了!

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

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

    如果有问题,请加QQ群 891339868 进行交流 近段时间,突然对VOIP电话有了兴趣,想在NUC972的板子上测试一下VOIP电话,经过查阅资料,了解到VOIP电话是基于sip协议做的,所以对s ...

  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. 资源 | 100+个自然语言处理数据集大放送,再不愁找不到数据!
  2. python游戏服务器框架_Scut游戏服务器免费开源框架--快速开发(2)
  3. 信捷伺服刚性调整_伺服系统增益协调的作用及举例说明,文末有伺服产品调试学习PPT!...
  4. dalsa线扫相机调试文档_线阵相机调试文档
  5. java mockserver搭建_搭建Mock Server
  6. 零基础学习 Python 之文件
  7. Sql 存储过程加游标结合的使用
  8. java ssh 那一层应该捕获异常_ssh经典异常!
  9. 三星Galaxy S22全系售价曝光:标准版起步或超5000元
  10. VC++中CEdit控件实现回车换行
  11. 将数据库中一张表中数据复制到另一张表
  12. [bzoj1026] [SCOI2009]windy数
  13. Caused by: java.lang.ClassNotFoundException: javax.persistence.NamedStoredProcedureQuery
  14. iOS项目内购(IAP)纯代码
  15. 小学计算机面试说课稿,小学信息技术面试说课稿(模板)
  16. 计算机程序图标在哪,我的文档不见了 我的文档路径在哪 找回图标方法_电脑软硬件应用网_做中国最专业的计算机应用解决技术网站...
  17. 关于应用服务器和数据库服务器的区别浅谈
  18. 分析方法4---多维度拆解分析
  19. 010Editor Cracked分析详文
  20. 震惊!小伙竟然用python找出了马大师视频中的名场面

热门文章

  1. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之EasyDSS版本免费更新的方法
  2. python斜杠与反斜杠互转_Python 正斜杠/与反斜杠\
  3. C语言的排序函数qsort()详解
  4. 一篇就够 2023网络安全技术自学路线图及职业选择方向
  5. goaccess监控
  6. 20230313英语学习
  7. 经纬度坐标转换成px_知道经纬度坐标如何转换成 X Y坐标
  8. FPGA 之 时钟,时钟域, 以及复位系统的设计
  9. 【bug】bug集结地
  10. 越来越多中国企业为高通打call:移动计算走向更大舞台