Hi everyone,

 

I've come across a problem of performance-testing our IVR solution. 

The IVR is basically a calling card platform, which asks the caller for a
10-digit PIN and, upon successful verification, allows to make a call or do
some other stuff like request balance information, etc. As my input for the
test I had a text file containing 100000 valid PINs, and I had to send those
PINs in DTMF messages to my IVR, one PIN per call.

Obviously, the very basic support for dtmf transmission in SIPp would not
allow me to do that. Even if I record 100000 pcap files for every PIN, I
would not be able to iterate those files with [fieldn] constructs.

 

As a solution, I came up with the attached patch to SIPp, which I'd like to
share with the public and also propose for integration.

 

The patch allows to use the following expressions in the XML scenarios:

<exec play_dtmf="42108#" />

or even

<exec play_dtmf="[field0]#" />

 

Variable expansion and all other stuff is also supported.

 

The patch uses the existing pcap replay engine, but constructs RFC2833 RTP
packets on the fly for each call. The code also takes care of putting
correct sequence numbers into the packets if play_dtmf is used multiple
times during a call.

You can change the duration of the tones by specifying it after a comma,
like this: <exec play_dtmf="[field0],500" />. Default value is 200 ms, and
values between 50 and 2000 are accepted. The inter-digit delay is the same
as the tone duration.

The patch uses a hard-coded value of 96 for dynamic RTP payload type, so
your SDP has to account for that.

 

To enable this functionality:

1)      Download and unpack sipp.svn.tar.gz

2)      Apply the patch (can also be downloaded from
http://maps.meganets.ru/sipp-dtmf-0.1-patch.gz )

3)      Compile with pcap support (make pcapplay)

 

To use in a scenario:

1)      Make sure your SDP accounts for RTP payload 96:

m=audio [media_port] RTP/AVP 96 0

a=rtpmap:0 PCMU/8000

a=rtpmap:96 telephone-event/8000

a=fmtp:96 0-16

2)      Put <exec play_dtmf=".." /> in an <action> clause where appropriate,
similarly to <exec play_pcap_audio. />

3)      Make sure to put a decent <pause /> after play_dtmf, because the
tones are played asynchronously in background.

 

Questions and comments are very welcome.

 

 

Regards, 

Dmitry Kunilov

Attachment: sipp-dtmf-0.1-patch.gz
Description: Binary data

------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Sipp-users mailing list
Sipp-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sipp-users

Reply via email to