AbstractProtectedagentProtectedbotProtectedcallProtectedcallerProtecteddtmfProtectedexternalProtectedfeaturesThe capability flags for the provider this bridge instance serves. Populated from the RealtimeBridgeContext at BaseRealtimeBridge.Connect time (and may be set by the engine immediately after construction). Drives BaseRealtimeBridge.RequireFeature.
ProtectedmediaProtectedproviderThe provider's display name for this bridge instance, used in capability-error messages. Populated from the RealtimeBridgeContext; falls back to the driver class name.
The provider's supported-feature flags for this bridge instance.
Read-only accessor over the internally-held BaseRealtimeBridge.features. The engine consults this (and the underlying provider metadata) to decide which optional methods are safe to call; a driver consults it via BaseRealtimeBridge.RequireFeature.
ProtectedapplyCaptures the connection context onto the instance so BaseRealtimeBridge.Features, BaseRealtimeBridge.RequireFeature, and capability-error messages have the provider's flags and name. A concrete BaseRealtimeBridge.Connect should call this first.
The bridge context handed to Connect.
ProtectedapplyInitializes base context and sets the DetachedMediaPlane feature flag.
AbstractConnectJoins the meeting / places or accepts the call and brings the bot participant online.
The driver records the context (features, provider name) for later capability gating and
returns the platform handles the engine persists. Implementations must normalize the
provider's capability flags into BaseRealtimeBridge.features (typically by calling
this.applyContext(ctx) first).
The host services and connection parameters for this session.
A promise resolving to the bot participant + external connection identifiers.
AbstractDisconnectLeaves the meeting / hangs up the call cleanly and releases all platform resources.
Why the disconnect is happening; drivers may shortcut graceful teardown on Error/Shutdown.
A promise that resolves once the bot has fully left the endpoint.
ProtectedemitFires call-ended handlers when the call terminates.
ProtectedemitDispatches an inbound DTMF digit to registered listeners.
ProtectedemitDispatches an inbound media frame to registered observers (e.g. reflected audio from sideband).
No-op on a detached media plane: MJ holds no outbound audio queue to flush.
A phone call carries no meeting-controls surface.
Returns the 1:1 participant roster: bot participant + remote caller.
ProtectednotBuilds the standard BridgeCapabilityNotSupportedError for an un-overridden virtual method or a failed feature requirement, stamped with this bridge's provider name.
The feature / method name to report.
The error to throw or reject with.
Registers a callback fired when the call has ended.
Registers a handler for received DTMF digits (receive-only).
Registers an observer for inbound media frames (if the provider reflects copies of audio on the sideband).
Registers a handler invoked when the endpoint's roster changes (join / leave / role change).
Capability-gated by SupportedFeatures.SpeakerDiarization. Throws unless overridden.
Invoked with the updated participant list on each change.
ProtectedRequireDefense-in-depth guard: asserts a SupportedFeatures flag is enabled before the driver
performs a capability-gated action, throwing BridgeCapabilityNotSupportedError if it
is false/omitted. An overriding driver method should call this at its top so that even a
direct (engine-bypassing) caller cannot run an action the metadata says is off.
The IBridgeProviderFeatures flag to require.
Sends DTMF tones on a telephony bridge.
Capability-gated by SupportedFeatures.DTMF. Throws unless overridden by a telephony driver.
The DTMF digit string to send (e.g. '1234#').
A promise that resolves once the tones have been sent.
No-op on a detached media plane: live media is handled directly between carrier and provider.
Transfers the call to another party on a telephony bridge.
Capability-gated by SupportedFeatures.CallTransfer. Throws unless overridden.
The transfer target (a phone number or platform endpoint identifier).
A promise that resolves once the transfer has been initiated.
Abstract base class for a detached-media Realtime Bridge driver (e.g.
OpenAISipBridge).In a detached media plane, the platform/carrier terminates the live media leg directly with the AI provider (e.g. OpenAI SIP endpoints), while MemberJunction attaches a sideband connection for signaling, events, transcripts, tool calls, and telemetry.
MemberJunction is not in the live media path and does not relay audio between the carrier and the model. Therefore,
SendMediaandFlushOutboundMediaare safe no-ops, andOnMediaregisters an observer handler without pumping media frames into an audio sink.