DEVELOPER DOCUMENTATION
Real-time voice calls
Server-initiated calls, signed connections and lifecycle management.
The voice experience combines a configured character, real-time audio transport and the lifecycle controls in your application.
Try the demonstration
Use Call Amora on the homepage to open the in-page call panel. You can also use the existing character call page. Microphone permission is requested when you start a call; you can mute or hang up from the panel.
Server-initiated architecture
User chooses Call
→ Browser obtains microphone permission
→ Your backend creates a character call
→ Backend returns scoped connection data
→ Audio client establishes the real-time connection
→ Your application tracks connection and completion
The account-level API key remains on your server. Browsers receive signed session data rather than that key.
Illustrative creation contract
A call-creation integration can use a fixed configured character and a server-enforced duration limit. This request is a preview of the integration pattern; use your assigned production contract before deployment.
{
"character": "YOUR_ASSIGNED_CHARACTER",
"call_time_limit_seconds": "300"
}
The integration returns call-specific connection data. While a call is starting, the application checks readiness before opening the audio connection. Preserve signed URLs and query parameters exactly as issued.
Call states
| State | Application behavior |
|---|---|
| Idle | Show the call action and recorded preview |
| Connecting | Prevent duplicate starts; allow cancellation |
| Connected | Show elapsed time, voice activity, mute and hang-up |
| Ended | Release microphone and audio resources; offer another call |
| Error | Show a clear message and an explicit retry action |
Microphone and cleanup
Acquire audio only after the user's call action. Keep ownership of the microphone stream so cancellation can stop it even if initialization is incomplete. Stop late-resolving streams after cancellation.
On close, hang-up or page exit, stop local tracks, close the audio client and request server-side call termination. Stop the voice preview before opening a live call.
Mobile behavior
Use HTTPS, clear permission guidance, touch-sized controls and safe-area spacing. Handle permission denial, unavailable devices, network changes and interruptions. Review the mobile guide for the channel-specific considerations.
Talk to our team about your architecture, character and launch.
Discuss your integration ↗