# Channels

Channels are the ways that your customers communicate with you, such as voice calls, SMS, or WhatsApp. Conversation Orchestrator supports voice, SMS, RCS, and WhatsApp channels. You can also bring Chat traffic in through the [Conversations API (classic) bridge](/docs/conversations/orchestrator/guides/classic-bridge).

## Channels and address formats

The following table summarizes the supported channels, their address formats, and their supported [ingestion modes](/docs/conversations/orchestrator/concepts/ingestion).

| Channel             | Address format                           | Example                | Ingestion modes                                                                                                                                                      |
| ------------------- | ---------------------------------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Voice (PSTN)        | E.164 phone number                       | `+15559876543`         | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| Voice (CLIENT)      | Client identity string                   | `agent-1`              | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| Voice (PUBLIC\_SIP) | SIP URI or E.164 phone number            | `sip:user@example.com` | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| SMS                 | E.164 phone number                       | `+15551234567`         | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| RCS                 | E.164 phone number                       | `+15551234567`         | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| WhatsApp            | E.164 phone number                       | `+15551234567`         | [Passive](/docs/conversations/orchestrator/concepts/ingestion#passive-ingestion) and [active](/docs/conversations/orchestrator/concepts/ingestion#active-ingestion). |
| Chat                | Identity string (for example, `user123`) | `user123`              | [Conversations API (classic) bridge](/docs/conversations/orchestrator/concepts/ingestion#conversations-api-classic-bridge) only.                                     |

## Voice

### Passive ingestion

To use passive ingestion with the voice channel, you don't need to change your existing voice application or TwiML.

To distinguish between standard phone calls, in-app calls, and SIP calls, use the `callType` parameter in your capture rule. Conversation Orchestrator interprets the call's address format based on the value that you provide for `callType`.

| callType     | Use for                                       | Address format                                    |
| ------------ | --------------------------------------------- | ------------------------------------------------- |
| `PSTN`       | Standard phone calls over the public network. | E.164 phone number (for example, `+15551234567`). |
| `CLIENT`     | In-app calls using the Twilio Voice SDK.      | Client identity string, for example `agent-1`.    |
| `PUBLIC_SIP` | Calls over a SIP interface.                   | SIP URI or E.164 phone number.                    |

When you save voice capture rules, Conversation Orchestrator automatically provisions call filtering and [real-time transcription](/docs/voice/twiml/transcription) for matching calls.

Each text-to-speech fragment is a separate communication. A single agent response might produce three to five communications depending on how the TTS engine chunks the text. Intelligence operators with the `COMMUNICATION` trigger fire once per fragment. Plan intelligence operator usage and webhook handler capacity accordingly.

Voice communications have a `content.type` of `TRANSCRIPTION` with the transcribed utterance, and a `resourceId` linking to the Call SID (`CA...`). Each communication represents a single transcription event (one utterance), not the full call. See [Voice timeouts behave differently](/docs/conversations/orchestrator/concepts/lifecycle#voice-timeouts-behave-differently) to learn about how this affects the conversation lifecycle.

> \[!WARNING]
>
> For scenarios with dynamic or numerous client identities, use [active TwiML ingestion](/docs/conversations/orchestrator/guides/active-creation#optional-ingest-voice-calls-with-twiml) instead of passive capture rules. Don't use wildcard identities with the `CLIENT` call type.

> \[!WARNING]
>
> Remove voice capture rules from your configuration if you're using active TwiML ingestion with Conversation Relay. If both a voice capture rule and `<ConversationRelay>` apply to the same call, you pay for speech-to-text twice: once through Conversation Relay and once through the Real-Time Transcription stream created by the capture rule.

### Active ingestion

For per-call control, use [active ingestion with TwiML](/docs/conversations/orchestrator/guides/active-creation#optional-ingest-voice-calls-with-twiml).

## SMS

Conversation Orchestrator resolves Twilio-owned phone numbers as agents. The other address resolves to a customer if a profile is found, or to `UNKNOWN` otherwise.

Each SMS communication has a `content.type` of `TEXT` with the full message body, and a `resourceId` that links to the Twilio Message SID (`SM...`). The `recipients` array includes a `deliveryStatus` field for delivery confirmation.

```json title="Example SMS communication"
{
  "id": "conv_communication_01...",
  "content": {
    "type": "TEXT",
    "text": "Hello, I need help with my order"
  },
  "resourceId": "SMfeac57b2df969b5e88ca43fe6629ef9f",
  "recipients": [
    {
      "deliveryStatus": "DELIVERED"
    }
  ]
}
```

## RCS

Conversation Orchestrator captures the text body of each RCS message. Media attachments on inbound or outbound RCS messages aren't added to the conversation.

## WhatsApp

Addresses use [E.164](/docs/glossary/what-e164) format, like SMS. You can pass WhatsApp numbers with or without a `whatsapp:` prefix. Conversation Orchestrator treats your registered WhatsApp Business Account number as the agent. Communications support text and template messages. Media attachments on inbound or outbound WhatsApp messages aren't added to the conversation.

## Chat

Chat is only available through the [Conversations API (classic) bridge](/docs/conversations/orchestrator/guides/classic-bridge). Bridged chat participants use customer-defined identity strings (for example, `user123`), and the classic `ConversationSid` is carried on the address as `channelId`.

Because Chat identities are arbitrary strings rather than phone numbers, Conversation Orchestrator can't infer the participant types from address format.

## Next steps

* [Ingestion modes](/docs/conversations/orchestrator/concepts/ingestion): Capture rule syntax, active ingestion, and classic bridge.
* [Profiles](/docs/conversations/orchestrator/concepts/profiles): How participant types and profiles resolve per channel.
* [Conversation lifecycle](/docs/conversations/orchestrator/concepts/lifecycle): Timeouts, including voice-specific behavior.
* [Troubleshooting](/docs/conversations/orchestrator/troubleshooting): Messages not captured, wrong participant types, and more.
