OptionalaudioOptionalbargeOPT-IN full duplex: keep the mic OPEN while the companion speaks so the user can interrupt mid-utterance (both providers' native VAD interruption then works). Default false = half-duplex — the mic is muted during agent speech, because on phone SPEAKERS browser echo cancellation does not fully remove the companion's own voice and it barges in on itself (the SDK-voice "说一句就断了" field report). Enable only where AEC actually holds: headphones, desktop, or devices you have verified.
OptionalmutedOpen the call with the reader's microphone MUTED (0.69.0); see
CompanionCall.setMuted. On openai-realtime the track is disabled
before it is attached, so nothing is ever sent. On elevenlabs-convai
the mute is applied the moment the session is up; the provider client
has no start-muted option, so the connect handshake itself (before the
agent's first line) can carry audio.
OptionalonThe call ended, and why (0.71.0). Fires exactly once per call, on
every path including your own close(). Passing it moves a clean remote
end (agent / remote) out of onError, so a hang-up is no longer
reported as a fault. See CallEnd.
OptionalonA failure that ended the call. Every onError is terminal: the call
is already torn down. Without onEnd, a clean remote end (the companion
or the provider hanging up) also arrives here as call disconnected.
OptionalonOptionalonOne finished line. text never carries performed cues. On a call where
audioTags was GRANTED (0.70.0), every companion line also carries
audioTags: the cues it performed, in order ([] when it performed
none). Absent on user lines and on calls without the grant, so absence
means "not applicable", never "zero".
Element to route remote audio to. One is created if omitted.