sipivrdtmf

DTMF digit with SIPP test


I am trying to send the DTMF digits through sipp to IVR application

This is my sip xml and works good except action part...

Call is successful but DTMF digit 1 is not received. It is showing that digit received as null..not getting the actual problem is there any configuration for this pcap ?or anytthing problem with the script?

<?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"/>

Solution

  • Actually you have in your script an explicit request to negotiate dtmf in-band using RTP events :

      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
    

    The peer has accepted you offer I assume and is waiting dtmf as a rtp event packet; you should be able to send a pcap with an rtp event or if not switch to sip notify or info.

    This mode is documented in RFC 2833 first and updated by rfc5244.