Answering Machine Detection (AMD)
15 min
overview answering machine detection (amd) is a feature used in automated outbound dialing modes to determine if a call has been answered by a live person or an answering machine by filtering out machines, amd ensures that agents' time is spent speaking only with live prospects how it works when a call is answered, the amd system analyzes the initial audio it listens for cues that distinguish a human voice from a recorded greeting if a machine is detected, the system disconnects the call if a live person is detected, the call is immediately connected to an available agent prerequisites the outbound campaign must be using an automated dialing mode, such as predictive action check the amd checkbox to enable the feature for the campaign this setting is available when using all the dialing modes now use cases high volume sales in a telemarketing campaign, amd screens out all the voicemails, dramatically increasing the number of live conversations agents have per hour lead generation amd is used to quickly sift through large contact lists to identify and connect with interested prospects efficiently benefits massive productivity gains agents spend significantly more time talking to potential customers and less time listening to voicemail greetings improved agent morale focusing on live conversations is more engaging and rewarding for agents than repeatedly encountering answering machines increased campaign roi by maximizing the number of productive interactions, amd helps to improve the overall return on investment fundamental amd logic and mechanics this part of the article will delve into the core algorithm that powers amd in the asterisk communication platform while different amd configurations exist, the underlying algorithm remains constant across all setups flow answering machine detection (amd) is a standalone application that communicates with asterisk, a communication platform, using a local socket here's how the interaction between amd and asterisk works amd setup and configuration loading configurable parameters when amd starts, it reads its configurable parameters from a specific file located at "/dacx/var/ameyo/dacxdata/etc/amds/1 6/amd conf " unfortunately, this file path is hardcoded within the amd code, making it unchangeable after amd is compiled from asterisk's perspective socket communication when asterisk encounters an amd extension, it creates a socket connection to amd using the predefined path sending frames once the socket connection is established, asterisk sends an asterisk frame from the channel to amd amd's response amd processes the received frame and responds back to asterisk with one of the following outcomes am (answering machine) amd identifies the call recipient as an answering machine human amd detects that a live human has answered the call continue if the response is not clear, amd requests additional frames from asterisk to continue analyzing the call extension handling based on the amd response, asterisk takes appropriate action if it receives am or human, it moves on to the next extension if it gets continue, it sends more frames to amd until a conclusive response (am or human) is received or a timeout occurs from amd's perspective socket listening when amd starts, it creates a local socket at the path "/dacx/var/ameyo/dacxdata/var/amds/1 6/amd ctl" (note that, similar to the amd configuration, this socket path is also hardcoded and cannot be changed) thread creation whenever amd receives a request from asterisk, it creates a new thread for each request this means that amd can handle multiple requests concurrently, as it creates as many threads as the number of amd detection requests it receives answering machine detection amd then starts its answering machine detection process for each connected client (asterisk) polling and conclusion during the answering machine detection process, amd polls the incoming frames from the socket until it reaches a conclusion regarding whether the call recipient is an answering machine or a human timeout handling if amd cannot make a clear determination within a certain time (timeout), it assumes a human has answered the call and responds accordingly flow diagram ' answering machine detection (amd) algorithm fetching and computing data amd fetches each unit of audio data (packet) from a socket and calculates its energy level if amd cannot confidently determine the result based on the current fetched data, it reads more data from the socket energy level thresholds amd divides the energy levels into three regions noise, signal, and intermediate if the energy of a data unit is below a certain threshold (noise threshold), amd classifies it as noise if the energy is above another threshold (signal threshold), amd classifies it as a signal (i e , not noise) if the energy is between the noise and signal thresholds, the data is temporarily categorized as "intermediate " circular buffer for packet states for every packet, amd stores its computed state (noise, signal, or intermediate) in a circular buffer this buffer helps amd detect a continuous block of high energy packets, referred to as an "utterance" (akin to a single word) detecting utterances after processing each packet, amd checks the circular buffer to determine if an utterance has started an utterance is considered a single block of continuous high energy packets (a word) determining utterance boundaries to determine the end of an utterance (word), amd looks for a low energy packet after detecting an utterance start the time between utterance start and utterance end is stored in amd's data structure smoothing noise and signals after processing each packet, amd smooths the noise and signals to achieve more accurate results smoothing helps in considering the minimum utterance duration for better word recognition decision making with information about utterance start and end times, amd makes decisions based on specific criteria examples of decisions include if amd detects too many words, it returns "answering machine " if the number of words per given time interval is high, it returns "answering machine " if the length of a word is larger than the maximum allowed threshold, it returns "answering machine " if the time gap between the end of the first word and the start of the second word is greater than the "hello silence threshold," it returns "human " if the first word starts very late, it indicates "answering machine " limitations amd systems are not 100% accurate and can sometimes misclassify a live person as a machine ("false positive"), resulting in a dropped call there can be a slight pause at the beginning of the call as the system analyzes the audio amd faqs why is answering machine detection used? the primary reason for using amd is to boost the efficiency of contact center agents and reduce operational costs by automatically identifying and handling machine responses, amd allows agents to focus their time on live conversations with potential customers, leading to better engagement and potentially higher conversion rates this technology is also valuable for optimizing outreach in various communication platforms across sectors like healthcare and finance how does answering machine detection work? amd systems typically employ techniques such as audio signal processing, natural language processing, and silence detection to make accurate determinations they analyze factors like ringing time, silence between phrases, and keywords in greetings when a call is picked up, the system analyzes the initial audio if a human is detected, the call is connected to an agent if a machine is detected, the system can either disconnect the call, leave an automated message, or connect to an agent, depending on the configured workflow why is answering machine detection particularly relevant now? amd has become increasingly relevant due to the rising number of voicemail subscribers, the significant growth of digital assistants and voicebots, and features like voicemail becoming a default on many devices like iphone the launch of features like truecaller assistant, which screens incoming calls using a voicebot, also highlights the prevalence of automated call answering systems this increase in non human call responses makes amd crucial for efficiently managing outbound communications and maximizing agent productivity what are the key benefits of using ameyo amd? ameyo amd offers several benefits, including improved agent productivity by eliminating time spent on voicemails and assistants, and an improved agent experience by reducing frustration in outbound calling processes it also leads to increased lead coverage by automatically handling machine attended calls and reduces the overall cost of operations by optimizing agent utilization furthermore, ameyo amd can be optimized to specific business requirements with configurable sensitivity and customizable workflows it is available as a default feature in both 4 x and 6 x versions and is language agnostic, as it detects based on silence, pitch, tonal analysis, and rate of speech rather than spoken words how can ameyo answering machine detection be used? to use ameyo amd, you need to contact your customer success manager (csm) to activate the license once activated, you can navigate to your outbound campaign settings and enable amd after activation, amd will be applied to all automated calls dialed from that campaign, and detailed reports on the outcomes will be available the default behavior is to disconnect the call if a voicemail, digital assistant, or voicebot is detected what customization options are available with ameyo amd? ameyo offers several customization options for amd as add ons that can be enabled for each individual campaign these include different workflows such as the default disconnect, leaving a voicemail, connecting to an agent, or providing manual dial support these workflows can be combined with different types of dialing (automated or manual/click to dial) the benefits and operating costs associated with each customization also vary, allowing businesses to tailor the amd behavior to their specific needs and objectives for detailed customization options and pricing, you need to reach out to your csm what should i do to start using ameyo answering machine detection? to start using ameyo answering machine detection and improve the returns of your outbound processes, you should immediately reach out to your customer success manager (csm) they will assist you in enabling the default amd flow this will allow you to begin benefiting from reduced operational costs and improved agent productivity right away
Have a question?
Our knowledgeable support team and an awesome community will get you an answer in a flash.
To ask a question or participate in discussions, you'll need to authenticate first.