Skip to main content
sipCallTransfer(options) SIP-to-SIP, PSTN-to-PSTN, SIP-to-PSTN, and PSTN-to-SIP transfers are all supported. Requires the initiating participant to be an owner or admin. Use sipRefer() instead when Daily should exit the media path entirely after the transfer.
When transferring to an external SIP address or PSTN phone number, the call remains anchored on Daily. Both call connections stay active during the transfer period, and usage continues to be billed accordingly.

Parameters

sessionId
string
required
The session_id of the SIP or PSTN participant to transfer.
toEndPoint
string
required
The destination SIP address (e.g., sip:someone@sip.abc.com) or PSTN number (e.g., +16586574500) to transfer the call to.
callerId
string
Caller ID override. Only valid when transferring to a PSTN number.
extension
string
Extension to dial after the destination connects. Only valid with a PSTN toEndPoint. Max 20 characters.
waitBeforeExtensionDialSec
number
Seconds to wait after the destination connects before dialing the extension.

Return value

Returns a Promise<void>.

Examples

// Transfer a SIP call to another Daily room
await call.sipCallTransfer({
  sessionId: 'ad96802d-c511-4d9a-a485-1a1af62732d0',
  toEndPoint: 'sip:room@sip.daily.co',
});

// Transfer a PSTN call with caller ID
await call.sipCallTransfer({
  sessionId: 'ad96802d-c511-4d9a-a485-1a1af62732d0',
  toEndPoint: '+16586574500',
  callerId: '99ae8efd-d32c-4786-9bb4-77735a4e7d22',
});

See also