When making outbound calls, there are a couple issues I am wondering if there is a better way of configuring Asterisk’s AMD() module. I uploaded some sample audio to illustrate my thoughts.
Here are my settings:
initial_silence = 2500
greeting = 1000
after_greeting_silence = 300
total_analysis_time = 5000
min_word_length = 120
between_words_silence = 50
maximum_number_of_words = 4
silence_threshold = 384
With Issue #1, Can we detect the tone that is being played and signal it to restart the message playback?
With Issue #2, I understand there is background noise, what should I be doing differently here? I figured it would make it’s determination after 5 seconds, because of the total_analysis_time, setting, but it took nearly 25 seconds.
Still hoping someone can help.
It seems to me that it has made a determination after 5 seconds, which is the when it starts to play “This is to confirm…”. Without seeing the dial plan and logs, I can’t be sure what the determination was, and why it subsequently replays the message. However, my guess is that it miscounted the number of words and determined it had a human.
I note that you get quite a lot of detail in the verbose log at a reasonably low verbosity of 3.
I don’t understand the bit about detecting the tone. It seems to me that AMD is over at that point. Only DTMF tones can be detected during message output, and then only for ControlPlayback and Background. Note that the latter does drastic things to the dialplan execution if a digit is detected.
I wonder if WaitForTone() would be a solution. I just found this and it looks promising. Though my main server is running Asterisk 13, I do have a version of 18 up an running I can play with. If I can combine that with Background() then I may be up and running.
You would need to elaborate further about what type of tone you want to detect. Is it the answering machine beep tone?
WaitForTone will only detect a tone of a single, specified frequency - not just some random tone. (I am the author of the module). So it probably won’t be suitable for the use case it sounds like you want.