import Tabs from @theme/Tabs; import TabItem from @theme/TabItem; [](./dial.mdx) verbs noun specifies what phone number to dial. You can use up to 10 s within a to simultaneously call several people. The first person to answer the call will be connected to the caller and the rest of the called numbers will be hung up. ## Noun Attributes | Attribute | | | --: | | | sendDigits optional | Play DTMF tones when a call is answered. Useful when dialing numbers with extensions. SignalWire will initially dial the main phone number, then send the DTMF tones for the extension when the automated system answers. | | url optional | A specified URL for a document that runs on the callees end after the dialed number answers but before the call is connected. This allows the caller to provide information to the dialed number, giving them the opportunity to decline the call, before they answer the call. | | method optional | The method attribute specifies whether the request to action is a GET or a POST. Valid values are GET or POST. Default value is POST. | | statusCallbackEvent optional | The current status of the call. The call moves from initiated to ringing when the phone starts ringing. It moves from ringing to answered when the phone call is answered. Finally, it moves from answered to completed when the call is terminated. The status will be set to completed through the following reasons: **busy**, **canceled**, **completed**, **failed**, or **no-answer**. To specify multiple events, separate each one with a space. See [below](#number_statusCallbackEvent) for the different call statuses. | | statusCallback optional | The URL to make requests to for each statusCallbackEvent event. See [below](#number_statusCallback) for request parameters. | | statusCallbackMethod optional | The type of HTTP request to use when requesting a statusCallback. Default is POST. |
### Status values for the statusCallbackEvent attribute {#number_statusCallbackEvent} The statusCallbackEvent attribute has the following call status values: | Value | | | -: | -- | | initiated | Dialing of a call has begun. | | ringing | The call has begun ringing. | | answered | The call has been answered. | | completed | The call has been terminated. The status will be set to completed through the following reasons: **busy**, **canceled**, **completed**, **failed**, or **no-answer**. |
### Request parameters for the statusCallback URL {#number_statusCallback} You can expect several parameters to be present in the request associated to the statusCallback URL. First, you have the [Standard Request Parameters](./index.mdx#request-parameters). Then, you also have the following specific parameters: | Parameter | | | -: | - | | CallDuration integer | A duration, in seconds, of the finished call. | | RecordingUrl string | The URL for the audio recording of the call. Only present when CallStatus is **completed**. | | RecordingSid string | The unique identifier for the recording of the call. Only present when CallStatus is **completed**. | | RecordingDuration integer | The duration, in seconds, of the recorded audio of the call. Only present when CallStatus is **completed**. | | Timestamp string | The timestamp, in RFC 2822 format, of when an event occurred. | | CallbackSource string | The source of the call connection. | ## Examples ### Dialing an Extension xml 123-456-7890 javascript const { RestClient } = require(@signalwire/compatibility-api); const response = new RestClient.LaML.VoiceResponse(); dial = response.dial(); dial.number({ sendDigits: www5645 }, 123-456-7890); console.log(response.toString()); csharp using System; using Twilio.TwiML; using Twilio.TwiML.Voice; class Example { static void Main() { var response = new VoiceResponse(); var dial = new Dial(); dial.Number(123-456-7890, sendDigits: www5645); response.Append(dial); Console.WriteLine(response.ToString());; } } python from signalwire.voice_response import VoiceResponse, Dial, Number response = VoiceResponse() dial = Dial() dial.number(123-456-7890, send_digits=www5645) response.append(dial) print(response) ruby require signalwire/sdk response = Signalwire::Sdk::VoiceResponse.new do |response| response.dial do |dial| dial.number(123-456-7890, send_digits: www5645) end end puts response.to_s After entering the phone number, we want to wait a little before entering in the extension. In order to do this, a w can be placed in front of the extension number. Each w will wait **0.5 seconds** before dialing the extension. In this example, SignalWire will wait **1.5 seconds** before dialing the extension **5645**. ### Concurrent Phone Calls xml 123-456-7890 987-654-3210 102-938-4750 javascript const { RestClient } = require(@signalwire/compatibility-api); const response = new RestClient.LaML.VoiceResponse(); dial = response.dial(); dial.number(123-456-7890); dial.number(987-654-3210); dial.number(102-938-4750); console.log(response.toString()); csharp using Twilio.TwiML; using Twilio.TwiML.Voice; using System; class Example { static void Main() { var response = new VoiceResponse(); var dial = new Dial(); dial.Number(123-456-7890); dial.Number(987-654-3210); dial.Number(102-938-4750); response.Append(dial); Console.WriteLine(response.ToString());; } } python from signalwire.voice_response import VoiceResponse, Dial, Number response = VoiceResponse() dial = Dial() dial.number(123-456-7890) dial.number(987-654-3210) dial.number(102-938-4750) response.append(dial) print(response) ruby require signalwire/sdk response = Signalwire::Sdk::VoiceResponse.new do |response| response.dial do |dial| dial.number(123-456-7890) dial.number(987-654-3210) dial.number(102-938-4750) end end puts response.to_s You can simultaneously call up to 10 s. The first caller to pick up the phone will be connected to the caller and the rest of the called numbers will be hung up. ## Notes on Usage - You can have up to 10 s within a . - If you dial an office number or a phone on airplane mode, the call will be picked up within the first ring and all other calls will be hung up.