sipp重放rtp資料測試FreeSWITCH

2023-05-24 06:00:08

環境: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/[email protected]:55080 &bridge(user/1000)

執行效果如下:

 uas呼叫效果視訊:

關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023052302 獲取。 

四、資源下載

本文涉及原始碼及二進位制檔案,可以從如下途徑獲取:

 關注微信公眾號(聊聊博文,文末可掃碼)後回覆 20230523 獲取。