【问题标题】:Repeat DTMF digit with SIPP Test使用 SIPP 测试重复 DTMF 数字
【发布时间】:2016-01-29 23:06:51
【问题描述】:

我想用 SIPP 为我的 SIP 服务器(Restcomm)创建负载测试,

这是我的 sipp 脚本,运行良好...通话成功,DTFM 正在播放

我可以收到数字 1 一次,但不能收到 2 次...如果我在第二个“播放”一个不同的数字中更改,效果很好,但如果两个数字相同,我只能收到第一个。

这是一个 SIPP 错误吗?还是我的脚本有问题?

我相信问题就在这里

<exec play_pcap_audio="pcap/dtmf_2833_1.pcap" />

这是我的完整脚本

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE scenario SYSTEM "sipp.dtd">
<scenario name="UAC with media">
    <send retrans="500">
<![CDATA[

  INVITE sip:[field0]@[remote_ip]:[remote_port] SIP/2.0
  Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  From: sipp <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
  To: sut <sip:[field0]@[remote_ip]:[remote_port]>
  Call-ID: [call_id]
  CSeq: 1 INVITE
  Contact: sip:[field1]@[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_port]
  t=0 0
  m=audio [auto_media_port] RTP/AVP 96 0 9 8 101 13
  a=rtpmap:8 PCMA/8000
  a=rtpmap:101 telephone-event/8000
  a=fmtp:101 0-1
]]>
    </send>

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

    <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:[field0]@[remote_ip]:[remote_port] SIP/2.0
  Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  From: sipp <sip:[field1]@[local_ip]:[local_port]>;tag=[call_number]
  To: sut <sip:[field0]@[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>


    <pause milliseconds="1000" />

    <nop>
            <action>
                    <exec play_pcap_audio="pcap/dtmf_2833_1.pcap" />
            </action>
    </nop>

    <pause milliseconds="100" />

   <nop>
            <action>
                     <!-- <exec play_pcap_audio="pcap/dtmf_2833_5.pcap"/> -->
                    <exec rtp_stream="resume" />
                    <exec play_pcap_audio="pcap/dtmf_2833_1.pcap" />
            </action>
    </nop>

    <pause milliseconds="100" />

    <!-- definition of the response time repartition table (unit is ms) -->
    <ResponseTimeRepartition value="100, 500,1000,3000,4000,5000,6000" />

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

更新:

添加 Restcomm 端

我可以通过以下网址访问此页面:http://192.168.148.1:18080/test/index.jsp

我可以听到音频(无限循环测试)

1) 使用 SIP 客户端 (JITSI) 进行测试:我可以按 1,1 并听到 2 次 2) 使用 SIPP 脚本测试:我只听到 1 次

<%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
    import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
        if (request.getParameter("reply")!=null){
        System.out.println("===========  REPLY                    ==============="+request.getParameter("Digits"));
    }else{
             System.out.println("=======================================================");
        System.out.println("===========  NEW CALL  =================");
              System.out.println("=======================================================");
    }
  %>
 <Response>
        <Gather action="index.jsp?reply=1" method="GET" numDigits="1"   timeout="20">
 <Play>http://192.168.148.1:8080/restcomm/audio/demo-prompt.wav</Play>
 </Gather>
</Response>

【问题讨论】:

  • 能否分享您正在测试的相应 RVD 应用程序的链接?另外,你为什么使用 ?您还可以在媒体服务器中查找日志以查看在运行时识别出哪些 DTMF。
  • 嗨@hrosa 我可以分享我的 URL POST 的 RCML 结果。我认为这不是 Restcomm 问题...因为 Restcomm 向我显示了一个数字按下...
  • @hrosa 我编辑帖子,你可以看到我的页面(我添加了规则 *247 -> POST 到 ../index.jsp),你可以忽略 ,我只是贴上去试试,还是一样。

标签: sip dtmf restcomm


【解决方案1】:

我建议将播放 DTMF 时 SIPp 的暂停时间增加到 139 毫秒(而不是当前的 100 毫秒),以便媒体服务器可以接收事件结束标志设置为 true 的数据包。

另外,在 RCML Gather 动词中设置 numDigits="2"。

希望这会有所帮助。

【讨论】:

  • 谢谢@hrosa。我改变了暂停和numDigits,但没有改变他的行为,你能试试我的测试吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-07
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多