VoxRtcServer.Session (vox_rtc_server v0.1.0)

Copy Markdown View Source

Owns one Vox RTC gRPC control stream.

The process serializes every outgoing control message and delivers incoming events to subscribers as {:vox_rtc, session, event} messages.

Summary

Types

t()

@type t() :: pid()

Functions

append_response_text(session, delta, options \\ %ResponseOptions{})

@spec append_response_text(t(), String.t(), VoxRtcServer.ResponseOptions.t()) ::
  :ok | {:error, term()}

await_attached(session, timeout)

@spec await_attached(t(), timeout()) :: :ok | {:error, term()}

cancel_response(session)

@spec cancel_response(t()) :: :ok | {:error, term()}

child_spec(init_arg)

@spec child_spec(keyword()) :: Supervisor.child_spec()

Returns a specification to start this module under a supervisor.

See Supervisor.

close(session, reason \\ "client_closed")

@spec close(t(), String.t()) :: :ok

commit_response(session)

@spec commit_response(t()) :: :ok | {:error, term()}

configure(session, config)

@spec configure(t(), VoxRtcServer.SessionConfig.t()) :: :ok | {:error, term()}

replace_response_text(session, text, options \\ %ResponseOptions{})

@spec replace_response_text(t(), String.t(), VoxRtcServer.ResponseOptions.t()) ::
  :ok | {:error, term()}

send_client_event(session, event, payload \\ %{})

@spec send_client_event(t(), String.t(), map()) :: :ok | {:error, term()}

send_ice_candidate(session, candidate)

@spec send_ice_candidate(t(), VoxRtcServer.IceCandidate.t() | :complete) ::
  :ok | {:error, term()}

send_offer(session, offer, restart \\ false)

@spec send_offer(t(), VoxRtcServer.SessionDescription.t(), boolean()) ::
  :ok | {:error, term()}

session_id(session)

@spec session_id(t()) :: String.t()

start_link(options)

@spec start_link(keyword()) :: GenServer.on_start()

start_response(session, options \\ %ResponseOptions{})

@spec start_response(t(), VoxRtcServer.ResponseOptions.t()) :: :ok | {:error, term()}

subscribe(session, subscriber \\ self())

@spec subscribe(t(), pid()) :: :ok

unsubscribe(session, subscriber \\ self())

@spec unsubscribe(t(), pid()) :: :ok