Prerequisites
Before calling any telephony methods:- Your Daily account must have a credit card on file.
- For dial-out, the room must have
enable_dialout: trueand your account must be approved for dial-out. - The local participant must join with an owner meeting token.
Dial-out
Starting a session
startDialOut() initiates an outbound call to a SIP URI or PSTN phone number. The called party joins the room as a regular participant.
- SIP
- Phone (PSTN)
sessionId identifies this telephony session. Hold onto it — you’ll need it for stopDialOut(), sendDTMF(), and transfer methods.
See startDialOut() for the full parameter reference, including videoSettings for SIP video calls and codec defaults.
Stopping a session
Sending DTMF tones
sendDTMF() sends touch-tone signals into an active session — commonly used to navigate IVR menus:
method parameter controls how tones are signaled:
'telephone-event': RTP telephone-event packets per RFC 4733 (most compatible)'sip-info': SIP INFO requests with anapplication/dtmf-relaybody'auto'(default): Daily uses'sip-info'when the remote SIP peer listsINFOin theAllowheader of its answer, and'telephone-event'when it does not
'sip-info' on a call where the far end does not allow INFO returns an error.
When you send more than one tone in a single sendDTMF() call over SIP INFO, Daily waits a fixed 100ms between tones. That gap is not configurable. digitDurationMs sets the duration Daily signals for each digit, not the gap between digits.
There is no queueing or ordering guarantee across separate sendDTMF() calls, so two that overlap can interleave their tones. Pass the whole sequence in one call when you can. If you have to send digits one at a time, wait for each call to finish before starting the next one and add your own pacing between them.
Dial-out events
Listen to these events to track the lifecycle of an outbound session:dialout-connected fires when the SIP/PSTN network acknowledges the call; dialout-answered fires when the remote party actually picks up. Both events include provider and sipCallId for correlating with server-side logs. See the telephony events reference for full payload details.
Dial-in
Dial-in allows external SIP or PSTN callers to join a Daily room. Setenable_dialin: true on the room via the REST API or dashboard. For setup details — including PIN dial-in, pinless dial-in, and SIP interconnect — see the dial-in/dial-out guide.
Dial-in events
provider and sipCallId fields for correlating sessions with server-side logs. See the telephony events reference for full payload details.
Call transfers
To transfer an active SIP or PSTN session to another destination, usesipCallTransfer() or sipRefer(). See the call transfers guide for a full explanation of when to use each method, including a decision table and scenario examples.