Skip to main content
A call is one conversation with an agent. However it starts, the agent behaves the same — same prompt, same tools, same knowledge.

Four ways in

Assign a number to an agent and it answers every call to that number.
See Phone numbers.

Connection types

Every call-creation endpoint takes a connectionType, which decides what the returned websocketUrl is prepared for. Defaults to twilio. Any other value returns 400.

WebSocket audio options

Only read when connectionType is websocket — telephony transports force G.711 at 8000 Hz whatever you send.
inputSampleRate and outputSampleRate are both required when connectionType is websocket. Omitting either returns 400 — they are not defaulted, because guessing a sample rate produces audio that is subtly wrong rather than obviously broken.
enum
default:"g711"
pcm for direct integrations, g711 for telephony.
boolean
Buffer audio to smooth jitter on unreliable links.
boolean
Format the stream for Twilio’s <Stream> verb.

Call settings

Set these on the agent’s config; some can be overridden per call.

Who speaks first

enum
default:"agent"
agent — opens with greeting. Right for inbound: the caller expects to be greeted.user — waits silently. Right when the other side initiates.

Interruptions

boolean
default:"false"
Whether the caller can talk over the agent’s first message only. Every later turn is interruptible regardless.Leave it false when the greeting carries something callers must hear — a recording notice, for instance.

Silence

integer
Seconds of silence before the agent reacts. Unset means it waits indefinitely.
enum
prompt — check in (“Are you still there?”) and keep waiting.hang_up — say goodbye and end the call.Either way the agent speaks first. It is never a silent disconnect, which callers read as a dropped line.
The spoken line is chosen from the agent’s language — Finnish agents say “Oletko vielä siellä?”, Swedish “Är du kvar?”, and so on, falling back to English for unmapped languages.

Length and variability

integer
default:"3000"
Hard cap in seconds — 50 minutes by default, 7200 maximum. The call ends when it is reached.
number
default:"0"
0 gives consistent, repeatable answers — the right default for anything transactional. Raise it only when you want more personality and can tolerate more variation.

Recording

boolean
default:"true"
Stores the audio for retrieval after the call.
Recording consent is your responsibility and the rules differ by jurisdiction — several US states and most of the EU require the caller to be told. If you record, say so in the greeting, where it cannot be interrupted.

After the call

Each record carries who was called, how long it ran, why it ended, the transcript, and the recording if enabled.

Knowing when a call ended

There is no customer-facing webhook subscription for voice calls. Call lifecycle events (call.started, call.joined, call.ended) flow inbound from the voice provider to Omnia for billing — they are not forwarded on to you, and there is no endpoint to subscribe to them. To detect completion, poll the call record. A call is finished once endTime is populated:
duration is the billed duration in seconds, and status carries the end reason. While a call is still running, endTime is null.
Poll GET /calls with a cursor rather than polling each call individually. It returns the same fields for a whole page of calls in one request, which is far kinder to your rate limit.