Diagnose voice media failures by connection phase
Separate carrier answer, media authorization, provider sockets and output playback before retrying a paid call.
Separate admission, carrier setup, conversation response and workspace tools while accounting for warm connections and missing data.
A caller may report a long wait before the first greeting or long pauses between later replies. Those are different problems. Call setup includes authentication, workspace hydration, entitlement and policy checks, shutdown scheduling and the Telnyx dial or transfer commands. Conversation delay begins after the media path exists. Lupin’s Stack & timings view separates these fields and loads details on demand; refreshing it does not place another call. Establish which experience was slow before optimizing model generation, because faster tokens cannot repair a delayed carrier connection.
Signed ElevenLabs diagnostics can report first-token, first-sentence, first-audio and tool intervals. Lupin separately records the actual workspace backend’s bridge, preparation, model-request, completed-text and tool timings. A completed buffered backend response does not expose a streaming first-token measurement. Treat null as unavailable rather than zero, and do not relabel backend completion as model first token. If the spoken system delegated a mailbox task, explain the wait using the backend and tool evidence available for that task, rather than assuming every silence came from speech synthesis.
The streaming cascade can measure commit-to-first-text, synthesis first audio, commit-to-audio-send and playout acknowledgement. Native audio reports a different set of managed events. Keep those modes separate in a comparison and inspect the captured stack for every sample. Some setup and conversation intervals overlap, so their sum is not the delay a human heard. A playout acknowledgement also does not establish the exact instant sound left a remote handset. State the measured boundary explicitly and keep unmeasured delivery outside the claimed result.
Lupin prepares transcription and synthesis connections to keep handshakes off the response path. A first turn after a new session can therefore differ from a later turn using ready resources. Compare cold and warm cases explicitly rather than deleting the first slow observation. For a local experiment, inject a delayed recognizer or synthesis handshake and verify that the delay appears in the expected stage. Keep greetings separate from task responses because a prepared greeting can look faster than an answer that needs recognition, backend context and approved external work.
Collect several synthetic turns with the same dialogue, language, voice configuration and media mode. Report sample count, median, ninety-fifth percentile and maximum for the selected interval, alongside failures and interruptions. A low median with frequent cutoffs is not a successful improvement. Keep provider documentation’s advertised model latency separate from your observed call path. When escalating, include the call or operation identifier privately, configuration and narrow timing fields. Do not export customer transcripts merely to illustrate a latency graph, and leave unknown measurements visibly unknown.
Suppose commit-to-audio-send is 900 milliseconds and a provider reports a 400-millisecond first-token interval. Do not add them and announce a 1300-millisecond response, because their scopes may overlap. Report the measured 900-millisecond gateway interval with its sample count, while stating that handset delivery was not observed.
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.