Получение статистики
Интеграция статистики по API позволяет автоматически получать данные о звонках из Сипуни и использовать их во внешних системах — CRM, аналитике или собственной базе данных.
В этой статье разберем, как можно выгрузить статистику по 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;
Отлично! Теперь вы знаете, как автоматически выгружать журнал звонков, скачивать записи разговоров и отслеживать статусы сотрудников без ручной работы в личном кабинете.