For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
WebsiteStatusSupportDashboard
DocumentationAPI ReferenceMCPSDKsCLI (new)What's New?
DocumentationAPI ReferenceMCPSDKsCLI (new)What's New?
  • Get started
    • Introduction
    • Phone calls
    • Web calls
    • Vapi Guides
    • Composer
    • CLI quickstart
  • Assistants
    • Quickstart
    • Tools
    • Custom keywords
    • Custom voices
    • Custom transcriber
    • Custom TTS
  • Observability
    • Boards
  • Squads
    • Quickstart
    • Overview
    • Handoff tool
    • Passing data between assistants
  • Best practices
    • Prompting guide
    • Debugging voice agents
    • Enterprise environments (DEV/UAT/PROD)
    • IVR navigation
  • Phone numbers
    • Free Vapi number
    • Inbound SMS
    • Phone Number Hooks
  • Calls
      • Real-time call control
      • Customer join timeout
      • Voicemail detection
      • Call queue management
      • Call concurrency
    • Call end reasons
    • Troubleshoot call errors
  • Outbound Campaigns
    • Quickstart
    • Overview
  • Chat
    • Quickstart
    • Streaming
    • Non-streaming
    • OpenAI compatibility
    • Session management
    • Variable substitution
    • SMS chat
    • Web widget
    • Webhooks
  • Workflows
    • Quickstart
    • Overview
LogoLogo
WebsiteStatusSupportDashboard
On this page
  • Overview
  • How it works
  • Configuration
  • Optimization guidelines
  • Recommended timeout values
  • Balancing considerations
  • Monitoring and troubleshooting
  • Key metrics to track
  • Example scenario analysis
  • Meeting has ended message
  • Best practices
  • Next steps
CallsIn-call control

Customer Join Timeout

Configure web call join timeout for better success rates
Was this page helpful?
Edit this page
Previous

Voicemail Detection

Next
Built with

Overview

Customer Join Timeout sets the maximum time users have to join a web call before it’s automatically terminated. This parameter helps you optimize call success rates by accounting for real-world connection challenges.

You’ll learn to:

  • Configure timeout values for different user scenarios
  • Monitor join success rates and failures
  • Troubleshoot timeout-related call issues

This setting applies only to web calls. Phone calls are not affected by this parameter.

How it works

When a web call starts, users must complete several steps within the timeout window:

Network Connection

Establish connection to Vapi servers

Permissions

Grant browser microphone access

WebRTC Setup

Complete audio handshake process

Default timeout: 15 seconds
Available range: 1-60 seconds

If users don’t complete all steps within the timeout, the call ends with an assistant-did-not-receive-customer-audio error.

Configuration

Configure customerJoinTimeoutSeconds through the Vapi API for both permanent and transient assistants.

Create Assistant
Update Existing
Transient Assistant
Assistant Overrides

Set timeout when creating a new assistant:

1import { VapiClient } from "@vapi-ai/server-sdk";
2
3const client = new VapiClient({ token: process.env.VAPI_API_KEY });
4
5const assistant = await client.assistants.create({
6 name: "Customer Support Assistant",
7 model: {
8 provider: "openai",
9 model: "gpt-4.1-mini"
10 },
11 voice: {
12 provider: "11labs",
13 voiceId: "21m00Tcm4TlvDq8ikWAM"
14 },
15 customerJoinTimeoutSeconds: 30
16});

Optimization guidelines

Recommended timeout values

Choose timeout values based on your user scenarios:

User TypeRecommended TimeoutReason
Corporate users45-60 secondsSecurity policies, proxy delays
Mobile users30-45 secondsPermission prompts, slower networks
International users30-60 secondsHigher latency connections
First-time users45-60 secondsUnfamiliar with interface
Returning users20-30 secondsFamiliar with flow

Balancing considerations

Higher Timeouts

Benefits: - Improved join success rates - Better user experience - Fewer support requests Trade-offs: - Resources tied up longer - Delayed error detection

Lower Timeouts

Benefits: - Faster resource cleanup - Quick failure detection - Reduced server load Trade-offs: - More failed joins - Frustrated users

Monitoring and troubleshooting

Key metrics to track

Monitor these call ended reasons to optimize your timeout settings:

assistant-did-not-receive-customer-audio

Meaning: Customer didn’t complete join process within timeout

Actions:

  • Increase customerJoinTimeoutSeconds value
  • Analyze user feedback for connection issues
  • Consider user base demographics
customer-did-not-give-microphone-permission

Meaning: Legacy reason replaced by above (for better clarity)

Actions:

  • Review your browser permission prompts
  • Add user guidance for microphone access
  • Consider increasing timeout for permission flow

Example scenario analysis

A user attempting to join needs:

  • 5 seconds: Network connection establishment
  • 10 seconds: Microphone permission prompt and user response
  • 8 seconds: WebRTC handshake completion
  • Total: 23 seconds required

With 15-second timeout: Call fails
With 30+ second timeout: Call succeeds

Start with 30-60 seconds and adjust based on your success rate analytics.

Meeting has ended message

This message appears when a call ends naturally and is informational only—not an error.

Best practices

1

Start conservatively

Begin with 30-60 second timeouts to establish baseline success rates.

3

Monitor analytics

Track join success rates and timeout-related call ended reasons in your dashboard.

5

Test thoroughly

Validate timeout settings in staging environment before production deployment.

7

Segment users

Consider different timeout values for different user types or regions.

8

Provide user feedback

Show loading indicators and connection status during the join process.

Next steps

Now that you understand customer join timeouts:

  • Monitor your metrics: Check your call analytics for timeout-related failures
  • Explore call features: Learn about real-time call control
  • Understand call failures: Review call ended reasons for comprehensive troubleshooting