On November 16, 2021, Twilio will be adding functionality to the <Dial> TwiML Verb that may affect existing Voice applications, and new applications going forward. This guide explains what users can expect from these new changes.
New <Dial> enhancements
Global Low Latency (GLL): GLL is now supported when the hangupOnStar
attribute is set to true.
Full ring tone support: The ringTone
attribute now supports all <Dial> nouns , including <Sip>.
Callbacks changes: Behavior for callbacks has been updated to better differentiate calls where the <Dial> (child) call leg is connected, but disconnects before being bridged to the parent call:
- The
DialBridged
parameter has been added to Action URL callbacks. This parameter will be returned with the value true if the call was bridged with the parent call. - The
DialCallStatus
parameter will now be returned with the value completed in this situation, (it previously returned no-answer). - The geographic data parameters for a <Dial> call will now return information for the child call's To and From phone numbers (it previously returned geographic data from the parent call).
Early call audio: Pre-answer call audio will now be generated anytime one of the following <Dial> noun scenarios is detected:
- Simultaneous dialing (multiple <Dial> nouns is used, regardless of the Early Audio Exception account flag.
- The
url
attribute is present on the noun for pre-bridge TwiML execution (call whisper / screening). - The
sendDigits
attribute is present on the noun for automatically playing DTMF tones.
Simultaneous and Sequential dialing logging: each <Dial> noun present when using these features will now have its own call record created (it previously only created a record for the connected call).
- This allows individual <Dial> call legs originating from Simultaneous and Sequential dialing to now be cancelled via the REST API.
<Dial> noun 'url' attribute changes: The call whisper / screening url
attribute for <Dial> nouns will now behave differently:
- The
<Dial>
verb is no longer supported in TwiML returned via the url attribute. If a <Dial> is returned, we will log a debug notification, and then move on to execute the next verb. - The
DialCallStatus
parameter in the callback will return completed if <Hangup> or <Reject> are present in the TwiML returned from the url attribute (it previously returned no-answer). - When the <Dial> attribute
answerOnBridge
is set to true, incoming parent calls will be reported asringing
until the outbound child call's whisper / screening url has completed (it previously reported as in-progress immediately).- These calls will then change status to
connected
if bridged successfully, orno-answer
if not. - The outbound child call status will be reported as
ringing
until answered, and thenin-progress
once the whisper / screening url begins executing (it previously returned queued until answered).
- These calls will then change status to