A scalable SIP stack for outbound AMD
Split signaling, media handling and audio classification across Kamailio, FreeSWITCH and AMDY.IO, then scale each layer against its own workload.
Use SIP traces, call records and AMDY.IO’s FAS flags to separate suspected carrier answers from calls that reached a person or voicemail.
Asterisk can record a call as answered even when nobody at the destination picked up. A carrier may send a SIP 200 OK early, causing the dialer to treat the call as connected and potentially bill it as such. That is the core of carrier false answer supervision (FAS).
One suspicious call is not proof of a carrier problem. A quiet person, a voicemail greeting with a pause, and an answer signal that arrives before any real response can look similar if you inspect only one data source. Audit the signaling and the audio together, then compare those records with AMDY.IO’s FAS flags.
Start with a specific symptom: answered calls with no audible response, unusual billing for calls that appear unanswered, or a cluster of questionable calls routed through the same carrier path. Set a review period and record which trunk and route handled each call. Avoid treating every silent answer as FAS; silence can have other causes.
Keep a working list of call identifiers and timestamps from Asterisk call records. Include the destination, trunk or route, answer time, and call duration where available. The aim is to connect each record to its SIP signaling and audio, not to infer a carrier fault from a summary count.
For each sample, examine the SIP exchange around answer time. Find the 200 OK and identify which network hop sent it. A 200 OK establishes that the SIP call leg was answered; it does not establish that the called party answered or that speech followed.
Follow the signaling path far enough to distinguish a response from your upstream carrier from one generated elsewhere in the call path. Record the response time and compare it with the Asterisk call record. If the timestamps or call identifiers do not line up, resolve that mismatch before drawing a conclusion.
Do not label a call FAS solely because a 200 OK came before speech. A person may answer and wait, and a voicemail system may pause before its greeting. The signal is a lead for review, not a verdict.
Next, inspect the audio around the answer. Was there a human response, a recorded greeting, an intercept tone, or no meaningful audio? Compare what you hear with the timing of the 200 OK. A connected call with no evidence of a real endpoint response is more suspicious than a call where a person or voicemail clearly answers.
This is where real-time answering machine detection can help with triage. AMDY.IO analyzes audio in real time to distinguish human responses from voicemails and flags carrier false answers. Integrate it using its native installer or WebSocket API, according to the dialer setup. The product facts available here do not specify a particular Asterisk command, configuration stanza, or flag format, so use the applicable integration guidance rather than copying an assumed setting.
For background on how signaling and audio classification fit into an outbound stack, see how a scalable SIP stack separates those workloads.
For each AMDY.IO FAS flag, compare the corresponding call identifier and time with your Asterisk record, SIP trace, and audio review. Keep the evidence together in your own audit record. Note whether the 200 OK came from the carrier side, whether audio followed, and whether a human or voicemail response was present.
Look for repeated patterns across calls on the same route or carrier, rather than relying on one example. A group of early answers with no corresponding human or voicemail audio is worth escalating with the carrier. Include specific call references and timestamps so the carrier can investigate the signaling and billing records. A flag is a useful indicator; the correlated evidence makes the case actionable.
Compare the calls you have reviewed with carrier billing records for the same period. Separate confirmed cases from unresolved ones, and total the duration or charges associated with confirmed cases using your own records. This gives operations and finance a defensible estimate of potential leakage without counting every silent call as a billing error.
Repeat the audit after a route or carrier change, and keep a small sample of ordinary answered calls as a control. If suspicious answers fall, verify that result in both signaling and billing data. If they persist, the traces give you a concrete basis to investigate the carrier path, while audio analysis helps distinguish a false answer from an actual person or voicemail.
Split signaling, media handling and audio classification across Kamailio, FreeSWITCH and AMDY.IO, then scale each layer against its own workload.
Comparing native FreeSWITCH silence detection against WebSocket audio streams across latency, false positives, and media server CPU utilization.
Long analysis windows break predictive dialer algorithms, forcing call centers to choose between agent idle time and high drop rates.