Conversational Calls
Anima supports three voice-call modes. Pick the mode based on who should drive the live conversation: Anima’s hosted loop, the realtime voice pipeline, or your own agent over WebSocket.Modes
| Mode | How to start | Who drives the conversation | Best for |
|---|---|---|---|
| REST hosted, Basic/Premium | POST /v1/voice/calls with tier: "basic" or tier: "premium" | Anima attaches a server-side conversation loop after dialing | ”Call me now” demos, scripted follow-up calls, quick production calls |
| REST realtime | POST /v1/voice/calls with tier: "realtime" | The realtime pipeline drives STT, LLM, TTS, tools, and barge-in | Low-latency calls with a custom per-call systemPrompt |
| WebSocket BYO agent | Voice WebSocket / SDK connection | Your agent runtime accepts calls, streams events, and sends speech/control messages | Custom agents, complex routing, external memory, custom tool orchestration |
REST hosted calls
Use REST when you want one HTTP request to start a call and let Anima handle the live response loop.basic and premium, Anima attaches the hosted conversation loop. The first spoken line comes from greeting. Deeper behavior comes from the agent configuration and the hosted voice loop.
Realtime calls
Userealtime when you want the low-latency realtime pipeline. This mode accepts an optional per-call systemPrompt.
systemPrompt is for the realtime tier. Basic and Premium use the hosted conversation loop and agent configuration instead.
WebSocket-controlled calls
Use the Voice WebSocket when your own agent runtime needs full control over the call.What Anima handles
- Number ownership and call placement
- Voice pipeline selection
- TCPA, RND, time-of-day, and plan-cap gates
- Call lifecycle records
- Transcripts and post-call artifacts
- Webhooks for call lifecycle events
What your app still owns
- The lawful basis and consent record for contacting the recipient
- Agent behavior and escalation policy
- Any business-specific data used during the call
- Follow-up workflows after the call ends
