The patch allows to send inband DTMF codes to remote party over RTP using RTP EVENT messages described in RFC2833 by specifying the following expressions in the XML scenarios:
<exec play_dtmf="42108#" />
<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
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
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.