bodhi-realtime-agent / DirectRtcClientChannel
Class: DirectRtcClientChannel
Defined in: src/transport/direct-rtc-client-channel.ts:34
Client media channel: JSON/control on WebSocket (SessionClientSender), audio over Opus RTP when weriftOpus is configured; otherwise outbound assistant PCM uses sender.sendAudio (same wire as legacy WebSocket clients).
Implements
Constructors
Constructor
new DirectRtcClientChannel(
options):DirectRtcClientChannel
Defined in: src/transport/direct-rtc-client-channel.ts:46
Parameters
options
Returns
DirectRtcClientChannel
Properties
supportsPlaybackStateProtocol
readonlysupportsPlaybackStateProtocol:boolean
Defined in: src/transport/direct-rtc-client-channel.ts:44
True only when assistant audio renders over the WebSocket PCM path — the Opus-RTP sink sends audio on a separate channel from the JSON control plane, so ordering with audio.done cannot be guaranteed there.
Implementation of
IClientChannel.supportsPlaybackStateProtocol
Accessors
isRtcAudioReady
Get Signature
get isRtcAudioReady():
boolean
Defined in: src/transport/direct-rtc-client-channel.ts:71
True once Opus RTP outbound is wired (assistant audio should not use WebSocket binary).
Returns
boolean
lastClientSignaling
Get Signature
get lastClientSignaling():
RtcClientSignalingMessage|null
Defined in: src/transport/direct-rtc-client-channel.ts:66
Latest client→server signaling message (for debugging / tests).
Returns
RtcClientSignalingMessage | null
Methods
feedSignaling()
feedSignaling(
message):void
Defined in: src/transport/direct-rtc-client-channel.ts:79
Accept SDP / ICE payloads from the client JSON WebSocket. When weriftOpus is enabled, drives the embedded werift peer connection.
Parameters
message
Returns
void
sendAudioToClient()
sendAudioToClient(
data):void
Defined in: src/transport/direct-rtc-client-channel.ts:107
Parameters
data
Buffer
Returns
void
Implementation of
IClientChannel.sendAudioToClient
sendJsonAfterAudio()
sendJsonAfterAudio(
message):void
Defined in: src/transport/direct-rtc-client-channel.ts:134
Playback-state protocol: deliver JSON in order after the turn's audio. Only meaningful when audio uses the WebSocket PCM path (no Opus engine); dropped during a reconnect-buffering window.
Parameters
message
AnyServerToClientMessage
Returns
void
Implementation of
IClientChannel.sendJsonAfterAudio
sendJsonToClient()
sendJsonToClient(
message):void
Defined in: src/transport/direct-rtc-client-channel.ts:127
Parameters
message
AnyServerToClientMessage
Returns
void
Implementation of
IClientChannel.sendJsonToClient
start()
start():
Promise<void>
Defined in: src/transport/direct-rtc-client-channel.ts:95
Returns
Promise<void>
Implementation of
startBuffering()
startBuffering():
void
Defined in: src/transport/direct-rtc-client-channel.ts:139
Returns
void
Implementation of
stop()
stop():
Promise<void>
Defined in: src/transport/direct-rtc-client-channel.ts:99
Returns
Promise<void>
Implementation of
stopBuffering()
stopBuffering():
Buffer<ArrayBufferLike>[]
Defined in: src/transport/direct-rtc-client-channel.ts:144
Returns
Buffer<ArrayBufferLike>[]