dial
Initiate an outbound call. Sends a calling.dial JSON-RPC request and waits for the
server to return a calling.call.dial event confirming the call was answered or failed.
Returns a fully-initialized Call object
with valid call_id and node_id.
The devices parameter supports both serial and parallel dialing strategies. Each
inner list represents a set of devices to ring simultaneously (parallel). The outer
list represents sequential attempts — if the first group fails, the next group is
tried.
Raises RelayError if the dial fails or if no answer is received within the
dial_timeout period. The default timeout is 120 seconds.
Parameters
devices
Nested array of device definitions for serial and parallel dialing. Each device is
a dict with type and params keys.
- Serial dial (try one after another): each inner list has one device
- Parallel dial (ring simultaneously): one inner list with multiple devices
Up to 20 devices are dialed in total, counted across all inner lists rather than per list. Any device after the 20th is skipped.
devices[][].type
Device type. Valid values:
"phone"— PSTN phone number"sip"— SIP endpoint
devices[][].params
Device-specific parameters.
devices[][].params.to_number
Destination phone number in E.164 format (for "phone" type).
devices[][].params.from_number
Caller ID phone number in E.164 format (for "phone" type).
devices[][].params.timeout
Per-device ring timeout in seconds.
tag
Client-provided correlation tag for event matching. Auto-generated as a UUID if not supplied.
max_duration
Maximum call duration in seconds. The call is automatically ended when this limit is reached.
dial_timeout
How long in seconds to wait for the dial to complete (answer or failure) before raising a timeout error.
Returns
Call — A call object with all properties populated and ready for call control operations.