API виртуальной АТС (v1)

Уведомления о звонках, история, записи, исходящий звонок, пропущенные, чёрный список, отделы, мобильные линии.

Адрес. Запросы выполняются к адресу вашей АТС https://<ваша-атс>.vats.livecomm.ru — тот же, по которому открывается кабинет (ниже в примерах l115). Ключ. Все методы требуют ключ API — параметр key. Ключ показан в кабинете: раздел «Сервисы», поле «API KEY». Ключ даёт доступ к записям разговоров и управлению звонками — не публикуйте его. Все методы — GET, ответ JSON, кодировка UTF-8. Неверный ключ — HTTP 403 или {"code":500,"text":"No access"}.

  1. Уведомление о завершении звонка (webhook)
  2. История звонков
  3. Запись разговора
  4. Исходящий звонок (click-to-call)
  5. Пропущенные
  6. Статистика звонков
  7. Чёрный список
  8. Отделы (очереди)
  9. Мобильные линии (FMC)
  10. Служебные

1. Уведомление о завершении звонка (webhook)

АТС отправляет запрос на ваш адрес после завершения каждого входящего и исходящего звонка. Адрес задаётся в кабинете: «Сервисы» → «Телефонная книга» → «Уведомление о завершении звонка». Запрос: POST, Content-Type: application/x-www-form-urlencoded, ожидание ответа до 15 с, ответ не разбирается — достаточно HTTP 2xx.

ПолеОписание
linkedidИдентификатор звонка (по нему же берётся запись, п. 3)
typeincoming — входящий, outgoing — исходящий
numberНомер абонента (кто звонил / кому звонили), формат 8XXXXXXXXXX
didНомер АТС, на который поступил вызов (только входящие)
extensionВнутренний номер сотрудника
dialstatusANSWER, NOANSWER, BUSY, CANCEL, FAILED, VOICEMAIL
status_code200 — разговор состоялся, 304 — не ответили / отменён, 486 — занято, 603 — отказ
call_start_dateНачало звонка, Unix timestamp
duration / expectationДлительность разговора / время ожидания ответа, секунд
recordСсылка на запись; только при status_code = 200, иначе пустая
pbx, addressСлужебные: идентификатор и адрес АТС
POST https://ваш-сервер/hook   (тело запроса)
linkedid=1729500000.123&type=incoming&number=89161234567&did=74951234567&extension=101
&dialstatus=ANSWER&status_code=200&call_start_date=1729500000&duration=184&expectation=6
&record=https://l115.vats.livecomm.ru/v1/call/КЛЮЧ/1729500000.123.mp3&pbx=l115&address=l115.vats.livecomm.ru
События «поступил входящий» и «сотрудник ответил» в реальном времени (для всплывающей карточки) на произвольный адрес не передаются — они есть в готовых интеграциях (Битрикс24, amoCRM) и подключаются для других систем по запросу в поддержку.

2. История звонков

GET /v1/cdr?key=КЛЮЧ&start_date=01.10.2026&end_date=21.10.2026
GET /v1/cdr?key=КЛЮЧ&last_for_period=yesterday
ПараметрОписание
start_date, end_dateПериод, ДД.ММ.ГГГГ. Время границ — start_time_h/start_time_m, end_time_h/end_time_m (по умолчанию 00:00–23:59)
last_for_periodВместо дат: today, yesterday, day, week, month, 3 month, year, all
limitДо 500 записей (по умолчанию 500). Большие периоды запрашивайте по дням

Ответ — массив звонков:

[{"id":"88121","uniqueid":"1729500000.123","start":"2026-10-21 10:15:02","answer":"2026-10-21 10:15:08",
  "end":"2026-10-21 10:18:12","src":"89161234567","dst":"101","caller_num":"89161234567","called_num":"101",
  "duration":"190","billsec":"184","disposition":"ANSWERED","incoming":"74951234567","outgoing":"",
  "queue":"","record":"1729500000.123.wav",
  "record_link":"http://l115.vats.livecomm.ru/v1/call?key=КЛЮЧ&id=1729500000.123", ...}]

disposition: ANSWERED, NO ANSWER, BUSY, FAILED. record_link пустой, если записи нет (record = no_record / not_activated). Время — по часовому поясу АТС из кабинета.

3. Запись разговора

GET /v1/call/КЛЮЧ/1729500000.123.mp3
GET /v1/call?key=КЛЮЧ&id=1729500000.123

Идентификатор — linkedid из уведомления или uniqueid из истории. Отдаётся аудиофайл (mp3 или wav, по фактическому формату хранения). Записи ведутся, если в кабинете включена запись разговоров.

4. Исходящий звонок (click-to-call)

GET /v1/outgoing?key=КЛЮЧ&extension=101&phone=89161234567

АТС звонит на внутренний номер extension, после ответа соединяет сотрудника с номером phone. Ответ — HTML-страница «Обратный звонок» (метод рассчитан на вызов по ссылке из CRM); результат звонка смотрите по webhook или в истории.

5. Пропущенные

GET /v1/missed/КЛЮЧ
GET /v1/missed/КЛЮЧ?offset=50

Пропущенные входящие, по которым ещё не перезвонили, по 50 на страницу, новые первыми:

{"length":3,"pages":0,
 "column":["number","date_call","did","uniqueid","called_num","bitrix24_task_id"],
 "missed":[["89161234567","2026-10-21 09:40:11","74951234567","1729496411.77","101",null], ...]}

6. Статистика звонков

GET /v1/statistic/КЛЮЧ?period=yesterday
GET /v1/statistic/КЛЮЧ?start_date=2026-10-01&end_date=2026-10-21&type=incoming
ПараметрОписание
periodyesterday, week, month, year (по умолчанию — сегодня)
start_date, end_dateПериод вместо period, формат ГГГГ-ММ-ДД (можно с временем ГГГГ-ММ-ДД ЧЧ:ММ:СС)
typeincoming, outgoing, transfered (переведённые), interior (внутренние)
start, length, drawПостраничный вывод в формате DataTables: смещение, размер страницы, номер запроса
{"draw":1,"recordsTotal":412,"recordsFiltered":412,
 "data":[{"type_call":"Входящий","caller_num":"89161234567","called_num":"101","caller_name":"","called_name":"Иванов",
   "status":"Отвечен","status_default":"ANSWERED","did":"74951234567","queue_name":"Продажи","wait_time":"6",
   "talk_time":"184","total_duration":"190","callback":"0","source":"", ...}]}

Это тот же набор данных, что на странице «Статистика» кабинета (поля type_icon, record_html содержат HTML для интерфейса).

7. Чёрный список

GET /v1/black/add?key=КЛЮЧ&number=89001234567    → {"code":200,"text":"Номер успешно добавлен в чёрный список"}
GET /v1/black/list?key=КЛЮЧ                        → ["89001234567","84951112233"]
GET /v1/black/del?key=КЛЮЧ&number=89001234567    → {"code":200,"text":"Номер успешно удалён"}

Ошибки: {"code":403,"text":"Номер уже в чёрном списке"}, {"code":403,"text":"Номера нет в чёрном списке"}. Из номера убираются все символы, кроме цифр. Звонки с номеров списка АТС отбивает.

8. Отделы (очереди)

GET /v1/queue/list?key=КЛЮЧ
   → [{"id":"3","queue_name":"300","web_name":"Продажи","strategy":"ringall","members":["101","102"]}, ...]
GET /v1/queue/add?key=КЛЮЧ&number=300&name=Продажи&strategy=ringall&members[]=12&members[]=15
   → "Продажи"            (ошибка: {"error":"Такой внутренний номер уже занят!"})
GET /v1/queue/del?key=КЛЮЧ&number=300
   → "success"            (ошибка: {"error":"Отдел не найден или уже удален"})
GET /v1/queue/reload/КЛЮЧ   — применить изменения очередей на АТС

number — внутренний номер отдела, strategy — стратегия обзвона (ringall — всем сразу, leastrecent, fewestcalls, random, rrmemory), members — идентификаторы сотрудников из кабинета.

9. Мобильные линии (FMC)

Доступно, если у вашего оператора подключён FMC (мобильные номера как внутренние). Иначе — {"code":500,"text":"No access"}.

GET /v1/sim/add?key=КЛЮЧ&num=89161234567[&outrunkid=ID]   → ID добавленной линии (число)
GET /v1/sim/list?key=КЛЮЧ                                     → {"17":"89161234567","18":"89167654321"}
GET /v1/sim/del?key=КЛЮЧ&num=89161234567                    → {"success":{"code":200,"text":"Номер успешно удалён"}}

outrunkid — идентификатор транка для исходящих с этой линии (по умолчанию — транк оператора FMC).

10. Служебные

GET /v1/reload/КЛЮЧ          — применить настройки АТС (перечитать конфигурацию)
GET /v1/logo/КЛЮЧ.png         — логотип кабинета (PNG)
GET /v1?key=КЛЮЧ              — проверка ключа: показывает, какой АТС он соответствует

Вопросы по подключению — в поддержку по контактам из кабинета АТС.