Last Updated: 02/02/2017
By: ICT Innovations
Email: info@ictinnovations.com
Thank you for purchasing ICTBroadcast. If you have any questions that are beyond the scope of this help file, please feel free to email via contact form here. Thanks so much!
REST API provides external interface to call some important functions of ICTBroadcast. Let’s say that we are building an application that we want to automatically upload a recording file and then create a campaign to broadcast to a contact group using ICTBroadcast APIs.
Every REST API call requires authentication before calling the web service method. Following function is used by clients to authenticate requests to the REST API. It will also prepare the request and carry the request to REST Web Service. It has two arguments. First argument is the name of the API method, where as second argument takes an array containing the input data to the method. In next section, concrete examples are given to demonstrate how to prepare arguments and then call this function.
Note: for security using SSL is recomemded while using APIs.
function broadcast_api($method, $arguments = array()) {
// update following with proper access info
$api_token = 'some_long_jwt_token-ebc28d0a22997... '; // <=== JWT TOKEN
$service_url = 'http://yourwebsite.com/rest'; // <=== URL for ICTBroadcast REST APIs
$post_data = array();
foreach($arguments as $key => $value) {
if(is_array($value)){
$post_data[$key] = json_encode($value);
} else {
$post_data[$key] = $value;
}
}
$api_url = "$service_url/$method";
$curl = curl_init($api_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $api_token));
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
// enable following line in case, having trouble with certificate validation
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$curl_response = curl_exec($curl);
curl_close($curl);
return json_decode($curl_response);
}
By default ICTBroadcast check user permissions before executing each API request, to confirm if given user (account used to create api token) is valid and have proper rights to perform that specific action. Even each API has unique permission requirement but usually we can divide ICTBroadcast APIs in two main groups, Administrative APIs and User APIs
Following APIs require administrative rights, In client application we need to use token generated for users having permissions to "admin" role
Following APIs can be executed by any valid ICTBroadcast user
This example creates voice recording, then creates a contact group and adds contacts in the contact group. Then finally we'll create and run campaign.
1. First, we will need to upload the recording file.
if (function_exists('curl_file_create')) { // php 5.5+
$file_ref = curl_file_create($wav_file_path);
} else { //
$file_ref = '@' . realpath($wav_file_path);
}
$arguments = array(
'title' => 'myrecording',
'media' => $file_ref
);
$result = broadcast_api('Recording_Create', $arguments);
$recording_id = $result[1];
2. Next, we will need to create a contact group.
$arguments = array('contact_group'=> array('name' => 'mygroup'));
$result = broadcast_api('Contact_Group_Create', $arguments);
$group_id = $result[1];
3. Next, we will need to add contact to above contact group.
$contact = array('phone' => '188887212');
$arguments = array('contact'=>$contact, 'contact_group_id'=> $group_id);
$result = broadcast_api('Contact_Create', $arguments);
$contact = $result[1];
4. Finally, we will create a campaign that will broadcast our recording file (created in step 1) to contacts (created in step 2 &3).
$campaign = array(
'contact_group_id' => $group_id,
'message' => $recording_id,
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Create', $arguments);
$campaign_id = $result[1];
print_r("Campaign created successfully with ID: " . $campaign_id);
So the final code that will create a campaign to dial a contact 188887212 will look like:
<?php
if (function_exists('curl_file_create')) { // php 5.5+
$file_ref = curl_file_create($wav_file_path);
} else { //
$file_ref = '@' . realpath($wav_file_path);
}
$arguments = array(
'title' => 'myrecording',
'media' => $file_ref,
);
$result = broadcast_api('Recording_Create', $arguments);
$recording_id = $result[1];
$arguments = array('contact_group'=> array('name' => 'mygroup'));
$result = broadcast_api('Contact_Group_Create', $arguments);
$group_id = $result[1];
$contact = array('phone' => '188887212');
$arguments = array('contact'=>$contact, 'contact_group_id'=> $group_id);
$result = broadcast_api('Contact_Create', $arguments);
$contact = $result[1];
$campaign = array(
'contact_group_id' => $group_id,
'message' => $recording_id,
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r("Campaign created successfully with ID: " . $campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
function broadcast_api($method, $arguments = array()) {
$api_url = 'http://yourwebsite.com/rest';
$api_token = 'some_long_jwt_token-ebc28d0a22997... '; // <=== JWT TOKEN
$service_url = "$api_url/$method";
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $api_token));
curl_setopt($curl, CURLOPT_POST, true);
foreach($arguments as $key=> $value) {
if(is_array($value)){
$arguments[$key] = json_encode($value);
}
}
curl_setopt($curl, CURLOPT_POSTFIELDS, $arguments);
$curl_response = curl_exec($curl);
curl_close($curl);
return json_decode($curl_response);
}
?>
Following are REST API methods, arguments required by these methods and how to call these methods from client script. For all these methods, authentication and request preparation will be performed by broadcast_api() function that is defined at the start of this document. This should be available while calling any of the following methods.
Following are a set of REST APIs that are user account specific. These APIs allows to update user password and sessions. Complete list is given below:
i. Account_Password_Update
ii. Account_Session
iii. Account_Session_Destroy
This function update user password in ICTBroadcast.
<?php
$arguments = array('usr_id' => 5, 'newpass' => 'newpass', 'pincode' => '2342');
$result = broadcast_api('Account_Password_Update', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function initiate a new session in ICTBroadcast and then return its ID. later this ID can be used for authentications, like for single sign-on
<?php
$arguments = array('login_user' => 'myuser', 'login_pass'=> 'newpass');
$result = broadcast_api('Account_Session', $arguments);
if($result[0] == true) {
print_r($result[1]);
$session_id = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function delete a session from ICTBroadcast, can be used to log off an active user.
<?php
$arguments = array('session_id' => '2342');
$result = broadcast_api('Account_Session_Destroy', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Regarding campaign APIs following is a list of some common campaign related parameters along with supported / sample value
Required parameters: User have to provide following paraters while creating new campaigns
Following are a set of REST APIs that are campaign specific. These APIs allows to create campaign, get campaign status, start campaign, stop campaign, campaign summary etc.
i. Campaign_Status
ii. Campaign_Start
iii. Campaign_Schedule
iv. Campaign_Stop
v. Campaign_Delete
vi. Campaign_Contact_Create
vii. Campaign_Contact_Import
viii.Campaign_Channel_Update
ix. Campaign_Summary
x. Campaign_List_Summary
xi. Campaign_Report
xii. Campaign_Result
xiii.Campaign_AMD_DNC
xiv. Campaign_Create
xv. Campaign_IVR_Create
xvi. Campaign_AppointmentReminder_Create
xvii.Campaign_Agent_Create
xviii.Campaign_Interactive_Create
xix. Campaign_Fax_Create
xx. Campaign_SMS_Create
xxi. Campaign_Email_Create
xxii.Campaign_Clone
xxiii.Campaign_Member_Add
xxiv.Campaign_Member_Remove
xxv.Campaign_Cancel_Pending
xxvi.Campaign_Contact_Save
xxvii. Campaign_Contact_Retry
This function returns the status (e.g. running, scheduled, completed etc) of the campaign whose ID is given.
<?php
$arguments = array('campaign_id'=>$campaign_id);
$result = broadcast_api('Campaign_Status', $arguments);
if($result[0] == true) {
$status = $result[1];
} else {
$status = 'Campaign not found';
}
print_r($status);
?>
This function starts a campaign whose ID is given.
<?php
$arguments = array('campaign_id'=>$campaign_id);
$result = broadcast_api('Campaign_Start', $arguments);
print_r($result[1]);
?>
This function creates schedule of a campaign whose ID is given. Campaign should be in pending state for successful creation of schedules.
<?php
$arguments = array(
'campaign_id' => $campaign_id,
'weekdays' => '1,2,3,4,5', // 1 (for sunday) to 7 (for saturday)
'start_time' => array('hour'=>10, 'minute'=>40), // sets start_time = 10:40am
'stop_time' => array('hour'=>18, 'minute'=>20), // sets stop_time = 6:20pm
);
$result = broadcast_api('Campaign_Schedule', $arguments);
$result = $result[1];
print_r($result);
?>
This function stops a campaign whose ID is given.
<?php
$arguments = array('campaign_id'=>$campaign_id);
$result = broadcast_api('Campaign_Stop', $arguments);
print_r($result[1]);
?>
This function stops and deletes/removes a campaign whose ID is given.
<?php
$campaign_id = 12;
$arguments = array('campaign_id' => $campaign_id);
$result = broadcast_api('Campaign_Delete', $arguments);
if($result) {
$result = $result[1];
print_r($result);
}
?>
This function adds a given contact that will be dialed by the campaign whose ID is given.
<?php
$contact = array(
'phone' => '12345678',
'first_name'=>'first',
'last_name'=>'last',
'email'=> 'test@test.com'
);
$arguments = array('contact'=>$contact, 'campaign_id'=>$campaign_id, 'schedule_time'=> 1564498700, 'expiry' => 1564499999);
$result = broadcast_api('Campaign_Contact_Create', $arguments);
if($result[0] == true) {
$contact_id = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function import contact from csv file (or from existing contact group) into given campaign.
<?php
$arguments = [
'campaign_id' => 2,
'type' => 'file',
'source_file' => new CURLFile('contact.csv', 'text/csv', 'contact.csv')
];
$result = broadcast_api('Campaign_Contact_Import', $arguments);
if($result[0] == true) {
$contact_count = $result[1];
print_r($contact_count);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function update concurrent channel limit for given campaign.
<?php
$arguments = array('campaign_id' => 1, 'channel'=> 10);
$result = broadcast_api('Campaign_Channel_Update', $arguments);
if($result[0] == true) {
$result = $result[1];
print_r($result);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function returns the summary of the campaign. It will list status (live person, machine,busy, congestion, no-response, failed) of each contact in the campaign.
<?php
$arguments = array('campaign_id'=>$campaign_id, 'usr_id'=>$usr_id, 'time_start'=>$time_start, 'time_end'=>$time_end);
$result = broadcast_api('Campaign_Summary', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function display all the campaigns based on the date created.
<?php
$arguments = array('campaign_id'=>$campaign_id, 'usr_id'=>$usr_id, 'time_start'=>$time_start, 'time_end'=>$time_end);
$result = broadcast_api('Campaign_List_Summary', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function returns detail report of a campaign. Campaign report have all common fields of all types of campaign in addition it also provide extra fields which are special to each type of campaign
<?php
$arguments = array('campaign_id'=>$campaign_id);
$result = broadcast_api('Campaign_Report', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function returns detail results of a campaign. Campaign summary have same set of returned data fields for all types of campaign. But this function returns all the contacts that are dialed and returns the response of that contact.
<?php
$arguments = array('campaign_id'=>$campaign_id, 'usr_id'=>$usr_id, 'status' => 'completed');
$result = broadcast_api('Campaign_Result', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function will return contacts that are dialed by campaign where AMD is detected or where DNC option is selected by the call recipient.
<?php
$arguments = array('campaign_id'=>$campaign_id, 'usr_id'=>$usr_id, 'status' => 'completed');
$result = broadcast_api('Campaign_AMD_DNC', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a message (voice) campaign. It requires a recording message and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1, // contact_group_id
'message' => 1, // recording_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates an IVR campaign. It requires an IVR and a contact group. IVR should already be created from IVR Designer and its ID be provided to this API.
<?php
$campaign = array(
'contact_group_id' => 1, // contact_group_id
'message' => 1, // ivr_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_IVR_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates an appointment reminder campaign. It requires a reminder message (IVR message) and a contact group. Reminder Message should already be created from Message Designer.
<?php
$campaign = array(
'contact_group_id' => 1,
'message' => 1, // ivrmessage_id
'appointment_type' => 'individual', // or 'group'
'appointment_start_field'=> '1', // or '2' or '3'. Not required if appointment_type=group
'reminder_schedule_time' => '24', // No. of hours. Not required if appointment_type=group
'reminder_expiry' => '2', // No. of hours. Not required if appointment_type=group
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_AppointmentReminder_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates an agent campaign. It requires an extension and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1,
'extension_key' => '0', // any value from 0 to 7
'extension_id' => '1', // extension_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Agent_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates an interactive campaign. It requires a recording message and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1,
'message' => 1, // recording_id
'extension_key' => '0', // any value from 0 to 7
'extension_id' => '1', // extension_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Interactive_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a fax campaign. It requires a document message and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1,
'message' => 1 // document_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Fax_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a SMS campaign. It requires a text message and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1,
'message' => 1 // text_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_SMS_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a Email campaign. It requires a email template message and a contact group to run campaign.
<?php
$campaign = array(
'contact_group_id' => 1,
'message' => 1 // template_id
);
$arguments = array('campaign'=>$campaign);
$result = broadcast_api('Campaign_Email_Create', $arguments);
if($result[0] == true) {
$campaign_id = $result[1];
print_r($campaign_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
When user is required to repeat a certain campaign, using this function user can create a clone of the existing campaign, and user can override the previous campaign setting(Agent Script, Popup URL, Skill Group or Agent extension, Dialing Method, Timeout, Start campaign, Start day, Start hour, Start minute, Start weekday) and then using the new campaign id from results, user can start the newly created campaign immediately and on schedule, which will be an exact copy of the given old campaign.
<?php
$campaign = array(
'dialogue_id' => 2,
'extension_id' => 0,
'start_campaign' => 'schedule',
'start_weekday' => '1,2,3,4,5', // 1 (for sunday) to 7 (for saturday)
'start_hour' => '10',
'start_minute' => '10',
'start_day' => '*'
);
$arguments = array('campaign_id' => 1, 'campaign'=>$campaign);
$result = broadcast_api('Campaign_Clone', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function used to add members in a campaign
<?php
$arguments = array('campaign_id' => 342, 'extension_id'=>1);
$result = broadcast_api('Campaign_Member_Add', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
when user want to remove member from the campaign.
<?php
$arguments = array('campaign_id' => 342, 'extension_id'=>1);
$result = broadcast_api('Campaign_Member_Remove', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function will cancel all pending contact from the provided campaign.
<?php
$arguments = array('campaign_id' => 1);
$result = broadcast_api('Campaign_Cancel_Pending', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function can be used to filter and export contacts from the result of a given campaign.
'general_all'
'general_all_completed'
'general_all_failed'
'general_all_ignored'
'general_all_ignored_canceled'
'general_all_ignored_blocked'
'general_all_ignored_expired'
'general_all_ignored_number'
'general_all_pending'
'general_all_pending-retry'
'general_all_failed_busy'
'general_all_failed_no-answer'
'general_all_failed_congestion'
'general_all_failed_other'
'general_all_completed_delivered'
'general_all_completed_accepted'
'general_all_completed_undelivered'
'general_all_completed_rejected'
'general_all_completed_no-response'
'general_all_completed_unknown'
'voice_dnc'
'voice_amd'
'voice_amd_human'
'voice_amd_machine'
'voice_amd_notsure'
'voice_transferred'
'voice_transferred'
'voice_transferred'
'voice_yes'
'voice_no'
'voice_transferred'
'voice_yes'
'voice_no'
<?php
$selection = array(
'general_all_completed'
);
$contact_group = array(
'name' => 'mygroup',
'description' => 'mygroup description'
);
$arguments = array('campaign_id' => 1, 'selection' => $selection, 'contact_group' => $contact_group);
$result = broadcast_api('Campaign_Contact_Save', $arguments);
if($result[0] == true) {
$result = $result[1];
print_r($result);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function can be used to filter and re-attempt selected contacts from the given campaign.
<?php
$selection = array(
'general_all_completed'
);
$arguments = array('campaign_id' => 1, 'selection' => $selection);
$result = broadcast_api('Campaign_Contact_Retry', $arguments);
if($result[0] == true) {
$result = $result[1];
print_r($result);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are contact specific. These APIs allows to create contact, delete contact, create contact group, and show contact group list.
i. Contact_Create
ii. Contact_Import
iii. Contact_Delete
iv. Contact_List
v. Contact_Group_Create
vi. Contact_Group_Update
vii. Contact_Group_List
viii. Contact_Group_Clean
ix. Contact_DNC_Delete
x. Contact_DNC_List
xi. Contact_DNC_Create
xii. Contact_DNC_Import
xiii. Contact_Import_Custom_Csv
This function creates a new contact in a group whose contact_group_id is provided while calling this method.
<?php
$contact = array(
'phone' => '12345678',
'first_name'=>'first',
'last_name'=>'last',
'email'=> 'test@test.com'
);
$arguments = array('contact'=>$contact, 'contact_group_id'=> $group_id);
$result = broadcast_api('Contact_Create', $arguments);
if($result[0] == true) {
$contact_id = $result[1];
print_r($contact_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function import contact from csv file (or from existing contact group) into given contact group.
<?php
$arguments = [
'contact_group_id' => 2,
'type' => 'file',
'source_file' => new CURLFile('path/contact.csv', 'text/csv', 'contact.csv')
];
$result = broadcast_api('Contact_Import', $arguments);
if($result[0] == true) {
$contact_count = $result[1];
print_r($contact_count);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes a contact from all contact groups.
<?php
$arguments = array('contact_id'=> $contact_id);
$result = broadcast_api('Contact_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function lists all the contacts as per given search pattern.
<?php
$search = array('email' => '@gmail.com', 'contact_group_id' => 2);
$arguments = array('search'=> $search);
$result = broadcast_api('Contact_List', $arguments);
if($result[0] == true) {
$contact_list = $result[1];
foreach ($contact_list as $contact) {
print_r($contact);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a new contact groups.
<?php
$arguments = array('contact_group'=> array('name' => 'mygroup'));
$result = broadcast_api('Contact_Group_Create', $arguments);
if($result[0] == true) {
$contact_group_id = $result[1];
print_r($contact_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a new contact groups.
<?php
$arguments = array('contact_group_id' => 1, 'contact_group'=> array('name' => 'mygroup'));
$result = broadcast_api('Contact_Group_Update', $arguments);
if($result[0] == true) {
print_r("Group updated successfully");
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function lists all the contact groups of a user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('Contact_Group_List', $arguments);
if($result[0] == true) {
$list = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Using this function user can filter contact the contact group. User can delete unwanted contacts from the given contact group.
<?php
$contact_group_clean = array(
'contact_group_id' => '1056',
'cnam_invalid' => '',
'cnam_service_type' => '',
'cnam_ported' => '',
'invalid_phone' => '',
'invalid_email' => '',
'dnc' => '',
'duplicate' => 'phone',
'duplicate_copy' => 'new'
);
$arguments = array('contact_group_clean' => $contact_group_clean);
$result = broadcast_api('Contact_Group_Clean', $arguments);
if($result[0] == true) {
$msg = $result[1];
print_r($msg);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes (a single or multiple) DNC contacts from users DNC list.
<?php
$number = array(
'1444444444',
'1888654432',
);
$arguments = array('number'=> $number);
$result = broadcast_api('Contact_DNC_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function lists all the DNC contacts as per given search pattern.
<?php
$search = array('email' => '@gmail.com');
$arguments = array('search'=> $search);
$result = broadcast_api('Contact_DNC_List', $arguments);
if($result[0] == true) {
$dnc_list = $result[1];
foreach ($dnc_list as $contact) {
print_r($contact);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a new contact in DNC / Don't call list.
<?php
$dnc_contact = array(
'phone' => '12345678',
'first_name'=>'first',
'last_name'=>'last',
'email'=> 'test@test.com'
);
$arguments = array('contact_dnc'=>$dnc_contact, 'is_global'=> false);
$result = broadcast_api('Contact_DNC_Create', $arguments);
if($result[0] == true) {
$contact_dnc_id = $result[1];
print_r($contact_dnc_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function import contact into DNC list from csv file (or from existing contact group).
<?php
$arguments = [
'type' => 'file',
'source_file' => new CURLFile('path/contact_dnc.csv', 'text/csv', 'contact_dnc.csv'),
'is_global' => false
];
$result = broadcast_api('Contact_DNC_Import', $arguments);
if($result[0] == true) {
$contact_count = $result[1];
print_r($contact_count);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
In contrast to Contact_Import API, this function can import contact from non-standard CSV files (i.e those files which are using non-standard column order).
$csvLayout = array(
'terminated_by' => ',',
'enclosed_by' => '"',
'rows_to_skip' => '0',
'csv_columns' => array(
'1' => 'phone',
'2' => 'first_name',
'3' => 'last_name',
'4' => 'email',
'5' => 'address',
'6' => 'custom1',
'7' => 'custom2',
'8' => 'custom3',
'9' => 'custom4',
'10' => 'custom5',
'11' => 'custom6',
'12' => 'custom7',
'13' => 'custom8'
)
);
<?php
$csvLayout = array(
'terminated_by' => ',',
'csv_columns' => array(
'1' => 'first_name',
'2' => 'last_name',
'3' => 'phone',
'4' => 'email',
'5' => 'custom1',
'6' => 'custom2'
)
);
$arguments = [
'contact_group_id' => 47,
'csv_layout' => $csvLayout,
'source_file' => new CURLFile('path/contact.csv', 'text/csv', 'contact.csv')
];
$result = broadcast_api('Contact_Import_Custom_Csv', $arguments);
if($result[0] == true) {
$contact_count = $result[1];
print_r($contact_count);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are recording specific. These APIs allows to create recording, show list of available recording.
i. Recording_Create
ii. Recording_List
This function creates a new recording.
<?php
if (function_exists('curl_file_create')) { // php 5.5+
$file_ref = curl_file_create($wav_file_path);
} else { //
$file_ref = '@' . realpath($wav_file_path);
}
$arguments = array('title'=> 'myrecording', 'media'=> $file_ref);
$result = broadcast_api('Recording_Create', $arguments);
if($result[0] == true) {
$recording_id = $result[1];
print_r($recording_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function lists all the recording of a user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('Recording_List', $arguments);
if($result[0] == true) {
$list = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are document specific. These APIs allows to create fax document, show list of available documents.
i. Document_Create
ii. Document_List
This function creates a new document.
<?php
if (function_exists('curl_file_create')) { // php 5.5+
$file_ref = curl_file_create($pdf_or_tiff_file_path);
} else { //
$file_ref = '@' . realpath($pdf_or_tiff_file_path);
}
$arguments = array('title' => 'mydocument', 'media' => $file_ref);
$result = broadcast_api('Document_Create', $arguments);
if($result[0] == true) {
$document_id = $result[1];
print_r($document_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function lists all the document of a user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('Document_List', $arguments);
if($result[0] == true) {
$list = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are text specific. These APIs allows to create text for sms messages, show list of available text messages.
i. Text_Create
ii. Text_List
This function creates a new text message.
<?php
$arguments = array('name'=> 'mytext', 'description'=> 'mytest', 'data' => 'please call back');
$result = broadcast_api('Text_Create', $arguments);
if($result[0] == true) {
$text_id = $result[1];
print_r($text_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function lists all text messages saved by current user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('Text_List', $arguments);
if($result[0] == true) {
$list = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are Email template specific. These APIs allows to create email templates, show list of available template.
i. Template_Create
ii. Template_Attachment_Add
iii.Template_List
This function creates a new template.
<?php
$arguments = array(
'name' => 'mytemplate',
'description' => 'my message',
'subject' => 'A test email',
'body' => '<h1>Only a single Headline</h1>'
'body_alt' => 'Only a single Headline'
);
$result = broadcast_api('Template_Create', $arguments);
if($result[0] == true) {
$template_id = $result[1];
print_r($template_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function attach given file with existing template.
<?php
$arguments = array('name'=> 'test.jpg', 'attachment'=> '@path/test.jpg);
$result = broadcast_api('Template_Attachment_Add', $arguments);
if($result[0] == true) {
$template_attachment_id = $result[1];
print_r($template_attachment_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function lists all the template of a user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('Template_List', $arguments);
if($result[0] == true) {
$list = $result[1];
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are user specific. These APIs allows to create user, update user, get user list, user login and logout, and many more. Complete list is given below:
i. User_Create
ii. User_Update
iii. User_Password_Update
iv. User_List
v. User_Get
vi. User_Delete
vii. User_Login
viii.User_Logout
ix. User_Extension_Create
ix. User_Extension_List
x. User_Role_List
xi. User_Credit_Get
xii. User_Payment_Create
xiii.User_Payment_List
xiv. User_Permission_Create
xv. User_Permission_Delete
xvi. User_Timeslot_Update
xvii.User_Subscription_Create
xviii.User_Subscription_Update
xix. User_Quota_Create
xx. User_Quota_Delete
This function creates a new user in ICTBroadcast.
<?php
$user = array(
'username' => 'myuser',
'passwd' =>'test',
'active' => 1,
'role_id' => 2, // role_id for user
'first_name'=> 'Name 1',
'last_name' => 'Test 1',
'company' => 'My company',
);
$arguments = array('user'=> $user);
$result = broadcast_api('User_Create', $arguments);
if($result[0] == true) {
$user_id = $result[1];
print_r($user_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a new user in ICTBroadcast.
<?php
$user = array(
'username' => 'myuser',
'passwd' =>'test',
'email' => 'email@email.com',
);
$arguments = array('usr_id' => 5, 'user'=> $user);
$result = broadcast_api('User_Update', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function update password and pincode in ICTBroadcast for given user.
<?php
$arguments = array('usr_id' => 5, 'newpass' => 'newpass', 'pincode' => '2342');
$result = broadcast_api('User_Password_Update', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function list all the users in ICTBroadcast.
<?php
$arguments = array();
$result = broadcast_api('User_List', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function searches user from ICTBroadcast users.
<?php
$arguments = array('search'=> 'email', 'value'=> 'email@email.com');
$result = broadcast_api('User_Get', $arguments);
if($result[0] == true) {
$result = $result[1];
print_r($result);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes a user from ICTBroadcast.
<?php
$usr_id = 5;
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('User_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function logs-in a user through REST API. This is useful for single sign-on feature.
<?php
$arguments = array('usr_id'=> 5);
$result = broadcast_api('User_Login', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function logs-out a user through REST API. Calling this function will destroy users session on the server.
<?php
$arguments = array('usr_id'=> 5);
$result = broadcast_api('User_Logout', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates an extension and assigns it to the user whose Id is provided in function call.
<?php
$extension = array(
'name' => '12345',
'secret' =>'test',
);
$arguments = array('usr_id'=> 5, 'extension'=> $extension);
$result = broadcast_api('User_Extension_Create', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function list extensions assigned to the user whose Id is provided in function call.
<?php
$arguments = array('usr_id'=> 5);
$result = broadcast_api('User_Extension_List', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function list all the roles defined in ICTBroadcast.
<?php
$arguments = array();
$result = broadcast_api('User_Role_List', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function returns credit of ICTBroadcast user whose ID is provided.
<?php
$arguments = array(
'usr_id' => 2,
);
$result = broadcast_api('User_Credit_Get', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function creates a payment from a user whose id is provided. This payment amount will credited into that user's account.
<?php
$arguments = array(
'usr_id' => 5,
'value' => 500,
'type' => 'cash',
'description' => 'Paid cash amount');
$result = broadcast_api('User_Payment_Create', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function list of all the payments made by a user.
<?php
$arguments = array('usr_id'=> $usr_id);
$result = broadcast_api('User_Payment_List', $arguments);
if($result[0] == true) {
$paymentList = $result[1];
foreach ($paymentList as $payment) {
print_r($payment);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function assigns a permission to the user whose ID is provided.
<?php
$arguments = array(
'usr_id' => 5,
'permission' => 'ivr_edit',
);
$result = broadcast_api('User_Permission_Create', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function remove a permission of the user whose ID is provided.
<?php
$arguments = array(
'usr_id' => 5,
'permission' => 'ivr_edit',
);
$result = broadcast_api('User_Permission_Delete', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function update settings of allowed timeslot and weekdays to the user whose ID is provided.
<?php
// From 8:30 AM to 5:00 PM
$timeslot = array(
'from_hour' => 8,
'from_minute' => 30,
'to_hour' => 17,
'to_minute' => 0
);
// From Mon-to-Fri
$weekday = array(2,3,4,5,6);
$arguments = array(
'usr_id' => 5,
'timeslot' => 'weekday',
'weekday' => $weekday
);
$result = broadcast_api('User_Timeslot_Update', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function allows to create new package subscription for the user whose ID is provided.
<?php
$arguments = array(
'usr_id' => 5,
'package_id' => 1,
);
$result = broadcast_api('User_Subscription_Create', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function allows to enable / disable or change other parameters for existing subscription whose ID is provided.
<?php
// disable a subscription, use 1 to enable it back
$subscription = array(
'active' => 0
);
$arguments = array(
'usr_id' => 5,
'subscription' => $subscription,
);
$result = broadcast_api('User_Subscription_Update', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Create quota of specific resource for user without bothering with subcription, useful incase no renewal or expiry is appliceable
<?php
$quota => array(
'resource_id' => 2,
'quota_limit' => 400
);
$arguments = array(
'usr_id' => 5,
'quota' => $quota,
);
$result = broadcast_api('User_Quota_Create', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Delete an existing quota entry
<?php
$arguments = array(
'quota_id' => 5
);
$result = broadcast_api('User_Quota_Delete', $arguments);
if($result[0] == true) {
print_r($result[1]);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are DID management specific. These APIs allows to create did, delete did, update dids.
i. Did_Create
ii. Did_Delete
iii.Did_Update
iv. Did_List
This function creates a new DID.
<?php
$did = array(
'name' => '12345678',
'description' => 'test did'
);
$arguments = array('did'=>$did);
$result = broadcast_api('Did_Create', $arguments);
if($result[0] == true) {
$did_id = $result[1];
print_r($did_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes a did
<?php
$arguments = array('did_id'=> $did_id);
$result = broadcast_api('Did_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function lists all the dids as per given search pattern.
<?php
$search = array('name' => '4345', 'description' => 'test');
$arguments = array('search'=> $search);
$result = broadcast_api('Did_List', $arguments);
if($result[0] == true) {
$did_list = $result[1];
foreach ($did_list as $did) {
print_r($did);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are Extension management specific. These APIs allows to create extension, delete extension, update extensions.
i. Extension_Create
ii. Extension_Delete
iii.Extension_Update
iv. Extension_List
v. Extension_Member_Add
vi. Extension_Member_Remove
This function creates a new Extension.
<?php
$extension = array(
'name' => '12345678',
'description' => 'test extension'
);
$arguments = array('extension'=>$extension);
$result = broadcast_api('Extension_Create', $arguments);
if($result[0] == true) {
$extension_id = $result[1];
print_r($extension_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes a extension
<?php
$arguments = array('extension_id'=> $extension_id);
$result = broadcast_api('Extension_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function lists all the extensions as per given search pattern.
<?php
$search = array('name' => '4345', 'description' => 'test');
$arguments = array('search'=> $search);
$result = broadcast_api('Extension_List', $arguments);
if($result[0] == true) {
$extension_list = $result[1];
foreach ($extension_list as $extension) {
print_r($extension);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function add the members.
<?php
$arguments = array('queue_id' => 11, 'extension_id'=>52);
$result = broadcast_api('Extension_Member_Add', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function remove the members.
<?php
$arguments = array('queue_id' => 11, 'extension_id'=>52);
$result = broadcast_api('Extension_Member_Remove', $arguments);
if($result[0] == true) {
$data = $result[1];
print_r($data);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
Following are a set of REST APIs that are Access Number management specific. These APIs allows to create accessnumber, delete accessnumber, update accessnumbers.
i. Accessnumber_Create
ii. Accessnumber_Delete
iii.Accessnumber_Update
iv. Accessnumber_List
This function creates a new Access Number.
<?php
$accessnumber = array(
'name' => '12345678',
'description' => 'test accessnumber'
);
$arguments = array('accessnumber'=>$accessnumber);
$result = broadcast_api('Accessnumber_Create', $arguments);
if($result[0] == true) {
$accessnumber_id = $result[1];
print_r($accessnumber_id);
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
This function removes a accessnumber
<?php
$arguments = array('accessnumber_id'=> $accessnumber_id);
$result = broadcast_api('Accessnumber_Delete', $arguments);
$msg = $result[1];
print_r($msg);
?>
This function lists all the accessnumbers as per given search pattern.
<?php
$search = array('name' => '4345', 'description' => 'test');
$arguments = array('search'=> $search);
$result = broadcast_api('Accessnumber_List', $arguments);
if($result[0] == true) {
$accessnumber_list = $result[1];
foreach ($accessnumber_list as $accessnumber) {
print_r($accessnumber);
}
} else {
$errmsg = $result[1];
print_r($errmsg);
}
?>
ICTBroadcast Team