Skip to main content
startDialOut(options) The dialed participant joins the room as a regular participant. Requires the initiating participant to be an owner or admin.

Parameters

options: DailyStartDialoutSipOptions | DailyStartDialoutPhoneOptions Provide either sipUri (SIP) or phoneNumber (PSTN) — not both. Fields marked as SIP-only or PSTN-only are ignored when used with the wrong option type.

DailyStartDialoutSipOptions

sipUri
string
The SIP URI to dial (e.g. sip:bob@example.com). Must conform to RFC 3261. Query parameters appended to the URI appear as X- SIP headers in the invite (e.g. sip:bob@example.com?X-myHeader=value).
displayName
string
Display name shown for the participant when they join. Defaults to the SIP username from the URI.
userId
string
Custom identifier for the participant (max 36 characters). See userId guidance.
video
boolean
Enable/disable SIP video.
codecs
DailyDialOutCodecs
Preferred codecs. The first entry in each array is used; if the remote party doesn’t support it, the stream is transcoded (transcoding charges may apply).
  • codecs.audio: 'PCMU' | 'OPUS' | 'G722' | 'PCMA'[]. Default: ['OPUS'].
  • codecs.video: 'H264' | 'VP8'[]. Default: ['H264'].
permissions
DailySipPstnParticipantPermissions
Controls which participants’ media the dialed-in SIP participant can receive. Uses the same canReceive shape as participant permissions.

DailyStartDialoutPhoneOptions

phoneNumber
string
The E.164 phone number to call (e.g. +12268077097).
displayName
string
Display name shown for the participant when they join. Defaults to the phone number.
userId
string
Custom identifier for the participant (max 36 characters). See userId guidance.
callerId
string
The outbound caller ID displayed on the called device. Defaults to the oldest purchased number on the domain.
extension
string
Extension to dial after the call connects. Max 20 characters.
waitBeforeExtensionDialSec
number
Seconds to wait after connecting before dialing the extension.
codecs
DailyDialOutCodecs
Preferred codecs. The first entry in each array is used; if the remote party doesn’t support it, the stream is transcoded (transcoding charges may apply).
  • codecs.audio: 'PCMU' | 'OPUS' | 'G722' | 'PCMA'[]. Default: ['PCMU', 'PCMA'].
  • codecs.video: not applicable for PSTN.
permissions
DailySipPstnParticipantPermissions
Controls which participants’ media the dialed-in PSTN participant can receive. Uses the same canReceive shape as participant permissions.

Return value

Returns a Promise that resolves to { session?: DailyDialOutSession }, where session.sessionId is the UUID identifying the initiated SIP/PSTN session.

Errors

  • NOT_ALLOWED — SIP/PSTN is not enabled for the room.
  • DIALOUT_IN_PROGRESS — A dial-out is already in progress.
  • TEMPORARILY_NOT_AVAILABLE — No workers available; try again shortly.

Examples

// SIP call
const { session } = await call.startDialOut({ sipUri: 'sip:bob@example.com' });

// SIP video call with custom display name
const { session } = await call.startDialOut({
  sipUri: 'sip:boardroom@example.com',
  video: true,
  displayName: 'Board Room',
  codecs: { video: ['H264'], audio: ['OPUS'] },
});

// PSTN call with extension
const { session } = await call.startDialOut({
  phoneNumber: '+12268077097',
  displayName: 'Support Line',
  extension: '1234',
  waitBeforeExtensionDialSec: 4,
});

See also