Queuing an Outbound Call

Queuing an Outbound Call

POST https://insight.plumvoice.com/api/surveys/{survey_id}/{instance_id}/queue

Queue an outbound call for an Insight survey.

Path Parameters

NameTypeDescription

survey_id

string

Insight ID number

instance_id

string

Instance number for an Insight survey

Headers

NameTypeDescription

content-type

string

application/x-www-form-urlencoded

Request Body

NameTypeDescription

phone_number

string

The phone number to which the outbound call should be placed. There are multiple ways to format phone numbers. They can include the 'tel:' prefix. ANI and postd suffixes are also valid, e.g. ani=1234567890 and/or postd=1234. Examples of valid numbers include: 6175551234, tel:+16175551234, tel:16175551234;ani=2125551234 (this determines the number the recipient sees), tel:16175551234;ani=2125551234;postd=2 (this determines the number the recipient sees and enters the dtmf tone “2” after the call connects).

start_timestamp

string

Unix timestamp for when to make the outbound call.

end_timestamp

string

Unix timestamp for when to stop attempting to make the outbound call

max_attempts

integer

Number of attempts to be made (if previous attempts are not completed successfully). Integer between 1-10.

reattempt_wait

integer

Interval (in seconds) to wait before retrying the outbound call after a failure. This is only required when you set an max_attempts value greater than one, indicating additional retry attempts.

metadata

array

Array of key⇒value pairs of metadatabase columns and their associated values.

result_url

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 will match the format of the 'call_details' attribute from the outbound call status API response, shown here.

//Headers

HTTP/1.1 200 OK
Date: Wed, 06 May 2015 18:19:13 GMT
Server: Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/0.9.8e-fips-rhel5 PHP/5.4.40
X-Powered-By: PHP/5.4.40
Link: https://insight.plumvoice.com/api/outbound/155761
Content-Length: 33
Content-Type: application/json

//Response body

{'success':true,'call_id':155761}

Possible Response Codes

  • 200: success

  • 400: supplied data improperly formatted or invalid

  • 401: authentication headers invalid or the account is inactive

  • 403: the account attempting to queue the outbound call for the survey does not have appropriate permissions

  • 404: deployment, user or survey was not found

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

  • 409: survey has been marked as deleted, survey deployment has expired, no TTS engine or metadatbase set for the survey, instance_id supplied did not match the current deployment, the number of survey responses has exceeded the max responses set in the survey's deployment settings

  • 415: unsupported media type (Content-Type value in request)

  • 500: database error

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

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

Name

Data Type

Always Present

Description

success

boolean

yes

Indicates the outcome of the request

error

string

no

If the success value is false this provides a message indicating what error(s) occurred

call_id

int

no

The unique identifier for the outbound call when the request is successful. This is the 'call id' value that can be used to look up the call details in the call details API method outlined below.

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
$ch = curl_init();
$url = 'https://insight.plumvoice.com/api/surveys/{survey_id}/{instance_id}/queue';
$params = array(
	'phone_number'=>'desintation_phone_number',
	);
$username = 'you@yourdomain.com';
$password = 'your_developer_key';
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
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);

Last updated