SIPp常用脚本之三:UAC

Posted 一沙世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SIPp常用脚本之三:UAC相关的知识,希望对你有一定的参考价值。

UAC是作为SIP消息的发起端,可以控制消息速率什么的,方便极了。

一、uac.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE scenario SYSTEM "sipp.dtd">

<scenario name="Basic Sipstone UAC">
  <send retrans="500">
    <![CDATA[
      INVITE sip:[field1]@10.130.16.42:5060 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: <sip:[field1]@[remote_ip]:5060>
      Call-ID: [call_id]
      CSeq: 1 INVITE
      Contact: sip:[field0]@[local_ip]:[local_port]
      Max-Forwards: 70
      Subject: Performance Test
      Content-Type: application/sdp
      Content-Length: [len]
      
      v=0
      o=HuaweiFlexit1.0 20004 20004 IN IP4 10.130.30.7
      s=A call
      c=IN IP4 10.130.30.7
      t=1228447938 1228451538
      m=audio 10500 RTP/AVP 18 4 8 0 97
      a=rtpmap:18 G729/8000
      a=fmtp:18 annexb=no
      a=rtpmap:4 G723/8000
      a=rtpmap:8 PCMA/8000
      a=rtpmap:0 PCMU/8000
      a=rtpmap:97 telephone-event/8000
      a=fmtp:97 0-15
      a=sendrecv
      m=video 10510 RTP/AVP 34 98
      b=AS:376
      a=rtpmap:34 H263/90000
      a=fmtp:34 QCIF=1 CIF=4 MaxBR=3760
      a=rtpmap:98 MP4V-ES/90000
      a=fmtp:98 profile-level-id=2
      a=sendrecv
    ]]>
  </send>

  <recv response="100" >
  </recv>
  <recv response="180" >
  </recv>

  <recv response="200" >
  </recv>

   <send>
    <![CDATA[
      ACK sip:[email protected]10.130.16.42:5060;transport=udp 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: <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 1 ACK
      Max-Forwards: 70
      Subject: Performance Test
      Content-Length: 0
    ]]>
  </send>
  <pause milliseconds="5000"/>
  <send retrans="500">
    <![CDATA[
      BYE 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: [field1] <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 2 BYE
      Contact: sip:[field0]@[local_ip]:[local_port]
      Max-Forwards: 70
      Subject: Performance Test
      Content-Length: 0
    ]]>
  </send>
  <recv response="200" crlf="true">
  </recv>
  <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
  <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
</scenario>

 

二、uac.sh

1. TCP方式启动

./sipp -sf uac.xml -i 本地服务器地址 -p 本地服务器端口 业务服务器地址:端口 -r 50 -t tn -max_socket 1024

2. UDP方式启动

./sipp -sf uac.xml -i 本地服务器地址 -p 本地服务器端口 业务服务器地址:端口 -r 50

 

三、一点说明

-r 50 是每秒发送50条SIP消息。

 

以上是关于SIPp常用脚本之三:UAC的主要内容,如果未能解决你的问题,请参考以下文章

如何使用SIPp测试ReSIProcate的Proxy

如何使用SIPp测试ReSIProcate的Proxy

SIPp常用脚本之UAS

sipp学习

sipp学习

常用python日期日志获取内容循环的代码片段