Популярные статьи
- Почему скорость 4G/LTE интернета может быть низкой?
1636 просмотра
- 💰 Как проверить баланс
1123 просмотра
- Как правильно набирать номер телефона?
676 просмотра
- 🔌📞Как подключить телефонный номер к ВАТС
451 просмотра
Каталог событий MCN Telecom — Виртуальная АТС (Очереди, Другие события ВАТС)
Виртуальная АТС
События (вебхуки и триггеры), которые платформа MCN Telecom отправляет на адрес (URL) клиента.
Единый Envelope используется для всех событий: один channel соответствует одному event_type.
Содержание
Также см.:
«Каталог событий MCN Telecom — Виртуальная АТС (Звонки ВАТС, Переадресация и внутренние номера)»
«Каталог событий MCN Telecom — Работа с речью»
Общий формат события
Все события используют общую обёртку Envelope:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках и используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
✓— обязательное поле;—— необязательное.
Для каждого события приведены описание полей data и пример Payload.
Очереди
QUEUE_LINK_START - Начало звонка в очереди
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
linkedid | string | ✓ | ID связанного звонка; объединяет все плечи одного вызова |
cid_num | string | ✓ | Номер вызывающего (CallerID Num, Asterisk CEL) |
eventtime | number | ✓ | Unix-время события в микросекундах, формат Asterisk CEL |
peeraccount | string | ✓ | Код лицевого счёта второй стороны соединения |
eventType | string | ✓ | Тип события |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
accountId | string | ✓ | Номер ЛС |
userdeftype | string | ✓ | Пользовательский подтип Asterisk CEL; дублирует event_type |
appname | string | ✓ | Приложение Asterisk, создавшее событие (например CELGenUserEvent) |
userfield | string | ✓ | Служебное поле userfield канала Asterisk CEL |
cid_rdnis | string | ✓ | RDNIS — номер переадресовавшей стороны, если был редирект |
peer | string | ✓ | Внутренний ID второй стороны звонка (Asterisk CEL peer) |
cid_dnid | string | ✓ | DNID — номер, на который был направлен вызов |
cid_ani | string | ✓ | ANI — номер, определённый АТС/оператором как исходный |
context | string | ✓ | Контекст события |
cid_name | string | ✓ | Имя вызывающего (CallerID Name, Asterisk CEL) |
channame | string | ✓ | Имя канала Asterisk |
eventtype | string | ✓ | Дублирует event_type (нижний регистр, Asterisk CEL) |
id | number | ✓ | Внутренний числовой ID CEL-записи Asterisk |
amaflags | number | ✓ | Флаг тарификации вызова в Asterisk (AMA flag) |
accountcode | string | ✓ | Account code канала; обычно совпадает с account_id, может быть пустым |
uniqueid | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "QUEUE_LINK_START",
"created_at": "2026-07-01T21:32:38.898Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedid": "125-1782930757.12197527",
"cid_num": "79000000008",
"eventtime": 1782930758210580,
"peeraccount": "",
"eventType": "QUEUE_LINK_START",
"exten": "s",
"accountId": "10001",
"userdeftype": "QUEUE_LINK_START",
"appname": "CELGenUserEvent",
"userfield": "280",
"cid_rdnis": "",
"peer": "",
"cid_dnid": "79000000009",
"extra": {
"callid": "125-1782930757.12197527",
"queue_name": "тест2026",
"queue": "124",
"queue_id": "18796",
"scenario_id": "23799"
},
"cid_ani": "79000000008",
"context": "queue",
"cid_name": "79000000008",
"channame": "SIP/sip-node1-000fa748",
"eventtype": "QUEUE_LINK_START",
"id": 1204108120,
"amaflags": 15,
"accountcode": "10001",
"uniqueid": "125-1782930757.12197527"
}
}
QueueCallStart - Начало звонка через очередь
Событие: Начало звонка на очереди
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
linkedID | string | ✓ | ID связанного звонка |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
startGeneralTime | number | ✓ | Unix-время начала звонка до постановки в очередь |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
appData | string | ✓ | Служебные параметры приложения Asterisk (сырая строка) |
callerIDani | string | ✓ | ANI — номер, определённый АТС/оператором как исходный |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
peer | string | ✓ | Внутренний ID второй стороны звонка (Asterisk CEL peer) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
extra | string | ✓ | JSON-строка с дополнительными данными события (Asterisk CEL) |
eventTime | string | ✓ | Время CEL-события, формат YYYY-MM-DD HH:MM:SS |
context | string | ✓ | Контекст события |
eventName | string | ✓ | Имя CEL-события, например PREDIAL_AGENT_CALLED |
callerIDdnid | string | ✓ | DNID — номер, на который был направлен вызов |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
callerIDrdnis | string | ✓ | RDNIS — номер переадресовавшей стороны, если был редирект |
uniqueID | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
timestamp | number | ✓ | Время создания события |
callId | string | ✓ | Номер звонка |
accountCode | string | ✓ | Account code канала; обычно совпадает с account_id, может быть пустым |
callerNumber | string | ✓ | Номер звонящего |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
internalNumber | string | ✓ | Внутренний номер оператора |
accountId | number | ✓ | Номер ЛС |
peerAccount | string | ✓ | Код лицевого счёта второй стороны соединения |
queueName | string | ✓ | Название очереди ВАТС |
application | string | ✓ | Приложение Asterisk, сгенерировавшее событие |
userField | string | ✓ | Служебное поле userfield канала Asterisk CEL |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
queue | string | ✓ | Очередь |
did | string | ✓ | Номер оператора |
amaFlags | string | ✓ | Флаг тарификации Asterisk (AMA flag), например DOCUMENTATION |
vpbxId | string | ✓ | Номер Виртуальной АТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "QueueCallStart",
"created_at": "2026-07-01T22:00:13.023Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedID": "125-1782932380.12198910",
"channel": "SIP/70000040-000fa7c7",
"privilege": "call,all",
"startGeneralTime": 1782932380,
"exten": "s",
"appData": "PREDIAL_AGENT_CALLED,sipdevice,SIP/sip-node1-000fa7c1,416,6616,10001,280,193.242.105.39,55627,mobile,09876f14-76e1-6a45-639c-f177ae897897,006a4563-bc00-800b-a244-47d04dd17241",
"callerIDani": "70000040",
"callerIdNum": "70000040",
"systemName": "125",
"peer": "",
"dateReceived": "Jul 1, 2026, 10:00:12 PM",
"extra": "{\"extra\":\"sipdevice,SIP/sip-node1-000fa7c1,416,6616,10001,280,193.242.105.39,55627,mobile,09876f14-76e1-6a45-639c-f177ae897897,006a4563-bc00-800b-a244-47d04dd17241\"}",
"eventTime": "2026-07-01 22:00:12",
"context": "queue-predial-handler",
"eventName": "PREDIAL_AGENT_CALLED",
"callerIDdnid": "",
"event": "CEL",
"callerIDrdnis": "",
"uniqueID": "125-1782932412.12198980",
"timestamp": 1782943212,
"callId": "125-1782932380.12198910",
"headers": {},
"accountCode": "10001",
"callerNumber": "79000000002",
"dateReceivedAtUTC": "2026-07-01 19:00:12.539676",
"eventType": "QueueCallStart",
"internalNumber": "416",
"accountId": 10001,
"peerAccount": "10001",
"queueName": "SupportQueue",
"application": "CELGenUserEvent",
"userField": "",
"callerIdName": "70000040",
"queue": "302",
"did": "79000000001",
"amaFlags": "DOCUMENTATION",
"vpbxId": "280"
}
}
QueueAgentCalled - Начало звонка на внутренний номер в очереди
Событие: Начало звонка на внутренний номер в очереди
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
callerNum | string | ✓ | Номер звонящего |
connectedLineNum | string | ✓ | Номер собеседника (Connected Line); может содержать доп. параметры через * |
userEventType | string | ✓ | Дублирует event_type — тип события AMI UserEvent |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
memberName | string | ✓ | Имя того, кому звонили |
callerChan | string | ✓ | Имя канала звонящего агента |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
callerName | string | ✓ | Имя звонящего |
channelState | number | ✓ | Код состояния Asterisk-канала (см. channelStateDesc) |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
eventTime | string | ✓ | Время CEL-события, формат YYYY-MM-DD HH:MM:SS |
context | string | ✓ | Контекст события |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
linkedId | string | ✓ | ID связанного звонка |
connectedLineName | string | ✓ | Имя/номер собеседника в Connected Line (см. connectedLineNum) |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
accountId | number | ✓ | Номер лицевого счёта |
peerAccount | string | ✓ | Код лицевого счёта второй стороны соединения |
queueNumber | string | ✓ | Номер в очереди |
coreUserId | string | ✓ | Внутренний ID пользователя/сотрудника (агента) ВАТС |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
queue | string | ✓ | Очередь |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
vpbxId | string | ✓ | Номер ВАТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "QueueAgentCalled",
"created_at": "2026-07-01T22:00:12.724Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"callerNum": "79000000002",
"connectedLineNum": "79000000002",
"userEventType": "QueueAgentCalled",
"channel": "SIP/71977930-000fa7c4",
"memberName": "181",
"callerChan": "SIP/sip-node1-000fa7c1",
"privilege": "user,all",
"exten": "s",
"callerName": "[302] 79000000002",
"channelState": 0,
"callerIdNum": "71977930",
"systemName": "125",
"dateReceived": "Jul 1, 2026, 10:00:12 PM",
"eventTime": "2026-07-01 22:00:12",
"context": "queue-predial-handler",
"event": "QueueAgentCalled",
"linkedId": "125-1782932380.12198910",
"connectedLineName": "[302] 79000000002",
"dateReceivedAtUTC": "2026-07-01 19:00:12.474839",
"eventType": "QueueAgentCalled",
"priority": 36,
"accountId": 10001,
"peerAccount": "10001",
"queueNumber": "302",
"coreUserId": "111241",
"channelStateDesc": "Down",
"callerIdName": "71977930",
"queue": "6616",
"uniqueId": "125-1782932412.12198975",
"vpbxId": "280"
}
}
QueueCallAnswer - Ответ на звонок через очередь
Событие: Звонок был отвечен в очереди
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
queueId | string | ✓ | ID очереди ВАТС |
connectedLineNum | string | ✓ | Номер собеседника (Connected Line); может содержать доп. параметры через * |
userEventType | string | ✓ | Дублирует event_type — тип события AMI UserEvent |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
channelState | number | ✓ | Код состояния Asterisk-канала (см. channelStateDesc) |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
context | string | ✓ | Контекст события |
startTime | number | ✓ | Unix-время начала звонка/ответа |
callerID | string | ✓ | ID звонящего (номер телефона) |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
timestamp | number | ✓ | Время события |
callId | string | ✓ | ID звонка (Call_id) |
linkedId | string | ✓ | ID связанного звонка |
callerNumber | string | ✓ | Номер звонящего |
connectedLineName | string | ✓ | Имя/номер собеседника в Connected Line (см. connectedLineNum) |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
internalNumber | string | ✓ | Внутренний номер оператора, на который поступил звонок |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
accountId | number | ✓ | Номер лицевого счёта |
durationWaiting | number | ✓ | Время ожидания звонка |
queueName | string | ✓ | Название очереди ВАТС |
coreUserId | string | ✓ | Внутренний ID пользователя/сотрудника (агента) ВАТС |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
did | string | ✓ | Телефонный номер оператора (DID, на который поступил звонок) |
queue | string | ✓ | ID очереди |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
vpbxId | string | ✓ | Номер Виртуальной АТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "QueueCallAnswer",
"created_at": "2026-07-01T20:32:47.586Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"queueId": "6616",
"connectedLineNum": "79000000017",
"userEventType": "QueueCallAnswer",
"channel": "SIP/70000040-000fa4b6",
"privilege": "user,all",
"exten": "s",
"channelState": 6,
"callerIdNum": "416",
"systemName": "125",
"dateReceived": "Jul 1, 2026, 8:32:47 PM",
"context": "signal-queue-member-answer",
"startTime": 1782927155,
"callerID": "79000000017",
"event": "QueueCallAnswer",
"timestamp": 1782927167,
"callId": "125-1782927123.12191322",
"linkedId": "125-1782927123.12191322",
"callerNumber": "79000000017",
"connectedLineName": "[302] 79000000017",
"dateReceivedAtUTC": "2026-07-01 17:32:47.235915",
"eventType": "QueueCallAnswer",
"internalNumber": "416",
"priority": 6,
"accountId": 10001,
"durationWaiting": 12,
"queueName": "SupportQueue",
"coreUserId": "169479",
"channelStateDesc": "Up",
"callerIdName": "70000040",
"did": "79000000032",
"queue": "302",
"uniqueId": "125-1782927155.12191423",
"vpbxId": "280"
}
}
QUEUE_LINK_END - Завершение звонка в очереди
Когда завершается звонок в очереди QUEUE_LINK_END, приходит одно событие на всю очередь.
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
linkedid | string | ✓ | ID связанного звонка; объединяет все плечи одного вызова |
cid_num | string | ✓ | Номер вызывающего (CallerID Num, служебное поле Asterisk CEL) |
eventtime | number | ✓ | Unix-время события в микросекундах, формат Asterisk CEL |
peeraccount | string | ✓ | Код лицевого счёта второй стороны соединения |
eventType | string | ✓ | Тип события |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
accountId | string | ✓ | Номер ЛС |
userdeftype | string | ✓ | Пользовательский подтип Asterisk CEL; дублирует event_type |
appname | string | ✓ | Диалплан-приложение Asterisk, создавшее событие (например CELGenUserEvent) |
userfield | string | ✓ | Служебное поле userfield канала Asterisk CEL |
cid_rdnis | string | ✓ | RDNIS — номер переадресовавшей стороны, если был редирект |
peer | string | ✓ | Внутренний ID второй стороны звонка (Asterisk CEL peer) |
cid_dnid | string | ✓ | DNID — номер, на который был направлен вызов |
cid_ani | string | ✓ | ANI — номер, определённый АТС/оператором как исходный |
context | string | ✓ | Контекст события |
cid_name | string | ✓ | Имя вызывающего (CallerID Name, служебное поле Asterisk CEL) |
channame | string | ✓ | Имя канала Asterisk |
eventtype | string | ✓ | Дублирует event_type (нижний регистр, Asterisk CEL) |
id | number | ✓ | Внутренний числовой ID CEL-записи Asterisk |
amaflags | number | ✓ | Флаг тарификации вызова в Asterisk (AMA flag) |
accountcode | string | ✓ | Account code канала; обычно совпадает с account_id, может быть пустым |
uniqueid | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "QUEUE_LINK_END",
"created_at": "2026-07-01T21:33:02.689Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedid": "125-1782930757.12197527",
"cid_num": "79000000008",
"eventtime": 1782930781582635,
"peeraccount": "",
"eventType": "QUEUE_LINK_END",
"exten": "h",
"accountId": "10001",
"userdeftype": "QUEUE_LINK_END",
"appname": "CELGenUserEvent",
"userfield": "280",
"cid_rdnis": "",
"peer": "",
"cid_dnid": "79000000009",
"extra": {
"callid": "125-1782930757.12197527",
"queue_name": "тест2026",
"queue": "124",
"queue_id": "18796",
"scenario_id": "23799",
"status": "LOST"
},
"cid_ani": "79000000008",
"context": "queue",
"cid_name": "[124] 79000000008",
"channame": "SIP/sip-node1-000fa748",
"eventtype": "QUEUE_LINK_END",
"id": 1204108275,
"amaflags": 15,
"accountcode": "10001",
"uniqueid": "125-1782930757.12197527"
}
}
QueueCallEnd - Завершение звонка в очереди
Событие QueueCallEnd приходит на каждого абонента в очереди, т.е будет на 10 номеров в очереди придет 10 событий.
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
callId | string | ✓ | Идентификатор звонка |
queueId | null | ✓ | ID очереди ВАТС |
answered | string | ✓ | Был ли отвечен звонок: 0 или 1 |
callerNumber | string | ✓ | Номер звонящего |
dateReceivedAtUTC | string | ✓ | Время получения события Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
startGeneralTime | number | ✓ | Unix-время начала звонка до постановки в очередь |
internalNumber | string | ✓ | Внутренний номер оператора |
duration | number | ✓ | Длительность вызова/сессии, секунды |
accountId | number | ✓ | Номер ЛС |
durationWaiting | number | ✓ | Время ожидания ответа/в очереди, секунды |
file | string | ✓ | Название файла записи разговора, если запись сохранена |
queueName | string | ✓ | Название очереди ВАТС, через которую проходил звонок |
record | string | ✓ | Наличие записи: 1 — есть, 0 — нет |
billsec | string | ✓ | Длительность звонка после ответа |
did | string | ✓ | Номер оператора |
uniqueID | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
queue | string | ✓ | Очередь |
whoAnswered | boolean | ✓ | Признак того, что именно этот агент ответил на звонок |
timestamp | number | ✓ | Время создания события |
vpbxId | string | ✓ | Номер Виртуальной АТС |
✓— обязательное поле;—— необязательное.
**Пример:** Payload
```json
{
"account_id": 10001,
"event_type": "QueueCallEnd",
"created_at": "2026-07-01T22:01:20.486Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"callId": "125-1782932380.12198910",
"queueId": null,
"answered": "0",
"callerNumber": "79000000002",
"dateReceivedAtUTC": "2026-07-01 19:01:17.951205",
"eventType": "QueueCallEnd",
"startGeneralTime": 1782932380,
"internalNumber": "181",
"duration": 97,
"accountId": 10001,
"durationWaiting": 97,
"file": "0",
"queueName": "SupportQueue",
"record": "0",
"billsec": "0",
"did": "79000000001",
"uniqueID": "125-1782932412.12198975",
"queue": "302",
"whoAnswered": false,
"timestamp": 1782932477,
"vpbxId": "280"
}
}
Другие события Виртуальной АТС
VpbxReceiveFax - ВАТС: Получение факса
Событие: Получение факса
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
callerID | string | ✓ | ID звонящего (номер телефона) |
accountId | string | ✓ | Номер ЛС |
vpbxId | string | ✓ | Номер Виртуальной АТС |
callId | string | ✓ | Идентификатор звонка |
did | string | ✓ | Номер телефона |
rsid | string | ✓ | Параметр факса rsid |
pages | string | ✓ | Количество страниц полученного факса |
speed | string | ✓ | Скорость передачи факса |
ecm | string | ✓ | Параметр факса ecm |
result | string | ✓ | Результат получения факса |
timestamp | string | ✓ | Время создания события |
eventType | string | ✓ | Тип события |
linkedId | string | ✓ | ID связанного звонка |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 0,
"event_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
"data": {
"callerID": "string",
"accountId": "string",
"vpbxId": "string",
"callId": "string",
"did": "string",
"rsid": "string",
"pages": "string",
"speed": "string",
"ecm": "string",
"result": "string",
"timestamp": "string",
"eventType": "string",
"linkedId": "string",
"dateReceived": "string"
}
}
Record_upload_done - Загружен файл записи разговора
Событие: Завершение загрузки файла записи разговора
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
callId | string | ✓ | Идентификатор звонка |
linkedId | string | ✓ | ID связанного звонка |
accountId | number | ✓ | Номер лицевого счёта |
fileName | string | ✓ | Название файла |
eventType | string | ✓ | Тип события |
id | string | ✓ | ID события |
type | string | ✓ | Тип |
vpbxId | string | ✓ | Номер ВАТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "record_upload_done",
"created_at": "2026-07-01T22:01:22.196Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"callId": "125-1782932380.12198910",
"linkedId": "125-1782932380.12198910",
"accountId": 10001,
"fileName": "20260701-215940-79000000002-79000000001-125178293238012198910",
"data": {
"callId": "125-1782932380.12198910",
"fileName": "20260701-215940-79000000002-79000000001-125178293238012198910",
"eventVersion": 2,
"numA": "79000000002",
"type": "call",
"transcribationLanguage": "ru_RU",
"eventTs": 1782932482063,
"callType": "vpbx",
"numB": "79000000001",
"accountId": 10001,
"transcribationProfile": "",
"transcribationProvider": "yandex",
"transcribation": 1,
"eventName": "record_upload_done",
"vpbxId": "280"
},
"eventType": "record_upload_done",
"id": "563d7a43-90c2-4e97-96ae-c26071b9dec9",
"type": "external_event",
"vpbxId": "280"
}
}
EmitIntegrationEvent - Отправка переменных из сценария ВАТС
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; одинаков при повторных доставках, используется для дедупликации |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
emit_integration_event_counter_10422 | number | ✓ | Счётчик срабатывания сценарного шага; номер в имени — внутренний ID сценария |
dtmf | string | ✓ | DTMF-тон, введённый абонентом |
outputObject | null | ✓ | Зарезервированное поле результата сценария; в примере не заполнено |
eventVersion | number | ✓ | Версия внутреннего формата события сценария |
scenario_counter | number | ✓ | Порядковый номер выполнения сценария |
scenario_id_1 | string | ✓ | Идентификатор сценария ВАТС |
type | string | ✓ | Категория события сценария, например call_command_event |
eventTs | number | ✓ | Unix-время создания события на стороне сценарного движка, мс |
scenario_id | string | ✓ | Идентификатор сценария ВАТС |
transcribation_profile | string | ✓ | Профиль транскрибации звонка |
commandName | string | ✓ | Имя завершившейся команды сценария, например end-call |
eventName | string | ✓ | Имя обработчика события, например scenario_command_completed |
id | string | ✓ | Уникальный технический ID события (UUID) |
transcribation_service_language | string | ✓ | Язык сервиса транскрибации |
callId | string | ✓ | Идентификатор звонка |
transcribation_service_provider | string | ✓ | Провайдер сервиса транскрибации |
variables | null | ✓ | Контейнер дополнительных переменных сценария (JSON); в этом событии не заполнен |
eventType | string | ✓ | Дублирует event_type |
num_a | string | ✓ | Номер участника A сценария |
num_b | string | ✓ | Номер участника B сценария |
num_c | null | ✓ | Номер участника C, если задействован |
call_id | string | ✓ | Идентификатор звонка |
accountId | number | ✓ | Номер лицевого счёта; дублирует account_id из Envelope |
vpbx_id | string | ✓ | Номер ВАТС |
is_transcribation_enabled | boolean | ✓ | Включена ли транскрибация звонка |
menu_dtmf | string | ✓ | DTMF-тон, введённый в IVR-меню |
account_id | number | ✓ | Номер ЛС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 0,
"event_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
"data": {
"emit_integration_event_counter_10422": 0,
"dtmf": "string",
"outputObject": null,
"eventVersion": 0,
"scenario_counter": 0,
"scenario_id_1": "string",
"type": "string",
"eventTs": 0,
"scenario_id": "string",
"transcribation_profile": "string",
"commandName": "string",
"eventName": "string",
"id": "string",
"transcribation_service_language": "string",
"callId": "string",
"transcribation_service_provider": "string",
"variables": null,
"eventType": "string",
"num_a": "string",
"num_b": "string",
"num_c": null,
"call_id": "string",
"accountId": 0,
"vpbx_id": "string",
"is_transcribation_enabled": true,
"menu_dtmf": "string",
"account_id": 0
}
}
External_pbx_change_availability - Изменение состояния транка
Событие: Информация об изменении состояния транка
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; используется для дедупликации повторных доставок |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
accountId | number | ✓ | Номер ЛС |
type | string | ✓ | Тип события |
status | string | ✓ | Статус транка после изменения: доступен/недоступен |
name | string | ✓ | Имя абонента |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 0,
"event_type": "string",
"created_at": "2019-08-24T14:15:22Z",
"idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
"data": {
"accountId": 0,
"type": "string",
"status": "string",
"name": "string"
}
}
SubscriberStatus - Статус абонента
Событие: Статусы абонентов
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; используется для дедупликации повторных доставок |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
accountId | number | ✓ | Номер ЛС |
vpbx_id | number | ✓ | Номер ВАТС |
paused | boolean | ✓ | Наличие паузы |
account_id | number | ✓ | Номер ЛС |
core_user_id | string | ✓ | Core user ID |
queue_member_id | number | ✓ | ID участника в очереди |
name | string | ✓ | Имя абонента |
eventType | string | ✓ | Тип события |
int_number_id | number | ✓ | ID внутреннего номера |
object_id | number | ✓ | ID объекта |
queue_id | number | ✓ | ID очереди |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "SubscriberStatus",
"created_at": "2026-05-08T14:32:59.995Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"accountId": 10001,
"vpbx_id": 280,
"paused": false,
"account_id": 10001,
"core_user_id": "175925",
"queue_member_id": 1383074,
"name": "Petrov Aleksandr",
"eventType": "SubscriberStatus",
"int_number_id": 119512,
"object_id": 73485,
"queue_id": 32123
}
}
OriginateStart - Начало звонка через API
Payload: allOf — общий Envelope + данные события.
Envelope
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
account_id | integer | ✓ | ID аккаунта в системе |
event_type | string | ✓ | Тип события — см. components/messages |
created_at | string (date-time) | ✓ | Момент события (UTC) |
idempotencyKey | string (uuid) | — | Ключ идемпотентности; используется для дедупликации повторных доставок |
data | object | ✓ | Данные, специфичные для event_type |
data
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
linkedId | string | ✓ | ID связанного звонка |
accountCode | string | ✓ | Account code канала; обычно совпадает с account_id, может быть пустым |
connectedLineNum | string | ✓ | Номер собеседника (Connected Line); может содержать доп. параметры через * |
userEventType | string | ✓ | Дублирует event_type — тип события AMI UserEvent |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
eventType | string | ✓ | Тип события |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
callType | string | ✓ | Тип звонка |
channelState | number | ✓ | Код состояния Asterisk-канала (см. channelStateDesc) |
accountId | number | ✓ | Номер лицевого счёта |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
context | string | ✓ | Контекст события |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
originateId | string | ✓ | ID исходящего вызова, инициированного через API (Originate) |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "OriginateStart",
"created_at": "2026-07-01T16:01:53.508Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedId": "125-1782910912.12119563",
"accountCode": "10001",
"connectedLineNum": "79000000018",
"userEventType": "OriginateStart",
"dateReceivedAtUTC": "2026-07-01 13:01:53.343815",
"channel": "SIP/70000205-000f8ab2",
"privilege": "user,all",
"eventType": "OriginateStart",
"priority": 3,
"exten": "s",
"callType": "click2call",
"channelState": 6,
"accountId": 10001,
"callerIdNum": "79000000018",
"systemName": "125",
"dateReceived": "Jul 1, 2026, 4:01:53 PM",
"context": "originate-start",
"channelStateDesc": "Up",
"callerIdName": "70000205",
"event": "OriginateStart",
"uniqueId": "125-1782910912.12119563",
"originateId": ""
}
}