Общие вопросы по API ВАТС MANGO OFFICE

Функции API Виртуальной АТС

  • Уведомление о входящем звонке
  • Совершение исходящего звонка
  • Получение истории звонков
  • Получение записей разговоров
  • Перемаршрутизация звонков
  • Перехват звонков
  • Получение списка и контактов сотрудников
  • Групповой звонок с автоматическим выбором свободного оператора
  • Выбор линии АТС для исходящего звонка
  • Уведомление о нажатиях DTMF клавиш

С помощью этих функций вы получите и используете записи разговоров так, как это нужно вам в принятых бизнес-процессах и в используемых приложениях. Например, прослушивание разговоров из вашей CRM или формирование архива записей избранных звонков для обучения сотрудников.

Использование функции описано в технической документации API MANGO OFFICE, примерах использования (см. ниже) и дополнительных примерах:
(Раскрыть) Запрос на звонок


<?php
$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свой ключ
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свою подпись
$url = 'https://app.mango-office.ru/vpbx/commands/callback';
$data = array(
"command_id" => "ID" . rand(10000000,99999999),
"from" => array(
"extension" => "101", // внутренний номер, за счет которого производится звонок. (например 101)

"number" => "sip:example@example.mangosip.ru" // <- кто звонит (можно SIP)
// "number" => "74951234567" // <- (можно номер)

) ,
"to_number" => "74950001122" // <- кому звонит
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести результат команды
?>

(Раскрыть) Запрос на звонок с подстановкой определенного номера DID из личного кабинета

<?php
$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свой ключ
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свою подпись
$url = 'https://app.mango-office.ru/vpbx/commands/callback';
$data = array(
"command_id" => "ID" . rand(10000000,99999999),
"from" => array(
"extension" => "101", // внутренний номер сотрудника, за счет которого производится звонок. (например 101)
"number" => "sip:example@example.mangosip.ru" // <- кто звонит (можно SIP)
//"number" => "74950001122" // <- (можно мобильный/городской номер)

) ,
"to_number" => "74950007788", // <- кому позвонить
"line_number" => "74950000666" // <- какой АОН
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести результат команды
?>
(Раскрыть) Запрос на групповой звонок

<?php
$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свой ключ
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свою подпись
$url = 'https://app.mango-office.ru/vpbx/commands/callback_group';
$data = array(
"command_id" => "ID" . rand(10000000,99999999),
"from" => "222", // <- внутренний номер группы
"to" => "79260001122", // <- кому звонить (номер клиента)
"line_number" => "74957777777" // <- номер линии (АОН)
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести результат команды

?>
(Раскрыть) Запрос истории

<?php

$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // указать свой ключ
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxx'; // указать свою подпись
$url = 'https://app.mango-office.ru/vpbx/stats/request';
$data = array(
"date_from" => "1481630491",
"date_to" => "1481734491",
"from" => array(
"extension" => "",
"number" => ""
) ,
"to" => array(
"extension" => "",
"number" => ""
),
"fields" => "records,start,finish,answer,from_extension,from_number,to_extension,to_number,disconnect_reason,line_number,location,entry_id"
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = json_decode (curl_exec($ch));
curl_close($ch);
//echo "RESPONSE = " . $response;
// ключ получили в переменную $респонс


//теперь с ключом запрос на получение массива данных статистики вызовов
$url_result = 'https://app.mango-office.ru/vpbx/stats/result';
$data_result = $response;
$json_result = json_encode($data_result);
$sign_result = hash('sha256', $api_key . $json_result . $api_salt);
$post_data_result =array(
'vpbx_api_key' => $api_key,
'sign' => $sign_result,
'json' => $json_result
);
//echo "
sign=" . $sign_result;
$post_result = http_build_query($post_data_result);
$ch_result = curl_init($url_result);
curl_setopt($ch_result, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch_result, CURLOPT_POST, 1);
curl_setopt($ch_result, CURLOPT_POSTFIELDS, $post_result);
$history_data = curl_exec($ch_result);
curl_close($ch_result);
//echo "

HISTORY :
" . $history_data ;
echo $history_data; // вывести полученную историю
?>
(Раскрыть) Запрос на получение записи

<?php

$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свой ключ
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // вставить свою подпись
$url = 'https://app.mango-office.ru/vpbx/queries/recording/post/';
$data = array(
"recording_id" => "MTo4MzE0NjoyODU4NzI0NjQ1OjA=", // <- идентификатор записи (можно взять из уведомления о записи или из статистики вызовов)
"action" => "download" // <- скачать ("play" - проиграть)
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HEADER,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); // отключить автоматический редирект по ссылке

$response = curl_exec($ch);
curl_close($ch);
//echo $response;

$link = substr($response, strripos($response,'location') + 9);
echo $link; // вывести ссылку на mp3

?>
(Раскрыть) Запрос на получение всех сотрудников

<?php

$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$url = 'https://app.mango-office.ru/vpbx/config/users/request';
$data = array(
); // $data оставляем пустой если нужны все сотрудники.
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести сотрудников

?>
(Раскрыть) Запрос на получение сотрудника 27

<?php

$api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$api_salt = 'xxxxxxxxxxxxxxxxxxxxxxxxx';
$url = 'https://app.mango-office.ru/vpbx/config/users/request';
$data = array(
"extension" => "27" // добавочный номер сотрудника 27
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести сотрудника

?>
(Раскрыть) Запрос на отправку смс

<?php

$api_key = 'хххххххххххххххххххххххххххххххххх'; // Уникальный код вашей АТС
$api_salt = 'хххххххххххххххххххххххххххххххххх'; // Ключ для создания подписи
$url = 'https://app.mango-office.ru/vpbx/commands/sms';
$data = array(
"command_id" => "ID" . rand(10000000,99999999), // идентификатор команды
"from_extension" => "101", // внутренний номер сотрудника
"text" => "Example php SMS Send", // текст смс
"to_number" => "74950001122", // кому отправить смс
"sms_sender" => "" // ОБЯЗАТЕЛЬНЫЙ ПАРАМЕТР. имя отправителя. Если не заполнено - будет использоваться имя отправителя, выбранное в ЛК.
);
$json = json_encode($data);
$sign = hash('sha256', $api_key . $json . $api_salt);
$postdata = array(
'vpbx_api_key' => $api_key,
'sign' => $sign,
'json' => $json
);
$post = http_build_query($postdata);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$response = curl_exec($ch);
curl_close($ch);
echo $response; // вывести результат

?>
Адреса, с которых API отправляет на внешние системы уведомления: 81.88.80.132, 81.88.80.13381.88.82.36
Адрес для запросов к API: 81.88.85.67
На вашем сетевом оборудование откройте доступ к: 81.88.82.36
Услуги записи разговоров тарифицируются в зависимости от версии Виртуальной АТС.

Подключить API вы можете в личном кабинете. Получить больше информации обо всех особенностях и возможностях API вы можете на странице Подключение по API

npm библиотека для API Виртуальной АТС. Смотреть подробнее.

Примечание: техническая поддержка MANGO OFFICE не предоставляет консультацию по использованию вышеупомянутой npm библиотеки.