How to address delay when using startOutboundVoiceContact API with the AnsweringMachineDetectionConfig enabled ?

0

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.

  1. 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.
  2. 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 ?

1 Answer
1

The delay you're experiencing when using the AnsweringMachineDetectionConfig with EnableAnswerMachineDetection: true is likely due to Amazon Connect's mechanism for detecting whether a human or an answering machine has answered the call. This mechanism involves waiting for a brief period of silence before playing the prompt, as answering machines typically have a few seconds of silence after answering before the recorded greeting starts.

Unfortunately, there is no direct way to eliminate this delay when a human answers the call.

Possible Solution: One effective approach is to begin your contact flow with a brief greeting or a short sound clip before diving into the main message. This way, when a human answers, they hear something right away, which can reduce the likelihood of them hanging up during any detection delay.

profile picture
EXPERT
answered a month ago
  • 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.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions