PlayDTMF: sending a sequence of DTMF digits


I’m using the AMI action Play DTMF to send a DTMF digit on a PJSIP channel.

In case of sending a sequence of DTMF digits, who handles the pause between two DTMF digits.
Does asterisk handle the pause between two DTMF digits or the application?

Does AMI offers an action to send a sequence of DTM digits?

I’m using asterisk 13.9.1.

The digits include the standard pauses.

I don’t understand the second question, given that you know about Play DTMF!

So let me explain what I’m doing.
I want to send a sequence of DTMF digit (e.g ###). So I call three time the PlayDTMF action for every digit.

In the wireshark trace I see that the DTMF digits are sent with the RTP EVENTs. Every DTMF digits is transmited in round about 100ms. This is shorter than the inband DTMF time. I’m not so familiar with the RFC2833/4733 but I think that is okay.

But I did not see a pause between the first and the second DTMF digit. The second and third digit is transmitted immediately after the digit before.

Is a pause between the DTMF digits necessary?

Does the gateway (PSTN) insert the pause between the inband DTMF digits?

I hope you understand my question.

Looks like AMI PlayDTMF only sends one digit, so there is no “between”. I guess you are responsible for pauses before and after the digit.

Yes, the AMI PlayDTMF sends only one digit. I have test it!

However, is it necessary to insert a pause between two digits?

Using the cmd SendDTMF , you can use the timeout_ms - Amount of time to wait in ms between tones. (defaults to .25s), you can invoke it from AMI using Originate and Local channel and also send more than 1 digit

Thank you for the information. I have tested with sendDTMF command and it works fine.

Nevertheless, I have a technical question about the contain of RTP-Event of the DTMF digit.
The sendDTMF command has a passed parameter duration (Duration of each digit in ms). This duration has nothing to do with the duration in the RTP Event. The duration in the RTP Event is a increment of 160 in every RTP Event. If I call sendDTMF with the duration of 100ms, the duration in the last RTP event is 1280 (160ms).

Is there any possibility of manipulate the duration in the RTP-Event?