<Dial> to create one or more B-legs and bridge the first successful destination to the current A-leg. Nest <Number> for a PSTN destination or <User> for a SIP or registered WebRTC user.
How Dial works
callbackUrl and action serve different purposes. Use callbackUrl to observe the B-leg while it is active. Use action to receive the final result and optionally choose the next call-control step.
Child elements
You can include multiple child destinations for simultaneous dialing. Vobiz attempts sibling destinations concurrently and bridges the first one that answers successfully. See Simultaneous dialing.
You can also place one phone number directly inside
<Dial> as shorthand, but an explicit <Number> child is easier to extend with attributes and callbacks.
Attributes
timeout and timeLimit control different phases. timeout covers the unanswered ringing phase. timeLimit covers only the connected bridge.Callback lifecycle
Callback channels
Both channels support
GET and POST. If you omit method or callbackMethod, Vobiz uses POST.
Real-time events sent to callbackUrl
Common fields include
CallUUID, DialALegUUID, DialBLegUUID, DialBLegFrom, DialBLegTo, and DialBLegPosition. Not every field is present on every event.
STIRVerification may also appear on applicable calls. Values are Verified, Not Verified, or Not Applicable, depending on the call direction, attestation, destination, and whether STIR/SHAKEN applies.
The values observed for DialDigitsPressedBy are:
alegfor a match fromdigitsMatchblegfor a match fromdigitsMatchBLeg
Final fields sent to action
See Dial status reporting for request examples and failure handling.
DTMF matching
UsedigitsMatch and digitsMatchBLeg when you need real-time callbacks for keypad input during a bridge.
- A-leg digits
- B-leg digits
DialAction=digits, DialDigitsMatch=123, and DialDigitsPressedBy=aleg.Complete PSTN transfer with recording
Place a self-closing<Record/> before <Dial> to record the full session, including bridged audio. This example uses redirect="false", so action receives the final Dial result but its response does not replace the remaining XML flow.
{{caller_id}}; render application values before you return the XML.
A transferred call runs as two legs with two CDRs and two charges. See Transferred calls end to end for the webhook order, leg correlation, and billing.
Dial a SIP or WebRTC user
No-answer behavior
When the configured answer window expires, the real-time hangup callback can report:action request reports DialStatus=no-answer and DialHangupCause=NO_ANSWER. A final DialBLegUUID may be empty for this outcome.