Flireo AI
WebsiteLinkedinDashboard
WebsiteLinkedinDashboard
  1. Guides
Flireo AI
  • Documentation
    • Get started
      • Quickstart
      • Introduction
      • Authentication
    • Core concepts
      • Agents
      • Phone numbers
      • Calls
      • Webhooks
    • Api's
      • Organization
      • Agents
      • Phone numbers
      • Sip trunks
      • Calls
      • Call control
      • Usage
      • Voices
      • BYOK
      • Domains
      • Analysis templates
      • Tool templates
      • Campaigns
    • Webhooks
      • Overview
      • Assistant request
      • Tool calls
      • Status update
      • End of call report
      • Security
    • Guides
      • BYOK Setup
      • Call analysis
      • Custom Tools
      • Call Transfers
      • xAI Realtime Integration
      • Analysis templates
      • Billing
      • Error codes
      • Rate limits
      • Sip Trunks
      • Tool templates
      • Troubleshooting
      • Campaigns
      • Voice selection psychology
      • Voicemail detection
      • Autonomous silence detection
  • API Reference
    • Agents
      • List all agents
      • Create a new agent
      • Get an agent
      • Update an agent
      • Delete an agent
    • Tool Templates
      • List all tool templates
      • Create a new tool template
      • Get a tool template
      • Update a tool template
      • Delete a tool template
    • Numbers
      • List all phone numbers
      • Register a phone number
      • Get a phone number
      • Update a phone number
      • Delete a phone number
    • Calls
      • List calls
      • Get call by ID
      • Initiate outbound call
    • Call Control
      • Send control command to active call
    • Usage
      • Get usage logs
    • SIP Trunks
      • List SIP trunks
      • Create a SIP trunk
      • Get a SIP trunk
      • Delete a SIP trunk
    • Voices
      • List available voices
    • BYOK
      • Get BYOK configurations
      • Add BYOK configuration
      • Delete BYOK configuration
      • Get BYOK provider configurations
    • Domains
      • Get your domain
      • Add a domain
      • Delete your domain
      • List available Resend domains
      • Select and sync a Resend domain
      • Verify domain DNS records
      • Refresh domain status
    • Webhooks
      • Dynamic assistant configuration webhook
      • Tool/Function Call
      • Call Status Update
      • End of Call Report
    • Analysis Templates
      • List analysis templates
      • Create analysis template
      • Get analysis template
      • Update analysis template
      • Delete analysis template
    • Organization
      • Get organization information
    • Campaigns
      • List all campaigns
      • Create a campaign
      • Get a campaign
      • Update a campaign
      • Delete a campaign
      • List campaign leads
      • Add a lead
      • Remove a lead
    • Schemas
      • Error
      • Pagination
      • UUID
      • Timestamp
      • SuccessResponse
      • STTConfig
      • LLMConfig
      • TTSConfig
      • XAIRealtimeConfig
      • Agent
      • AgentCreate
      • AgentUpdate
      • PhoneNumber
      • PhoneNumberCreate
      • PhoneNumberUpdate
      • Call
      • CallControlCommand
      • InjectContextCommand
      • SayCommand
      • EndCallCommand
      • TransferCommand
      • CallControlResponse
      • Account
      • OutboundCallRequest
      • OutboundCallResponse
      • UsageLog
      • UsageSummary
      • Organization
      • SipTrunk
      • SipTrunkCreate
      • Voice
      • AssistantRequestPayload
      • CallObject
      • AssistantRequestResponse
      • XAIRealtimeVoice
      • Customer
      • AssistantConfigOverride
      • AnalysisPlan
      • AssistantWebhookObject
      • ToolCallsPayload
      • ToolCall
      • ToolCallsResponse
      • StatusUpdatePayload
      • EndOfCallReportPayload
      • ToolDefinition
      • EndCallTool
      • TransferCallTool
      • WebhookHeaders
      • XAIRealtimeWebhookNotes
      • ToolFunctionConfig
      • ToolTransferConfig
      • ToolTemplate
      • ToolTemplateCreate
      • ToolTemplateUpdate
      • AnalysisTemplate
      • CreateAnalysisTemplate
      • UpdateAnalysisTemplate
      • AnalysisTemplateListResponse
      • CampaignLead
      • Campaign
      • CampaignCreate
      • CampaignUpdate
      • CampaignLeadCreate
WebsiteLinkedinDashboard
WebsiteLinkedinDashboard
  1. Guides

Autonomous silence detection

Technical documentation for the autonomous_silence_handling feature.

Overview#

Autonomous Silence Handling is a feature that allows the AI agent to intelligently detect and respond to prolonged silence during a call. When enabled, the agent will:
1.
Detect when the caller has stopped speaking
2.
Prompt the caller to check if they're still on the line
3.
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#

Agent Schema#

{
  "autonomous_silence_handling": true
}
FieldTypeDefaultDescription
autonomous_silence_handlingbooleanfalseEnable/disable autonomous silence detection

Automatic Tool Addition#

When autonomous_silence_handling is enabled, the system automatically adds the end_call tool to the agent's toolset if not already present. This ensures the agent can hang up after detecting prolonged silence.

How It Works#

Timing Configuration#

ParameterValueDescription
first_silence_check7 secondsTime before first prompt after silence detected
silence_check_interval12 secondsTime between subsequent prompts
max_silence_attempts3Maximum prompts before instructing agent 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#

1.
User State: "away" - Silence timer starts
2.
7 seconds pass - First silence check triggered
3.
Agent speaks - "Are you still there?" (contextual)
4.
12 more seconds - Second silence check
5.
Agent speaks - "I'm still here if you need me"
6.
12 more seconds - Third and final check
7.
Agent speaks - Brief goodbye + calls end_call tool

Contextual Prompts#

The agent 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#

1.
No check while agent speaking: Silence timer pauses when agent is speaking
2.
Reset on user speech: Any detected user speech resets the timer and attempt counter
3.
Graceful termination: Agent is instructed to say goodbye before hanging up
4.
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 agent already has end_call in its tools, no duplicate is added. The silence handling instructions simply tell the agent 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#

Agent Not Detecting Silence#

Verify autonomous_silence_handling: true is in the agent 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

Agent 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

Agent Not Hanging Up After 3 Attempts#

The end_call tool is automatically added when silence handling is enabled
Review the end-of-call-report to see if the agent attempted to end the call
The LLM may occasionally not follow instructions perfectly - this is expected behavior with AI agents
Modified at 2026-01-19 12:14:14
Previous
Voicemail detection
Next
List all agents
Built with