# Contact Center events

<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

Contact Center voice events provide real-time updates about call lifecycle, transfers, conferences, supervisor monitoring, and IVR streaming during Contact Center engagements.

These events use the `RTMS_ZCC_VOICE_EVENT_TYPE` enum (event codes 8-34) and are sent through the signaling connection as `EVENT_UPDATE` messages.

> To use Contact Center events, you must first establish connections using [Universal events](/docs/rtms/event-reference/universal-events/). These foundational protocol events (handshakes, keep-alive, session state, media data) apply to all RTMS implementations including Contact Center.

## Consumer answered

<span className="pill_signaling">Sent from the signaling connection</span>

The signaling connection sends a consumer answered event when a customer has already answered at stream start. Subscribe to this event with `event_type: 8`. This message does not require a response from the app.

The `event_ts` timestamp indicates when the customer's channel was answered.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 8,
        "event_ts": 1727384349123,
        "participant_info": {
            "channel_id": "123abc",
            "participant_mode": "caller",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550101",
            "user_id": "customer-contact-id",
            "display_name": "Jane Doe"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                        |
| ------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a consumer has answered. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The consumer answered event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                         |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the customer channel was answered.                                                                                          |
| `participant_info` | <span class="prop-object">object</span>       | Information about the customer participant.                                                                                                                        |
| `channel_id`       | <span class="prop-string">string</span>       | The unique identifier of the customer SIP channel.                                                                                                                 |
| `participant_mode` | <span class="prop-string">string</span>       | The participant role. For inbound calls, the customer is `"caller"`. For outbound calls, the customer is `"callee"`.                                               |
| `queue_id`         | <span class="prop-string">string</span>       | The unique identifier of the queue.                                                                                                                                |
| `queue_name`       | <span class="prop-string">string</span>       | The name of the queue.                                                                                                                                             |
| `account_id`       | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                                |
| `division_id`      | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                           |
| `phone_number`     | <span class="prop-string">string</span>       | The customer's phone number.                                                                                                                                       |
| `user_id`          | <span class="prop-string">string</span>       | The customer contact identifier.                                                                                                                                   |
| `display_name`     | <span class="prop-string">string</span>       | The customer's display name.                                                                                                                                       |

## User answered

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a user answered event when an agent or supervisor has answered a call. Subscribe to this event with `event_type: 10`. This message does not require a response from the app.

For agents on inbound customer calls, `participant_mode` is `"callee"`. For outbound calls, it is `"caller"`. The `email` field is included when the user can be loaded.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 10,
        "event_ts": 1727384350123,
        "participant_info": {
            "channel_id": "agent-channel-id",
            "participant_mode": "callee",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "szCyubr_aQhieHNWYbAGMYg",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                    |
| ------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a user has answered. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The user answered event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                         |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the user answered.                                                                                                      |
| `participant_info` | <span class="prop-object">object</span>       | Information about the user participant.                                                                                                                        |
| `channel_id`       | <span class="prop-string">string</span>       | The unique identifier of the user's SIP channel.                                                                                                               |
| `participant_mode` | <span class="prop-string">string</span>       | The participant role. `"callee"` for inbound, `"caller"` for outbound.                                                                                         |
| `queue_id`         | <span class="prop-string">string</span>       | The unique identifier of the queue.                                                                                                                            |
| `queue_name`       | <span class="prop-string">string</span>       | The name of the queue.                                                                                                                                         |
| `account_id`       | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                            |
| `division_id`      | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                       |
| `phone_number`     | <span class="prop-string">string</span>       | The user's phone number.                                                                                                                                       |
| `user_id`          | <span class="prop-string">string</span>       | The unique identifier of the user.                                                                                                                             |
| `display_name`     | <span class="prop-string">string</span>       | The user's display name.                                                                                                                                       |
| `email`            | <span class="prop-string">string</span>       | The user's email address.                                                                                                                                      |

## Consumer ended

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a consumer ended event when the customer hangs up. This event is often sent along with stream stop. Subscribe to this event with `event_type: 9`. This message does not require a response from the app.

The structure is the same as consumer answered.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 9,
        "event_ts": 1727384999000,
        "participant_info": {
            "channel_id": "123abc",
            "participant_mode": "caller",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550101",
            "user_id": "customer-contact-id",
            "display_name": "Jane Doe"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                       |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a consumer ends a call. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The consumer ended event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                           |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the customer hung up.                                                                                                      |
| `participant_info` | <span class="prop-object">object</span>       | Information about the customer participant. See [Consumer answered](/docs/rtms/event-reference/#consumer-answered) for field descriptions.                        |

## User ended

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a user ended event when an agent or supervisor hangs up or when their channel is removed. Subscribe to this event with `event_type: 11`. This message does not require a response from the app.

The structure is the same as user answered.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 11,
        "event_ts": 1727384999000,
        "participant_info": {
            "channel_id": "agent-channel-id",
            "participant_mode": "callee",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "szCyubr_aQhieHNWYbAGMYg",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                   |
| ------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a user ends a call. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The user ended event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                           |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the user hung up.                                                                                                      |
| `participant_info` | <span class="prop-object">object</span>       | Information about the user participant. See [User answered](/docs/rtms/event-reference/#user-answered) for field descriptions.                                |

## User hold

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a user hold event when an agent places a call on hold. Subscribe to this event with `event_type: 12`. This message does not require a response from the app.

The subject is the agent who toggled hold. The queue comes from the agent's task.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 12,
        "event_ts": 1727384400000,
        "participant_info": {
            "channel_id": "agent-channel-id",
            "participant_mode": "callee",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "szCyubr_aQhieHNWYbAGMYg",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                             |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a user places a call on hold. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The user hold event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                                      |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the call was placed on hold.                                                                                                     |
| `participant_info` | <span class="prop-object">object</span>       | Information about the agent who placed the call on hold. See [User answered](/docs/rtms/event-reference/#user-answered) for field descriptions.                         |

## User unhold

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a user unhold event when an agent resumes a call from hold. Subscribe to this event with `event_type: 13`. This message does not require a response from the app.

The structure is identical to user hold, with `event_type: 13`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 13,
        "event_ts": 1727384450000,
        "participant_info": {
            "channel_id": "agent-channel-id",
            "participant_mode": "callee",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "szCyubr_aQhieHNWYbAGMYg",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                                |
| ------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a user resumes a call from hold. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The user unhold event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                                       |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the call was resumed from hold.                                                                                                     |
| `participant_info` | <span class="prop-object">object</span>       | Information about the agent who resumed the call. See [User answered](/docs/rtms/event-reference/#user-answered) for field descriptions.                                   |

## Monitor started

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a monitor started event when a supervisor begins monitoring an agent's call (listen-only mode). Subscribe to this event with `event_type: 14`. This message does not require a response from the app.

The `channel_id` is the supervisor's channel. The `participant_mode` indicates the monitoring mode (`"monitor"`, `"whisper"`, `"barge"`, or `"takeover"`). The `user_id`, `display_name`, and `email` fields identify the monitored agent. The `monitoring_user_*` fields identify the supervisor.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 14,
        "event_ts": 1727384410000,
        "participant_info": {
            "channel_id": "supervisor-channel-id",
            "participant_mode": "monitor",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550999",
            "user_id": "agent-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "monitoring_user_id": "supervisor-user-id",
            "monitoring_user_display_name": "Sam Supervisor",
            "monitoring_user_email": "sam@example.com",
            "consumer_id": "customer-contact-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer"
        }
    }
}
```

| Field                          | Type                                          | Description                                                                                                                                                  |
| ------------------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`                     | <span class="prop-int">int</span>             | The signaling connection sends this message when monitoring starts. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`                   | <span class="prop-int">int</span>             | The monitor started event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                     |
| `event_ts`                     | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when monitoring started.                                                                                                   |
| `participant_info`             | <span class="prop-object">object</span>       | Information about the monitoring session.                                                                                                                    |
| `channel_id`                   | <span class="prop-string">string</span>       | The unique identifier of the supervisor's SIP channel.                                                                                                       |
| `participant_mode`             | <span class="prop-string">string</span>       | The monitoring mode. One of `"monitor"`, `"whisper"`, `"barge"`, or `"takeover"`.                                                                            |
| `queue_id`                     | <span class="prop-string">string</span>       | The unique identifier of the queue.                                                                                                                          |
| `queue_name`                   | <span class="prop-string">string</span>       | The name of the queue.                                                                                                                                       |
| `account_id`                   | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                          |
| `division_id`                  | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                     |
| `phone_number`                 | <span class="prop-string">string</span>       | The supervisor's phone number.                                                                                                                               |
| `user_id`                      | <span class="prop-string">string</span>       | The unique identifier of the monitored agent.                                                                                                                |
| `display_name`                 | <span class="prop-string">string</span>       | The display name of the monitored agent.                                                                                                                     |
| `email`                        | <span class="prop-string">string</span>       | The email address of the monitored agent.                                                                                                                    |
| `monitoring_user_id`           | <span class="prop-string">string</span>       | The unique identifier of the supervisor.                                                                                                                     |
| `monitoring_user_display_name` | <span class="prop-string">string</span>       | The display name of the supervisor.                                                                                                                          |
| `monitoring_user_email`        | <span class="prop-string">string</span>       | The email address of the supervisor.                                                                                                                         |
| `consumer_id`                  | <span class="prop-string">string</span>       | The customer contact identifier.                                                                                                                             |
| `consumer_number`              | <span class="prop-string">string</span>       | The customer's phone number.                                                                                                                                 |
| `consumer_display_name`        | <span class="prop-string">string</span>       | The customer's display name.                                                                                                                                 |

## Monitor transitioned

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a monitor transitioned event when a supervisor changes their monitoring mode (for example, from listen to whisper, or whisper to barge). Subscribe to this event with `event_type: 15`. This message does not require a response from the app.

The structure is identical to monitor started, with `participant_mode` showing the new monitoring mode.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 15,
        "event_ts": 1727384420000,
        "participant_info": {
            "channel_id": "supervisor-channel-id",
            "participant_mode": "whisper",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550999",
            "user_id": "agent-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "monitoring_user_id": "supervisor-user-id",
            "monitoring_user_display_name": "Sam Supervisor",
            "monitoring_user_email": "sam@example.com",
            "consumer_id": "customer-contact-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                        |
| ------------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when monitoring mode changes. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The monitor transitioned event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                      |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the mode changed.                                                                                                           |
| `participant_info` | <span class="prop-object">object</span>       | Information about the monitoring session with the new mode. See [Monitor started](/docs/rtms/event-reference/#monitor-started) for field descriptions.             |

## Monitor ended

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a monitor ended event when a supervisor stops monitoring an agent's call. Subscribe to this event with `event_type: 16`. This message does not require a response from the app.

The structure is identical to monitor started.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 16,
        "event_ts": 1727384430000,
        "participant_info": {
            "channel_id": "supervisor-channel-id",
            "participant_mode": "monitor",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550999",
            "user_id": "agent-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "monitoring_user_id": "supervisor-user-id",
            "monitoring_user_display_name": "Sam Supervisor",
            "monitoring_user_email": "sam@example.com",
            "consumer_id": "customer-contact-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                |
| ------------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when monitoring ends. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The monitor ended event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                     |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when monitoring ended.                                                                                                   |
| `participant_info` | <span class="prop-object">object</span>       | Information about the monitoring session that ended. See [Monitor started](/docs/rtms/event-reference/#monitor-started) for field descriptions.            |

## Takeover started

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a takeover started event when a supervisor takes over an agent's call. Subscribe to this event with `event_type: 17`. This message does not require a response from the app.

The structure is identical to monitor started, with `participant_mode: "takeover"`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 17,
        "event_ts": 1727384440000,
        "participant_info": {
            "channel_id": "supervisor-channel-id",
            "participant_mode": "takeover",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550999",
            "user_id": "agent-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "monitoring_user_id": "supervisor-user-id",
            "monitoring_user_display_name": "Sam Supervisor",
            "monitoring_user_email": "sam@example.com",
            "consumer_id": "customer-contact-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                |
| ------------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when takeover starts. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The takeover started event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                  |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when takeover started.                                                                                                   |
| `participant_info` | <span class="prop-object">object</span>       | Information about the takeover session. See [Monitor started](/docs/rtms/event-reference/#monitor-started) for field descriptions.                         |

## Transfer initiated

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer initiated event when an agent initiates a call transfer. Subscribe to this event with `event_type: 18`. This message does not require a response from the app.

The subject is the source agent. The `consumer_id` is the customer channel identifier (not the contact ID). The `transfer_to_*` fields identify the transfer target.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 18,
        "event_ts": 1727384500000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field                           | Type                                          | Description                                                                                                                                                        |
| ------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`                      | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer is initiated. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`                    | <span class="prop-int">int</span>             | The transfer initiated event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`                      | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer was initiated.                                                                                                 |
| `participant_info`              | <span class="prop-object">object</span>       | Information about the transfer.                                                                                                                                    |
| `channel_id`                    | <span class="prop-string">string</span>       | The unique identifier of the source agent's SIP channel.                                                                                                           |
| `queue_id`                      | <span class="prop-string">string</span>       | The unique identifier of the source queue.                                                                                                                         |
| `queue_name`                    | <span class="prop-string">string</span>       | The name of the source queue.                                                                                                                                      |
| `account_id`                    | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                                |
| `division_id`                   | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                           |
| `phone_number`                  | <span class="prop-string">string</span>       | The source agent's phone number.                                                                                                                                   |
| `user_id`                       | <span class="prop-string">string</span>       | The unique identifier of the source agent.                                                                                                                         |
| `display_name`                  | <span class="prop-string">string</span>       | The display name of the source agent.                                                                                                                              |
| `consumer_id`                   | <span class="prop-string">string</span>       | The unique identifier of the customer's SIP channel.                                                                                                               |
| `consumer_number`               | <span class="prop-string">string</span>       | The customer's phone number.                                                                                                                                       |
| `consumer_display_name`         | <span class="prop-string">string</span>       | The customer's display name.                                                                                                                                       |
| `transfer_to_queue_id`          | <span class="prop-string">string</span>       | The unique identifier of the target queue.                                                                                                                         |
| `transfer_to_queue_name`        | <span class="prop-string">string</span>       | The name of the target queue.                                                                                                                                      |
| `transfer_to_user_id`           | <span class="prop-string">string</span>       | The unique identifier of the target agent.                                                                                                                         |
| `transfer_to_user_display_name` | <span class="prop-string">string</span>       | The display name of the target agent.                                                                                                                              |
| `transfer_to_user_channel_id`   | <span class="prop-string">string</span>       | The unique identifier of the target agent's SIP channel.                                                                                                           |

## Transfer canceled

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer canceled event when a transfer is canceled before completion. Subscribe to this event with `event_type: 19`. This message does not require a response from the app.

The structure is identical to transfer initiated.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 19,
        "event_ts": 1727384510000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                       |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer is canceled. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The transfer canceled event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer was canceled.                                                                                                 |
| `participant_info` | <span class="prop-object">object</span>       | Information about the canceled transfer. See [Transfer initiated](/docs/rtms/event-reference/#transfer-initiated) for field descriptions.                         |

## Transfer accepted

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer accepted event when the target agent accepts the transfer. Subscribe to this event with `event_type: 20`. This message does not require a response from the app.

The structure is identical to transfer initiated.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 20,
        "event_ts": 1727384520000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                       |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer is accepted. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The transfer accepted event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer was accepted.                                                                                                 |
| `participant_info` | <span class="prop-object">object</span>       | Information about the accepted transfer. See [Transfer initiated](/docs/rtms/event-reference/#transfer-initiated) for field descriptions.                         |

## Transfer completed

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer completed event when a transfer completes successfully. Subscribe to this event with `event_type: 21`. This message does not require a response from the app.

The structure is identical to transfer initiated.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 21,
        "event_ts": 1727384530000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                     |
| ------------------ | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer completes. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The transfer completed event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                     |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer completed.                                                                                                  |
| `participant_info` | <span class="prop-object">object</span>       | Information about the completed transfer. See [Transfer initiated](/docs/rtms/event-reference/#transfer-initiated) for field descriptions.                      |

## Transfer rejected

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer rejected event when the target agent rejects the transfer. Subscribe to this event with `event_type: 22`. This message does not require a response from the app.

The structure is identical to transfer initiated.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 22,
        "event_ts": 1727384540000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                       |
| ------------------ | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer is rejected. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The transfer rejected event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer was rejected.                                                                                                 |
| `participant_info` | <span class="prop-object">object</span>       | Information about the rejected transfer. See [Transfer initiated](/docs/rtms/event-reference/#transfer-initiated) for field descriptions.                         |

## Transfer timeout

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a transfer timeout event when a transfer times out before being accepted or rejected. Subscribe to this event with `event_type: 23`. This message does not require a response from the app.

The structure is identical to transfer initiated.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 23,
        "event_ts": 1727384550000,
        "participant_info": {
            "channel_id": "source-agent-channel-id",
            "queue_id": "source-queue-id",
            "queue_name": "Source Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "source-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "transfer_to_queue_id": "target-queue-id",
            "transfer_to_queue_name": "Target Queue",
            "transfer_to_user_id": "target-user-id",
            "transfer_to_user_display_name": "Alex Agent",
            "transfer_to_user_channel_id": "target-agent-channel-id"
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                     |
| ------------------ | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a transfer times out. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The transfer timeout event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                       |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the transfer timed out.                                                                                                  |
| `participant_info` | <span class="prop-object">object</span>       | Information about the timed-out transfer. See [Transfer initiated](/docs/rtms/event-reference/#transfer-initiated) for field descriptions.                      |

## Conference canceled

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference canceled event when a conference is canceled. Subscribe to this event with `event_type: 24`. This message does not require a response from the app.

The host identity is in `participant_info` along with customer information from the engagement.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 24,
        "event_ts": 1727384600000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer"
        }
    }
}
```

| Field                   | Type                                          | Description                                                                                                                                                         |
| ----------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`              | <span class="prop-int">int</span>             | The signaling connection sends this message when a conference is canceled. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`            | <span class="prop-int">int</span>             | The conference canceled event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`              | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the conference was canceled.                                                                                                 |
| `participant_info`      | <span class="prop-object">object</span>       | Information about the conference host and customer.                                                                                                                 |
| `channel_id`            | <span class="prop-string">string</span>       | The unique identifier of the host's SIP channel.                                                                                                                    |
| `queue_id`              | <span class="prop-string">string</span>       | The unique identifier of the queue.                                                                                                                                 |
| `queue_name`            | <span class="prop-string">string</span>       | The name of the queue.                                                                                                                                              |
| `account_id`            | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                                 |
| `division_id`           | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                            |
| `phone_number`          | <span class="prop-string">string</span>       | The host's phone number.                                                                                                                                            |
| `user_id`               | <span class="prop-string">string</span>       | The unique identifier of the host.                                                                                                                                  |
| `display_name`          | <span class="prop-string">string</span>       | The display name of the host.                                                                                                                                       |
| `email`                 | <span class="prop-string">string</span>       | The email address of the host.                                                                                                                                      |
| `consumer_id`           | <span class="prop-string">string</span>       | The unique identifier of the customer's SIP channel.                                                                                                                |
| `consumer_number`       | <span class="prop-string">string</span>       | The customer's phone number.                                                                                                                                        |
| `consumer_display_name` | <span class="prop-string">string</span>       | The customer's display name.                                                                                                                                        |

## Conference participant invited

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference participant invited event when an agent is invited to join a conference. Subscribe to this event with `event_type: 26`. This message does not require a response from the app.

The event includes `conference_participants` (everyone already in the conference) and `invited_participant` (the agent being invited).

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 26,
        "event_ts": 1727384610000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "phone_number": "+18005550199",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "email": "jane.doe@example.com",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "conference_participants": [
                {
                    "participant_channel_id": "customer-channel-id",
                    "participant_display_name": "Jane Customer",
                    "participant_role": "customer",
                    "participant_queue_id": "xqJE_cgERLyAJHYYL5LLeg",
                    "participant_phone_number": "+18005550101"
                },
                {
                    "participant_channel_id": "host-channel-id",
                    "participant_user_id": "host-user-id",
                    "participant_display_name": "Jane Doe",
                    "participant_role": "host",
                    "participant_queue_id": "xqJE_cgERLyAJHYYL5LLeg",
                    "participant_phone_number": "+18005550199"
                }
            ],
            "invited_participant": {
                "participant_channel_id": "invitee-channel-id",
                "participant_user_id": "invitee-user-id",
                "participant_display_name": "Alex Agent",
                "participant_queue_id": "target-queue-id",
                "participant_phone_number": "+18005550200"
            }
        }
    }
}
```

| Field                      | Type                                          | Description                                                                                                                                                                         |
| -------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`                 | <span class="prop-int">int</span>             | The signaling connection sends this message when a participant is invited to a conference. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`               | <span class="prop-int">int</span>             | The conference participant invited event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                             |
| `event_ts`                 | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the invitation was sent.                                                                                                                     |
| `participant_info`         | <span class="prop-object">object</span>       | Information about the conference. See [Conference canceled](/docs/rtms/event-reference/#conference-canceled) for host and customer field descriptions.                              |
| `conference_participants`  | <span class="prop-array">array</span>         | Array of participants currently in the conference.                                                                                                                                  |
| `participant_channel_id`   | <span class="prop-string">string</span>       | The unique identifier of the participant's SIP channel.                                                                                                                             |
| `participant_user_id`      | <span class="prop-string">string</span>       | The unique identifier of the participant (for agents and host only).                                                                                                                |
| `participant_display_name` | <span class="prop-string">string</span>       | The display name of the participant.                                                                                                                                                |
| `participant_role`         | <span class="prop-string">string</span>       | The role of the participant. One of `"customer"`, `"host"`, or `"invitee"`.                                                                                                         |
| `participant_queue_id`     | <span class="prop-string">string</span>       | The unique identifier of the participant's queue.                                                                                                                                   |
| `participant_phone_number` | <span class="prop-string">string</span>       | The participant's phone number.                                                                                                                                                     |
| `invited_participant`      | <span class="prop-object">object</span>       | Information about the invited agent. Uses the same structure as items in `conference_participants`.                                                                                 |

## Conference participant canceled

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference participant canceled event when the host cancels an invitation before the invitee responds. Subscribe to this event with `event_type: 25`. This message does not require a response from the app.

The structure is similar to conference participant invited, with the invitee in `canceled_participant`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 25,
        "event_ts": 1727384615000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "conference_participants": [],
            "canceled_participant": {
                "participant_channel_id": "invitee-channel-id",
                "participant_user_id": "invitee-user-id",
                "participant_display_name": "Alex Agent",
                "participant_queue_id": "target-queue-id",
                "participant_phone_number": "+18005550200"
            }
        }
    }
}
```

| Field                  | Type                                          | Description                                                                                                                                                                    |
| ---------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`             | <span class="prop-int">int</span>             | The signaling connection sends this message when a conference invitation is canceled. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`           | <span class="prop-int">int</span>             | The conference participant canceled event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                       |
| `event_ts`             | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the invitation was canceled.                                                                                                            |
| `participant_info`     | <span class="prop-object">object</span>       | Information about the conference. See [Conference participant invited](/docs/rtms/event-reference/#conference-participant-invited) for field descriptions.                     |
| `canceled_participant` | <span class="prop-object">object</span>       | Information about the canceled invitee. Uses the same structure as `invited_participant`.                                                                                      |

## Conference participant rejected

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference participant rejected event when an invitee rejects the conference invitation. Subscribe to this event with `event_type: 27`. This message does not require a response from the app.

The structure is similar to conference participant canceled, with the rejecting invitee in `rejecting_participant`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 27,
        "event_ts": 1727384617000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "conference_participants": [],
            "rejecting_participant": {
                "participant_channel_id": "invitee-channel-id",
                "participant_user_id": "invitee-user-id",
                "participant_display_name": "Alex Agent",
                "participant_queue_id": "target-queue-id",
                "participant_phone_number": "+18005550200"
            }
        }
    }
}
```

| Field                   | Type                                          | Description                                                                                                                                                                    |
| ----------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`              | <span class="prop-int">int</span>             | The signaling connection sends this message when a conference invitation is rejected. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`            | <span class="prop-int">int</span>             | The conference participant rejected event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                       |
| `event_ts`              | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the invitation was rejected.                                                                                                            |
| `participant_info`      | <span class="prop-object">object</span>       | Information about the conference. See [Conference participant invited](/docs/rtms/event-reference/#conference-participant-invited) for field descriptions.                     |
| `rejecting_participant` | <span class="prop-object">object</span>       | Information about the rejecting invitee. Uses the same structure as `invited_participant`.                                                                                     |

## Conference participant timeout

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference participant timeout event when an invitee does not respond to the conference invitation within the allowed time. Subscribe to this event with `event_type: 28`. This message does not require a response from the app.

The structure is similar to conference participant canceled, with the timed-out invitee in `timed_out_participant`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 28,
        "event_ts": 1727384620000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "conference_participants": [],
            "timed_out_participant": {
                "participant_channel_id": "invitee-channel-id",
                "participant_user_id": "invitee-user-id",
                "participant_display_name": "Alex Agent",
                "participant_queue_id": "target-queue-id",
                "participant_phone_number": "+18005550200"
            }
        }
    }
}
```

| Field                   | Type                                          | Description                                                                                                                                                                  |
| ----------------------- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`              | <span class="prop-int">int</span>             | The signaling connection sends this message when a conference invitation times out. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`            | <span class="prop-int">int</span>             | The conference participant timeout event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                      |
| `event_ts`              | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the invitation timed out.                                                                                                             |
| `participant_info`      | <span class="prop-object">object</span>       | Information about the conference. See [Conference participant invited](/docs/rtms/event-reference/#conference-participant-invited) for field descriptions.                   |
| `timed_out_participant` | <span class="prop-object">object</span>       | Information about the timed-out invitee. Uses the same structure as `invited_participant`.                                                                                   |

## Conference participant left

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a conference participant left event when a conference participant leaves. Subscribe to this event with `event_type: 29`. This message does not require a response from the app.

The `conference_participants` array excludes the leaving participant. The `leaving_participant` object contains information about who left.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 29,
        "event_ts": 1727384630000,
        "participant_info": {
            "channel_id": "host-channel-id",
            "queue_id": "xqJE_cgERLyAJHYYL5LLeg",
            "queue_name": "My Queue",
            "account_id": "parent-account-id",
            "division_id": "division-id",
            "user_id": "host-user-id",
            "display_name": "Jane Doe",
            "consumer_id": "customer-channel-id",
            "consumer_number": "+18005550101",
            "consumer_display_name": "Jane Customer",
            "conference_participants": [],
            "leaving_participant": {
                "participant_channel_id": "invitee-channel-id",
                "participant_user_id": "invitee-user-id",
                "participant_display_name": "Alex Agent",
                "participant_queue_id": "target-queue-id",
                "participant_phone_number": "+18005550200"
            }
        }
    }
}
```

| Field                 | Type                                          | Description                                                                                                                                                                |
| --------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`            | <span class="prop-int">int</span>             | The signaling connection sends this message when a conference participant leaves. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`          | <span class="prop-int">int</span>             | The conference participant left event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                       |
| `event_ts`            | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the participant left.                                                                                                               |
| `participant_info`    | <span class="prop-object">object</span>       | Information about the conference. See [Conference participant invited](/docs/rtms/event-reference/#conference-participant-invited) for field descriptions.                 |
| `leaving_participant` | <span class="prop-object">object</span>       | Information about the participant who left. Uses the same structure as `invited_participant`.                                                                              |

## IVR flow entered

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends an IVR flow entered event when a call enters an IVR flow that has the same RTMS app assigned. Subscribe to this event with `event_type: 30`. This message does not require a response from the app.

For more information about IVR streaming, see [IVR streaming for Contact Center](/docs/rtms/contact-center/ivr-streaming/).

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 30,
        "event_ts": 1727384200000,
        "flow_info": {
            "engagement_id": "engagement-id",
            "session_id": "business-id",
            "flow_id": "flow-id",
            "flow_name": "Main IVR",
            "account_id": "parent-account-id",
            "division_id": "division-id"
        }
    }
}
```

| Field           | Type                                          | Description                                                                                                                                                          |
| --------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`      | <span class="prop-int">int</span>             | The signaling connection sends this message when a call enters an IVR flow. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`    | <span class="prop-int">int</span>             | The flow entered event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                                |
| `event_ts`      | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the call entered the flow.                                                                                                    |
| `flow_info`     | <span class="prop-object">object</span>       | Information about the flow that was entered.                                                                                                                         |
| `engagement_id` | <span class="prop-string">string</span>       | The unique identifier for the Contact Center engagement.                                                                                                             |
| `session_id`    | <span class="prop-string">string</span>       | The business session identifier.                                                                                                                                     |
| `flow_id`       | <span class="prop-string">string</span>       | The unique identifier of the IVR flow.                                                                                                                               |
| `flow_name`     | <span class="prop-string">string</span>       | The name of the IVR flow.                                                                                                                                            |
| `account_id`    | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                                  |
| `division_id`   | <span class="prop-string">string</span>       | The division identifier.                                                                                                                                             |

## IVR flow exited

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends an IVR flow exited event when a call leaves an IVR flow. Subscribe to this event with `event_type: 31`. This message does not require a response from the app.

The structure is identical to the flow entered event, with `event_type: 31`.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 31,
        "event_ts": 1727384300000,
        "flow_info": {
            "engagement_id": "engagement-id",
            "session_id": "business-id",
            "flow_id": "flow-id",
            "flow_name": "Main IVR",
            "account_id": "parent-account-id",
            "division_id": "division-id"
        }
    }
}
```

| Field        | Type                                          | Description                                                                                                                                                         |
| ------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`   | <span class="prop-int">int</span>             | The signaling connection sends this message when a call exits an IVR flow. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type` | <span class="prop-int">int</span>             | The flow exited event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                                |
| `event_ts`   | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the call exited the flow.                                                                                                    |
| `flow_info`  | <span class="prop-object">object</span>       | Information about the flow that was exited. See [IVR flow entered](/docs/rtms/event-reference/#ivr-flow-entered) for field descriptions.                            |

## DTMF input started

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a DTMF input started event when a customer presses a key during an IVR flow. DTMF events are only emitted during IVR flows before an agent bridges the call. Subscribe to this event with `event_type: 32`. This message does not require a response from the app.

Each keypress generates a `DTMF_STARTED` event followed by a `DTMF_ENDED` event. The `payload.ts` RTP timestamp is identical for the matching start and end events.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 32,
        "event_ts": 1789681294876,
        "channel_id": "3ea506fa-0061-4ca2-894c-e038294e2a0c",
        "payload": {
            "digit": "1",
            "ts": 44320
        }
    }
}
```

| Field        | Type                                          | Description                                                                                                                                                  |
| ------------ | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `msg_type`   | <span class="prop-int">int</span>             | The signaling connection sends this message when DTMF input starts. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type` | <span class="prop-int">int</span>             | The DTMF started event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`   | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the keypress started.                                                                                                 |
| `channel_id` | <span class="prop-string">string</span>       | The unique identifier of the customer SIP channel that pressed the key.                                                                                      |
| `payload`    | <span class="prop-object">object</span>       | The DTMF payload data.                                                                                                                                       |
| `digit`      | <span class="prop-string">string</span>       | The key that was pressed. One of `"0"` through `"9"`, `"*"`, or `"#"`.                                                                                       |
| `ts`         | <span class="prop-int">int</span>             | The RTP timestamp. This value is identical in the matching `DTMF_STARTED` and `DTMF_ENDED` events for the same keypress.                                     |

## DTMF input ended

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a DTMF input ended event when a customer releases a key during an IVR flow. This event pairs with a `DTMF_STARTED` event. Subscribe to this event with `event_type: 33`. This message does not require a response from the app.

The `payload.ts` value matches the corresponding `DTMF_STARTED` event. The `duration` field indicates how long the key was pressed.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 33,
        "event_ts": 1789681295116,
        "channel_id": "3ea506fa-0061-4ca2-894c-e038294e2a0c",
        "payload": {
            "digit": "1",
            "ts": 44320,
            "duration": 2080
        }
    }
}
```

| Field        | Type                                          | Description                                                                                                                                                |
| ------------ | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`   | <span class="prop-int">int</span>             | The signaling connection sends this message when DTMF input ends. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type` | <span class="prop-int">int</span>             | The DTMF ended event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                        |
| `event_ts`   | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the keypress ended.                                                                                                 |
| `channel_id` | <span class="prop-string">string</span>       | The unique identifier of the customer SIP channel that pressed the key.                                                                                    |
| `payload`    | <span class="prop-object">object</span>       | The DTMF payload data.                                                                                                                                     |
| `digit`      | <span class="prop-string">string</span>       | The key that was pressed. One of `"0"` through `"9"`, `"*"`, or `"#"`.                                                                                     |
| `ts`         | <span class="prop-int">int</span>             | The RTP timestamp. This value matches the `ts` from the corresponding `DTMF_STARTED` event.                                                                |
| `duration`   | <span class="prop-int">int</span>             | The duration of the keypress in 8 kHz samples. For example, a value of 2080 represents approximately 260 milliseconds.                                     |

## Queue waiting

<span className="pill_signaling">Sent from the signaling connection</span>

**Contact Center only**

The signaling connection sends a queue waiting event when a customer enters a queue during an IVR flow. Subscribe to this event with `event_type: 34`. This message does not require a response from the app.

When this event fires, the audio stream is paused until an agent joins the call.

```json
{
    "msg_type": 6,
    "event": {
        "event_type": 34,
        "event_ts": 1789681295378,
        "participant_info": {
            "channel_id": "3ea506fa-0061-4ca2-894c-e038294e2a0c",
            "queue_id": "KmI2i3O-SM-99sIqXnQIDA",
            "queue_name": "RTMS_test_queue",
            "account_id": "7hyzf8fNQlqJ_tuFPi1aSQ",
            "flow_streaming": false
        }
    }
}
```

| Field              | Type                                          | Description                                                                                                                                                          |
| ------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `msg_type`         | <span class="prop-int">int</span>             | The signaling connection sends this message when a customer enters a queue. For more information, see [RTMS_MESSAGE_TYPE](/docs/rtms/data-types/#rtms_message_type). |
| `event_type`       | <span class="prop-int">int</span>             | The queue waiting event type. For more information, see [RTMS_ZCC_VOICE_EVENT_TYPE](/docs/rtms/data-types/#rtms_zcc_voice_event_type).                               |
| `event_ts`         | <span class="prop-ulong">unsigned long</span> | The Unix timestamp (milliseconds) when the customer entered the queue.                                                                                               |
| `participant_info` | <span class="prop-object">object</span>       | Information about the customer who entered the queue.                                                                                                                |
| `channel_id`       | <span class="prop-string">string</span>       | The unique identifier of the customer SIP channel.                                                                                                                   |
| `queue_id`         | <span class="prop-string">string</span>       | The unique identifier of the queue.                                                                                                                                  |
| `queue_name`       | <span class="prop-string">string</span>       | The name of the queue.                                                                                                                                               |
| `account_id`       | <span class="prop-string">string</span>       | The parent Zoom account identifier.                                                                                                                                  |
| `flow_streaming`   | <span class="prop-bool">bool</span>           | Indicates whether flow streaming is active.                                                                                                                          |
