OptionalcallerOverrides the caller-identity resolver (defaults to the host's registration, else anonymous).
OptionalcanOverrides the agent-permission check of the outbound gate (defaults to AIAgentPermissionHelper).
OptionalcapacityOverrides the concurrent-call gate (defaults to the process-wide TelephonyCapacity).
OptionalcoOverrides how the co-agent that voices an agent is resolved (defaults to the shared chain the browser path uses).
Resolves the co-agent (the Realtime-type agent that voices the target agent) via the metadata-driven co-agent resolution chain — first match wins:
explicitCoAgentID. A per-call override; an invalid candidate throws (the caller asked
for something specific, so there is no silent fallback).DefaultCoAgentID. An invalid reference logs and falls
through (stale metadata must degrade, never break live calls).AIAgentCoAgent row of Type 'CoAgent' whose TargetAgentTypeID is the
target's type (IsDefault first, then lowest Sequence). Same tolerant semantics as step 2.Every candidate from steps 1–3 must exist, be Active, and be of the REALTIME_AGENT_TYPE_NAME type.
The agent the co-agent will voice (drives steps 2–3).
The explicit co-agent choice, when supplied (step 1).
The user the metadata reads run as.
The request-scoped metadata provider.
The resolved co-agent's id (canonical casing from the metadata cache).
OptionalengineOptionalsessionOpens a raw IRealtimeSession for the agent named in ctx. Bind this onto a bridge's
session-factory seam (e.g. LiveKitAgentRoomCoordinator.Instance.SetSessionFactory(CreateBridgeRealtimeSession)).
The bridge session context (agent id/name + user + provider).
The live realtime session to hand to AIBridgeEngine.StartBridgeSession.
OptionalsessionOptionalvoiceThe Voice client used to hang up a call whose session failed to start (defaults to the real client).
Injectable collaborators (production defaults wired in the constructor; fakes in tests).