Data type definitions
Use the Realtime Media Streams (RTMS) data type definitions included here as a reference for event signaling and metadata requests and responses.
Use integers for message and event types
For data type definitions, use the representative enum integers.
Example: Send
msg_type: 1✓ notmsg_type: SIGNALING_HAND_SHAKE_REQ✗
RTMS_MESSAGE_TYPE
Indicates the type of message in signaling handshake requests and responses, event subscription requests, metadata exchanges, and session status control commands.
enum RTMS_MESSAGE_TYPE
{
UNDEFINED = 0,
SIGNALING_HAND_SHAKE_REQ = 1, // Signaling connection handshake request
SIGNALING_HAND_SHAKE_RESP = 2, // Response to signaling connection handshake request
DATA_HAND_SHAKE_REQ = 3, // Media data connection handshake request
DATA_HAND_SHAKE_RESP = 4, // Response of media data connection handshake request
EVENT_SUBSCRIPTION = 5, // Events to subscribe or unsubscribe to
EVENT_UPDATE = 6, // Specific event occurred
CLIENT_READY_ACK = 7, // Client ready to receive media data
STREAM_STATE_UPDATE = 8, // Stream state changed
SESSION_STATE_UPDATE = 9, // Session state updated, e.g. paused/resumed
SESSION_STATE_REQ = 10, // Request the session state
SESSION_STATE_RESP = 11, // Response of the session state request
KEEP_ALIVE_REQ = 12, // Keep-alive request message
KEEP_ALIVE_RESP = 13, // Keep-alive response message
MEDIA_DATA_AUDIO = 14, // Audio data is being transmitted
MEDIA_DATA_VIDEO = 15, // Video data is being transmitted
MEDIA_DATA_SHARE = 16, // Sharing data is being transmitted
MEDIA_DATA_TRANSCRIPT = 17, // Transcripts are being transmitted
MEDIA_DATA_CHAT = 18, // Chat messages are being transmitted
STREAM_STATE_REQ = 19, // Request the stream state
STREAM_STATE_RESP = 20, // Response to the stream state request
STREAM_CLOSE_REQ = 21, // Close stream request from receiver
STREAM_CLOSE_RESP = 22, // Response of the close stream request
META_DATA_AUDIO = 23, // Audio-related metadata is being transmitted
META_DATA_VIDEO = 24, // Reserved. Video-related metadata is being transmitted
META_DATA_SHARE = 25, // Reserved. Sharing-related metadata is being transmitted
META_DATA_TRANSCRIPT = 26, // Reserved. Transcript-related metadata is being transmitted
META_DATA_CHAT = 27, // Reserved. Chat-related metadata is being transmitted
VIDEO_SUBSCRIPTION_REQ = 28, // Subscribe or unsubscribe from a user's video
VIDEO_SUBSCRIPTION_RESP = 29 // Response of video subscribe/unsubscribe request
}
RTMS_EVENT_TYPE
Indicates the type of event captured in the metadata from the signaling connection.
enum RTMS_EVENT_TYPE
{
UNDEFINED = 0,
FIRST_PACKET_TIMESTAMP = 1, // Indicates the first packet capture timestamp
ACTIVE_SPEAKER_CHANGE = 2, // Indicates the most recent active speaker
PARTICIPANT_JOIN = 3, // New participant joined this meeting
PARTICIPANT_LEAVE = 4, // Participant is leaving this meeting
SHARING_START = 5, // Sharing has started in the meeting
SHARING_STOP = 6, // Sharing has stopped in the meeting
MEDIA_CONNECTION_INTERRUPTED = 7, // A media type connection was interrupted
PARTICIPANT_VIDEO_ON = 8, // A participant's camera is turned on
PARTICIPANT_VIDEO_OFF = 9 // A participant's camera is turned off
}
RTMS_ZCC_VOICE_EVENT_TYPE
Indicates the type of event for Zoom Contact Center voice sessions.
enum RTMS_ZCC_VOICE_EVENT_TYPE
{
UNDEFINED = 0,
CONSUMER_ANSWERED = 8, // A consumer answered a call
CONSUMER_END = 9, // A consumer ended a call
USER_ANSWERED = 10, // A user answered a call, e.g. Agent
USER_END = 11, // A user ended a call
USER_HOLD = 12, // A user placed a call on hold
USER_UNHOLD = 13, // A user resumed a call from hold
MONITOR_STARTED = 14,
MONITOR_TRANSITIONED = 15,
MONITOR_ENDED = 16,
TAKEOVER_STARTED = 17,
TRANSFER_INITIATED = 18,
TRANSFER_CANCELED = 19,
TRANSFER_ACCEPTED = 20,
TRANSFER_COMPLETED = 21,
TRANSFER_REJECTED = 22,
TRANSFER_TIMEOUT = 23,
CONFERENCE_CANCELED = 24,
CONFERENCE_PARTICIPANT_CANCELED = 25,
CONFERENCE_PARTICIPANT_INVITED = 26,
CONFERENCE_PARTICIPANT_REJECTED = 27,
CONFERENCE_PARTICIPANT_TIMEOUT = 28,
CONFERENCE_PARTICIPANT_LEFT = 29,
}
RTMS_STATUS_CODE
Indicates the status of handshake requests.
enum RTMS_STATUS_CODE
{
STATUS_OK = 0,
STATUS_INVALID_MESSAGE_TYPE = 1,
STATUS_INVALID_RTMS_STREAM_ID = 2,
STATUS_INVALID_SIGNATURE = 3,
STATUS_INVALID_PAYLOAD = 4,
STATUS_INVALID_EVENTS = 5,
STATUS_INVALID_EVENT_TYPE = 6,
STATUS_INVALID_MEDIA_TYPE = 7,
STATUS_DUPLICATE_SIGNAL_REQUEST = 8,
STATUS_MEDIA_TYPE_AUDIO_NOT_SUPPORT = 9,
STATUS_MEDIA_TYPE_VIDEO_NOT_SUPPORT = 10,
STATUS_MEDIA_TYPE_DESKSHARE_NOT_SUPPORT = 11,
STATUS_MEDIA_TYPE_TRANSCRIPT_NOT_SUPPORT = 12,
STATUS_MEDIA_TYPE_CHAT_NOT_SUPPORT = 13,
STATUS_MEDIA_TYPE_INVALID_VALUE = 14,
STATUS_MEDIA_DATA_ALL_CONNECTION_EXIST = 15,
STATUS_DUPLICATE_MEDIA_DATA_CONNECTION = 16,
STATUS_INVALID_MEDIA_PARAMS = 17,
STATUS_INVALID_MEDIA_AUDIO_PARAMS = 18,
STATUS_INVALID_MEDIA_AUDIO_CONTENT_TYPE = 19,
STATUS_INVALID_MEDIA_AUDIO_SAMPLE_RATE = 20,
STATUS_INVALID_MEDIA_AUDIO_CHANNEL = 21,
STATUS_INVALID_MEDIA_AUDIO_CODEC = 22,
STATUS_INVALID_MEDIA_AUDIO_DATA_OPT = 23,
STATUS_INVALID_MEDIA_AUDIO_SEND_RATE = 24,
STATUS_INVALID_MEDIA_VIDEO_PARAMS = 25,
STATUS_INVALID_MEDIA_VIDEO_CONTENT_TYPE = 26,
STATUS_INVALID_MEDIA_VIDEO_CODEC = 27,
STATUS_INVALID_MEDIA_VIDEO_RESOLUTION = 28,
STATUS_INVALID_MEDIA_VIDEO_DATA_OPT = 29,
STATUS_INVALID_MEDIA_VIDEO_FPS = 30,
STATUS_INVALID_MEDIA_DESKSHARE_PARAMS = 31,
STATUS_INVALID_MEDIA_DESKSHARE_CONTENT_TYPE = 32,
STATUS_INVALID_MEDIA_DESKSHARE_CODEC = 33,
STATUS_INVALID_MEDIA_DESKSHARE_RESOLUTION = 34,
STATUS_INVALID_MEDIA_DESKSHARE_FPS = 35,
STATUS_INVALID_MEDIA_TRANSCRIPT_PARAMS = 36,
STATUS_INVALID_MEDIA_TRANSCRIPT_CONTENT_TYPE = 37,
STATUS_INVALID_MEDIA_CHAT_PARAMS = 38,
STATUS_INVALID_MEDIA_CHAT_CONTENT_TYPE = 39,
STATUS_INVALID_RTMS_SESSION_ID = 40,
STATUS_INVALID_CLIENT_READY_ACK = 41,
STATUS_INVALID_EVENT_SUBSCRIBE = 42,
STATUS_INVALID_MEDIA_TRANSCRIPT_SOURCE_LANGUAGE = 43,
STATUS_DUPLICATE_VIDEO_SUBSCRIPTION = 44,
STATUS_INTERNAL_EXCEPTION = 45,
}
RTMS_SESSION_STATE
Indicates the current session state during RTMS session updates.
enum RTMS_SESSION_STATE
{
INACTIVE = 0, // Default state
INITIALIZE = 1, // A new session is initializing
STARTED = 2, // A new session is started
PAUSED = 3, // A session is paused
RESUMED = 4, // A session is resumed
STOPPED = 5 // A session is stopped
}
RTMS_STREAM_STATE
Indicates the current state of the RTMS stream.
enum RTMS_STREAM_STATE
{
INACTIVE = 0, // Default state
ACTIVE = 1, // Media data has started to transmit, RTMS -> client
INTERRUPTED = 2, // Signal or data connection encountered a problem
TERMINATING = 3, // Notifying client stream needs to be terminated
TERMINATED = 4, // Stream is terminated
PAUSED = 5, // Stream is paused
RESUMED = 6 // Stream is resumed
}
RTMS_STOP_REASON
Indicates the failure status for handshake requests or the reasons for a session to end.
enum RTMS_STOP_REASON
{
// Default value, means no value
UNDEFINED = 0,
// Stopped when triggered by host, returned on session update message
STOP_BC_HOST_TRIGGERED = 1,
// Stopped when triggered by user, returned on session update message
STOP_BC_USER_TRIGGERED = 2,
// Stopped when app user left meeting, returned on session update message
STOP_BC_USER_LEFT = 3,
// Stopped when app user ejected by meeting host, returned on session update message
STOP_BC_USER_EJECTED = 4,
// Stopped when host disabled app user or entire app in the meeting, returned on session or stream update message
STOP_BC_HOST_DISABLED_APP = 5,
// Stopped when meeting is ended, returned on stream update message
STOP_BC_MEETING_ENDED = 6,
// Stopped when stream canceled by participant request, returned on stream update message
STOP_BC_STREAM_CANCELED = 7,
// Stopped when stream is revoked and assets must be deleted immediately, returned on stream update message
STOP_BC_STREAM_REVOKED = 8,
// Stopped when host disabled all apps in the meeting, returned on stream update message
STOP_BC_ALL_APPS_DISABLED = 9,
// Stopped due to internal exceptions, e.g. post asyncmq message failed, returned on stream update message
STOP_BC_INTERNAL_EXCEPTION = 10,
// Stopped when the connection timed out, returned on stream update message
STOP_BC_CONNECTION_TIMEOUT = 11,
// Stopped when an instance call connection is interrupted, e.g. media sessions, returned on stream update message
STOP_BC_INSTANCE_CONNECTION_INTERRUPTED = 12,
// Stopped when RTMS signaling connection is interrupted, returned on stream update message
STOP_BC_SIGNAL_CONNECTION_INTERRUPTED = 13,
// Stopped when RTMS data connection is interrupted, returned on stream update message
STOP_BC_DATA_CONNECTION_INTERRUPTED = 14,
// Stopped when RTMS signaling connection is closed abnormally by app, returned on stream update message
STOP_BC_SIGNAL_CONNECTION_CLOSED_ABNORMALLY = 15,
// Stopped when RTMS data connection is closed abnormally by app, returned on stream update message
STOP_BC_DATA_CONNECTION_CLOSED_ABNORMALLY = 16,
// Stopped when received exit signal, returned on stream update message
STOP_BC_EXIT_SIGNAL = 17,
// Stopped due to authentication failure
STOP_BC_AUTHENTICATION_FAILURE = 18,
// Stopped when awaiting reconnection timed out, e.g. signal connection interrupted
STOP_BC_AWAIT_RECONNECTION_TIMEOUT = 19,
// Stopped when received stream close request from receiver
STOP_BC_RECEIVER_REQUEST_CLOSE = 20,
// Stopped when triggered by customer, used for Zoom Contact Center Voice
STOP_BC_CUSTOMER_DISCONNECTED = 21,
// Stopped when triggered by agent, used for Zoom Contact Center Voice
STOP_BC_AGENT_DISCONNECTED = 22,
// Stopped when admin disabled app
STOP_BC_ADMIN_DISABLED_APP = 23,
// Stopped when no response for three consecutive keep-alive requests
STOP_BC_KEEP_ALIVE_TIMEOUT = 24,
// Stopped when triggered by API, for Zoom Contact Center Voice
STOP_BC_MANUAL_API_TRIGGERED = 25,
// Stopped when the queue doesn't support streaming, for Zoom Contact Center Voice
STOP_BC_STREAMING_NOT_SUPPORTED = 26,
}
MEDIA_CONTENT_TYPE
Indicates the media formats in handshake requests and responses.
enum MEDIA_CONTENT_TYPE
{
UNDEFINED = 0,
RTP = 1, // Real-time audio and video
RAW_AUDIO = 2, // Real-time audio
RAW_VIDEO = 3, // Real-time video
FILE_STREAM = 4, // File stream
TEXT = 5 // Media data is text based, such as Chat and Transcripts
}
MEDIA_DATA_TYPE
Indicates the media data formats in handshake requests and responses.
enum MEDIA_DATA_TYPE
{
UNDEFINED = 0,
AUDIO = 0x01, // 1
VIDEO = 0x01 << 1, // 2
DESKSHARE = 0x01 << 2, // 4
TRANSCRIPT = 0x01 << 3, // 8
CHAT = 0x01 << 4, // 16
ALL = 0x01 << 5, // 32
}
MEDIA_DATA_OPTION
Indicates the media parameters for the audio and video media connections in handshake requests and responses.
enum MEDIA_DATA_OPTION
{
UNDEFINED = 0,
// Data will be a mixed audio stream, only one data packet message will be sent out within a specific transmission interval
AUDIO_MIXED_STREAM = 1,
// Data will be multiple user audio streams, one or multiple data packet message(s) will be sent out within a specific transmission interval
AUDIO_MULTI_STREAMS = 2,
// Data will be single video stream of present active speaker, no subscription needed
VIDEO_SINGLE_ACTIVE_STREAM = 3,
// Data will be single video stream of a specified individual, manual subscription is required and allows subscription to only one individual at a time
VIDEO_SINGLE_INDIVIDUAL_STREAM = 4,
}
MEDIA_PAYLOAD_TYPE
Indicates the media payload formats in handshake requests and responses.
enum MEDIA_PAYLOAD_TYPE
{
UNDEFINED = 0,
L16 = 1, // Audio, uncompressed raw data
G711 = 2, // Audio,
G722 = 3, // Audio,
OPUS = 4, // Audio,
JPG = 5, // Video and Sharing, when fps <= 5
PNG = 6, // Video and Sharing, when fps <= 5
H264 = 7 // Video and Sharing, when fps > 5
}
MEDIA_RESOLUTION
Indicates the media resolution for the audio, video, and screenshare media connections in handshake requests and responses.
enum MEDIA_RESOLUTION
{
SD = 1, // 480p or 360p, 854x480 or 640x360
HD = 2, // 720p, 1280 x 720
FHD = 3, // 1080p, 1920 x 1080
QHD = 4 // 2K, 2560 x 1440
}
AUDIO_SAMPLE_RATE
Indicates the audio sample rate for the audio object in handshake requests and responses.
enum AUDIO_SAMPLE_RATE
{
SR_8K = 0,
SR_16K = 1,
SR_32K = 2,
SR_48K = 3
}
AUDIO_CHANNEL
Indicates the audio channel configuration for the audio object in handshake requests and responses.
enum AUDIO_CHANNEL
{
MONO = 1,
STEREO = 2
}
TRANSMISSION_PROTOCOL
Indicates the transmission protocol in handshake requests and responses.
Currently only WebSockets is supported.
enum TRANSMISSION_PROTOCOL
{
WEBSOCKET = 1,
RTMP = 2,
UDP = 3,
WEBRTC = 4
}
RTMS_DATA_MESSAGE_ATTRIBUTE
Indicates the attribute of a data message, used to signal whether the data is new, an update, or a deletion.
enum RTMS_DATA_MESSAGE_ATTRIBUTE
{
ATTR_NONE = 0,
ATTR_NEW = 1,
ATTR_UPDATE = 2,
ATTR_DELETE = 3,
}
RTMS_TRANSCRIPT_LANGUAGE
Indicates the language of the transcript in handshake requests and responses.
enum RTMS_TRANSCRIPT_LANGUAGE
{
LANGUAGE_ID_NONE = -1,
LANGUAGE_ID_ARABIC = 0,
LANGUAGE_ID_BENGALI = 1,
LANGUAGE_ID_CANTONESE = 2,
LANGUAGE_ID_CATALAN = 3,
LANGUAGE_ID_CHINESE_SIMPLIFIED = 4,
LANGUAGE_ID_CHINESE_TRADITIONAL = 5,
LANGUAGE_ID_CZECH = 6,
LANGUAGE_ID_DANISH = 7,
LANGUAGE_ID_DUTCH = 8,
LANGUAGE_ID_ENGLISH = 9,
LANGUAGE_ID_ESTONIAN = 10,
LANGUAGE_ID_FINNISH = 11,
LANGUAGE_ID_FRENCH_CANADA = 12,
LANGUAGE_ID_FRENCH_FRANCE = 13,
LANGUAGE_ID_GERMAN = 14,
LANGUAGE_ID_HEBREW = 15,
LANGUAGE_ID_HINDI = 16,
LANGUAGE_ID_HUNGARIAN = 17,
LANGUAGE_ID_INDONESIAN = 18,
LANGUAGE_ID_ITALIAN = 19,
LANGUAGE_ID_JAPANESE = 20,
LANGUAGE_ID_KOREAN = 21,
LANGUAGE_ID_MALAY = 22,
LANGUAGE_ID_PERSIAN = 23,
LANGUAGE_ID_POLISH = 24,
LANGUAGE_ID_PORTUGUESE = 25,
LANGUAGE_ID_ROMANIAN = 26,
LANGUAGE_ID_RUSSIAN = 27,
LANGUAGE_ID_SPANISH = 28,
LANGUAGE_ID_SWEDISH = 29,
LANGUAGE_ID_TAGALOG = 30,
LANGUAGE_ID_TAMIL = 31,
LANGUAGE_ID_TELUGU = 32,
LANGUAGE_ID_THAI = 33,
LANGUAGE_ID_TURKISH = 34,
LANGUAGE_ID_UKRAINIAN = 35,
LANGUAGE_ID_VIETNAMESE = 36
}