sipp重放rtp数据测试FreeSWITCH
环境:CentOS 7.6_x64
FreeSWITCH版本 :1.10.9
sipp版本:3.6.1
一、背景描述
sipp是一款VoIP测试工具,日常开发过程中会使用到该软件,但其自身携带的pcap文件夹里面的rtp数据包太小,rtp长时间测试的场景会出现媒体异常的情况,需要制作长时间pcap文件以满足测试,这里记录下使用sipp作为uac和uas对接freeswitch重放长时间rtp数据测试的过程。
github地址:https://github.com/SIPp/sipp
targz文件下载地址:https://github.com/SIPp/sipp/releases
文档地址:https://sipp.readthedocs.io/en/v3.6.1/

参数简单说明:
-sn 使用内置的场景,默认使用uac,即标准SipStone UAC
-sd 导出内置场景
-sf 使用指定场景配置文件
-i 指定本地IP
-p 指定本地端口,默认随机端口
-l 限制并行呼叫数,默认值:3 * call_duration (s) * rate
-m 在呼叫次数达到后退出
-r 场景执行速度,默认1秒10次
-r 10 -rp 5s 则限定为每5秒10 calls
-rp (Rate Period,默认毫秒数)
二、资源准备
1、编译sipp
1)安装依赖项
需要安装sctp库和libpcap库:
yum install lksctp-tools-devel.x86_64 libpcap-devel -y
2)配置cmake3
添加cmake3的软连接(cmake3二进制文件可从文末资源里面获取);
修改build.sh,使用cmake3进行构建:

编译:
./build.sh --full

编译好的文件如下:

2、pcap文件制作
这里使用freeswitch的moh声音制作pcap文件,具体如下。
1)编写拨号方案:
<extension name="moh_test">
<condition field="destination_number" expression="^6001$">
<action application="answer"/>
<action application="playback" data="local_stream://moh"/>
</condition>
</extension>
2)启动tcpdump抓包
tcpdump -i enp0s3 udp -w g711a_moh.pcap

3)rtp数据导出
选择 “电话-》RTP流”

在弹出的对话框中选择需要导出的rtp流,点击“Prepare Filter”按钮:

选择导出特定分组:

导出过滤后的rtp数据:

上述为导出流程,具体pcap文件为时长1小时的g711a格式rtp包,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230523 获取。
三、运行效果
FreeSWITCH机器:192.168.137.32
sipp机器:192.168.137.31
1、SIPP作为UAC发起呼叫
1)生成场景文件
在sipp机器执行如下操作:
./sipp -sd uac_pcap >> uac_pcap.xml
2)修改xml文件
替换pcap部分;
修改等待时长为3600秒;

3)编写拨号方案
在FreeSWITCH上编辑 conf/dialplan/public.xml 文件,添加如下内容:
<extension name="test1111">
<condition field="destination_number" expression="^(654321)$">
<action application="bridge" data="user/1000"/>
</condition>
</extension>
4)呼叫测试
在sipp机器上执行呼叫:
./sipp 192.168.137.32:5080 -i 192.168.137.31 -p 55050 -sf uac_pcap.xml -m 1 -s 654321

呼叫效果:
usc呼叫效果视频:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023052301 获取。
2、SIPP作为UAS接收呼叫
1)生成场景文件
在sipp机器执行如下操作:
./sipp -sd uas >> uas_pcap.xml
修改sdp里面的编码为PCMA:

移除option标签,并添加pcap文件:

2)启动uas
在sipp机器执行如下命令:
./sipp -i 192.168.137.31 -p 55080 -sf uas_pcap.xml

3)执行外呼
在FreeSWITCH机器执行如下命令:
originate {tag=test}sofia/external/123456@192.168.137.31:55080 &bridge(user/1000)
运行效果如下:

uas呼叫效果视频:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023052302 获取。
四、资源下载
本文涉及源码及二进制文件,可以从如下途径获取:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230523 获取。
sipp重放rtp数据测试FreeSWITCH的更多相关文章
- sipp模拟freeswitch分机测试(SIP协议调试)
1.freeswitch安装 1) 网上很多安装方法都不靠谱,系统版本,各种依赖库一堆问题,下面是验证的可行的. yum install -y http://files.freeswitch.org/ ...
- VoIP系统大盘点
一.VoIP拓扑 PBX是程控交换机,程控交换机有实体交换机和软件模拟的交换机. 软件模拟的交换机,即交换机服务器,常用开源的sip服务器有asterisk,freepbx, opensip, fre ...
- Ubuntu/centos/redhat/SUSE sipp安装(带rtp支持,3.5.1版本)
1.ubuntu 12.04 apt-get install ncurses-dev apt-get install libpcap-dev ./configure --with-pcap make ...
- sipp3.6对freeswitch进行压力测试
一.安装sipp 1.下载地址: https://github-production-release-asset-2e65be.s3.amazonaws.com/13161657/99df6100-9 ...
- freeswitch对接其它SIP设备
这几天用到freeswitch对接其它设备方面的知识,这里整理下,也方便我以后查阅. 操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 一.freeswitch作为被叫 ...
- freeswitch呼叫流程分析
今天翻文档时发现之前整理的关于freeswitch呼叫相关的内容,写成博文分享出来也方便我以后查阅. 整体结构图 FreeswitchCore 模块加载过程 freeswitch主程序初始化时会从mo ...
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
RTP 参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...
- RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)
RTP/RTCP/RTSP/SIP/SDP 关系 RTP(实时传输协议,传输层) Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议 ...
- RTP学习笔记
一.定义 实时传输协议(Real- time Transport Protocol,RTP)是在Internet上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多 ...
- FreeSWITCH第三方库(其他)的简单介绍(三)
FreeSWITCH使用了大量的第三方库,本文档主要介绍关联相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 视频相关 ...
随机推荐
- Java所用相关软件的大致安装流程
JAVA下载流程 一.相关环境的安装与配置 1.JDK的下载 去官网搜索相应的java版本,并进行下载 官网链接:www.xfdown.com/soft/125774.html在该链接下,可以下载ja ...
- Github Copilot 比在座各位更会写代码。jpg
之前大佬和我安利过 Copilot, 作为一个能用就行的践行者, 我一贯对这些东西都不太感兴趣. 就如我多年VS Code写各种编程语言, jetbrains 全家桶我都懒得搞~ 不过最近看到过Cha ...
- JVM 问题排查工具
更多内容,前往 IT-BLOG Java 开发人员肯定都知道 JDK的 bin 目录中有 "java.exe"."javac.exe" 这两个命令行工具.下面主 ...
- 鼎捷ERP二次开发教程 Tiptop GP开发资料大全 Tipto开发实战经验 鼎捷开发实战例子 Tiptop GP二次开发项目例子 4GL开发Demo 鼎捷二次开发完整例子 鼎捷ERP二次开发入门
本人在ERP实施公司做顾问四五年,参与企业实施ERP十多个项目,非常熟悉企业ERP流程,在实施过程遇到众多问题,提出了不少根据企业具体情况的解决方案. 曾经参与鼎捷Tiptop GP实施十多个项目,具 ...
- 在Mac搭建一个便捷的Markdown创作环境
前言 使用 Typora + PicGo + Gitee + Snipaste 在 Mac 搭建一个 Markdown 编辑环境. Typora 是一款简洁的 Markdown 编辑器: PicGo ...
- 最新centos7 部署 k8s v1.26,简单易懂,跟着命令敲就完事
其实没什么好说的,搭环境搞了一整天,人已经麻了,踩了很多坑,网上教程的版本大都比较旧,总是和最新版本各种地方不兼容,把坑踩完了,k8s目前最新的版本是v1.26,跟着命令敲就行了,我已经重复部署了很多 ...
- python和js实现AES加解密
小白学习中...... AES算法 AES全称为高级加密标准,是Advanced Encryption Standard的首字母简写.详细了解,可以找专门的资料进行学习. 场景 开发一个web网站过程 ...
- 新一代自动化测试神器Playwright
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/4bedb73c.html 你好,我是测试蔡坨坨. 说到WebUI自动化测试,首当其冲的当属Selenium,在很长的一段时间 ...
- Linx 阶段一
Linux Linux常用命令 具体演示 1). ls 2). pwd 3). touch 4). mkdir 5). rm 使用技巧 1. 连按 Tab健自动补齐文件名 2. ll 查看当前目录文件 ...
- 自定义Mybatis-plus插件(限制最大查询数量)
自定义Mybatis-plus插件(限制最大查询数量) 需求背景 一次查询如果结果返回太多(1万或更多),往往会导致系统性能下降,有时更会内存不足,影响系统稳定性,故需要做限制. 解决思路 1.经 ...