SOLVED IVR testing for FreePBX w/ sipp or sippy_cup w/ dtmf

Time appropriate greetings,

Goal: Test ivr with 5-6 dtmf tones for load and errors. I'm fine with using sipp or sippy_cup, whatever will work.

I have been having a rough time trying to send dtmf that freepbx will recognize with sipp or sippy_cup. At first I was using sippy_cup but decided I'd try this in sipp. I have been trying to replay pcap files and the included dtmf tones in the /pcap directory for sipp, and some captures I've got with tcpdump. I built sipp from source with pcap support SIPp v3.5.1-PCAP-RTPSTREAM. I'm running FreePBX 14.0.3.6 from raspbx on a rasberry pi for testing. I'm running sipp on the same host as FreePBX also.  


In the cdr reports I always see sipp calling from the destination "s [from-trunk]". I know that by default sipp dials s, can I change that? I have tried changing the lines in the .xml for To: to no avail.  I have also tried all the different dtfm modes in the Settings>Advanced Settings and the trunk details inside freepbx. The only way I was able to get sipp working was to allow anonymous calls. I can see the dtmf tones in the full log and asterisk cli like below.

[2018-06-22 13:06:32] DTMF[9942][C-00000028]: channel.c:4040 __ast_read: DTMF end ‘1’ received on SIP/127.0.1.1-00000028, duration 0 ms
[2018-06-22 13:06:32] DTMF[9942][C-00000028]: channel.c:4099 __ast_read: DTMF end accepted without begin ‘1’ on
SIP/127.0.1.1-00000028
[2018-06-22 13:06:32] DTMF[9942][C-00000028]: channel.c:4110 __ast_read: DTMF end passthrough ‘1’ on SIP/127.0.1.1-00000028
[2018-06-22 13:06:35] DTMF[9959][C-00000029]: channel.c:4040 __ast_read: DTMF end ‘1’ received on SIP/127.0.1.1-00000029, duration 0 ms
[2018-06-22 13:06:35] DTMF[9959][C-00000029]: channel.c:4099 __ast_read: DTMF end accepted without begin ‘1’ on
SIP/127.0.1.1-00000029

sipp Scenario below

<?xml version="1.0" encoding="ISO-8859-1" ?> <![CDATA[
  INVITE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
  Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
  To: [service] <sip:[service]@[remote_ip]:[remote_port]>
  Call-ID: [call_id]
  CSeq: 1 INVITE
  Contact: sip:sipp@[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_ip]
  t=0 0
  m=audio [auto_media_port] RTP/AVP 8 101
  a=rtpmap:8 PCMA/8000
  a=rtpmap:101 telephone-event/8000
  a=fmtp:101 0-11,16

]]>
                                                                                                     [11/72]
<![CDATA[
  ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0
  Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
  To: [service] <sip:[service]@[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

]]>
<![CDATA[
  BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0
  Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
  From: sipp <sip:sipp@[local_ip]:[local_port]>;tag=[pid]SIPpTag09[call_number]
  To: [service] <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
  Call-ID: [call_id]
  CSeq: 2 BYE
  Contact: sip:sipp@[local_ip]:[local_port]
  Max-Forwards: 70
  Subject: Performance Test
  Content-Length: 0

]]>

I’ve tried this in a scenario also. Thinking I needed a pause between the tones.

I would like to be able to use sipp or sippy_cup with registration so I can test on production like system. I have been failing so far using registration with sipp trying these methods here: http://sipp-wip.readthedocs.io/en/latest/scenarios/sipauth.html . 

I have been playing some pcaps that I got via tcpdump and the included dtmf tones in the pcap directory. I can see the dtfm tones in the voip tools call flow in wireshark and hear them. I also separated both legs of the call (because both legs did not work), to try just the part from the trunk with the tones. I got the same results as having both legs of the call in the pcap. I even tried some pcaps from wiresharks site and got some results. I can see asterisk responding with SayAlpha in the cdr reports and the logs.

I have even tried the dtmf patch located here with sipp 3.4.1 https://github.com/lpradovera/sipp_dynamic_pcapp_play I was not successful in this either.

Currently I’m having issues with sippy_cup getting 401 unauthorized messages. I did have sippy_cup registering before but the calls would still timeout and fail. My sippy_cup yml is below.


source: 127.0.0.1:5060
destination: 127.0.0.1:5060
max_concurrent: 1
calls_per_second: 1
number_of_calls: 1
steps:

  • register ‘820’ ‘supersecretpw’
  • invite
  • wait_for_answer
  • ack_answer
  • sleep 3
  • send_digits ‘3125551234’
  • sleep 5
  • send_digits ‘#’
  • wait_for_hangup

How can I get sipp or sippy_cup calling my ivr and getting the dtmf tones accepted? Am I using the wrong tool for this? Is there anything better? I was thinking about making a script to just make the calls like normal. Like this maybe? https://obrienlabs.net/automate-asterisk-to-auto-dial-a-number-for-testing/ Is that even feasible? If this has been asked on the fourms before I’m sorry in advance, I tried searching them. Thanks for taking the time to read this.

Have a good day.

I was able to solve this by using a misc application and just dialing it. Figured I’d answer in case others had same issues.

Peace