Menu

Expand
Rate this page:

TwiML Changelog

Changes in the Programmable Voice TwiML functionality will be documented here for your reference.

Dial - 2020.12.09

Functional improvements

The following are the functional improvements available as part of the changes to <Dial> TwiML verb:

  • <Dial> now allows simultaneous or sequential dialing to up to ten <Number>, <Client> or <Sip> endpoints in a single <Dial> command
  • <Dial> now supports Global Low Latency (GLL) when using <Dial hangupOnStar=”true”>.
  • A new action callback parameter DialBridged is added with value returned as true only if the call was bridged with the parent. This is to distinguish the cases where the child call was hung up during screening vs bridged with the parent.
    • The <Sip> noun now supports the ringTone parameter.
    • When sending status callbacks for a dialed leg, the geographic data specified in the webhook data will be for the To and From phone numbers of the dialed leg. Previously, the geographic data for the To and From numbers of the parent leg was used in the status callbacks for the dialed leg as well.
  • Early audio will always be generated for the following scenarios
      • if simultaneous dialing is used, irrespective of the Early Audio Exception account flag
      • If the url attribute is present
      • If the sendDigits attribute is present

Changes that could impact your application

  • Each dial leg in case of simultaneous and sequential dialing will now have its own call record. Previously only the completed call had a call-record created, which means you couldn't see data or signaling for the legs that were not answered. The new behavior also lets you cancel individual dial legs through the API.
    • This new behavior should allow for more accurate records.
    • This new behavior allows for more effective debugging.
  • <Dial> verb will never be allowed in the TwiML returned by the screening url.
  • In case of <Hangup> or <Reject> in screening url, DialCallStatus will be set to completed, previously it was set to no-answer.
    • This is a more accurate representation of the call behavior, as the call connects and is rejected by the application
    • This new behavior allows for more effective debugging.
  • Changes to call status for inbound calls:
    • With <Dial answerOnBridge="true">, parent call status will be ringing until the screening url is complete. Previously it was set to in-progress immediately.
    • Child call status will be ringing until answered and in-progress when screening. Previously it was set to queued until answered.
    • With <Dial answerOnBridge="true">, the parent call will report a status of no-answer until and unless it is bridged to the child call.
    • This new behavior should allow for more accurate call tracking in customer applications.
    • In case of hang up during screening, DialCallStatus will be set to completed. Previously DialCallStatus was set to no-answer.
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

        
        
        

        Thank you for your feedback!

        We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

        Sending your feedback...
        🎉 Thank you for your feedback!
        Something went wrong. Please try again.

        Thanks for your feedback!

        Refer us and get $10 in 3 simple steps!

        Step 1

        Get link

        Get a free personal referral link here

        Step 2

        Give $10

        Your user signs up and upgrade using link

        Step 3

        Get $10

        1,250 free SMSes
        OR 1,000 free voice mins
        OR 12,000 chats
        OR more