types

Runner session argument types for the development runner.

These types are used by the development runner to pass transport-specific information to bot functions.

class pipecat.runner.types.DialinSettings(*, call_id: str, call_domain: str, To: str | None = None, From: str | None = None, sip_headers: dict[str, str] | None = None)[source]

Bases: BaseModel

Dial-in settings from the Daily webhook.

This model matches the structure sent by Pipecat Cloud and Daily.co webhooks for incoming PSTN/SIP calls.

Parameters:
  • call_id – Unique identifier for the call (UUID representing sessionId in SIP Network)

  • call_domain – Daily domain for the call (UUID representing Daily Domain on SIP Network)

  • To – The dialed phone number (optional)

  • From – The caller’s phone number (optional)

  • sip_headers – Optional SIP headers from the call

call_id: str
call_domain: str
To: str | None
From: str | None
sip_headers: dict[str, str] | None
class pipecat.runner.types.DailyDialinRequest(*, dialin_settings: DialinSettings, daily_api_key: str, daily_api_url: str)[source]

Bases: BaseModel

Request data for Daily PSTN dial-in requests.

This is the structure passed in runner_args.body for dial-in calls. It matches the payload structure from Pipecat Cloud’s dial-in webhook handler.

Parameters:
  • dialin_settings – Dial-in configuration including call_id, call_domain, To, From

  • daily_api_key – Daily API key for pinlessCallUpdate (required for dial-in)

  • daily_api_url – Daily API URL (staging or production)

dialin_settings: DialinSettings
daily_api_key: str
daily_api_url: str
class pipecat.runner.types.RunnerArguments(*, body: Any | None = <factory>, session_id: str | None = None)[source]

Bases: object

Base class for runner session arguments.

Parameters:
  • handle_sigint – Whether the bot should install a SIGINT handler.

  • handle_sigterm – Whether the bot should install a SIGTERM handler.

  • pipeline_idle_timeout_secs – Seconds the pipeline may stay idle before shutting down.

  • body – Optional request body data passed from the runner entry point.

  • session_id – Identifier for this bot session.

  • cli_args – Parsed CLI arguments from the runner, when launched via the development runner.

handle_sigint: bool
handle_sigterm: bool
pipeline_idle_timeout_secs: int
body: Any | None
session_id: str | None = None
cli_args: Namespace | None = None
class pipecat.runner.types.DailyRunnerArguments(room_url: str, token: str | None = None, *, body: Any | None = <factory>, session_id: str | None = None)[source]

Bases: RunnerArguments

Daily transport session arguments for the runner.

Parameters:
  • room_url – Daily room URL to join

  • token – Authentication token for the room

  • body – Additional request data

room_url: str
token: str | None = None
class pipecat.runner.types.WebSocketRunnerArguments(websocket: fastapi.WebSocket, *, body: Any | None = <factory>, session_id: str | None = None)[source]

Bases: RunnerArguments

WebSocket transport session arguments for the runner.

Parameters:
  • websocket – WebSocket connection for audio streaming

  • body – Additional request data

websocket: fastapi.WebSocket
class pipecat.runner.types.SmallWebRTCRunnerArguments(webrtc_connection: Any, *, body: Any | None = <factory>, session_id: str | None = None)[source]

Bases: RunnerArguments

Small WebRTC transport session arguments for the runner.

Parameters:

webrtc_connection – Pre-configured WebRTC peer connection

webrtc_connection: Any
class pipecat.runner.types.LiveKitRunnerArguments(room_name: str, url: str, token: str, *, body: Any | None = <factory>, session_id: str | None = None)[source]

Bases: RunnerArguments

LiveKit transport session arguments for the runner.

Parameters:
  • room_name – LiveKit room name to join

  • token – Authentication token for the room

  • body – Additional request data

room_name: str
url: str
token: str