Autonomous Silence Handling
Intelligently detect and respond to prolonged silence during calls, preventing calls from hanging indefinitely.
Technical documentation for the
autonomous_silence_handlingfeature.
Overview
Autonomous Silence Handling is a feature that allows the AI assistant to intelligently detect and respond to prolonged silence during a call. When enabled, the assistant will:
- Detect when the caller has stopped speaking
- Prompt the caller to check if they're still on the line
- After multiple attempts without response, gracefully end the call
This prevents calls from hanging indefinitely when callers walk away, get disconnected, or put the phone down.
Configuration
Assistant Schema
{
"autonomous_silence_handling": true
}| Field | Type | Default | Description |
|---|---|---|---|
autonomous_silence_handling | boolean | false | Enable/disable autonomous silence detection |
Automatic Tool Addition
When autonomous_silence_handling is enabled, the system automatically adds the end_call tool to the assistant's toolset if not already present. This ensures the assistant can hang up after detecting prolonged silence.
How It Works
Timing Configuration
| Parameter | Value | Description |
|---|---|---|
first_silence_check | 7 seconds | Time before first prompt after silence detected |
silence_check_interval | 12 seconds | Time between subsequent prompts |
max_silence_attempts | 3 | Maximum prompts before instructing assistant to hang up |
State Machine
[User Speaking] → [User Away] → [Silence Check 1] → [Silence Check 2] → [Silence Check 3] → [Hang Up]
↑ │ │ │ │
└──────────────┴────────────────┴───────────────────┴───────────────────┘
(User speaks → reset timer)Event Flow
- User State: "away" - Silence timer starts
- 7 seconds pass - First silence check triggered
- Assistant speaks - "Are you still there?" (contextual)
- 12 more seconds - Second silence check
- Assistant speaks - "I'm still here if you need me"
- 12 more seconds - Third and final check
- Assistant speaks - Brief goodbye + calls
end_calltool
Contextual Prompts
The assistant receives different instructions based on the attempt number:
Attempt 1:
IMPORTANT: No speech detected from caller. This is attempt 1 of 3.
Based on context: if they said they need to look something up, say you'll wait.
Otherwise, ask a short question to check if they are still on the line.Attempt 2:
IMPORTANT: Still no speech from caller. This is attempt 2 of 3.
Ask one more time if they are still there.
If no response after this, you will need to end the call.Attempt 3 (Final):
IMPORTANT: No speech detected from caller for a long time.
This is attempt 3 of 3.
You must now say a brief goodbye and immediately use end_call to hang up.Key Behaviors
- No check while assistant speaking: Silence timer pauses when assistant is speaking
- Reset on user speech: Any detected user speech resets the timer and attempt counter
- Graceful termination: Assistant is instructed to say goodbye before hanging up
- Context-aware: First prompt considers conversation context (e.g., "let me look that up")
Use Cases
Good For
- Reception/Front Desk: Callers may walk away to check something
- Customer Support: Long hold times while customers search for info
- Appointment Booking: Callers checking their calendars
Consider Disabling For
- Emergency Lines: May need to stay connected even during silence
- Listening Services: Where silence is expected and acceptable
- IVR/Menu Systems: Where users navigate with keypresses, not speech
Interaction with Other Features
With voicemail_detection
Both can be enabled simultaneously. Voicemail detection triggers first (on initial greeting), while silence handling activates during the conversation.
With max_duration_seconds
If max_duration_seconds is set, the call will end at that time regardless of silence handling state.
With end_call Tool
If the assistant already has end_call in its tools, no duplicate is added. The silence handling instructions simply tell the assistant to use the existing tool.
Webhook Events
When a call ends due to silence handling:
{
"message": {
"type": "end-of-call-report",
"call": {
"status": "ended"
},
"summary": "Call ended after no response from caller..."
}
}The status-update webhook will show status: "ended" (not a special silence-related status).
Troubleshooting
Assistant Not Detecting Silence
- Verify
autonomous_silence_handling: trueis in the assistant configuration - Check the call transcript to see if silence detection prompts appear
- Ensure STT (Speech-to-Text) is properly configured to detect when user stops speaking
Assistant Ending Calls Too Quickly
- The 7-second initial delay should prevent premature endings
- Review the call transcript to see timing of silence prompts
- Note that timing parameters (7s, 12s, 3 attempts) are currently fixed
Assistant Not Hanging Up After 3 Attempts
- The
end_calltool is automatically added when silence handling is enabled - Review the end-of-call-report to see if the assistant attempted to end the call
- The LLM may occasionally not follow instructions perfectly - this is expected behavior with AI assistants