config.channel is voice, video or text. It decides which model slots exist, how people reach the agent and how it is billed. Changing it rewrites parts of the config on save, so read the response after switching. Rates are on pricing and credits; provider spend is billed to your own keys.

Which one to pick

  • voice for phone calls, inbound or outbound, and for media streams. Only a voice agent can be assigned to a phone number. It also serves web calls and WhatsApp calls.
  • video is a voice agent wearing an Anam avatar, on web calls only. Avatar time bills per wall-clock minute of the whole call on your Anam key.
  • text for chat: your own UI via the API and browser SDK, or a Telegram or WhatsApp trigger. Prompt, tools, MCP, handoffs, hooks, analysis and conversation memory work as on a call. See text conversations.

What switching clears

To text

  • tts, realtime and avatar become null; llm is kept (or defaulted).
  • stt is kept, and then transcribes voice notes; send "stt": null to turn them off. Its model must have file_transcription in the catalog.
  • greeting becomes null, and language too unless stt is set; turn_handling resets to defaults. Set tone in the prompt.
  • background_audio, noise_cancellation and recording are turned off.
  • keypad_input.enabled, voicemail_detection.enabled or vision_input.screenshare.enabled left true is refused — turn them off first.
analysis runs when the chat ends; conversation.context decides what a new chat knows about earlier ones.

To video

  • avatar is filled with anam/anam and a default face if absent. Publishing needs an avatar_id and an Anam provider key.
  • keypad_input and voicemail_detection left enabled are refused.
  • turn_handling.interruption.resume_false_interruption never runs: the avatar’s audio cannot pause.
  • Every handoff target must use the same avatar provider, model, face and display name.

Setting realtime

Setting realtime clears stt, llm and tts, pins preemptive generation off, and refuses on_user_turn_completed, screen share, elapsed_time, a non-interruptible greeting and recording.notice. See realtime models.

Channels and handoffs

A handoff target must be on the same channel and the same pipeline (cascade or realtime) as its source; on video the avatar must match too. Publishing refuses any edge that would need the media rewired mid-call. See handoffs.

Next

Models

The model slots each channel needs.

Video avatars

Picking a face and what avatar time costs.