Contact Center events

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. These foundational protocol events (handshakes, keep-alive, session state, media data) apply to all RTMS implementations including Contact Center.

Consumer answered

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a consumer has answered. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe consumer answered event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the customer channel was answered.
participant_infoobjectInformation about the customer participant.
channel_idstringThe unique identifier of the customer SIP channel.
participant_modestringThe participant role. For inbound calls, the customer is "caller". For outbound calls, the customer is "callee".
queue_idstringThe unique identifier of the queue.
queue_namestringThe name of the queue.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.
phone_numberstringThe customer's phone number.
user_idstringThe customer contact identifier.
display_namestringThe customer's display name.

User answered

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a user has answered. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe user answered event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the user answered.
participant_infoobjectInformation about the user participant.
channel_idstringThe unique identifier of the user's SIP channel.
participant_modestringThe participant role. "callee" for inbound, "caller" for outbound.
queue_idstringThe unique identifier of the queue.
queue_namestringThe name of the queue.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.
phone_numberstringThe user's phone number.
user_idstringThe unique identifier of the user.
display_namestringThe user's display name.
emailstringThe user's email address.

Consumer ended

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a consumer ends a call. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe consumer ended event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the customer hung up.
participant_infoobjectInformation about the customer participant. See Consumer answered for field descriptions.

User ended

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a user ends a call. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe user ended event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the user hung up.
participant_infoobjectInformation about the user participant. See User answered for field descriptions.

User hold

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a user places a call on hold. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe user hold event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the call was placed on hold.
participant_infoobjectInformation about the agent who placed the call on hold. See User answered for field descriptions.

User unhold

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a user resumes a call from hold. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe user unhold event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the call was resumed from hold.
participant_infoobjectInformation about the agent who resumed the call. See User answered for field descriptions.

Monitor started

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when monitoring starts. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe monitor started event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when monitoring started.
participant_infoobjectInformation about the monitoring session.
channel_idstringThe unique identifier of the supervisor's SIP channel.
participant_modestringThe monitoring mode. One of "monitor", "whisper", "barge", or "takeover".
queue_idstringThe unique identifier of the queue.
queue_namestringThe name of the queue.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.
phone_numberstringThe supervisor's phone number.
user_idstringThe unique identifier of the monitored agent.
display_namestringThe display name of the monitored agent.
emailstringThe email address of the monitored agent.
monitoring_user_idstringThe unique identifier of the supervisor.
monitoring_user_display_namestringThe display name of the supervisor.
monitoring_user_emailstringThe email address of the supervisor.
consumer_idstringThe customer contact identifier.
consumer_numberstringThe customer's phone number.
consumer_display_namestringThe customer's display name.

Monitor transitioned

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when monitoring mode changes. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe monitor transitioned event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the mode changed.
participant_infoobjectInformation about the monitoring session with the new mode. See Monitor started for field descriptions.

Monitor ended

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when monitoring ends. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe monitor ended event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when monitoring ended.
participant_infoobjectInformation about the monitoring session that ended. See Monitor started for field descriptions.

Takeover started

Sent from the signaling connection

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".

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when takeover starts. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe takeover started event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when takeover started.
participant_infoobjectInformation about the takeover session. See Monitor started for field descriptions.

Transfer initiated

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer is initiated. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer initiated event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer was initiated.
participant_infoobjectInformation about the transfer.
channel_idstringThe unique identifier of the source agent's SIP channel.
queue_idstringThe unique identifier of the source queue.
queue_namestringThe name of the source queue.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.
phone_numberstringThe source agent's phone number.
user_idstringThe unique identifier of the source agent.
display_namestringThe display name of the source agent.
consumer_idstringThe unique identifier of the customer's SIP channel.
consumer_numberstringThe customer's phone number.
consumer_display_namestringThe customer's display name.
transfer_to_queue_idstringThe unique identifier of the target queue.
transfer_to_queue_namestringThe name of the target queue.
transfer_to_user_idstringThe unique identifier of the target agent.
transfer_to_user_display_namestringThe display name of the target agent.
transfer_to_user_channel_idstringThe unique identifier of the target agent's SIP channel.

Transfer canceled

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer is canceled. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer canceled event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer was canceled.
participant_infoobjectInformation about the canceled transfer. See Transfer initiated for field descriptions.

Transfer accepted

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer is accepted. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer accepted event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer was accepted.
participant_infoobjectInformation about the accepted transfer. See Transfer initiated for field descriptions.

Transfer completed

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer completes. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer completed event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer completed.
participant_infoobjectInformation about the completed transfer. See Transfer initiated for field descriptions.

Transfer rejected

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer is rejected. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer rejected event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer was rejected.
participant_infoobjectInformation about the rejected transfer. See Transfer initiated for field descriptions.

Transfer timeout

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a transfer times out. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe transfer timeout event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the transfer timed out.
participant_infoobjectInformation about the timed-out transfer. See Transfer initiated for field descriptions.

Conference canceled

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a conference is canceled. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference canceled event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the conference was canceled.
participant_infoobjectInformation about the conference host and customer.
channel_idstringThe unique identifier of the host's SIP channel.
queue_idstringThe unique identifier of the queue.
queue_namestringThe name of the queue.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.
phone_numberstringThe host's phone number.
user_idstringThe unique identifier of the host.
display_namestringThe display name of the host.
emailstringThe email address of the host.
consumer_idstringThe unique identifier of the customer's SIP channel.
consumer_numberstringThe customer's phone number.
consumer_display_namestringThe customer's display name.

Conference participant invited

Sent from the signaling connection

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).

{
    "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"
            }
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a participant is invited to a conference. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference participant invited event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the invitation was sent.
participant_infoobjectInformation about the conference. See Conference canceled for host and customer field descriptions.
conference_participantsarrayArray of participants currently in the conference.
participant_channel_idstringThe unique identifier of the participant's SIP channel.
participant_user_idstringThe unique identifier of the participant (for agents and host only).
participant_display_namestringThe display name of the participant.
participant_rolestringThe role of the participant. One of "customer", "host", or "invitee".
participant_queue_idstringThe unique identifier of the participant's queue.
participant_phone_numberstringThe participant's phone number.
invited_participantobjectInformation about the invited agent. Uses the same structure as items in conference_participants.

Conference participant canceled

Sent from the signaling connection

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.

{
    "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"
            }
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a conference invitation is canceled. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference participant canceled event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the invitation was canceled.
participant_infoobjectInformation about the conference. See Conference participant invited for field descriptions.
canceled_participantobjectInformation about the canceled invitee. Uses the same structure as invited_participant.

Conference participant rejected

Sent from the signaling connection

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.

{
    "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"
            }
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a conference invitation is rejected. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference participant rejected event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the invitation was rejected.
participant_infoobjectInformation about the conference. See Conference participant invited for field descriptions.
rejecting_participantobjectInformation about the rejecting invitee. Uses the same structure as invited_participant.

Conference participant timeout

Sent from the signaling connection

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.

{
    "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"
            }
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a conference invitation times out. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference participant timeout event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the invitation timed out.
participant_infoobjectInformation about the conference. See Conference participant invited for field descriptions.
timed_out_participantobjectInformation about the timed-out invitee. Uses the same structure as invited_participant.

Conference participant left

Sent from the signaling connection

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.

{
    "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"
            }
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a conference participant leaves. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe conference participant left event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the participant left.
participant_infoobjectInformation about the conference. See Conference participant invited for field descriptions.
leaving_participantobjectInformation about the participant who left. Uses the same structure as invited_participant.

IVR flow entered

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a call enters an IVR flow. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe flow entered event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the call entered the flow.
flow_infoobjectInformation about the flow that was entered.
engagement_idstringThe unique identifier for the Contact Center engagement.
session_idstringThe business session identifier.
flow_idstringThe unique identifier of the IVR flow.
flow_namestringThe name of the IVR flow.
account_idstringThe parent Zoom account identifier.
division_idstringThe division identifier.

IVR flow exited

Sent from the signaling connection

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.

{
    "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"
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a call exits an IVR flow. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe flow exited event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the call exited the flow.
flow_infoobjectInformation about the flow that was exited. See IVR flow entered for field descriptions.

DTMF input started

Sent from the signaling connection

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.

{
    "msg_type": 6,
    "event": {
        "event_type": 32,
        "event_ts": 1789681294876,
        "channel_id": "3ea506fa-0061-4ca2-894c-e038294e2a0c",
        "payload": {
            "digit": "1",
            "ts": 44320
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when DTMF input starts. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe DTMF started event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the keypress started.
channel_idstringThe unique identifier of the customer SIP channel that pressed the key.
payloadobjectThe DTMF payload data.
digitstringThe key that was pressed. One of "0" through "9", "*", or "#".
tsintThe RTP timestamp. This value is identical in the matching DTMF_STARTED and DTMF_ENDED events for the same keypress.

DTMF input ended

Sent from the signaling connection

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.

{
    "msg_type": 6,
    "event": {
        "event_type": 33,
        "event_ts": 1789681295116,
        "channel_id": "3ea506fa-0061-4ca2-894c-e038294e2a0c",
        "payload": {
            "digit": "1",
            "ts": 44320,
            "duration": 2080
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when DTMF input ends. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe DTMF ended event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the keypress ended.
channel_idstringThe unique identifier of the customer SIP channel that pressed the key.
payloadobjectThe DTMF payload data.
digitstringThe key that was pressed. One of "0" through "9", "*", or "#".
tsintThe RTP timestamp. This value matches the ts from the corresponding DTMF_STARTED event.
durationintThe duration of the keypress in 8 kHz samples. For example, a value of 2080 represents approximately 260 milliseconds.

Queue waiting

Sent from the signaling connection

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.

{
    "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
        }
    }
}
FieldTypeDescription
msg_typeintThe signaling connection sends this message when a customer enters a queue. For more information, see RTMS_MESSAGE_TYPE.
event_typeintThe queue waiting event type. For more information, see RTMS_ZCC_VOICE_EVENT_TYPE.
event_tsunsigned longThe Unix timestamp (milliseconds) when the customer entered the queue.
participant_infoobjectInformation about the customer who entered the queue.
channel_idstringThe unique identifier of the customer SIP channel.
queue_idstringThe unique identifier of the queue.
queue_namestringThe name of the queue.
account_idstringThe parent Zoom account identifier.
flow_streamingboolIndicates whether flow streaming is active.