python3使用pjsua进行呼叫测试

这篇具有很好参考价值的文章主要介绍了python3使用pjsua进行呼叫测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:CentOS 7.6_x64   
Python版本 :3.9.12
pjsip版本:2.13
 
之前写过一篇CentOS7环境编译python3.9版本pjsua的文章:
https://www.cnblogs.com/MikeZhang/p/centos7py39pjsua20230608.html
在上篇文章中我着重介绍了怎样编译python3.9版本的pjsua库,并演示了如何使用,今天记录下CentOS7环境下python3.9使用pjsua作为uas或uac,对接FreeSWITCH进行呼叫测试的过程,并提供示例代码及相关资源下载,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230622 获取。 

一、关键点描述

 1、音频设备设置

CentOS7虚拟机没有音频设备,可以通过set_null_snd_dev来避免pjsua模块报错。

python3使用pjsua进行呼叫测试

2、编码设置

可以通过set_codec_priority函数来设置编码的优先级,避免编码问题导致呼叫失败。
pjsua支持的编码列表如下:
speex/8000/1
speex/32000/1
iLBC/8000/1
GSM/8000/1
PCMU/8000/1
PCMA/8000/1
G722/16000/1
opus/48000/2
G729/8000/1
L16/44100/1
L16/44100/2
具体可参考如下文档:
https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA__LIB__MEDIA.html#group__PJSUA__LIB__MEDIA

python3使用pjsua进行呼叫测试

 

3、自动播放声音文件

1)通过 create_player 函数创建playerId;
2)通过player_get_slot函数获取slot;
3)通过call对象获取呼叫的slot;
4)然后conf_connect进行连接两个slot连接,进而实现音频播放。
 
具体参考这里:
https://docs.pjsip.org/en/latest/api/generated/pjsip/group/group__PJSUA__LIB__MEDIA.html#group__PJSUA__LIB__MEDIA

 python3使用pjsua进行呼叫测试 

二、具体实现

 1、作为uac进行测试

需要作为分机注册到FreeSWITCH,示例如下:
acc = lib.create_account(pj.AccountConfig("192.168.137.32:5060", "1012", "0000"))

代码如下:

python3使用pjsua进行呼叫测试

 完整代码获取途径:关注微信公众号(聊聊博文,文末可扫码)后回复 20230622 获取。 

2、作为uas进行测试

1)编写UAS脚本
需要指定sip服务端口,示例如下:
tp= lib.create_transport(pj.TransportType.UDP,pj.TransportConfig(55081))
lib.start()

代码如下:

python3使用pjsua进行呼叫测试

 完整代码获取途径:关注微信公众号(聊聊博文,文末可扫码)后回复 20230622 获取。 

2)编写拨号方案
<extension name="pjsua_uas_test">
    <condition field="destination_number" expression="^123$">
         <action application="set" data="hangup_after_bridge=true"/>
         <action application="bridge" data="sofia/external/123@192.168.137.32:55081"/>
    </condition>
</extension>

三、运行效果

1、uac测试效果

1)启动FreeSWITCH;
2)运行uac脚本注册分机;
source /root/py39env/env.sh
/root/py39env/bin/python3.9 uac.py
3)使用软电话注册分机;
4)使用软电话拨打uac分机; 
预期效果:
软电话可听到uac分机播放的音频。

python3使用pjsua进行呼叫测试

 运行效果视频获取途径:

关注微信公众号(聊聊博文,文末可扫码)后回复 2023062201 获取。 

2、uas测试效果

1)启动FreeSWITCH;
2)编写拨号方案;
3)运行uas脚本启动服务;
source /root/py39env/env.sh
/root/py39env/bin/python3.9 uas.py
4)使用软电话注册分机;
5)使用软电话拨打接入号验证;
预期效果:
软电话可听到uas播放的音频。

python3使用pjsua进行呼叫测试

运行效果视频获取途径:

关注微信公众号(聊聊博文,文末可扫码)后回复 2023062202 获取。 

四、资源获取

本文涉及源码和文件,可以从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230622 获取。 

python3使用pjsua进行呼叫测试文章来源地址https://www.toymoban.com/news/detail-495910.html

到了这里,关于python3使用pjsua进行呼叫测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python3 使用虚拟环境 venv

    在 Python 3.3 及更高版本中,Python标准库中提供了 venv 模块,可以用于创建Python虚拟环境。以下是 debian10 系统使用venv模块创建 Python3.11 虚拟环境的示例,按照以下步骤进行操作: 进入你的项目目录: 创建一个名为venv的虚拟环境: 这将在当前目录下创建一个名为venv的目录,并

    2023年04月09日
    浏览(31)
  • 001.Python3.10+Pycharm2022.2环境搭建、pip使用

    直接百度搜索“ Python官网下载 ”,进入Python官网: 直接在Python官网里面指定的地方点击下载: 等待下载完成,然后双击运行: 接下来,一系列的安装过程: 等待安装完成: 打开cmd,输入 python ,出现下面这样,就表示Python解释器安装成功了; 直接百度搜索“Pycharm官网下

    2024年02月10日
    浏览(35)
  • 【软件测试】在Windows使用Docker搭建CentOS环境(详细)

    我们做软件测试在日常工作中或多或少都会接触到 Linux 服务器。 获取 Linux 服务器的途径也有很多,比如可以通过购买云服务器(阿里云、华为云、腾讯云等)和虚拟机(VMWare、VirtualBox 等)的方式获取,除了这两种方式之外,我们还可以使用 Docker 的方式来快速搭建 Linux 环

    2024年02月11日
    浏览(36)
  • 腾讯云Centos7 python3.6升级到python3.8.1

    最近想要学习Ai错别字算法,自己的电脑运行有特别慢,特意斥巨资花了800大洋在腾讯云买了一台服务器(一个月GPU,真的贵,伤不起) 想要安装Python3.8.1,但是原来有了python2.7和python3.6了 所以只能升级处理了 第一步查询现在python 安装的版本 第二步 下载python3.8.1 第三步 解

    2024年02月11日
    浏览(36)
  • CentOS 安装 python3.11 教程

    1. 更新系统 在安装 Python 3.11 之前,建议先更新系统,以确保系统是最新版本,并且避免因为系统更新过程中的问题造成 Python 安装出错。 运行以下命令: 2. 安装编译工具和依赖库 Python 是一种编程语言,它的解析器需要通过编译才能运行。因此,在安装 Python 3.11 之前,需要

    2024年02月12日
    浏览(42)
  • centos安装python3详细教程

    centos7自带版本是python2.7 如果要用的3.0以上的版本需要手动安装,下载地址:https://www.python.org/ftp/python/ 1、先查看系统python的位置在哪儿 python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/ python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向

    2024年02月15日
    浏览(27)
  • 在Spring Boot环境中使用Mockito进行单元测试

    Mockito是一个流行的Java mocking框架,它允许开发者以简单直观的方式创建和使用模拟对象(mocks)。Mockito特别适用于在Spring Boot环境中进行单元测试,因为它能够轻松模拟Spring应用中的服务、存储库、客户端和其他组件。通过使用Mockito,开发者可以模拟外部依赖,从而使单元测

    2024年03月23日
    浏览(36)
  • Centos 7.4 系统,使用wireshark 抓包,获取数据包来源IP(生产环境测试可用)

    1 安装wireshark    yum install wireshark  (也可以使用rpm包安装,但是依赖包较多,安装可能需要多一点时间) 2 安装完后,抓取数据包  tshark -i ens192 -Y \\\"ip.dst == 192.168.120.59 and tcp.dstport == 4006 and frame contains 18912345678\\\" -T fields -e ip.src 该命令将在ens192接口上进行抓包,并使用过滤器

    2024年02月07日
    浏览(46)
  • Centos 安装 python3.x 为默认

    CentOS 7 中默认安装了 Python,但是版本是2.x的,由于2020年python2.x将停止更新,因此需要将版本升级至3.x。但由于python2.x是系统集成的,很多命令都是要基于python2.x,比如:yum。因此在更新 Python 时,建议新旧版本共存。 yum安装,简单方便,但是版本受限 源码安装,较yum安装复

    2023年04月25日
    浏览(28)
  • centos7编译安装升级python3.11

    准备步骤 解压编译 替换升级

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包