Prerequisites
- Paid Daily account — add a credit card in the dashboard.
- Dial-out approval — fill out the dial-out request form to avoid fraud and misuse. Once approved, set
enable_dialouton your rooms. - Default limit:
max_sip_pstn_sessions_per_room = 5. Contact support to increase this.
We’ve removed the requirement for a paid-support plan for SIP and PSTN dial-in, it is now available for all pay-as-you-go accounts. You just need to have a credit card associated to your domain.
SIP
Daily supports SIP dial-in and SIP dial-out with the following codecs:- Audio: PCMU, PCMA, G722, Opus (default: PCMU/PCMA)
- Video: H264, VP8 (default: VP8)
PSTN phone numbers
Global dial-in numbers
You can receive PSTN calls without purchasing a phone number. Daily provides global dial-in numbers in 27 countries. Each room gets a unique 11-digit PIN code, generated at room creation and deleted when the room expires. All accounts get US and Canada at no extra charge:- US: +1 (209) 503-8039
- CA: +1 (226) 807-8039
Purchasing phone numbers
Daily’s REST API supports purchasing phone numbers in the US and Canada (+1). A single number can handle hundreds of simultaneous calls. A purchased number can can be used for PSTN dialout. However, a number can only be assigned to either PIN dial-in or pinless dial-in, but not both.PSTN dial-in methods
Daily supports two PSTN dial-in flows:- PIN dial-in — callers dial a phone number and enter a room-specific PIN code.
- SIP Interconnect and Pinless dial-in — incoming calls trigger a webhook where you can define logic to route the call to a Daily room without requiring a PIN.
PSTN dial-out
Dial-out checklist (once your account is approved):
- Purchase a phone number (skip if dialing a SIP URI)
- Enable dial-out on the room
- Join the room with an owner token
- Dial US/Canada (+1) numbers in E.164 format (e.g., +16505551212). For international dial-out, contact help@daily.co.
startDialOut()in daily-js/rooms/:name/dialOut/startvia REST API
DTMF tones
Send DTMF (touch-tone) signals during a call — commonly used for IVR interactions:sendDTMF()in daily-js/rooms/:name/dialOut/sendDTMFvia REST API
- RTP telephone events per RFC 2833/RFC 4733. This method works with almost every endpoint.
- SIP INFO requests that carry an
application/dtmf-relaybody withSignalandDurationfields.
method: 'auto', Daily uses SIP INFO when the remote SIP peer lists INFO in the Allow header of its answer. If it does not, Daily uses RTP telephone events. Nothing else changes that choice. If you ask for method: 'sip-info' and the far end does not allow INFO, the request returns an error.
Receiving DTMF from a PSTN/SIP connection into a Daily room is not yet supported.
Sending more than one toneWhen you send several tones in a single request over SIP INFO, Daily waits a fixed 100ms between tones. You cannot change that gap.
digitDurationMs sets the digit duration that Daily signals to the far end. It does not set the gap between tones.There is no queueing or ordering guarantee across separate requests, so two that overlap can interleave their tones.Pass the whole sequence in one request when you can, for example tones: '1234#'. If you have to send digits one at a time, wait for each request to finish before starting the next one and add your own pacing between them.Call transfers
Daily provides two transfer methods. Both methods maintain the original SIP/PSTN connection, meaning the initial caller’s connection does not disconnect during the transfer:- SIP Call Transfer — keeps the original SIP leg anchored to Daily and redirects the far end to a new SIP or PSTN destination. Both connections remain active and billable.
- SIP REFER — hands the call off to the originating SIP system. Daily exits the call entirely. A one-time SIP REFER fee may apply.