zoukankan      html  css  js  c++  java
  • sipp的使用

    参考网站:

    https://www.opensips.org/

    http://sipp.sourceforge.net/doc/reference.html

    https://sipp.readthedocs.io/en/latest/index.html

    https://github.com/saghul/sipp-scenarios

    客户端 :

    sipp -sf uac_pcap.xml -i 127.0.0.2 -p 1111 -mp 3333 -s frisk -r 1 -rp 3000    127.0.0.3:2222

    -i 本地ip

    -p 本地端口

    -s 请求URI的username部分

    -r 1次

    -rp 每1000ms 或 1s 表示


    uac_pcap.xml  文件

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE scenario SYSTEM "sipp.dtd">
    
    <!-- This program is free software; you can redistribute it and/or      -->
    <!-- modify it under the terms of the GNU General Public License as     -->
    <!-- published by the Free Software Foundation; either version 2 of the -->
    <!-- License, or (at your option) any later version.                    -->
    <!--                                                                    -->
    <!-- This program is distributed in the hope that it will be useful,    -->
    <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
    <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
    <!-- GNU General Public License for more details.                       -->
    <!--                                                                    -->
    <!-- You should have received a copy of the GNU General Public License  -->
    <!-- along with this program; if not, write to the                      -->
    <!-- Free Software Foundation, Inc.,                                    -->
    <!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
    <!--                                                                    -->
    <!--                 Sipp 'uac' scenario with pcap (rtp) play           -->
    <!--                                                                    -->
    
    <scenario name="UAC with media">
      <!-- In client mode (sipp placing calls), the Call-ID MUST be         -->
      <!-- generated by sipp. To do so, use [call_id] keyword.                -->
      <send retrans="500">
        <![CDATA[
    
          INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
          To: sut <sip:[service]@[remote_ip]:[remote_port]>
          Call-ID: [call_id]
          CSeq: 1 INVITE
          Contact: sip:sipp@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Type: application/sdp
          Content-Length: [len]
    
          v=0
          o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
          s=-
          c=IN IP[local_ip_type] [local_ip]
          t=0 0
          m=audio [media_port] RTP/AVP 8
          a=rtpmap:8 PCMA/8000
          a=rtpmap:101 telephone-event/8000
          a=fmtp:101 0-11,16
    
        ]]>
      </send>
    
      <recv response="100" optional="true">
      </recv>
    
      <recv response="180" optional="true">
      </recv>
    
      <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
      <!-- are saved and used for following messages sent. Useful to test   -->
      <!-- against stateful SIP proxies/B2BUAs.                             -->
      <recv response="200" rtd="true" crlf="true">
      </recv>
    
      <!-- Packet lost can be simulated in any send/recv message by         -->
      <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.       -->
      <send>
        <![CDATA[
    
          ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
          To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
          Call-ID: [call_id]
          CSeq: 1 ACK
          Contact: sip:sipp@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Length: 0
    
        ]]>
      </send>
    
      <!-- Play a pre-recorded PCAP file (RTP stream)                       -->
      <nop>
        <action>
          <!-- <exec rtp_stream="pcap/file.wav" /> -->
          <exec play_pcap_audio="pcap/g711a.pcap"/>
        </action>
      </nop>
    
      <pause milliseconds="1000"/>
    
      <!-- The 'crlf' option inserts a blank line in the statistics report. -->
      <send retrans="500">
        <![CDATA[
    
          BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
          Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
          From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[call_number]
          To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
          Call-ID: [call_id]
          CSeq: 2 BYE
          Contact: sip:sipp@[local_ip]:[local_port]
          Max-Forwards: 70
          Subject: Performance Test
          Content-Length: 0
    
        ]]>
      </send>
    
      <recv response="200" crlf="true">
      </recv>
    
      <!-- definition of the response time repartition table (unit is ms)   -->
      <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
    
      <!-- definition of the call length repartition table (unit is ms)     -->
      <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
    
    </scenario>


    服务端:

    sipp -sf uas_pcap.xml -rtp_echo -i 127.0.0.3 -p 2222 -mp 4444

    uas_pcap.xml  文件

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE scenario SYSTEM "sipp.dtd">
    
    <!-- This program is free software; you can redistribute it and/or      -->
    <!-- modify it under the terms of the GNU General Public License as     -->
    <!-- published by the Free Software Foundation; either version 2 of the -->
    <!-- License, or (at your option) any later version.                    -->
    <!--                                                                    -->
    <!-- This program is distributed in the hope that it will be useful,    -->
    <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->
    <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the      -->
    <!-- GNU General Public License for more details.                       -->
    <!--                                                                    -->
    <!-- You should have received a copy of the GNU General Public License  -->
    <!-- along with this program; if not, write to the                      -->
    <!-- Free Software Foundation, Inc.,                                    -->
    <!-- 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA             -->
    <!--                                                                    -->
    <!--                 Sipp default 'uas' scenario.                       -->
    <!--                                                                    -->
    
    <scenario name="Basic UAS responder">
      <!-- By adding rrs="true" (Record Route Sets), the route sets         -->
      <!-- are saved and used for following messages sent. Useful to test   -->
      <!-- against stateful SIP proxies/B2BUAs.                             -->
      <recv request="INVITE" crlf="true" rrs="true">
      </recv>
    
      <!-- The '[last_*]' keyword is replaced automatically by the          -->
      <!-- specified header if it was present in the last message received  -->
      <!-- (except if it was a retransmission). If the header was not       -->
      <!-- present or if no message has been received, the '[last_*]'       -->
      <!-- keyword is discarded, and all bytes until the end of the line    -->
      <!-- are also discarded.                                              -->
      <!--                                                                  -->
      <!-- If the specified header was present several times in the         -->
      <!-- message, all occurences are concatenated (CRLF seperated)        -->
      <!-- to be used in place of the '[last_*]' keyword.                   -->
    
      <send>
        <![CDATA[
          SIP/2.0 100 Trying
          [last_Via:]
          [last_From:]
          [last_To:];tag=[pid]SIPpTag01[call_number]
          [last_Call-ID:]
          [last_CSeq:]
          Contact: <sip:[local_ip]:[local_port];transport=[transport]>
          Content-Length: 0
        ]]>
      </send>
    
      <send>
        <![CDATA[
          SIP/2.0 180 Ringing
          [last_Via:]
          [last_From:]
          [last_To:];tag=[pid]SIPpTag01[call_number]
          [last_Call-ID:]
          [last_CSeq:]
          Contact: <sip:[local_ip]:[local_port];transport=[transport]>
        ]]>
      </send>
    
      <send retrans="500">
        <![CDATA[
          SIP/2.0 200 OK
          [last_Via:]
          [last_From:]
          [last_To:];tag=[pid]SIPpTag01[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 8
          a=rtpmap:8 PCMA/8000
        ]]>
      </send>
    
      <recv request="ACK"
            rtd="true"
            crlf="true">
      </recv>
    
      <recv request="BYE">
      </recv>
    
      <send>
        <![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>
    
      <!-- Keep the call open for a while in case the 200 is lost to be     -->
      <!-- able to retransmit it if we receive the BYE again.               -->
      <timewait milliseconds="1000"/>
    
    
      <!-- definition of the response time repartition table (unit is ms)   -->
      <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
    
      <!-- definition of the call length repartition table (unit is ms)     -->
      <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
    
    </scenario>


    g711a.pcap

    把.zip后缀删掉。

  • 相关阅读:
    Day 29 作业/服务端实现接收客户端的连接并发
    Day 28 操作系统发展/进程
    Day 27 作业(FTP)
    Day 27 subprocess模块/粘包问题以及解决/UDP协议/socketserver
    Day 26 作业
    Day 26 互联网协议/Socket套接字
    Day 22 绑定方法和非绑定方法/isinstance/issubclass/反射/魔法方法/单例模式
    Day 21 作业
    Day 21 组合/封装/property特性/多态和多态性/抽象类/鸭子类型
    day 20 作业
  • 原文地址:https://www.cnblogs.com/frisk/p/14202930.html
Copyright © 2011-2022 走看看