enable_dialout in dailyRoomProperties. Then, include the target phone number(s) in the request body of {service}/start.
In this example, we use the dialout_settings array to pass one or more phone numbers for the bot to dial. Each object in the array must include a phoneNumber and can optionally specify a callerId to control the outbound caller ID.
If no
callerId is provided, a random phone number will be used to make the
call. To specify the caller ID, use the phone number’s
id
as the callerId.The API_KEY here is Pipcat Cloud’s public API
key, typically begins
with “pk_…”
joined state.
Unlike dial-in scenarios where the bot typically speaks first, dial-out calls may require the bot to wait for the remote user to speak. In these cases, you can start listening for the remote user when the on_dialout_answered event fires.
This is also a good point to initiate voicemail detection—for example, by analyzing the remote user’s audio to determine if the call has reached a voicemail.
Examples of dialout_settings
Here are various configurations you can use in the dialout_settings array:
Troubleshooting
Most dial-out failures come from the room or the Daily account not being set up for outbound calls. The error text tells you which:| Error | Cause | Fix |
|---|---|---|
dial-out not enabled for room. add enable_dialout property to room | The room was created without enable_dialout. | Set "enable_dialout": true in dailyRoomProperties at room creation (see above). |
property 'enable_dialout' cannot be set to that value with your current plan | The Daily account behind your key doesn’t have dial-out. | Dial-out is a paid Daily feature. Use a pay-as-you-go Daily key and contact sales. |
International dialout not supported. Contact sales to enable it for your domain | International dial-out is gated for your account’s domain. | Contact sales to enable international dial-out for your domain. |
Dial-out enablement and plan limits apply to whichever Daily account owns the
key in use — the Pipecat Cloud-provisioned one, or your own if you bring a key.
Make sure telephony is enabled on that account.
Next Steps
After configuring your dial-out functionality, you can implement a Pipecat bot to handle the call interactions:Dial-in/Dial-out Bot Example
Complete example of a Pipecat bot implementation that handles both incoming
(dial-in) and outgoing (dial-out) calls with voicemail detection