SIPp之播放rtp语音/视频流

来源:互联网 发布:怎么彻底清除手机数据 编辑:程序博客网 时间:2024/05/17 17:46

欢迎大家转载,为保留作者成果,转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也可以下载!如果你没有积分,可以联系我!


经过多天的努力,用脚本呼叫eyebeem电话,在电话端终于听到录制的语音包了,费话不多说,描述环境:

192.168.0.20是一个有注册认证的SIP服务器,服务器端口为5060;
192.168.0.101是我在windows安装的cygwin软件后测试机器;
branchc1.xml 中的50000 呼叫 eyebeem号码50010
sipp版本: SIPp v3.2-TLS-PCAP, version unknown, built Jul 17 2013, 21:50:11

user.csv脚本:
SEQUENTIAL50000;50010;[authentication username=50000 password=50000]



流程如下:
                              
    REGISTER ----------> SIP_server     
         401 <---------- SIP_server       
    REGISTER ----------> SIP_server        
         200 <---------- SIP_server        
      INVITE ----------> SIP_server       
         407 <---------- SIP_server       
         ACK ----------> SIP_server       
      INVITE ----------> SIP_server -- INVITE--------->50010(eyebeem)     
         100 <---------- SIP_server---100 <---------- 50010(eyebeem)  
         180 <---------- SIP_server---180 <---------- 50010(eyebeem)    
         200 <---------- SIP_server---200 <---------- 50010(eyebeem)
         ACK ----------> SIP_server---ACK ---------->50010(eyebeem) 
       -----------RTP语音流(wireshark抓的语音包G711u.pcap)-----------
       Pause [    50.0s]      
         BYE ---------->       
         200 <----------       

脚本如下:
<?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 'branchc' scenario.          --><!--                                                           --><!-- 首先发送SIP注册消息,Register。里面的From与To是注册的号码  --><scenario name="branch_client">  <send retrans="500">    <![CDATA[       REGISTER sip:[remote_ip] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number];rport      To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>      Call-ID: [call_id]      CSeq: 1 REGISTER      Contact: sip:[field0]@[local_ip]:[local_port]      Content-Length: 0      Expires: 300    ]]>  </send>  <recv response="100" ptional="true">  </recv>  <!--  SIPp会收到来自AST要求验证的401 消息体,Recv意思为Receive,接收到来自AST的401要求验证的消息,Next为如果收到401,那么转至Label为1的地方进行操作 -->  <recv response="401" auth="true" next="1">  </recv>  <!--  send invite with authentication messages -->  <!--  开始发送Register消息,里面将把验证的密码消息发送给对方,在消息体里面是抓不到密码消息的,而且已经被md5方式加密过。-->  <label id="1"/>  <send retrans="500">    <![CDATA[       REGISTER sip:[field0]@[remote_ip]:[remote_port] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number];rport      To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>      Call-ID: [call_id]      CSeq: 2 REGISTER      Contact: sip:[field0]@[local_ip]:[local_port]      [field2]      Content-Length: [len]      Expires: 3600    ]]>  </send>  <recv response="100" ptional="true">  </recv>  <!--   收到来自AST的200 ACK消息后,系统转至等待1000ms,或者可以直接去掉该设置 -->  <recv response="200"  next="2">  </recv>  <label id="2"/>  <pause milliseconds="1000"/>    <send retrans="500">    <![CDATA[      INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]      To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>      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=[local_ip] 53655765 2353687637 IN IP[local_ip_type] [local_ip]      s=-      c=IN IP[local_ip_type] [local_ip]      t=0 0      m=audio [auto_media_port] RTP/AVP 8 0 101      a=rtpmap:8 PCMA/8000      a=rtpmap:0 PCMU/8000      a=rtpmap:101 telephone-event/8000      a=fmtp:101 0-16      a=recvonly    ]]>  </send>  <recv response="407" auth="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.                     -->  <!-- 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:[field1]@[remote_ip]:[remote_port] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]      To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]      Call-ID: [call_id]      CSeq: 1 ACK      Contact: sip:[field0]@[local_ip]:[local_port]      Max-Forwards: 70      Subject: Performance Test      Content-Length: 0    ]]>  </send>  <send retrans="500">    <![CDATA[      INVITE sip:[field1]@[remote_ip]:[remote_port] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]      To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>      Call-ID: [call_id]      CSeq: 2 INVITE      Contact: sip:[field0]@[local_ip]:[local_port]      [field2]      Max-Forwards: 70      Subject: Performance Test      Content-Type: application/sdp      Content-Length: [len]       v=0      o=[local_ip] 53655765 2353687637 IN IP[local_ip_type] [local_ip]      s=-      c=IN IP[local_ip_type] [local_ip]      t=0 0      m=audio [auto_media_port] RTP/AVP 8 0 101      a=rtpmap:8 PCMA/8000      a=rtpmap:0 PCMU/8000      a=rtpmap:101 telephone-event/8000      a=fmtp:101 0-16      a=recvonly    ]]>  </send>  <recv response="100" ptional="true">  </recv>  <recv response="183" ptional="true">  </recv>  <recv response="180" ptional="true">  </recv>  <recv response="200" rtd="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:[field1]@[remote_ip]:[remote_port] SIP/2.0      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]      To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>[peer_tag_param]      Call-ID: [call_id]      CSeq: 2 ACK      Contact: sip:[field0]@[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 play_pcap_audio="pcap/G711u.pcap"/>    </action>  </nop>  <!-- Pause 8 seconds, which is approximately the duration of the-->  <!-- PCAP file                                            -->  <pause milliseconds="50000"/>   <!-- The 'crlf' option inserts a blank line in the statistics report.-->  <send retrans="500">    <![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]@[local_ip]:[local_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> <pause milliseconds="5000"/>  <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 -r 1 -i 192.168.0.102 -l 1 -sf branchc1.xml -inf user.csv 192.168.0.20prepare_pcap.c: Ignoring non UDP packet!In pcap pcap/G711u.pcap, npkts 3789max pkt length 180base port 10546Warning: open file limit > FD_SETSIZE; limiting max.# of open files to FD_SETSIZE = 64       Resolving remote host '192.168.0.20'... Done.----------------------- Scenario Screen -------- [1-9]: Change Screen --  Call-rate(length)   Port   Total-time  Total-calls  Remote-host   1.0(0 ms)/1.000s   5060     144.66 s            3  192.168.0.20:5060(UDP)  0 new calls during 21.408 s period     1 ms scheduler resolution  1 calls (limit 1)                      Peak was 1 calls, after 1 s  0 Running, 0 Paused, 0 Woken up  0 dead call msg (discarded)            1 out-of-call msg (discarded)  3 open sockets  7809 Total RTP pckts sent              0.000 last period RTP rate (kB/s)                                 Messages  Retrans   Timeout   Unexpected-Msg    REGISTER ---------->         3         0         0         100 <----------         0         0         0         0         401 <----------         3         0         0         0    REGISTER ---------->         3         0         0         100 <----------         0         0         0         0         200 <----------         3         0         0         0       Pause [   1000ms]         3                             0      INVITE ---------->         3         0         0         407 <----------         3         0         0         0         ACK ---------->         3         0      INVITE ---------->         3         0         0         100 <----------         3         0         0         0         183 <----------         0         0         0         0         180 <----------         3         0         0         0         200 <----------  E-RTD1 3         0         0         0         ACK ---------->         3         0              [ NOP ]       Pause [    50.0s]         3                             0         BYE ---------->         2         0         0         200 <----------         2         0         0         0       Pause [   5000ms]         2                             0--------------------------- Test Terminated ------------------------------ Statistics Screen ------- [1-9]: Change Screen--       Start Time             | 2013-07-25   20:20:35:856    1374754835.856243  Last Reset Time        | 2013-07-25   20:22:39:148    1374754959.148399      Current Time           | 2013-07-25   20:23:00:557    1374754980.557117-------------------------+---------------------------+--------          Counter Name           | Periodic value            |     Cumulative value-------------------------+---------------------------+---------          Elapsed Time           | 00:00:21:408              | 00:02:24:700             Call Rate              |    0.000 cps              |    0.021 cps-------------------------+---------------------------+-------  Incoming call created  |        0                  |        0  OutGoing call created  |        0                  |        3     Total Call created     |                           |        3            Current Call           |        1                  |-------------------------+---------------------------+----------         Successful call        |        0                  |        2             Failed call            |        0                  |        0-------------------------+---------------------------+---------        Response Time 1        | 00:00:00:000              | 00:00:03:336            Call Length            | 00:00:05:113              | 00:00:40:770------------------------------ Test Terminated ----------------



以后再尝试视频包是否能在EYEBEE中播放视频与音频,到时候成功了再把脚本贴出来啊!

好了,下面是广告时间:
测试SIP协议的同志们可以加入群: 323827101,共同探讨哦!
群共享里可能会有你需要的资料!
0 0
原创粉丝点击