Member Junction
    Preparing search index...

    LiveKit SIP binding: phone calls carried by a SIP trunk, landing in a LiveKit room. The carrier is whoever the trunk belongs to (Twilio Elastic SIP Trunking, Telnyx, …); MJ routes the call and runs the agent in the room.

    LiveKit credentials come from here or, when omitted, from LIVEKIT_URL / LIVEKIT_API_KEY / LIVEKIT_API_SECRET (the same ones the Meet room uses).

    interface LiveKitSipSettings {
        allowedAddresses?: string[];
        apiKey?: string;
        apiSecret?: string;
        autoProvision?: boolean;
        carrier?: TwilioElasticSipTrunkSettings;
        costPerMinute?: number;
        inboundRunAsUserEmail?: string;
        inboundTrunkId?: string;
        maxCallSeconds?: number;
        maxConcurrentCalls?: number;
        numbers?: string[];
        outbound?: OutboundPolicySettings;
        outboundFromNumber?: string;
        outboundTrunkId?: string;
        roomPrefix?: string;
        serverUrl?: string;
        transferTargets?: TransferTargetSettings[];
    }

    Hierarchy (View Summary)

    Index

    Properties

    allowedAddresses?: string[]

    Source addresses the inbound trunk accepts calls from (the carrier's SIP signalling addresses). Used when provisioning.

    apiKey?: string

    LiveKit API key. Defaults to LIVEKIT_API_KEY.

    apiSecret?: string

    LiveKit API secret. Defaults to LIVEKIT_API_SECRET.

    autoProvision?: boolean

    Create the inbound trunk and dispatch rule at startup when they do not exist (idempotent). Default false.

    The carrier behind the trunk, for configuration checks only.

    costPerMinute?: number

    Estimated carrier cost rate per minute in reporting currency (e.g. 0.015 for 1.5 cents/min). Used to compute Interaction.CostEstimate at call end. Defaults to 0.015 if unset.

    inboundRunAsUserEmail?: string

    Email of the user INBOUND calls run as. Required for inbound calls: if unset, unknown, inactive, or the system user, the call is rejected (there is deliberately no fallback to a privileged user). Point it at a dedicated least-privilege account.

    inboundTrunkId?: string

    The LiveKit inbound trunk id, when it was created by hand. Checked at startup; created for you when autoProvision is set.

    maxCallSeconds?: number

    Maximum length of one phone call in seconds (default 1800). The session is stopped at the cap.

    maxConcurrentCalls?: number

    Most phone calls (every carrier together, both directions) the server will carry at once (default 25). Keep this at or below the realtime model plan's concurrent-session limit: past the cap an inbound caller hears a polite "all agents are busy" and an outbound call is refused, instead of every call degrading.

    numbers?: string[]

    The numbers (E.164) this deployment answers. Each routes to the agent identity registered for that number.

    Outbound destination policy and per-user rate limit applied to every Place*Call mutation.

    outboundFromNumber?: string

    The caller ID presented on a call dialed out through the outbound trunk. Defaults to the trunk's own number.

    outboundTrunkId?: string

    The LiveKit OUTBOUND trunk used to dial out (an outbound call, a fallback leg, a transfer to a number). Dialing out is off without it.

    roomPrefix?: string

    Inbound calls land in a room whose name starts with this (default call-). Rooms that do not are not phone calls.

    serverUrl?: string

    LiveKit server URL (wss://…). Defaults to LIVEKIT_URL.

    transferTargets?: TransferTargetSettings[]

    The places the agent may transfer a live call to, by name. Empty or absent means the agent cannot transfer at all, even on a carrier that supports it: the agent never names a free-form number.