AI Customer Service
PraisonAI Call is a feature that enables voice-based interaction with AI models through phone calls. This functionality allows users to have natural conversations with AI agents over traditional phone lines.Installation
Step 1
Step 2
Buy a number at PraisonAI DashboardStep 3
Enter the Public URL in the PraisonAI Dashboard phone number fieldAuthentication
The PraisonAI Call server now requires authentication configuration for security. You have two options:Option 1: Token Authentication (Recommended)
Set a secure token for API authentication:Option 2: Disable Authentication (Local Development Only)
For local development on your own machine, you can disable authentication. The CLI sets the bind-host env var for you, so this is enough when launching viapraisonai call:
uvicorn, embedding praisonai.api.agent_invoke in another app, or any path that does NOT go through praisonai call / praisonai serve), you must also pin the bind host:
PRAISONAI_CALL_BIND_HOST set to a localhost value, every request is rejected with:
Authentication Flow
WhenCALL_SERVER_TOKEN is not configured and the environment is not development, the server returns:
PRAISONAI_CALL_AUTH=disabled is set but the bind host is not localhost:
Environment Variables
Binding & Network Access
The call server binds to127.0.0.1 by default, so it is only reachable from the same machine.
Features
- Make and receive phone calls with AI agents
- Natural language processing for voice interactions
- Support for multiple phone carriers and providers
- Call recording and transcription capabilities
- Integration with other PraisonAI features
Adding Tools
- Create a file called
tools.py - Add the following code:
Manage Google Calendar Events
See Google Calendar ToolsDeploy
Docker Deployment
How It Works
A caller dials your number, the provider forwards audio to the call server, and the Agent responds with synthesized speech.Best Practices
Always set CALL_SERVER_TOKEN in production
Always set CALL_SERVER_TOKEN in production
The server fails with 503 unless a token is set or auth is explicitly disabled for localhost. Never disable auth on a public bind.
Keep the default localhost bind
Keep the default localhost bind
praisonai call binds to 127.0.0.1 by default. Add --host 0.0.0.0 only inside a container or when you deliberately expose the LAN.Set secrets via environment variables
Set secrets via environment variables
Export
OPENAI_API_KEY, NGROK_AUTH_TOKEN, and CALL_SERVER_TOKEN in your shell — never inline the raw values.Add tools for real actions
Add tools for real actions
Register async tool handlers (like a stock-price lookup) so the phone agent can fetch live data during a call.
Related
Tools
Give your call agent live data and actions.
Security
Harden the call server before exposing it.

