@jambonz/sdk
    Preparing search index...

    Interface Handoff

    Declarative transfer-to-human config for conversational verbs (agent, llm/s2s). The runtime injects a transfer_to_human tool and runs the packaged transfer choreography when the model calls it.

    interface Handoff {
        mode: "blind" | "warm";
        blindMethod?: "dial" | "refer";
        callerPresent?: boolean;
        target: Target[];
        callerId?: string;
        onHoldHook?: ActionHook;
        timeout?: number;
        confirm?: TransferConfirm;
        amd?: Amd;
        disposition?: TransferDisposition;
        actionHook?: ActionHook;
        eventHook?: ActionHook;
        brief?: { template: string } | "auto" | "none";
        briefSynthesizer?: Synthesizer;
        toolName?: string;
        toolDescription?: string;
    }

    Hierarchy (View Summary)

    Index

    Properties

    mode: "blind" | "warm"

    'blind' hands off immediately; 'warm' lets the agent brief the destination first.

    blindMethod?: "dial" | "refer"

    blind only: 'refer' sends a SIP REFER; 'dial' places a bridged outbound call. Default: 'refer'.

    callerPresent?: boolean

    warm only: true = caller joins a three-way conference and hears the brief; false = caller is parked. Default: false.

    target: Target[]

    One or more destinations. All are rung simultaneously; first to answer wins.

    callerId?: string

    Caller ID presented to the destination.

    onHoldHook?: ActionHook

    warm/parked only: verbs for the parked caller while the agent briefs the destination.

    timeout?: number

    Seconds to wait for the destination to answer before applying onNoAnswer. Default: 30.

    confirm?: TransferConfirm

    Optional human-side acceptance gate.

    amd?: Amd

    warm only: optional answering-machine detection on the destination leg.

    disposition?: TransferDisposition

    Per-outcome fallback actions.

    actionHook?: ActionHook

    Fires when the transfer resolves (bridged, returned, voicemail, or failed).

    eventHook?: ActionHook

    Optional hook for in-progress transfer events (ringing, brief started).

    brief?: { template: string } | "auto" | "none"

    'auto' = LLM writes the summary; 'none' = no spoken brief; {template} = guidance for the summary. Default: 'auto'.

    briefSynthesizer?: Synthesizer

    Optional voice/vendor for the spoken brief. Defaults to the session synthesizer.

    toolName?: string

    Override the injected tool name. Default: 'transfer_to_human'.

    toolDescription?: string

    Override the injected tool description shown to the LLM.