I am using the startOutboundVoiceContact API in AWS Connect, to make outbound calls to customers to notify them about some information regarding their service. The "message" that the customer hears, is in the contact flow whose Id is specified in the params for the startOutboundVoiceContact API call. I am also using the parameter AnswerMachineDetectionConfig: { AwaitAnswerMachinePrompt: true, EnableAnswerMachineDetection: true } in the params object to be able to detect a voicemail and tailor the message delivered to the customer accordingly. (This parameter can be used because I have associated the Connect instance with a Campaign).
However , I am observing a couple of problems with the AnsweringMachineDetectionConfig.
- If it is enabled ( i.e EnableAnswerMachineDetection: true ) , then if the call is answered by a human, there is a delay of about 5-6 seconds before the message from the IVR actually starts speaking. This may cause the customer to hang up if they don't hear anything in 5-6 seconds. However, when a voicemail is detected, then the message that is left on voicemail sounds fine.
- If it is disabled (i.e EnableAnswerMachineDetection: false ), then if the call is answered by a human, there is no noticeable delay and it works fine. However, now if it goes to a voicemail since a human did not answer, then the message left on the voicemail is cropped i.e the first several seconds of the IVR message are not recorded and it starts in the middle.
How do I get it to work so that if it is enabled, then there is no delay on human answered calls and/or if disabled then have the full message be played and not be cropped. (Toggling the AwaitAnswerMachinePrompt true/false has no effect)
Just based on the above experience, it seems like the "feature" of "answering machine detection" is nothing but a sleep/wait/delay introduced into the contact flow before playing the prompt message.
Is there any workaround to this ?
Thank you for your answer. Unfortunately the solution of playing a brief greeting or sound before the main message also does not work as I have already tried it. I added a "Play Prompt" block as the very first block of the contact flow (immediately after "Entry"). However, it seems like the delay is introduced by the API call itself before it even gets to the contact flow execution. The Play Prompt greeting also only plays after the same delay of about 5-6 seconds. What that indicates to me is that the contact flow only begins after the delay.