Two settings end a call nobody hung up: config.silence for a caller who goes quiet, and config.max_duration_seconds for a call that runs too long. Without them an off-hook handset or an IVR talking to your agent keeps running your models until the three-hour platform cap. Voice and video only; a text agent ignores both (they stay stored). Both are read from the agent that answered — a handoff does not change them.

Silence

After silence.timeout seconds of quiet, counted from when the agent stops talking, the agent checks whether the caller is still there, in its own words (written by its model, in the conversation’s language). It waits timeout again after each check-in. After max_check_ins unanswered check-ins it says goodbye and hangs up with close_reason: silence_timeout. Anything the caller says resets the count. max_check_ins: 0 hangs up at the first silence. Each check-in is a caller.check_in event on the call, with attempt and of. Silence is not checked while a transfer holds the call. If callers legitimately go quiet (reading a long number, holding for their bank), raise timeout rather than disabling silence handling.

Call length

max_duration_seconds counts from when the agent starts speaking. At the limit the agent says a brief goodbye and hangs up with close_reason: max_duration. null means the platform cap of 10800 seconds (three hours), which applies to every voice and video call — phone, web and media stream. A limit reached while a transfer is dialling waits for the transfer to finish.

Reference

Next

Turn handling

Interruptions and endpointing.

Close reasons

Every way a call can end.