OptionalAudioInbound audio: the agent hears the meeting/call (routed to IRealtimeSession.SendInput).
OptionalAudioOutbound audio: the agent speaks into the meeting/call (fed from IRealtimeSession.OnOutput).
OptionalCallTelephony: the bridge can transfer a call to another party.
OptionalDTMFTelephony: the bridge can send/receive DTMF tones.
OptionalInboundInbound connections (a call/invite to the agent's identity) route TO the agent.
OptionalInviteThe agent can be invited like a person via its calendar/email identity (a watcher joins at start).
OptionalNativeA host can add the agent from inside the platform's own UI (requires a marketplace app).
OptionalOnThe agent can join on demand from a supplied join URL/ID.
OptionalOutboundTelephony: the agent can place outbound calls.
OptionalRecordingThe bridge can request platform recording (subject to per-jurisdiction consent handling).
OptionalScheduledThe agent can be scheduled to join a known meeting at a future start time.
OptionalScreenInbound screen-share: the agent sees a shared screen.
OptionalScreenOutbound screen-share: e.g. the Remote Browser channel screen-sharing a live demo.
OptionalSpeakerInbound audio carries per-speaker labels (diarized transcripts + addressed-speaker turn-taking).
OptionalVideoInbound video: the agent sees participants' video (forward-looking for full-duplex video models).
OptionalVideoOutbound video: the agent shows video.
Strongly-typed shape of
AIBridgeProvider.SupportedFeatures(theMJ: AI Bridge Providersentity), bound to the column via JSONType metadata so CodeGen emits a typed accessor.A bridge connects the one realtime agent engine to an external endpoint — a meeting (Zoom/Teams/Slack/Meet/Webex/Discord) or a phone call (Twilio/Vonage/RingCentral/VOIP). These flags declare what each platform's bridge driver supports. The bridge engine gates every optional driver call on the matching flag;
BaseRealtimeBridgeadditionally throwsBridgeCapabilityNotSupportedErrorif a feature is claimed here but the driver hasn't implemented it (defense-in-depth). All properties are optional — an omitted flag means the feature is not supported.Holding these as JSON (rather than dedicated BIT columns) keeps the table simple and lets new platform features be added without a schema migration — just extend this interface.
NOTE: interactive surfaces (hand-raise, in-meeting chat, native whiteboard) are deliberately NOT here. Those are CHANNELS the bridge contributes (
RealtimeBridgeProviderChannel→AIAgentChannel), understood the same way as MJ-native channels. This interface is transport/media capabilities only.See
/plans/realtime/realtime-bridges-architecture.md.