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
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