sipp3.6對freeswitch進行壓力測試


一、安裝sipp

1、下載地址:

https://github-production-release-asset-2e65be.s3.amazonaws.com/13161657/99df6100-9216-11e9-9439-d9c9f5284379?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20200904%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20200904T024024Z&X-Amz-Expires=300&X-Amz-Signature=df9c9aeba4b219e5a3c6ea4cd0cbb76785900829a5294ac6d72f5c7ba4409f9b&X-Amz-SignedHeaders=host&actor_id=30207023&key_id=0&repo_id=13161657&response-content-disposition=attachment%3B%20filename%3Dsipp-3.6.0.tar.gz&response-content-type=application%2Foctet-stream

2、安裝依賴包

yum install ncurse*
yum install openssl*
yum install lksctp*
yum install libpcap*

3、安裝sipp3.6

tar -xvzf sipp-xxx.tar.gz
cd sipp
./configure --with-sctp --with-pcap --with-openssl
make

4、驗證安裝

sipp -v

二、環境設置

1、修改系統openfile限制

(1)vim /etc/security/limits.conf,添加:

    * soft nofile 32768
    * hard nofile 65535

(2)vim /etc/pam.d/login,添加:

    session required /lib/security/pam_limits.so

(3)命令行輸入:

ulimit -s unlimited
ulimit -a

2、修改freeswitch配置

(1)cd /etc/freeswitch/autoload_configs,編輯vim switch.conf.xml

# 修改
<param name="max-sessions" value="100000"/>
<param name="sessions-per-second" value="10000"/>

(2)修改撥號正則,cd /etc/freeswitch/dialplan,修改某個profile:

<?xml version="1.0" encoding="utf-8"?>
<include>

<extension name="Balance_load">

        <condition field="destination_number" expression="^([2-6][0-9][0-9][0-9])$">
           <action application="export" data="dialed_extension=$1"/>
           <action application="set" data="sip_h_History-Info=${sip_history_info}"/>
           <action application="set" data="hangup_after_bridge=true"/>
           <action application="set" data="callId=${uuid}"/>
           <action application="bridge" data="{absolute_codec_string=pcma,callId=${uuid}}sofia/webphonetest/$1@${local_ip_v4}:56148" />
       </condition>
  </extension>

</include>

其中,@172.200.115.13:56148是被叫IP和端口

(3)添加default配置文件。

cd /etc/freeswitch/directory/default
# 3000 5999為自己需要的用戶
for i in `seq 2000 5999`; do sed -e "s/1000/$i/g" 1000.xml > $i.xml ; done

(4)添加白名單,無需鑒權

cd /etc/freeswitch/autoload_configs
vim acl.conf.xml

# 進入編輯模式修改
    <list name="domains" default="deny">
      <!-- domain= is special it scans the domain from the directory to build the ACL -->
      <node type="allow" domain="$${domain}"/>
      <!-- use cidr= if you wish to allow ip ranges to this domains acl. -->
      <node type="allow" cidr="192.168.200.0/24"/>
      <!--新增此行. -->
      <node type="allow" cidr="10.10.81.0/24"/>    
    </list>

 三、配置文件

1、uac.csv

SEQUENTIAL
2000;2050;[authentication username=2000 password=1234]
2001;2051;[authentication username=2001 password=1234]
2002;2052;[authentication username=2002 password=1234]
2003;2053;[authentication username=2003 password=1234]
2004;2054;[authentication username=2004 password=1234]
2005;2055;[authentication username=2000 password=1234]
2006;2056;[authentication username=2001 password=1234]
2007;2057;[authentication username=2002 password=1234]
2008;2058;[authentication username=2003 password=1234]
2009;2059;[authentication username=2004 password=1234]
2010;2060;[authentication username=2000 password=1234]
2011;2061;[authentication username=2001 password=1234]
2012;2062;[authentication username=2002 password=1234]
2013;2063;[authentication username=2003 password=1234]
2014;2064;[authentication username=2004 password=1234]
2015;2065;[authentication username=2000 password=1234]
2016;2066;[authentication username=2001 password=1234]
2017;2067;[authentication username=2002 password=1234]
2018;2068;[authentication username=2003 password=1234]
2019;2069;[authentication username=2004 password=1234]
2020;2070;[authentication username=2000 password=1234]
2021;2071;[authentication username=2001 password=1234]
2022;2072;[authentication username=2002 password=1234]
2023;2073;[authentication username=2003 password=1234]
2024;2074;[authentication username=2004 password=1234]
2025;2075;[authentication username=2000 password=1234]
2026;2076;[authentication username=2001 password=1234]
2027;2077;[authentication username=2002 password=1234]
2028;2078;[authentication username=2003 password=1234]
2029;2079;[authentication username=2004 password=1234]
2030;2080;[authentication username=2000 password=1234]
2031;2081;[authentication username=2001 password=1234]
2032;2082;[authentication username=2002 password=1234]
2033;2083;[authentication username=2003 password=1234]
2034;2084;[authentication username=2004 password=1234]
2035;2085;[authentication username=2000 password=1234]
2036;2086;[authentication username=2001 password=1234]
2037;2087;[authentication username=2002 password=1234]
2038;2088;[authentication username=2003 password=1234]
2039;2089;[authentication username=2004 password=1234]
2040;2090;[authentication username=2000 password=1234]
2041;2091;[authentication username=2001 password=1234]
2042;2092;[authentication username=2002 password=1234]
2043;2093;[authentication username=2003 password=1234]
2044;2094;[authentication username=2004 password=1234]
2045;2095;[authentication username=2000 password=1234]
2046;2096;[authentication username=2001 password=1234]
2047;2097;[authentication username=2002 password=1234]
2048;2098;[authentication username=2003 password=1234]
2049;2099;[authentication username=2004 password=1234]

2、uas.csv

SEQUENTIAL
2050;;[authentication username=2050 password=1234]
2051;;[authentication username=2051 password=1234]
2052;;[authentication username=2052 password=1234]
2053;;[authentication username=2053 password=1234]
2054;;[authentication username=2054 password=1234]
2055;;[authentication username=2050 password=1234]
2056;;[authentication username=2051 password=1234]
2057;;[authentication username=2052 password=1234]
2058;;[authentication username=2053 password=1234]
2059;;[authentication username=2054 password=1234]
2060;;[authentication username=2050 password=1234]
2061;;[authentication username=2051 password=1234]
2062;;[authentication username=2052 password=1234]
2063;;[authentication username=2053 password=1234]
2064;;[authentication username=2054 password=1234]
2065;;[authentication username=2050 password=1234]
2066;;[authentication username=2051 password=1234]
2067;;[authentication username=2052 password=1234]
2068;;[authentication username=2053 password=1234]
2069;;[authentication username=2054 password=1234]
2070;;[authentication username=2050 password=1234]
2071;;[authentication username=2051 password=1234]
2072;;[authentication username=2052 password=1234]
2073;;[authentication username=2053 password=1234]
2074;;[authentication username=2054 password=1234]
2075;;[authentication username=2050 password=1234]
2076;;[authentication username=2051 password=1234]
2077;;[authentication username=2052 password=1234]
2078;;[authentication username=2053 password=1234]
2079;;[authentication username=2054 password=1234]
2080;;[authentication username=2050 password=1234]
2081;;[authentication username=2051 password=1234]
2082;;[authentication username=2052 password=1234]
2083;;[authentication username=2053 password=1234]
2084;;[authentication username=2054 password=1234]
2085;;[authentication username=2050 password=1234]
2086;;[authentication username=2051 password=1234]
2087;;[authentication username=2052 password=1234]
2088;;[authentication username=2053 password=1234]
2089;;[authentication username=2054 password=1234]
2090;;[authentication username=2050 password=1234]
2091;;[authentication username=2051 password=1234]
2092;;[authentication username=2052 password=1234]
2093;;[authentication username=2053 password=1234]
2094;;[authentication username=2054 password=1234]
2095;;[authentication username=2050 password=1234]
2096;;[authentication username=2051 password=1234]
2097;;[authentication username=2052 password=1234]
2098;;[authentication username=2053 password=1234]
2099;;[authentication username=2054 password=1234]

3、regclient_set_c_port.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="regclient">
    <Global variables="c_port" />
    
    <nop hide="true">
        <action>
            <assignstr assign_to="EXP" value="3600" />
        </action>
    </nop>
    
  <send>
    <![CDATA[
      REGISTER sip:[remote_ip] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: <sip:[field0]@[remote_ip]>;tag=acknnkkg.[call_number]
      To: <sip:[field0]@[remote_ip]>
      Call-ID: [call_id]
      CSeq: 1 REGISTER
      Contact: <sip:[field0]@[local_ip]:[$c_port]>
      Max-Forwards: 70
      Subject: Reg Performance Test
      user-agent: SIPp client
      Expires: [$EXP]
      Content-Length: 0
          ]]>
  </send>
  

  <recv response="401" optional="true" auth="true" next="auth" >
  </recv>
  
  <recv response="403" optional="true" next="END">
  </recv>
  
  <recv response="404" optional="true" next="END">
  </recv>
  
  <recv response="200" next="END" timeout="5000">
  </recv>
  
  <label id="auth" />
  <send retrans="500">
    <![CDATA[
      REGISTER sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: [field0] <sip:[field0]@[remote_ip]:[remote_port]>;tag=[call_number]
      To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>
      Call-ID: [call_id]
      CSeq: 2 REGISTER
      Contact: sip:[field0]@[local_ip]:[local_port]
      Max-Forwards: 70
      Subject: Reg Performance Test 
      user-agent: SIPp client
      Expires: [$EXP]
      [field2]
      Content-Length: 0

    ]]>
  </send>

  <recv response="200" next="END" timeout="5000">
  </recv>

  <label id="END"/>
  <nop hide="true">
  </nop>

<!--<Reference variables="microseconds,seconds" />-->

  <!-- Definition of the response time repartition table (unit is ms)   -->
  <ResponseTimeRepartition value="50, 200"/>

  <!-- Definition of the call length repartition table (unit is ms)     -->
  <CallLengthRepartition value="500, 5000"/>

</scenario>

4、caller_with_auth.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<scenario name="caller_with_auth">
<!--執行命令樣例:sipp -sf caller_with_auth.xml xx.x.x.xx:5060 -p 5066 -inf caller.csv -m 1 -d 10000 -oocsn ooc_default-->
<!--發送INVITE消息,設定重傳定時器為1000ms,同時啟動定時器invite-->
<send retrans="1000" start_rtd="invite">
    <![CDATA[
      INVITE sip:[field1]@[remote_ip] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
      To: "[field1]"<sip:[field1]@[remote_ip]>
      Call-ID: [call_id]
      CSeq: 1 INVITE
      Contact: <sip:[field0]@[local_ip]:[local_port]>
      User-Agent: SIPp client mode version [sipp_version]
      Allow: INVITE,PRACK,ACK,UPDATE,CANCEL,BYE,OPTIONS,INFO,SUBSCRIBE,REFER,NOTIFY
      Max-Forwards: 70
      Content-Type: application/sdp
      Content-Length: [len]

      v=0
      o=SIPp [pid][call_number] 8[pid][call_number]8 IN IP[local_ip_type] [local_ip]
      s=SIPp Normal Call Test
      t=0 0
      m=audio [media_port] RTP/AVP 0 8
      c=IN IP[media_ip_type] [media_ip]
      a=rtpmap:0 PCMU/8000
      a=rtpmap:8 PCMA/8000
      a=ptime:20
      a=sendrecv
    ]]>
     </send>

<recv response="100" optional="true">
</recv>

<!-- <recv response="401" auth="true"> -->
<!-- </recv> -->

<!-- 部分呼叫鑒權可能為407 -->
<!-- <recv response="407" option="true" auth="true">
</recv>

<send>
    <![CDATA[
      ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch-3]
      From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
      To: "[field1]"<sip:[field1]@[remote_ip]>[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 1 ACK
      Contact: <sip:[field0]@[local_ip]:[local_port]>
      Max-Forwards: 70
      Subject: normal call scenario 
      user-agent: SIPp client mode version [sipp_version]
      Content-Length: 0
    ]]>
  </send>

<send retrans="1000" start_rtd="invite">
    <![CDATA[
        INVITE sip:[field1]@[remote_ip] SIP/2.0
        [last_Via:]
        From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
        To: "[field1]"<sip:[field1]@[remote_ip]>
        Call-ID: [call_id]
        CSeq: 2 INVITE
        [field2]
        Contact: <sip:[field0]@[local_ip]:[local_port]>
        User-Agent: SIPp client mode version [sipp_version]
        Allow: INVITE,PRACK,ACK,UPDATE,CANCEL,BYE,OPTIONS,INFO,SUBSCRIBE,REFER,NOTIFY
        Max-Forwards: 70
        Content-Type: application/sdp
        Content-Length: [len]

        v=0
        o=SIPp [pid][call_number] 8[pid][call_number]8 IN IP[local_ip_type] [local_ip]
        s=SIPp Normal Call Test
        t=0 0
        m=audio [media_port] RTP/AVP 0 8
        c=IN IP[media_ip_type] [media_ip]
        a=rtpmap:0 PCMU/8000
        a=rtpmap:8 PCMA/8000
        a=ptime:20
        a=sendrecv

    ]]>
</send>


<!--1xx響應均為可選接收消息,且接收到臨時響應后,即可停止invite定時器的計時-->
<!--收到4xx/5xx錯誤響應后,直接進入呼叫失敗-->
<!-- <recv response="100" optional="true" rtd="invite">
</recv>

<recv response="183" optional="true" rtd="invite" next="normal">
</recv>

<recv response="403" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="407" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="415" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="480" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="486" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="500" optional="true" rtd="invite" next="err_ack">
</recv>

<recv response="503" optional="true" rtd="invite" next="err_ack">
</recv> -->
 -->
<recv response="180"  optional="true" rtd="invite" next="normal">
</recv>

<label id="normal"/>
<recv response="200" rtd="invite">
    <action>
        <ereg regexp="m=audio ([0-9]*)"
            search_in="msg"
            check_it="true"
            assign_to="junk,callee_media_port" />
    </action>
</recv>

<nop hide="true">
    
</nop>

<send>
    <![CDATA[
        ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
        From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
        To: "[field1]"<sip:[field1]@[remote_ip]>[peer_tag_param]
        Call-ID: [call_id]
        CSeq: 2 ACK
        Contact: <sip:[field0]@[local_ip]:[local_port]>
        Max-Forwards: 70
        Subject: normal call scenario
        user-agent: SIPp client mode version [sipp_version]
        Content-Length: 0
    ]]>
</send>

<!--使用rtp_stream循環播放PCMA音頻
<nop hide="true">
    <action>
      <exec rtp_stream="pcap/g711a.pcap,-1,0"/>
    </action>
</nop>
-->
<!--使用rtp_stream循環播放PCMU音頻
<nop hide="true">
    <action>
      <exec rtp_stream="pcap/g711u.pcap,-1,0"/>
    </action>
</nop>
-->

<!--使用play_pcap單次播放PCMA音頻-->
<nop hide="true">
    <action>
        <exec play_pcap_audio="pcap/g711a.pcap"/> 
    </action>
</nop>
<!--使用play_pcap單次播放PCMU音頻
<nop hide="true">
    <action>
        <exec play_pcap_audio="pcap/g711u.pcap"/> 
    </action>
</nop>
-->

<!--媒體流傳輸完畢后,暫停發送BYE結束呼叫,在執行命令中增加參數-d 指定暫停時間:如-d 10000暫停10秒-->
<pause />

<send start_rtd="bye">
    <![CDATA[
        BYE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
        Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
        From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
        To: "[field1]"<sip:[field1]@[remote_ip]>[peer_tag_param]
        Call-ID: [call_id]
        CSeq: 3 BYE
        Max-Forwards: 70
        Subject: normal call scenario
        Content-Length: 0
    ]]>
</send>

<recv response="200" rtd="bye" next="END">
</recv>

<!--異常結束,復用err_ack流程-->
<label id="err_ack"/>

<send>
    <![CDATA[
        ACK sip:[field1]@[remote_ip]:[remote_port] SIP/2.0
        [last_Via:]
        From: "[field0]" <sip:[field0]@[remote_ip]>;tag=[call_number]zhg8
        To: "[field1]"<sip:[field1]@[remote_ip]>[peer_tag_param]
        [last_Call-ID:]
        CSeq: 2 ACK
        Max-Forwards: 70
        Subject: normal call scenario
        user-agent: SIPp client mode version [sipp_version]
        Content-Length: 0
    ]]>
</send>

<!--正常結束-->
<label id="END"/>
<nop hide="true">
</nop>

<!--如果存在定義了但未被使用的變量,可以在下面語句的雙引號中增加,避免運行時報錯-->
<Reference variables="junk,callee_media_port" />
    
<!--definition of the response time repartition table (unit is ms)   -->
<ResponseTimeRepartition value="50, 200,1000,2000,4000,10000"/>

<!--definition of the call length repartition table (unit is ms)     -->
<CallLengthRepartition value="500, 1000, 10000"/>

</scenario>

5、callee_with_bye.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">

<scenario name="callee_with_bye">
<!--用於模擬局內被叫側用戶的正常業務流程
        媒體類型:PCMU
        呼叫掛機:主叫方(60秒超時后主動發BYE拆話)-->
        
<!--執行命令樣例:sipp -sf callee_with_bye.xml -p 5068-->
                
<!--定義全局狀態機,如果收到OPTIONS消息,則跳轉至options標簽處-->
<recv request="OPTIONS" optional="global" next="options">
</recv>
    
<recv request="INVITE">
<!--參數caller_num、callee_num和caller_tag用於主叫未掛機,BYE接收超時主動發BYE的流程-->
    <action>
        <ereg regexp="sip:(.*)@(.*)>;tag=(.*)"
              search_in="hdr"
              header="From: "
              check_it="true"
              assign_to="junk,caller_num,domain,caller_tag" >
        </ereg>    
        <ereg regexp="sip:(.*)@.*>"
              search_in="hdr"
              header="To: "
              check_it="true"
              assign_to="junk,callee_num" >
        </ereg>      
    </action>
</recv>
        
<!--增加間隔20ms,避免偶現系統不發送100響應的問題-->
<pause hide="true" milliseconds="20"/>  
    
<send>
    <![CDATA[
    SIP/2.0 100 Trying
    [last_Via:]
    [last_From:]
    [last_To:]
    [last_Call-ID:]
    [last_CSeq:]
    Contact: <sip:[local_ip]:[local_port];transport=[transport]>
    Content-Length: 0
    ]]>
    </send>

<!--增加間隔20ms,避免偶現系統不發送180響應的問題-->
<pause hide="true" milliseconds="20"/> 
 
<send>
    <![CDATA[
    SIP/2.0 180 Ringing
    [last_Via:]
    [last_From:]
    [last_To:];tag=[call_number]
    [last_Call-ID:]
    [last_CSeq:]
    Contact: <sip:[local_ip]:[local_port];transport=[transport]>
    Content-Length: 0
    ]]>
</send>

<!--設置發送200后等待ACK的重傳周期為1秒,如果1秒內收不到ACK則進行200的重傳-->
<send retrans="1000" start_rtd="ack">
    <![CDATA[
    SIP/2.0 200 OK 
    [last_Via:]
    [last_From:]
    [last_To:];tag=[call_number]
    [last_Call-ID:]
    [last_CSeq:]
    Contact:<sip:[local_ip]:[local_port];transport=[transport]>
    Content-Type: application/sdp
    Content-Length: [len]

    v=0
    o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
    s=-
    c=IN IP[media_ip_type] [media_ip]
    t=0 0
    m=audio [media_port] RTP/AVP 0 8
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=ptime:20
    ]]>
</send>
    
<!--設置等待ACK的超時定時器為30秒,如果30秒內收不到ACK則呼叫超時失敗而結束-->    
<recv request="ACK" rtd="ack" timeout="30000" />
 
<!--使用rtp_stream循環播放PCMA音頻
<nop hide="true">
    <action>
      <exec rtp_stream="pcap/g711a.pcap,-1,0"/>
    </action>
</nop>
-->
<!--使用rtp_stream循環播放PCMU音頻
<nop hide="true">
    <action>
      <exec rtp_stream="pcap/g711u.pcap,-1,0"/>
    </action>
</nop>
-->

<!--使用play_pcap單次播放PCMA音頻-->
<nop hide="true">
    <action>
        <exec play_pcap_audio="pcap/g711a.pcap"/> 
    </action>
</nop>
<!--使用play_pcap單次播放PCMU音頻
<nop hide="true">
    <action>
        <exec play_pcap_audio="pcap/g711u.pcap"/> 
    </action>
</nop>
-->

<recv request="BYE" timeout="60000" ontimeout="send_bye"/>    
<send next="END">
    <![CDATA[
    SIP/2.0 200 OK
    [last_Via:]
    [last_From:]
    [last_To:]
    [last_Call-ID:]
    [last_CSeq:]
    Contact: <sip:[local_ip]:[local_port];transport=[transport]>
    Content-Length: 0
    ]]>
</send>

<label id="options"/>
  <send next="END" >
    <![CDATA[
      SIP/2.0 200 OK
      [last_Via:]
      [last_Call-ID:]
      [last_From:]
      [last_To:];tag=telpo-options[call_number]
      [last_CSeq:]
      [last_Contact:]
      user-agent: SIPP version [sipp_version]
      subject: reg performance
      link-status: I am alive
      Content-Length: 0

    ]]>
</send> 
    
<!--主叫未掛機,BYE接收超時,被叫主動發BYE-->    
<label id="send_bye"/> 
<send start_rtd="bye">
    <![CDATA[
    BYE sip:[$caller_num]@[local_ip]:[local_port] SIP/2.0
    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
    From: "[$caller_num]" <sip:[$caller_num]@[local_ip]>;tag=[call_number]
    To: "[$callee_num]"<sip:[$callee_num]@[local_ip]>;tag=[$caller_tag]
    Call-ID: [call_id]
    CSeq: 2 BYE
    Max-Forwards: 70
    Subject: normal call scenario 
    Content-Length: 0
    ]]>
</send>

<recv response="200" rtd="bye">
</recv> 
 
<label id="END"/>

<Reference variables="junk,domain" />

<!-- definition of the response time repartition table (unit is ms)-->
<ResponseTimeRepartition value="50, 200"/>

<!-- definition of the call length repartition table (unit is ms)-->
<CallLengthRepartition value="500, 1000, 10000"/>

</scenario>

 四、命令

sipp -sf regclient_set_c_port.xml 172.29.50.60:5050 -i 172.29.50.60 -p 26000  -inf  uac.csv   -r 5  -rp 1000 -l 5 -m 100

sipp -sf regclient_set_c_port.xml 172.29.50.60:5050 -i 172.29.50.60 -p 56148  -inf  uas.csv   -r 5  -rp 1000 -l 5 -m 100

sipp -sf callee_with_bye.xml -i 172.29.50.60 -p 56148 -trace_err 
 
sipp -sf caller_with_auth.xml 172.29.50.60:5050 -i 172.29.50.60 -p 26000 -inf uac.csv -r 10  -rp 1000 -l 30 -m 100 -d 60000 -oocsn ooc_default -trace_err -aa

# -r:並發數量
 #-rp:並發的時間,單位ms,例如:-r 800 -rp 1000,就是每秒800並發
 #-l:設置同時呼叫的最大數目;一旦達到此值,流量將被限制直到打的通話數下降;默認值3*call_duration(s)*rate
 #-m:通話總數,當設置的通話數完成時,停止測試並退出;
 #-d:自定義的通話時長,單位ms
 #-aa:針對INFO, UPDATE 和 NOTIFY消息,進行200 OK自動回復應答;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM