环境: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的更多相关文章

  1. sipp模拟freeswitch分机测试(SIP协议调试)

    1.freeswitch安装 1) 网上很多安装方法都不靠谱,系统版本,各种依赖库一堆问题,下面是验证的可行的. yum install -y http://files.freeswitch.org/ ...

  2. VoIP系统大盘点

    一.VoIP拓扑 PBX是程控交换机,程控交换机有实体交换机和软件模拟的交换机. 软件模拟的交换机,即交换机服务器,常用开源的sip服务器有asterisk,freepbx, opensip, fre ...

  3. 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 ...

  4. sipp3.6对freeswitch进行压力测试

    一.安装sipp 1.下载地址: https://github-production-release-asset-2e65be.s3.amazonaws.com/13161657/99df6100-9 ...

  5. freeswitch对接其它SIP设备

    这几天用到freeswitch对接其它设备方面的知识,这里整理下,也方便我以后查阅. 操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 一.freeswitch作为被叫 ...

  6. freeswitch呼叫流程分析

    今天翻文档时发现之前整理的关于freeswitch呼叫相关的内容,写成博文分享出来也方便我以后查阅. 整体结构图 FreeswitchCore 模块加载过程 freeswitch主程序初始化时会从mo ...

  7. 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)

    RTP           参考文档 RFC3550/RFC3551 Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议.RTP协议详细 ...

  8. RTP/RTCP/RTSP/SIP/SDP 关系(直接看总结)

    RTP/RTCP/RTSP/SIP/SDP 关系   RTP(实时传输协议,传输层) Real-time Transport Protocol)是用于Internet上针对多媒体数据流的一种传输层协议 ...

  9. RTP学习笔记

    一.定义 实时传输协议(Real- time Transport Protocol,RTP)是在Internet上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多  ...

  10. FreeSWITCH第三方库(其他)的简单介绍(三)

    FreeSWITCH使用了大量的第三方库,本文档主要介绍关联相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 视频相关 ...

随机推荐

  1. c++ 内存顺序

    搞懂无锁编程的重要一步是完全理解内存顺序! 本教程由作者和ChatGPT通力合作完成. 都有哪几种? c++的内存模型共有6种 memory_order_relaxed memory_order_co ...

  2. VsCode里面运行mvn命令显示The JAVA_HOME environment variable is not defined correctly

    问题描述 关于这个问题,就是环境配置出了问题!!! 问题解决 在settings.json里面,配置的环境的路径不能出错,我就是在配置的时候,名为Environments的文件夹写成Environme ...

  3. 对于实现上一篇遇到的问题——MyBatis+增删改查(已解决)

    问题一:该Http不支持Get/Post方法 我根据网上的解决方法将Get和Post的位置来回换,还是不停报错: 后来偶然间看到一个博主发的"你的代码写在Get或者Post里面,就将没写代码 ...

  4. 快速带你复习html(超详细)

    此内容包含: html基础 列表.表格 媒体元素 表单(重点) 1.HTML 基础 目标: 会使用HTML5的基本结构创建网页 会使用文本相关标签排版文本信息 会使用图像相关标签实现图文并茂的页面 会 ...

  5. MarkdownStudy02DOS窗口

    打开dos窗口 开始里面win系统 win+r,输入cmd 在任意文件下,按住shift+鼠标右键点击,在此处打开PowerShell窗口 资源管理器的地址栏前面加上cmd路径 管理员身份运行 常用的 ...

  6. 数据挖掘决策树—R实现

    决策树 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别.分类树(决策树)是一种十分常用的分类方法.它是一种监督学习,所谓监督学习就是给定一 ...

  7. [Java]排序算法>插入排序>【折半插入排序】(O(N*N)/稳定/N较大/无序/顺序存储)

    1 折半插入排序 1.1 算法思想 相比于[直接插入排序]:采用"顺序查找法"查找当前记录在已排好序的序列中的插入位置, 折半插入排序利用"折半查找法"快速查出 ...

  8. 补五月三号java基础知识

    1.泛型技术可以通过一种类型或方法操纵各种不同类型的对象,同时又提供了编译时的类型安全保证.2.容器(即集合)是以类库形式 提供的多种数据结构,用户在编程时可直接使用3.泛型其实质就是将数据的类型参数 ...

  9. Binder机制及底层实现

    <1>进程间的内存空间是进程私有的<2>进程间和内核的空间是互通的<3>进程1空间<--->内核空间<-->进程2空间Binder跨进程通信 ...

  10. 快速重拾 Tmux

    Tmux 是一个 Linux (Mac OS也支持)下的终端复用器,相较于 Screen 更为强大,但快捷键和操作逻辑也更复杂,一段时间不用,就很容易忘记相关的命令和快捷键.本文旨在通过一个简单的场景 ...