Resolved credentials + raw-audio opts + the native module specifier.
The native-addon loader (defaults to the lazy specifier loader).
Returns the current roster from the native client, mapped to TeamsParticipant.
Loads the native addon, constructs a client, wires its callbacks, and joins the meeting with the resolved bot token. Brings BOTH hearing and the agent's voice online.
The bridge's join args (join URL, thread id, bot name, auth).
The bot/call identifiers.
Leaves the meeting and releases the native client. Tolerant of teardown errors.
Mutes a participant via the native host control (requires the bot be organizer/presenter). No-ops (without throwing) before join.
The participant to mute.
Registers the inbound per-participant audio handler (the diarized hearing path).
Registers the native hand-raise/lower handler (⚠️ partial on Teams; tolerant of never firing).
Registers the meeting-ended handler.
Registers the participant-join handler.
Registers the participant-leave handler.
Posts a message to the Teams meeting chat via the native client. No-ops (without throwing) before join.
The chat message text.
Sends one raw PCM frame as the bot's outbound audio — the agent's real voice into the meeting, via the native outbound audio-socket. No-ops (without throwing) before join so an early model frame never crashes the session.
The PCM audio bytes to speak into the meeting.
A real, two-way ITeamsMeetingSdk over the native Teams real-time-media addon (outbound audio send + per-participant inbound receive).
Gives the agent both hearing (per-participant inbound audio → diarized TeamsAudioFrames) and a voice (sendAudioFrame → the native outbound audio-socket), plus working host controls (chat / mute) and roster/hand-raise events. Construct via BindTeamsNative (the factory the bridge's
SetSdkFactorywants), not directly, so config resolution + the lazy loader wire consistently.