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
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.