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 callId and nodeId.
The devices parameter supports both serial and parallel dialing strategies. Each
inner array represents a set of devices to ring simultaneously (parallel). The outer
array represents sequential attempts — if the first group fails, the next group is
tried.
Throws RelayError if the dial fails or if no answer is received within the
dialTimeout period. The default timeout is 120 seconds.
Parameters
devices
Nested array of device definitions for serial and parallel dialing. Each device is
an object with type and params keys.
- Serial dial (try one after another): each inner array has one device
- Parallel dial (ring simultaneously): one inner array 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.
options
Optional second argument with dial configuration.
options.tag
Client-provided correlation tag for event matching. Auto-generated as a UUID if not supplied.
options.maxDuration
Maximum call duration in seconds. The call is automatically ended when this limit is reached.
options.dialTimeout
How long in milliseconds to wait for the dial to complete (answer or failure) before throwing a timeout error.
Returns
Promise<Call> — A call object with all properties populated and ready for call control operations.