Queue Call

API for queuing a single outbound call

Please refer to Locating your Application and Deployment ID to get the correct application_id and deployment_Id.

If you plan to queue more than one call at a time, use the Queue Multiple Calls API Method. Looping the Single Call API for individual calls can cause DDoS, which will result in all calls failing.

post
Queuing An Outbound Call

https://fuse.plumvoice.com/api/apps/{application_id}/{deployment_id}/queue
Queue an outbound call
Request
Response
Request
Path Parameters
application_id
required
number
Application ID number
deployment_id
required
number
Deployment ID number
Headers
Content-type
required
string
multipart/form-data
Accept
optional
string
application/x-www-form-urlencoded, application/json
Form Data Parameters
phone_number
required
string
This is the destination phone number for the outbound call. There are multiple ways to format phone numbers. They can include the 'tel:' prefix and/or the ANI and postd suffixes, e.g. ani=8009957586 and/or postd=2. tel:+16175551234;ani=8009957586 (this sets the caller ID) A masking number should be used for outbound calls calls as Fuse do not have a default caller ID value, and shows a destination for the person to respond and return the call.
start_timestamp
optional
string
Unix timestamp indicating when to begin the outbound dialing attempts. If not specified, the calls go out immediately.
end_timestamp
optional
string
Unix timestamp indicating when to stop attempting the outbound call.
max_attempts
optional
integer
Total number of times (integer between 1-10) to attempt calling a specific number (if previous attempts are not completed successfully). This field requires reattempt_wait field to be set.
reattempt_wait
optional
integer
Interval (in seconds) to wait before retrying the outbound call after a failure. This is only required when you set a max_attempts value greater than one, which indicates additional retry attempts. Valid values range from 60 to 86400 (1 minute to 1 day).
metadata
optional
string
JSON object of key⇒value pairs of variables and their related values for use with an application at run time. Ex: {“first_name”:“Steve”,“last_name”:“Smith”} These variables can be access as first_name and last_name respectively within the application.
result_url
optional
string
Callback URL to your REST service that processes the call status results when the call is completed, canceled, or all attempts have been exhausted. The POST body matches the format of the call_details attribute from the outbound call status API response.
is_pci
optional
integer
For customers who have been granted access to our HIPAA / PCI compliant secure environment setting this flag to 1 will cause connected outbound calls to execute within that secure environment. (Integer 0 or 1).
Response
200: OK
Note the 'Link' header. It's possible to use this URI to check the status of the outbound call).
JSON
XML
JSON
<!-- Response Headers -->
HTTP/1.1 200 OK
Date: Mon, 07 Nov 2016 17:03:29 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.2d PHP/5.4.45
X-Powered-By: PHP/5.4.45
Link: https://fuse.plumvoice.com/api/outbound/761
Content-Length: 15
Content-Type: application/json
<!-- Response Body -->
{
"call_id":761
}
XML
<!-- Response Headers -->
HTTP/1.1 200 OK
Date: Mon, 07 Nov 2016 17:05:29 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.2d PHP/5.4.45
X-Powered-By: PHP/5.4.45
Link: https://fuse.plumvoice.com/api/outbound/771
Content-Length: 62
Content-Type: application/xml
<!-- Response Body -->
<?xml version="1.0"?>
<result>
<call_id>771</call_id>
</result>
400: Bad Request
Example: start_timestamp was after the end_timestamp
JSON
XML
JSON
{ "error": "The end_timestamp cannot be earlier than the start_timestamp." }
XML
<?xml version="1.0"?>
<result>
<error>The end_timestamp cannot be earlier than the start_timestamp.</error>
</result>

For more information on result_url, please refer to the documentation here.

Possible Response Codes

  • 200: success, call successfully queued.

  • 400: supplied data improperly formatted or invalid

  • 401: authentication headers invalid or the account is inactive

  • 403: the user attempting to queue the outbound call does not have appropriate permissions

  • 404: deployment not found

  • 405: invalid HTTP method supplied (only POST allowed)

  • 409: user, deployment, or application previously deleted

  • 500: database error

The return structure will contain the following item(s):

Name

Data Type

Always Present

Description

error

string

no

This indicates which error occurred if the HTTP code is not 200.

call_id

int

no

A 200 HTTP code returns this value, which is the unique identifier for an outbound call when the request is successful. Users can use the call_id value to look up call details in the call details API method outlined below.

Note: The returned 'Link' header provides the URI for checking the status of the most recent outbound call attempt.

Sample Code

This sample PHP code makes a request to queue a new outbound call. This triggers an outbound call that goes out immediately and makes a single attempt to connect:

<?php
// account and application settings
$email = '<your_email_address>';
$developer_key = '<your_developer_key>';
$application_id = '<your_application_id>';
$deployment_id = '<your_deployment_id>';
$phone_number = '<phone_number_to_dial>';
// build the URL and POST parameters
$url = 'https://fuse.plumvoice.com/api/apps/'.$application_id.'/'.$deployment_id.'/queue';
$params = array('phone_number'=>$phone_number);
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERPWD, $email.':'.$developer_key);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Accept: application/json", "Content-type: application/x-www-form-urlencoded"));
$result = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
var_dump($result);
var_dump($http_code);