I want my IVR to say numbers during the Read command.

This means, that I don't want to say the numbers after the user type, but during the user type.

For example, enter your user code: 124567#

During this I want IVR to say the digits one by one. Something like: You typed 1 , You typed 2, or ONE, TWO, ...

I know that is possible to do this using a loop, but this looks like a unstable code.

  • 1
    Are you sure you want to do this? Even if it were possible for the person at the other end of the line to hear the speech output over the DTMF he/she is entering (it's probably not), and even if playing audio doesn't interfere with DTMF detect on your side (shouldn't if you're on digital lines), on a lot of phones entering DTMF means taking the headset away from your face—so the user won't hear them even if the phone speaker plays them. – derobert Jul 22 '16 at 17:25
  • Im not sure, i am asked to do this. Something like "Do this as fast as possible", hehehehe. – Luciano Andress Martini Jul 22 '16 at 17:51
  • To make asterik say the number of the extension that called it I had to install voice/sound files...for english. If you want Portuguese, you may need to install your own. Some are commercial, some are free. – Rui F Ribeiro Jul 22 '16 at 21:00
  • 1
    The IVR is working for a long time and saying number, the question, is we need to talk the numbers live, when the user is typing, to indicate what number the user typed. – Luciano Andress Martini Jul 22 '16 at 23:04

When you play back message,that WILL affect dtmf recognition in most cases. Only case when it will not affect is case when user call from digital phone via digital protocol(sip/iax2). If user call PSTN line, then sound in both direction go via same wire, as result playback can be louder then dtmf or have similar frequency, that will affect recognition.

But if still want do that, you have 2 options

1) User aware about feature, and do press it slowly. If so, you can use Read command with digits limit set to 1, after that enother read command with file which say prevous digit etc. Limitation: have be at least 100ms between digits on loaded box, can be less if no load.

2) User not aware. You need know c/c++, read asterisk source(app_read.c have be enought) and write other app which will wait for digit and play digits at same time. Seams like not complex, but see note about recognition.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.