【问题标题】:DTMF digit with SIPP test带 SIPP 测试的 DTMF 数字
【发布时间】:2018-08-07 10:48:13
【问题描述】:

我正在尝试通过 sipp 将 DTMF 数字发送到 IVR 应用程序

这是我的 sip xml,除了动作部分外效果很好......

呼叫成功,但未收到 DTMF 数字 1。它显示收到的数字为 null..没有得到实际问题是这个 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="183" optional="true">
    </recv>
<recv response="200">
    </recv>

<![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="5000"/>
<nop>
        <action>
        <exec play_pcap_audio="pcap/dtmf_2833_1.pcap"/>
        </action>
</nop>
<pause milliseconds="2000"/>
<recv request="BYE"> </recv>
<send>
    <![CDATA[

      SIP/2.0 200 OK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
      From: sipp <sip:[field]@[local_ip]:[local_port]>;tag=[call_number]
      To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 1 INVITE
      Contact: sip:sipp[call_number]@[local_ip]:[local_port]
      Max-Forwards: 70
      Subject: Performance Test
      Content-Length: 0

    ]]>
  </send>
<ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

【问题讨论】:

    标签: sip ivr dtmf


    【解决方案1】:

    实际上,您的脚本中有一个明确的请求来协商 dtmf 带内使用 RTP 事件:

      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
    

    我假设对方已经接受了你的提议,并且正在等待 dtmf 作为 rtp 事件数据包;您应该能够发送带有 rtp 事件的 pcap,或者如果不切换到 sip notify 或 info。

    此模式首先记录在 RFC 2833 中,并由 rfc5244 更新。

    【讨论】:

      【解决方案2】:

      您有多种发送 DTMF 的方式

      1. 带内:音调在音频流中混合发送(您正在尝试执行的操作)
      2. Out-of-band:在单独的 SIP 消息(如 SIP INFO 或 SIP NOTIFY)中,这些消息基本上是说“DTMF 1 was press”而不将其放入音频流中的消息。对于 IVR 程序员来说更容易,也更可靠。

      带外方法已变得如此普遍,以至于许多供应商都不会在默认情况下打开他们的带内检测器。您可能需要搜索名为“带内 DTMF 检测”或“DTMF 识别器”之类的配置设置...

      当然,我不知道您使用的系统,所以“数字接收为空”可能意味着:

      1. “未收到任何内容”,可能表示未启用带内检测器
      2. “收到但无法理解的内容”,可能意味着您的音频文件内容或该内容的传输有问题

      由于它是 SIP 到 SIP,我建议切换到带外 dtmf 消息。

      【讨论】:

      • 我正在使用带外 DTMF,当我进行跟踪时,它显示它已收到一个数字,但在日志中它显示为收到的数字为空。
      • 抱歉,假设您的示例中的这一行: 正在播放音频文件
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      相关资源
      最近更新 更多