We are using A(x) option in DIAL to play an announcement to our end user. However, when it hits the end user’s voicemail, it seems like announcement is being made and we cannot hear the end user’s voicemail message. We have also tried the “a” option in DIAL, but the result is the same.
Obtain a protocol trace and determined whether the voicemail greeting is early media. If it is early media the call will not be considered answered, so no A items will be actioned.
In asterisk logs (snapshot below), we see that the announcement is being made and channels are being joined on the bridge. Are you referring to some other logs?
I was referring to other logs, but, in any case, they show that the announcement is being made as non-early media. It will, of course, clash with any normal media announcement from the voicemail system,
Thanks David - how can we change it to early media? I understand that once we change it to early media, it will not conflict with the voicemail from the end user.
If you could do it, you would conflict with ringing etc. It is the called party that decides when early media ends and, in any case, I am aware of no facility, in Asterisk, to send early media on the B leg.
You need to insert a time delay to allow for the announcement, or use a subroutine, and wait for silence, then explicitly play the announcement.
We looked at amd.conf for the automatic machine detection to detect voicemail but couldn’t get it to work for DIAL(). I am not sure if you mean this option when you say, wait for silence.
We did not see an option to play the announcement after a delay in the DIAL options - can you please refer us to that?
As I stated, I don’t believe the Dial application has an option for your use case. You’d likely need to use other things (like ARI potentially) and write something for it.