Resolved credentials + the per-session RTMS connection params (from the webhook).
The @zoom/rtms loader (defaults to the lazy optional-dependency loader).
Returns the roster observed from RTMS so far (RTMS exposes no host roster API).
Establishes the RTMS session for the target meeting using the webhook-delivered connection params
and brings the agent's hearing online. The RTMS stream is initiated by the meeting.rtms_started
webhook; this method consumes those params (from ZoomRtmsSdkConfig.Connection) and joins.
The bridge's join args (meeting number used as the durable id; auth resolves upstream).
The bot/connection identifiers.
Closes the RTMS connection and clears session state. Tolerant of teardown errors.
Host mute is a Meeting-SDK control, not an RTMS capability — a one-time-warned no-op.
The participant the facilitator would mute — discarded over RTMS.
Registers the inbound per-participant audio handler (the diarized hearing path).
Native hand-raise is delivered (if at all) only via the Meeting SDK, not RTMS — registering is a documented one-time-warned no-op so the bridge's wiring is harmless.
Registers the meeting-ended handler (fired from the RTMS session/leave signal).
Registers the participant-join handler (driven from RTMS active-speaker discovery).
Registers the participant-leave handler.
In-meeting chat is a host/Meeting-SDK control, not an RTMS capability — a one-time-warned no-op.
The chat text the agent would post — discarded over RTMS.
RTMS is receive-only — this CANNOT send the agent's audio into the meeting. Pushing audio into a Zoom meeting requires the native Zoom Meeting SDK / a bot service. To avoid crashing a live session each time the realtime model emits an audio frame, this logs a one-time warning and no-ops rather than throwing. See the package README's "Outbound audio limitation".
The PCM the agent would speak — discarded; RTMS has no send path.
A real IZoomMeetingSdk over Zoom RTMS (
@zoom/rtms).Gives the agent hearing — per-participant inbound audio mapped to diarized ZoomAudioFrames via mapRtmsAudioFrame. Because RTMS is receive-only, the outbound and host-control surfaces (sendAudioFrame, postChatMessage, muteParticipant) are documented no-ops here (each warns once) — those require the native Zoom Meeting SDK / a bot service.
Construct via BindZoomRtms (the factory the bridge's
SetSdkFactorywants), not directly, so config resolution + the lazy loader are wired consistently.