Speech Products: CPA & AMD

Overview: Industry-Leading Outbound Connectivity

Capacity Call Progress Analysis leverages the strength of proprietary signal processing and speech recognition to accurately determine whether a human or machine has answered the call, and in each case, whether it’s a business or residence. By utilizing statistically driven timing cues and next-generation orchestration, the system ensures that outbound messaging applications are informed of the precise next step—whether to hand off to a live agent or leave a personalized voicemail.

Strategic Impact: Efficiency and Customer Experience

In high-volume environments, CPA can relieve outbound call agents from 65% of calls that are unproductive, while also preventing customer frustration when answering a call with no live agent present.

  • Intelligent Discrimination: The system distinguishes between commercial/business responses, private residences, fax answers, and various Special Information Tones (SIT).
  • Precision Timing: For appointment reminders and time-sensitive voice notices, the engine determines the precise timing to deliver a message—ensuring it is not delivered too early (cutting off the beginning) or too late (causing listener fatigue).

How Call Progress Analysis Works

Perfect timing and precision are core to the functionality, and partners can customize configurations for optimum results. The solution involves two complementary algorithms that can be used via separate API calls in parallel or in any order that suits your business.

The Two-Track Detection Engine
  • The CPA Algorithm: Performs speech analysis to classify the answering party based on the greeting length and silence intervals. This classification is always performed post-connection— after the call has been answered.
  • The AMD Algorithm: Deciphers tones (such as answering machine beeps) to detect the optimal timing for message delivery when interacting with a machine.

When configuring these settings, implementers must decide the acceptable balance between increasing CPA’s accuracy and the delays that responders on the line experience.


Standard Classification Outcomes

The engine analyzes the duration of the initial greeting following a "Connect" signal to categorize the call into one of four states:

ClassificationGreeting Length (statistical trigger)Typical Example
Human ResidenceLess than 1.8 seconds"Hello?"
Human Business1.8 to 3.0 seconds"Thank you for calling Capacity..."
Unknown SpeechGreater than 3.0 secondsAI prompts or answering machine messages
Unknown SilenceNo speech within timeout (typ. 5s)Dead air or unconfigured machines

Advanced Orchestration: AI Call Screening

The platform includes specialized logic to navigate the "purgatory" of modern AI call screening assistants like Apple and Google Call Screening.

Prompt End Detection (prompt_end_detect)

To prevent audio "collisions" where your message overlaps with an AI assistant's prompt, the platform exposes an orchestration milestone: 

  • Workflow: Once the engine identifies Unknown Speech as an AI prompt, the application can set prompt_end_detect to true.
  • Notification: The engine notifies the application of a "PROMPT END" event in the transcript value of the asrResult object, exactly when the AI assistant stops speaking.
  • Impact: This allows the application to deliver its message during the critical ~20-second window for clear mobile transcription.

To utilize the orchestration features, ensure your client application manages the cpaSettings object:

{
   "cpaSettings": {
      "prompt_end_detect": true,
      "prompt_end_timeout_ms": 10000
   }
}
Apple Screening Tone Detection

For Apple devices, a specific tone plays after a secondary prompt, signaling that the user is currently viewing the live transcript on their screen while deciding whether to answer the call.

  • The Handoff: This allows the application to re-engage standard CPA to catch the exact moment a human interrupts the screening, facilitating a rapid, professional connection to a live agent.

Core Timing Parameters

Precision in outbound dialing depends on three critical timing variables:

  • Leading Silence: The pause before the recipient begins speaking.
  • VAD_EOS_DELAY (End of Speech Delay): The buffer used to confirm speech has ended. The default is 1200msShorter values increase speed but may misclassify machine pauses as human.
  • Maximum Silence Timeout: The threshold after which a call is classified as Unknown SilenceSetting this too low can lead to misclassifying slow-to-speak humans.

Typical Integration Workflows

The two primary use-cases for Call Progress Analysis are for automated message or payload delivery, and to connect a call center agent to a human, while avoiding connecting them to answering machines or otherwise non-responsive number.

Automated Message Delivery

Some applications are designed to deliver messages to recipients. This use case for CPA determines whether a live human answered the call, or an answering machine or AI Agent picked up. In either scenario, it is possible to deliver the recorded (or synthesized) message efficiently using CPA.

Once the call has begun, the outbound system waits for a short period, listening for the presence of a greeting message (from a human or machine) before deciding how to proceed. If a human is detected, the message can be played as desired, whereas if a machine is detected, the call flow could wait until speech ends, potentially allowing much longer for this to occur than when performing predictive dialing for an agent, before message delivery.

Tone detection can be used to listen for an answering machine beep or tone while the message is being delivered, and if detected, the call flow can simply restart the message. In this way, the answering machine will not get a truncated end of message, but the entire message that was intended. This is more useful and less annoying than if tone detection was not used in this case. Also, there may be some importance assigned to accurately delivering the complete message, such as an appointment reminder, or some emergency alert that may not be accurately conveyed if CPA is not used fully.

  1. Start CPA: Call is answered.
  2. Detection: System identifies Unknown Speech (AI prompt).
  3. Enable prompt_end_detect: Application sets this parameter to true and re-activates CPA.
  4. Wait for PROMPT END: Engine signals when the AI has finished its prompt.
  5. Deliver Payload: Application plays message for transcription.

Predictive Dialer

The "Predictive Dialer" use case is designed to maximize agent productivity by ensuring they are only connected to live, responsive human contacts. By utilizing Capacity Private Cloud's statistically-driven CPA, the system filters out the 65% of outbound calls that are typically unproductive, such as those resulting in ringing phones, busy signals, faxes, or SIT tones. This ensures that agents spend their valuable time speaking with intended recipients rather than waiting for connections.

When a call is initiated, the system analyzes the answering party's initial greeting with pinpoint accuracy to distinguish between a human residence, a business, or an automated machine. If a human is detected, the dialer bridges the call to a live agent immediately, allowing the connection to occur within the critical two-second window following the greeting. In scenarios involving modern AI gatekeepers, such as Apple Call Screening, the engine identifies the specific "Decision Milestone" tone. This notifies the system that the user is actively viewing the transcript, allowing the application to re-engage CPA to catch the exact moment the human interrupts to say "Hello" and route the call to an agent without delay.

This precision-based approach avoids the frustration of "robocalls" where no agent is present upon answering. If the system determines that a machine or AI agent has answered instead of a human, the dialer can be configured to either disconnect or transition to an automated message flow, preserving the agent's availability for the next live connection. Through this advanced orchestration, contact centers can dramatically reduce idle time and operational costs while maintaining a professional and compliant customer experience.

  1. Start CPA: Engine monitors for a greeting.
  2. Detection: System identifies Human Residence.
  3. Action: Application bridges the live agent immediately (within the 2-second regulatory window).



Implementation Use Cases

The two workflows above are documented end to end — with process-flow diagrams, message sequences, decision tables, and protocol-specific configuration — across the CPA & AMD Integration set, alongside the additional use cases summarized here. Start with the CPA & AMD Integration Overview for the shared concepts, then choose the protocol that matches your platform: MRCP, where detection is grammar-driven and message playback runs on the same session via SPEAK, or gRPC, where settings are configured directly in protobuf fields as parallel interactions and playback is handled by your telephony platform.

Choosing a Detection Mode

Not every outbound scenario needs both algorithms. CPA classifies who answered from speech timing; AMD detects tones such as beeps, fax, busy, and SIT. Match the detection mode to the campaign objective:

ScenarioRecommended ModeWhy
Pre-answer tone filteringAMD onlyOnly tone detection works before answer — CPA requires speech.
Human vs. machine classificationCPA onlyCPA analyzes greeting duration; AMD detects tones, not speech patterns.
Message delivery to humans and machinesBothCPA classifies who answered; AMD detects the beep for voicemail timing.
Agent connection (humans only)BothCPA identifies humans; AMD catches fax/SIT to avoid wasting agent time.
Beep detection only (already classified as a machine)AMD onlyIf another system has already classified the call, simply wait for the beep.
Full outbound dialing pipelineBothPre-answer: AMD for SIT/Busy. Post-answer: CPA for classification plus AMD for the beep.
Documented Use Cases

Each use case below is covered in full — with diagrams, decision points, and timing budgets — in the companion integration articles. Run CPA and AMD in parallel on the same audio stream wherever both are required; sequential processing leaves detection gaps where a tone or greeting can be missed.

Use CaseWhat It SolvesDetectionWhere It’s Documented
Pre-Answer Tone DetectionFilters disconnected numbers (SIT) and busy lines from the dial list on early media — before committing CPA resources or an agent.AMD onlyMRCP
Message DeliveryDelivers a recorded or TTS message: plays immediately to a human, or restarts cleanly on the beep when an answering machine collides with playback.CPA + AMDMRCP, gRPC
Agent Connection (Predictive Dialer)Bridges only live humans to agents inside the regulatory window; hangs up on machines, fax, and SIT to protect agent utilization and abandonment rates.CPA + AMDMRCP, gRPC
Apple Call ScreeningNavigates the iOS screening announcement: detects prompt end, delivers a screening payload, confirms the warble tone, then resolves to dropped, voicemail, or human answered. Requires Capacity Private Cloud 7.0.CPA + AMD (sequential)MRCP, gRPC
End-to-End Campaign FlowCombines pre-answer filtering, post-answer classification, and final disposition into a single outbound pipeline covering the full call lifecycle.BothMRCP, gRPC



Was this article helpful?