Level up your Twilio API skills in TwilioQuest, an educational game for Mac, Windows, and Linux. Download Now


Rate this page:

Thanks for rating this page!

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

TwiML™ Voice: <Dial>

During an active call, you can use TwiML's <Dial> verb to connect the current caller to another party.

The following example shows the most basic use of <Dial>:

<?xml version="1.0" encoding="UTF-8"?>

If the party at 415-123-4567 answers the call, the two parties can communicate until one hangs up.

The <Dial> verb will end the new call if:

  • the called party does not pick up
  • Twilio receives a busy signal
  • the number does not exist

<Dial> cannot initiate a call directly from Twilio – it will only dial a new party from an active, ongoing call. To start a new outbound call from Twilio, you must make an API request to the Call endpoint.

For a step-by-step guide on making your first outbound call with Twilio, try one of our quickstarts that show how to make a call using the Twilio helper libraries.

Twilio will make a GET or POST request to the action URL (if provided) when the <Dial> call ends. Call flow will then continue, using the TwiML you send in response to that request.

If you do not provide an action URL in your <Dial> and the original caller is still on the line, Twilio will continue to render the original TwiML document.


        With this code, Twilio will connect the original call with a new party by dialing 415-123-4567. Several things might happen next:

        • If someone answers, Twilio connects the caller with the called party.
        • If the initial caller hangs up, the Twilio session ends and the <Say> does not execute.
        • If the line is busy, if there is no answer, or if the called party hangs up, <Dial> exits and the initial caller hears the <Say> text ("Goodbye") before the call flow ends.

        <Dial> Attributes

        <Dial> supports the following attributes that change its behavior:

        属性 許容値 初期値
        action 相対または絶対 URL なし
        answerOnBridge true, false false
        callerId ご自身で購入したTwilio電話番号か、<Client>へダイヤルする場合はクライアント識別子。Twilio電話番号の場合、050/0800/0120番号以外は非通知となります。 発信者の callerId
        hangupOnStar true, false false
        method GET, POST POST
        record do-not-record, record-from-answer, record-from-ringing, record-from-answer-dual, record-from-ringing-dual.

        後方互換性を確保するため、 truerecord-from-answer の、falsedo-not-record のそれぞれ別名となります。

        recordingStatusCallback 相対または絶対 URL なし
        recordingStatusCallbackMethod GET, POST POST. This attribute indicates which HTTP method Twilio should use use when requesting 'recordingStatusCallback'.
        recordingStatusCallbackEvent in-progress, completed, absent completed
        ringTone ISO 3166-1 alpha-2国コード Defaults to the carrier's ringtone
        timeLimit 正の整数値(秒) 14400 秒 (4時間)
        Timeout 正の整数値(秒) 30 秒
        trim trim-silence, do-not-trim do-not-trim

        DIAL動詞 と SMS動詞は、複数の属性を使えます。

        下の例ではcallerIdパラメータが省略されていますが、Twilio for KDDI Web Communications をご利用のお客様においては、callerId パラメータで必ずご自身で購入したTwilio電話番号を指定する必要があり、かつ、省略できません。


        <?xml version="1.0" encoding="UTF-8"?>
            <Dial timeout="10" record="true">415-123-4567</Dial>


        The action attribute accepts a URL as its argument. This URL tells Twilio where to make a POST or GET request after the dialed call ends.

        Twilio's request to this URL will include the following parameters:

        パラメーター 概要
        DialCallStatus The outcome of the <Dial> attempt. See the DialCallStatus section below for details.
        DialCallSid 新しいコールレグの通話 sid です。 カンファレンスにダイヤルする場合、このパラメーターは送信されません。
        DialCallDuration The duration in seconds of the dialed call. This parameter is not sent after dialing a conference, or if a Child call is redirected to a new TwiML URL before being disconnected.
        RecordingUrl 録音されたオーディオのURLです。 このパラメーターは録音が <Dial> で設定されている場合に追加され、その他の手段で開始された録音には含まれません。 録音ファイルはactionコールバックの送信時にはまだアクセスできない可能性があります。 レコーディングがアクセス可能になった時点での確実な通知には、recordingStatusCallbackを使用してください。  

        If you <Dial> a <Queue>, Twilio will pass additional parameters to your action URL. Read the in-depth <Queue> documentation for more details.

        If you specify an action URL for <Dial>, Twilio will continue the initial call after the dialed party hangs up.

        Any TwiML verbs included after this <Dial> will be unreachable, as your response to Twilio takes full control of the initial call. If you want to take more actions on that initial call, you must respond to Twilio's request with TwiML instructions on how to handle the call.

        If you do not provide an action URL, <Dial> will finish and Twilio will move on to the next TwiML verb in the document. If there is no next verb, Twilio will end the phone call. Note that this is different from the behavior of <Record> and <Gather>.

        Back to attributes list


        If you specify an action URL, Twilio will always pass along the status of the <Dial> attempt.

        Possible DialCallStatus values are:

        completed 相手が応答し、発信者に通話が接続された。
        answered When calling a conference, the called party answered the call and was connected to the caller.
        busy 相手からビジー信号を受信した。
        no-answer 相手が応答せず、タイムアウト時間が経過した。
        failed 指定された電話番号へルーティングできなかった。 通常は、宛先の電話番号のフォーマットは正しく、電話番号が存在しない場合に発生します。
        canceled 相手が応答する前に、REST API で通話がキャンセルされた。

        Back to attributes list


        If <Dial> is the first TwiML verb in your TwiML document, answerOnBridge="true" will cause the inbound call to ring until the dialed number answers.

        If your inbound call is a SIP call, Twilio will send a 180 or 183 to your SIP server once it connects to Twilio. It will wait until the <Dial> call connects to return a 200.

        Back to attributes list


        When you use <Dial> in your response to Twilio's inbound call request, the dialed party sees the inbound caller's number as the caller ID.


        1. Someone with a caller ID of 1-415-123-4567 calls your Twilio number.
        2. You tell Twilio to execute a <Dial> verb to 1-858-987-6543 to handle the inbound call.
        3. The called party (1-858-987-6543) will see 1-415-123-4567 as the caller ID on the incoming call.

        By specifying a callerId on your <Dial>, you can set a different caller ID than the default. You may change the phone number that the called party sees to one of the following:

        If you are dialing a <Client>, you can set a client identifier as the callerId attribute. For instance, if you've set up a client for incoming calls and you are dialing that client, you could set the callerId attribute to client:joey.

        If you are dialing a phone number from a Twilio Client connection or a SIP call, you must specify a valid phone number as the callerId or the call will fail.

        In the following example, we use <Dial> to call a phone number from a Twilio Client device:

              Because this call is <Dial>ing from a Twilio Client connection, we have to explicitly set a valid phone number as our callerId.

              Dial a phone number from a Twilio Client

              Because this call is <Dial>ing from a Twilio Client connection, we have to explicitly set a valid phone number as our callerId.

              Back to attributes list


              The hangupOnStar attribute lets the initial caller hang up on the called party by pressing the '*' key on their phone.

              When two parties are connected using <Dial>, Twilio blocks execution of further verbs until the caller or called party hangs up. The hangupOnStar feature allows the initial caller to hang up on the party they called without having to hang up the phone (which would end the TwiML processing session).

              When the caller presses '*', Twilio will hang up on the called party. If an action URL was provided, Twilio submits a DialCallStatus of completed to that URL and processes the response.

              If no action was provided, Twilio continues on to the next verb in the current TwiML document.

              Back to attributes list


              The method attribute accepts either GET or POST. This tells Twilio whether to request the action URL via HTTP GET or POST, with POST as its default value.

              In the following example, we've provided an action URL and specified GET as the method:


                    This code will <Dial> to connect the initial caller to the phone number 415-123-4567.

                    When the <Dial> call ends, Twilio will send a GET request to our action URL. This request will include the DialCallStatus parameter that tells us the status of that <Dial> call.

                    Our web application hosted at this action URL can now look at the DialCallStatus and send a response to Twilio telling it what to do next.

                    In this example, the <Say> verb will never execute, as the code at /handleDialCallStatus takes full control of the call.

                    Back to attributes list


                    The record attribute lets you record both legs of a call within the associated <Dial> verb. Recordings are available in two options: mono-channel or dual-channel.

                    In mono-channel recordings, both legs of the call are mixed down into a single channel within one recording file.

                    For mono-channel record options, you can choose either:

                    • record-from-answer, which will start the recording as soon as the call is answered
                    • record-from-ringing, which will start the recording when the ringing begins (before the recipient answers the call)

                    With dual-channel recordings, both legs use separate channels within a single recording file.

                    For dual-channel record options, you can choose either:

                    • record-from-answer-dual, which will start the recording as soon as the call is answered
                    • record-from-ringing-dual, which will start the recording when the ringing begins (before the recipient answers the call)

                    The parent call will always be in the first channel and the child call will always be in the second channel of a dual-channel recording.

                    If a dual-channel recording option is used for a <Dial> with a nested <Conference>, the resulting recording file will have two channels. The parent leg (inbound caller) is represented in the first channel. The second channel includes the audio coming downstream from the conference.

                    Back to attributes list


                    The recordingStatusCallback attribute takes a relative or absolute URL as an argument. If you've requested recording for this <Dial>, this URL tells Twilio where to make its GET or POST request when the recording is available to access.

                    Twilio will pass the following parameters with its request to your recordingStatusCallback URL:

                    パラメーター 概要
                    AccountSid この録音の属するアカウントの一意な識別子です。
                    CallSid A unique identifier for the call associated with the recording. This will always refer to the parent leg of a two-leg call.
                    RecordingSid この録音のユニークな識別子です。
                    RecordingUrl 録音された音声の URL。
                    RecordingStatus 録音ステータスです。 取りうる値はin-progresscompleted、およびabsentです。
                    RecordingDuration この録音の長さ (秒) です。
                    RecordingChannels 最終的な録音ファイルのチャンネル数を示す整数です。 取りうる値は 1 および 2 です。
                    RecordingStartTime The timestamp of when the recording started.
                    RecordingSource The initiation method used to create this recording. For recordings initiated when record is set on <Dial>, DialVerb is returned.

                    Back to attributes list


                    The recordingStatusCallbackEvent allows you to specify which recording status changes should generate a webhook to the URL specified in the recordingStatusCallback attribute. The available values are:

                    • in-progress: the recording has started
                    • completed: the recording is complete and available
                    • absent: the recording is absent and inaccessible

                    To specify more than one value, separate each with a space. Default value is: completed.

                    To pause, resume, or stop recordings, see the Recording API Docs.

                    The following example specifies that we want each participant on the <Dial> call to be represented in their own channel of the final recording, and that recording should begin when the call begins to ring.


                          Back to attributes list


                          Ringtone allows you to override the ringback tone that Twilio will play back to the caller while executing a <Dial>.

                          If not specified, Twilio will play ringback or pass ringback from the carrier (if provided). This works automatically but there may be cases where an override is desired.

                          Accepted values are: at, au, bg, br, be, ch, cl, cn, cz, de, dk, ee, es, fi, fr, gr, hu, il, in, it, lt, jp, mx, my, nl, no, nz, ph, pl, pt, ru, se, sg, th, uk, us, us-old, tw, ve, za.

                          Note: ringTone will never be applied to calls to <Sip> endpoints.

                          Back to attributes list


                          The timeLimit attribute sets the maximum duration of the <Dial> in seconds.

                          For example, by setting a time limit of 120 seconds, <Dial> will automatically hang up on the called party two minutes into the phone call.

                          The default time limit on calls is four hours – this is also the maximum length of a call.

                          Back to attributes list


                          Specifying a timeout will set the limit in seconds that <Dial> will wait for the dialed party to answer the call. This tells Twilio how long to let the call ring before giving up and setting no-answer as the DialCallStatus.

                          timeout's default value is 30 seconds, the minimum allowed value is 5 seconds, and the maximum value is 600 seconds.

                          <Client> calls have a maximum timeout of 60 seconds.

                          Twilio always adds a 5-second timeout buffer to your <Dial>, so if you enter a timeout value of 10 seconds, you will see an actual timeout closer to 15 seconds.

                          Back to attributes list


                          Setting the trim attribute to trim-silence will trim leading and trailing silence from your audio files.

                          Trimming a file may cause the duration of the recording to be slightly less than the duration of the call. The trim attribute defaults to do-not-trim.

                          Back to attributes list

                          <Dial> Nouns

                          You may always choose to nest plain text (a string representing a valid phone number) in <Dial> to tell Twilio a phone number to call:

                          <?xml version="1.0" encoding="UTF-8"?>

                          You may also choose to nest nouns within your <Dial> to create connections to other types of devices, conference calls, and call queues.

                          The noun of a TwiML verb describes the phone numbers, endpoints, and API resources you want to take action on. TwiML nouns are whatever the verb (<Dial>, in thise case) acts upon.

                          The following are the nouns that you can use with <Dial>. Each is a nested XML element:

                          名詞 概要

                          Describes a Twilio Client connection.

                          複数の <Client> 名詞を使って、一斉発信もできます。

                          Read the detailed <Client> documentation for detailed information and usage.


                          Describes a conference allowing two or more parties to talk. Connects the active party to a conference call.

                          See the detailed <Conference> documentation for a walkthrough of how to use Twilio's conferencing functionality.


                          Describes a phone number with more complex attributes.

                          This noun allows you to <Dial> another number while specifying additional behavior. Simultaneous dialing is also possible using multiple <Number> nouns.

                          Read the detailed <Number> documentation for more information and usage.


                          Describes a Programmable Wireless SIM connection.

                          See the detailed <Sim> documentation for more information.


                          Describes a SIP connection.

                          See the detailed <Sip> documentation for more information.


                          Identifies a queue that this call should connect to. Allows you to connect the current call to the call waiting at the front of a particular queue.

                          Read the <Queue> documentation for a detailed walkthrough of how to use Twilio's queueing functionality.

                          <Dial> 動詞の中に、これらの名詞のいずれかをネストします。


                                Functionally, the example above behaves exactly like our basic example where we nest a plain-text phone number in our <Dial>. Let's take this TwiML noun nesting one step further.

                                In the following example, we'll specify that we want a dual-channel recording for a <Dial> with a nested <Conference>.

                                This code will forward the active caller into a conference called myteamroom. A dual-channel recording of the call will begin when the ringing begins. After the call ends and the recording is ready, Twilio will send recording information back to example.com:


                                      Using Twimlets

                                      Twimlets は、Twilio がホストする URL で、よく使う機能の小さな集まりです。

                                      • Forward Twimlet は、Twilio 番号への通話を、ユーザーが選んだ別の電話番号に転送します。
                                      • Simulring Twimlet は、複数の電話番号を一斉に呼び出し、最初に応答した人と発信者を接続します。
                                      • 相手が応答するまで、複数の番号を順番に呼び出すには、 Find Me Twimlet を使用します。
                                      Rate this page:


                                      誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。