Measure voice latency without adding overlapping clocks
Separate admission, carrier setup, conversation response and workspace tools while accounting for warm connections and missing data.
Separate carrier answer, media authorization, provider sockets and output playback before retrying a paid call.
A carrier answer and a conversational media session are separate milestones. A phone can be answered while the agent’s audio path is still unavailable. Begin with the saved call state and captured transport, then identify the last confirmed transition. Do not infer a working media session from a successful dial response or from an eventual empty transcript. Those observations cover different parts of the system. Preserve the original call and operation identifiers privately so later provider events can be correlated without redialing merely to create a fresh set of logs.
Lupin gateway diagnostics can identify connection_error phases such as agent_token, agent_ws, scribe_ws or tts_ws, together with an HTTP status when available. These phases locate a boundary; they are not customer-facing explanations to read verbatim over the phone. A token failure points toward provider authentication or session preparation, while a recognition or synthesis socket failure points toward its particular dependency. Check the actual media mode because native audio does not use every standalone cascade component. An unavailable measurement remains unknown rather than proof that the omitted phase completed instantly.
A completed text response does not prove synthesis produced audio, and sent audio does not prove a handset played it. Compare available text, first-audio, send and playout measurements within their stated scopes. Check whether an interruption correctly cancelled the output, whether a late response was fenced, or whether the provider closed its socket. If the application cleared playback because the caller started speaking, that is different from a synthesis outage. A narrow timeline is more actionable than repeatedly changing the prompt while the audio delivery path is broken.
End or reconcile the original call through the authenticated control path and wait for confirmed closure before another approved attempt. Preserve the dial key on uncertain retries and do not bypass reconciliation_required with a new key. Reproduce the identified phase locally with a fake socket that closes or rejects at the same boundary. Once fixed, have the operator plan a short controlled trial with the owned number, approved peer and billing readiness. Report the repaired boundary and remaining live uncertainty separately, avoiding a claim that local socket tests prove a carrier conversation has already succeeded.
A call with audible conversation and no final transcript belongs to the signed post-call delivery investigation. A silent call with a failed synthesis socket belongs to media preparation. These can share a user-visible symptom in call history, but their evidence and fixes differ. Record what was actually heard and which phase failed.
Reviewed against current checked-in Lupin routes, shared contracts and official provider references. No live calls, OAuth authorizations, app actions or purchases were performed.
Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.