1. DOC SIPUNI
  2. База знаний Сипуни
  3. API
  4. Получение статистики

Получение статистики


Интеграция статистики по API позволяет автоматически получать данные о звонках из Сипуни и использовать их во внешних системах — CRM, аналитике или собственной базе данных. 

В этой статье разберем, как можно выгрузить статистику по API: покажем, как получить список звонков и записей разговоров и как выгрузить список сотрудников со статусами присутствия.

Чтобы настроить интеграцию перейдите в раздел «Интеграции»«Интеграция по API» и откройте вкладку «Статистика».

Вкладка «Статистика» в разделе интеграции по API в личном кабинете Сипуни.

Как получить список звонков и записей разговоров

Данные выгружаются в формате CSV.

URL запрос: https://sipuni.com/api/statistic/export

Параметры запроса

Чтобы получить список звонков, отправьте запрос на указанный URL. В таблице ниже перечислены параметры запроса. С их помощью можно задать период выгрузки, тип звонков, статус вызова и другие фильтры.

Параметры передаются в HTTP-запросе. Обязательные параметры — user и hash. Остальные параметры можно использовать как фильтры, если нужно ограничить выгрузку.

Название
Описание
Пример значений, которые будут приходить
user
Номер в системе
012345
from
С какой даты
24.05.2022
to
До какой даты (включительно)
24.05.2022
timeFrom
Начало временного промежутка
10:00
timeTo
Конец временного промежутка
20:00
type
Тип звонка
0 — Все звонки
1 — Входящий
2 — Исходящий
3 — Внутренний
state
Статус звонка
0 — Все звонки
1 — Пропущенный
2 — Принятый
tree
Номер схемы
000691234 — Исходящая
000-421234 — Дежурные
000-424321 — Схема распределитель спам
showTreeId
Отображать ID схемы
0 - Нет
1 - Да
fromNumber
Номер, откуда
7916123456
101
102
...
toNumber
Номер, куда
7916123456
101
102
...
numbersRinged
Кому звонили
0 - не отображать
1 - отображать
numbersInvolved
Кто разговаривал
0 - не отображать
1 - отображать
names
Отобразить имена сотрудников
0 - Нет
1 - Да
outgoingLine
Исходящая линия
0 - не отображать
1 - отображать
toAnswer
Номер, кто ответил
7916123456
101
102
...
anonymous
Отображать анонимные звонки
0 — Нет
1 — Да
firstTime
Только новые клиенты
0 — Нет
1 — Да
dtmfUserAnswer
Отобразить набор dtmf
0 - Нет
1 - Да
hash
Контрольная подпись

Формирование контрольной подписи

При формировании контрольной подписи (hash) значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:

  • anonymous
  • crmLinks
  • dtmfUserAnswer
  • firstTime
  • from
  • fromNumber
  • hangupinitor
  • ignoreSpecChar
  • names
  • numbersInvolved
  • numbersRinged
  • outgoingLine
  • rating
  • showTreeId
  • state
  • timeFrom
  • timeTo
  • to
  • toAnswer
  • toNumber
  • tree
  • type
  • user
  • Секретный ключ

Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.


Пример ответа на PHP

$user = '012345';
$crmLinks = 0;
$from = date('d.m.Y');
$to = date('d.m.Y');
$type = '0';
$state = '0';
$timeFrom="10:00";
$timeTo="20:00";
$tree = '';
$rating = '5';
$showTreeId = '1';
$fromNumber = '';
$numbersRinged = 0;
$numbersInvolved = 0;
$names = 0;
$outgoingLine = 1;
$toNumber = '';
$toAnswer = '';
$anonymous = '1';
$firstTime = '0';
$dtmfUserAnswer = 0;
$hangupinitor = '1';
$ignoreSpecChar = '1';
$secret = 'Ваш ключ интеграции';
$hashString = join('+', array($anonymous, $crmLinks, $dtmfUserAnswer, $firstTime, $from, $fromNumber, $hangupinitor, $ignoreSpecChar, $names, $numbersInvolved, $numbersRinged, $outgoingLine, $rating, $showTreeId, $state, $timeFrom, $timeTo, $to, $toAnswer, $toNumber, $tree, $type, $user, $secret));
$hash = md5($hashString);
$url = 'https://sipuni.com/api/statist...;;
$query = http_build_query(array(
'anonymous' => $anonymous,
'crmLinks' => $crmLinks,
'dtmfUserAnswer' => $dtmfUserAnswer,
'firstTime' => $firstTime,
'from' => $from,
'fromNumber' => $fromNumber,
'hangupinitor' => $hangupinitor,
'ignoreSpecChar' => $ignoreSpecChar,
'names' => $names,
'numbersInvolved' => $numbersInvolved,
'numbersRinged' => $numbersRinged,
'outgoingLine' => $outgoingLine,
'rating' => $rating,
'showTreeId' => $showTreeId,
'state' => $state,
'timeFrom' => $timeFrom,
'timeTo' => $timeTo,
'to' => $to,
'toAnswer' => $toAnswer,
'toNumber' => $toNumber,
'tree' => $tree,
'type' => $type,
'user' => $user,
'hash' => $hash,
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
header("Content-Disposition: attachment; filename=stat_$from-$to.csv");
echo $output;

Как получить полный список записей разговоров

💡 Обратите внимание: в этой части рассказываем как получить список данных по записям. Как получить аудиофайлы — рассказываем ниже.

Данные выгружаются в формате CSV.

URL: https://sipuni.com/api/statistic/export/all

Параметры запроса

Этот метод позволяет выгрузить список всех записей разговоров. В таблице ниже указаны параметры запроса, которые нужно передать при обращении к API.

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

Название
Описание
Пример значений, которые будут приходить
user
Номер в системе
012345
limit
Количество записей
1-200000
order
Отсчитывать с начальной или конечной даты
asc-с начала
desc-с конца
page
Страница пагинации
1
hash
Контрольная подпись

Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:

  • limit
  • order
  • page
  • user
  • Секретный ключ


Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.

Пример ответа на PHP

$user = '012345';
$limit = 200000;
$order = 'asc';
$page = 1;
$secret = 'ваш ключ интеграции';
$hashString = join('+', array($limit, $order, $page, $user, $secret));
$hash = md5($hashString);
$url = 'https://sipuni.com/api/statist...;;
$query = http_build_query(array(
'limit' => $limit,
'order' => $order,
'page' => $page,
'user' => $user,
'hash' => $hash,
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
header("Content-Disposition: attachment; filename=stat_$page.csv");
echo $output;

Как получить аудиофайлы разговоров

URL: https://sipuni.com/api/statistic/record

Параметры запроса

Чтобы скачать аудиофайл разговора, отправьте запрос на указанный URL.

В таблице ниже приведены параметры, которые нужно передать в запросе.

Название
Описание
Пример значений, которые будут приходить
user
Номер в системе
012345
id
ID записи
Берется из CSV-файла (см. выше)
hash
Контрольная подпись

Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:

  • id
  • user
  • секретный ключ


Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.

Пример ответа на PHP

$user = '012345';
$id = '1234567890.123456';
$secret = 'ваш ключ интеграции';
$hashString = join('+', array($id, $user, $secret));
$hash = md5($hashString);
$url = 'https://sipuni.com/api/statist...;;
$query = http_build_query(array(
'id' => $id,
'user' => $user,
'hash' => $hash,
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
header("Content-Disposition: attachment; filename=$id.mp3");
echo $output;

Как получить список сотрудников и их статусов 

Выгружается в формате CSV.
URL: https://sipuni.com/api/statistic/operators

Параметры запроса

Этот метод позволяет получить список сотрудников и их текущие статусы присутствия.

В таблице ниже указаны параметры запроса, которые необходимо передать при обращении к API.

Название
Описание
Пример значений, которые будут приходить
user
Номер кабинета в системе
012345
hash
Контрольная подпись

Формирование контрольной подписи
При формировании контрольной подписи значения полей «склеиваются» в одну строку с разделителем «+» в следующем порядке:

  • user
  • секретный ключ


Полученную строку нужно преобразовать в MD5-хэш и передать в параметре hash.


Пример ответа на PHP

$user = '012345';
$secret = 'ваш ключ интеграции';
$hashString = join('+', array($user, $secret));
$hash = md5($hashString);
$url = 'https://sipuni.com/api/statist...;;
$query = http_build_query(array(
'user' => $user,
'hash' => $hash,
));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
header("Content-Disposition: attachment; filename=operators_$from-$to.csv");
echo $output;

 

Отлично! Теперь вы знаете, как автоматически выгружать журнал звонков, скачивать записи разговоров и отслеживать статусы сотрудников без ручной работы в личном кабинете.

Предыдущая статья Отправка событий вебсокета
Следующая статья Calltracking Mango