Популярные статьи
- Почему скорость 4G/LTE интернета может быть низкой?
1623 просмотра
- 💰 Как проверить баланс
1096 просмотра
- Как правильно набирать номер телефона?
555 просмотра
- 🔌📞Как подключить телефонный номер к ВАТС
447 просмотра
Каталог событий MCN Telecom - часть 3
События (вебхуки и триггеры), которые платформа MCN Telecom отправляет на адрес (URL) клиента. Единый envelope для всех событий, один channel = один event_type.
Часть 3
Часть 1 смотрите здесь.
Часть 2 смотрите здесь;
Часть 4 смотрите здесь;
Часть 5 смотрите здесь;
Часть 6 смотрите здесь
Operations
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
}
}
SpeechResult - Распознавание речи
Распознавание речи
Событие: Результат распознавания речи
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
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
destLinkName | string | ✓ | Распознанный вариант ответа; если вариант не подошёл, приходит \t |
ivrSchemaId | string | ✓ | ID IVR-схемы, на которую поступил звонок |
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 | ✓ | Контекст события |
sttAnswer | string | ✓ | Результат распознавания речи |
callerID | string | ✓ | ID звонящего (номер телефона) |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
ivrObjectId | string | ✓ | ID объекта на IVR-схеме |
timestamp | number | ✓ | Unix-время события |
callId | string | ✓ | Идентификатор звонка |
linkedId | string | ✓ | ID связанного звонка |
callerNumber | string | ✓ | Номер звонящего абонента |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
accountId | number | ✓ | Номер ЛС |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
did | string | ✓ | Номер телефона |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
vpbxId | string | ✓ | Номер Виртуальной АТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "SpeechResult",
"created_at": "2026-07-01T17:11:23.448Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"destLinkName": "t",
"ivrSchemaId": "51325",
"userEventType": "SpeechResult",
"channel": "Local/s@autodial-client-leg-0002e27d;1",
"privilege": "user,all",
"exten": "s",
"channelState": 6,
"callerIdNum": "79000000035",
"systemName": "125",
"dateReceived": "Jul 1, 2026, 5:11:23 PM",
"context": "speech-recog",
"sttAnswer": "",
"callerID": "79000000035",
"event": "SpeechResult",
"ivrObjectId": "11020",
"timestamp": 1782915083,
"callId": "125-1782915017.12142878",
"linkedId": "125-1782915017.12142877",
"callerNumber": "79000000035",
"dateReceivedAtUTC": "2026-07-01 14:11:23.243751",
"eventType": "SpeechResult",
"priority": 119,
"accountId": 10001,
"channelStateDesc": "Up",
"callerIdName": "Autodialer",
"did": "51325",
"uniqueId": "125-1782915017.12142877",
"vpbxId": "280"
}
}
SpeechSynthesis - Событие синтеза речи
Синтез речи
Событие: Событие синтеза речи
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 связанного звонка |
ivrSchemaId | string | ✓ | ID схемы ВАТС |
numA | string | ✓ | Номер звонящего |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
appData | string | ✓ | Служебные параметры приложения Asterisk (сырая строка) |
numB | string | ✓ | Номер, на который звонили |
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 | ✓ | Дата события |
context | string | ✓ | Контекст события |
eventName | string | ✓ | Имя CEL-события, например IVR_LINK_END |
callerIDdnid | string | ✓ | DNID — номер, на который был направлен вызов |
text | string | ✓ | Текст синтеза речи |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
callerIDrdnis | string | ✓ | RDNIS — номер переадресовавшей стороны, если был редирект |
uniqueID | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
timestamp | string | ✓ | Время события |
accountCode | string | ✓ | Account code канала; обычно совпадает с account_id, может быть пустым |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
blockId | string | ✓ | ID блока на схеме ВАТС |
accountId | number | ✓ | Номер лицевого счёта |
peerAccount | string | ✓ | Код лицевого счёта второй стороны соединения |
application | string | ✓ | Приложение Asterisk, сгенерировавшее событие |
userField | string | ✓ | Служебное поле userfield канала Asterisk CEL |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
vpbxId | string | ✓ | Номер ВАТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "SpeechSynthesis",
"created_at": "2026-07-01T17:41:28.608Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedID": "125-1782916886.12154245",
"ivrSchemaId": "42112",
"numA": "79000000036",
"channel": "SIP/sip-node1-000f97b9",
"privilege": "call,all",
"exten": "s",
"appData": "IVR_LINK_END,synthesis,3763,,42112,|Это тестовый вызов",
"numB": "79000000037",
"callerIDani": "79000000036",
"callerIdNum": "79000000036",
"systemName": "125",
"peer": "",
"dateReceived": "Jul 1, 2026, 5:41:28 PM",
"extra": "{\"extra\":\"synthesis,3763,,42112,|Это тестовый вызов\"}",
"eventTime": "2026-07-01 17:41:28",
"context": "synthesis",
"eventName": "IVR_LINK_END",
"callerIDdnid": "79000000037",
"text": "Это тестовый вызов",
"event": "CEL",
"callerIDrdnis": "",
"uniqueID": "125-1782916886.12154245",
"timestamp": "Jul 1, 2026, 5:41:28 PM",
"accountCode": "10001",
"dateReceivedAtUTC": "2026-07-01 14:41:28.464432",
"eventType": "SpeechSynthesis",
"blockId": "3763",
"accountId": 10001,
"peerAccount": "",
"application": "CELGenUserEvent",
"userField": "280",
"callerIdName": "79000000036",
"vpbxId": "280"
}
}
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
Начало звонка через 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": ""
}
}
Analyse_completed - Речевая аналитика. Результат
Речевая аналитика. Результат
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 | ✓ | Идентификатор звонка |
accountId | number | ✓ | Номер лицевого счёта |
calledTo | null | ✓ | Номер/адрес, на который был направлен вызов |
phone | string | ✓ | Номер телефона |
id | string | ✓ | ID события |
eventType | string | ✓ | Тип события |
internalNumber | null | ✓ | Внутренний номер |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "analyse_completed",
"created_at": "2026-07-01T22:01:53.440Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"callId": "125-1782932380.12198910",
"accountId": 10001,
"eventData": {
"accountId": 10001,
"answeredIn": "2026-07-01T19:01:50.242Z",
"gptResponseResult": "-, Клиент: Майл, -, Клиент запросил информацию о тарифах на городские номера для бизнеса, Проблема: Запрос тарифа (ОП), Упоминание акций: нет",
"instruction": {
"internalNumbers": [],
"gptModel": {
"name": "gpt-4o-mini",
"implement": "openai",
"id": 37,
"isVisible": true,
"slug": "gpt-4o-mini"
},
"description": "",
"scenarios": [
{
"accountId": 10001,
"scenarioType": "vpbx",
"instructionId": 3,
"scenarioId": 6906
},
{
"accountId": 10001,
"scenarioType": "vpbx",
"instructionId": 3,
"scenarioId": 6907
},
{
"accountId": 10001,
"scenarioType": "chatbots",
"instructionId": 3,
"scenarioId": 80626
},
{
"accountId": 10001,
"scenarioType": "chatbots",
"instructionId": 3,
"scenarioId": 75103
},
{
"accountId": 10001,
"scenarioType": "chatbots",
"instructionId": 3,
"scenarioId": 80629
},
{
"accountId": 10001,
"scenarioType": "chatbots",
"instructionId": 3,
"scenarioId": 78235
}
],
"type": "contact_center",
"mode": "auto",
"maxTagSize": null,
"flex": false,
"isCommon": false,
"roomsIds": [
"281e5f8d-f213-47b7-801e-407713e388a7"
],
"id": 3,
"gptTokens": 1000,
"isArchive": false,
"gptModelId": 37,
"groups": [],
"gptTemperature": 0.2,
"users": [],
"isSystem": true,
"accountId": 10001,
"externalNumbers": [],
"queues": [],
"name": "Краткое содержание диалога",
"tokenUsed": 904,
"accounts": [
10001
],
"writesTag": "never",
"gptDescription": "Ты — система анализа телефонных диалогов компании ООО «Пример Телеком». На вход получаешь транскрипт разговора. Твоя задача — проанализировать первые 7 реплик и сформировать структурированный ответ в одну строку, строго соблюдая правила.\n\nФормат вывода\n<!--Сотрудник:--> [значение], <!--Клиент:--> [значение], <!--Тип клиента:--> [значение], <!--Суть диалога:--> [значение], <!--Проблема:--> [значение][, <!--Упоминание акций:--> [значение]]\n\nПоля и критерии\nСотрудник:\n\nИмя сотрудника, если явно названо (например: \"Юлия из ООО «Пример Телеком»\" → Юлия).\n\nЕсли не указано → -.\n\nКлиент:\n\nИмя клиента, если явно названо (в исходящем звонке имя может быть в приветствии).\n\nЕсли не указано → -.\n\nТип клиента:\n\nдействующий — если упоминается: лицевой счет, действующие услуги, ТП.\n\n- — для новых клиентов.\n\nСуть диалога:\n\nКраткое описание (1-2 предложения): запрос клиента + результат.\n\nПример: \"Клиент запросил тарифы, оператор объяснил условия подключения\".\n\nПроблема:\n\nКлассификация с указанием отдела в формате: [Описание] ([Отдел]).\n\nОтделы и ключевые слова:\n\nТП (техподдержка): интернет, связь, оборудование, настройка, скорость, роутер, модем, Wi-Fi, кабель, перезагрузка, ошибка подключения, сигнал, ремонт, диагностика, техническая неисправность.\n\nОП (отдел продаж): подключение, тариф, услуга, договор, акция, скидка, новый тариф, продление договора, дополнительные услуги, пакет услуг, специальное предложение, консультация по тарифам, изменение тарифа, условия подключения, абонентская плата.\n\nБухгалтерия: баланс, оплата, начисление, платеж, чек, квитанция, задолженность, счет, переплата, списание.\n\nЕсли отдел не определен → [Описание] (без скобок).\n\nУпоминание акций:\n\nТолько для ОП.\n\nда — если в диалоге есть: акция, скидка, выгодное предложение, бонус, промокод, спецусловия, экономия, льгота, подарок, кэшбэк, бесплатно, спецтариф, акционный период, снижение цены, рассрочка.\n\nнет — для ОП без таких слов.\n\nДля ТП/Бухгалтерии поле исключается.\n\nПравила вывода\nОбязательные поля для ОП:\n\nЕсли отдел — ОП, строка всегда заканчивается полем <!--Упоминание акций:--> [да/нет].\n\nПример: ..., Проблема: Подключение тарифа (ОП), Упоминание акций: нет.\n\nИсключения:\n\nДля ТП/Бухгалтерии поле «Упоминание акций» не выводится.\n\nПример: ..., Проблема: Обрыв интернета (ТП).\n\nСтруктура:\n\nВсе значения разделяются запятыми.\n\nНазвания полей (например, <!--Сотрудник:-->) скрываются в комментариях.\n\nЕсли информация не определена → -.\n\nПримеры\nОП без акций:\nЮлия, Клиент: Сергей, -, Клиент запросил тарифы на номера, оператор предоставил условия, Проблема: Подключение номера (ОП), Упоминание акций: нет\n\nТП:\nАнна, Клиент: Игорь, действующий, Жалоба на отсутствие интернета, Проблема: Обрыв соединения (ТП)\n\nОП с акцией:\nДмитрий, Клиент: Виктор, -, Уточнение условий скидки, Проблема: Выбор тарифа (ОП), Упоминание акций: да\n\nВажно\nАнализировать только первые 7 реплик.\n\nКонтекст решает: если клиент спрашивает о работе тарифа → ТП, о подключении → ОП.\n\nДля ОП поле «Упоминание акций» всегда присутствует.",
"status": "active"
},
"conversationId": 17079645,
"instructionId": 3,
"subdialog": {
"keyQuestion": null,
"queueId": null,
"businessProcessId": null,
"data": {
"system": {},
"variable": {
"callId": "125-1782932380.12198910",
"queueId": "6616",
"linkedId": "125-1782932380.12198910",
"answered": true,
"ivrSchemaId": "6906",
"calledTo": "79000000001",
"hangupBy": "operator",
"internalNumber": "416",
"duration": 97,
"phone": "79000000002",
"clientUniqueId": "125-1782932380.12198910",
"operatorUniqueId": "125-1782932412.12198980",
"calledFrom": "79000000002",
"transcribation": "1",
"coreUserId": "169479",
"callRecordFile": "20260701-215940-79000000002-79000000001-125178293238012198910",
"queue": "302",
"uniqueId": "125-1782932380.12198910",
"vpbxId": "280",
"direction": "in"
}
},
"isVoiceAgentEnabled": false,
"displayName": "79000000002",
"voiceAgentMode": null,
"shortDescription": null,
"dialogId": 49510173,
"isAiAgentEnabled": false,
"tags": [],
"finishedAt": "2026-07-01T19:01:18.499Z",
"dialog": {
"lastSubdialogId": 17079645,
"data": {
"system": {},
"variable": {
"callId": "125-1782932380.12198910",
"queueId": "6616",
"linkedId": "125-1782932380.12198910",
"answered": true,
"ivrSchemaId": "6906",
"calledTo": "79000000001",
"hangupBy": "operator",
"internalNumber": "416",
"duration": 97,
"phone": "79000000002",
"clientUniqueId": "125-1782932380.12198910",
"operatorUniqueId": "125-1782932412.12198980",
"calledFrom": "79000000002",
"transcribation": "1",
"coreUserId": "169479",
"callRecordFile": "20260701-215940-79000000002-79000000001-125178293238012198910",
"queue": "302",
"uniqueId": "125-1782932380.12198910",
"vpbxId": "280",
"direction": "in"
}
},
"contactId": 4584288,
"connectorId": "79000000001",
"blockedSince": null,
"externalId": "125-1782932380.12198910",
"source": "vpbx",
"createdTs": "2026-07-01T18:59:40.336Z",
"platform": "vpbx",
"deleted": null,
"lastReadMessageId": null,
"platformUserId": "79000000002",
"schemaId": 6906,
"contact": {
"accountId": 10001,
"searchString": "79000000002",
"data": {
"contactsGroup": [],
"notes": null,
"additionalFields": [],
"createdByUser": {
"name": "AdminExample",
"email": "admin@example.com"
},
"displayName": null,
"numbers": [
"79000000002"
],
"calculatedName": null,
"source": "api_cc",
"clientAccountId": null,
"phoneNumbers": [
{
"accountId": 10001,
"contactId": 4584288,
"id": 9995441,
"tag": "phone",
"value": "79000000002"
}
],
"emails": [],
"createdAt": "2026-07-01T18:59:43.160Z",
"isDeleted": false,
"surname": null,
"oldContactId": null,
"socialMedias": [],
"company": null,
"customerIds": [],
"transcriptionName": null,
"id": 4584288,
"customers": [],
"department": null,
"updatedAt": "2026-07-01T18:59:43.160Z",
"deleteDate": null,
"updatedByUser": null,
"isBlacklist": false,
"updatedBy": null,
"fullName": "79000000002",
"contactsGroupIds": [],
"groupFields": [],
"userId": null,
"transcriptionSurname": null,
"accountId": 10001,
"createdBy": 37406,
"name": "79000000002",
"contractId": null,
"position": null,
"isFavorite": false
},
"isDeleted": false,
"name": "79000000002",
"isEmpty": false,
"id": 4584288
},
"id": 49510173,
"operatorId": null
},
"createdAt": "2026-07-01T18:59:40.576Z",
"aiAgentMode": null,
"customerId": null,
"numberA": "79000000002",
"id": 17079645,
"state": "CLOSED",
"numberB": "79000000001",
"projectId": 10,
"operatorId": 169479,
"ticketId": null,
"status": "completed"
},
"projectId": 10
},
"calledTo": null,
"phone": "79000000002",
"id": "011d82eb-4bc5-4580-bb64-94f1fa287f9b",
"eventType": "analyse_completed",
"internalNumber": null
}
}
TranscribationFinished - Завершение транскрибации
Завершение транскрибации
Событие: Завершение транскрибации
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 связанного звонка |
accountId | number | ✓ | Номер лицевого счёта |
eventId | string | ✓ | Уникальный ID события транскрибации |
transcribationText | string | ✓ | Полный текст транскрибации разговора |
fileName | string | ✓ | Название файла |
transcribationId | string | ✓ | Номер транскрибации |
numA | string | ✓ | Номер звонящего |
callUniqueId | string | ✓ | Уникальный номер звонка |
eventType | string | ✓ | Тип события |
numB | string | ✓ | Номер, на который звонили |
vpbxId | number | ✓ | Номер ВАТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "TranscribationFinished",
"created_at": "2026-07-01T20:44:40.688Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedId": "125-1782927846.12192332",
"accountId": 10001,
"eventId": "0973549e-1b82-4a78-af62-0bf1dcc04fd7",
"transcribationText": "(2): Алло.\n(1): Слушай, я че тебе еще звонил, я тебе в элемент там написал, типа Дина есть?\n(2): А Давай. Да, я вижу, сейчас я посмотрю, я сейчас посмотрю, тебе отвечу.\n(1): Да окей у меня в принципе все готово, если что я направлю все.\n(2): Да, Да давай давай, ага?\n(1): Давай.",
"fileName": "20260701-204406-170-9410-125178292784612192332",
"data": {
"first": [
{
"startTime": "8.780",
"text": "Слушай, я че тебе еще звонил, я тебе в элемент там написал, типа Дина есть?",
"endTime": "12.790"
},
{
"startTime": "15.610",
"text": "Да окей у меня в принципе все готово, если что я направлю все.",
"endTime": "18.570"
},
{
"startTime": "19.750",
"text": "Давай.",
"endTime": "20.110"
}
],
"second": [
{
"startTime": "8.189",
"text": "Алло.",
"endTime": "8.469"
},
{
"startTime": "9.950",
"text": "А",
"endTime": "10.070"
},
{
"startTime": "11.270",
"text": "Давай.",
"endTime": "11.590"
},
{
"startTime": "12.299",
"text": "Да, я вижу, сейчас я посмотрю, я сейчас посмотрю, тебе отвечу.",
"endTime": "15.139"
},
{
"startTime": "16.870",
"text": "Да,",
"endTime": "17.350"
},
{
"startTime": "19.150",
"text": "Да давай давай, ага?",
"endTime": "20.510"
}
]
},
"transcribationId": "87f08810-1197-4236-b414-9ef3975ee5dc",
"numA": "170",
"callUniqueId": "125-1782927846.12192332",
"eventType": "TranscribationFinished",
"numB": "9410",
"vpbxId": 280
}
}
InboundCallEnd - Завершение входящего звонка
Завершение входящего звонка
Событие: Конец входящего звонка телефонии
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
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
userEventType | string | ✓ | Дублирует event_type — тип события AMI UserEvent |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
privilege | string | ✓ | Уровень логирования/видимости события в Asterisk AMI |
exten | string | ✓ | Extension диалплана, где сработало событие (для входящих обычно s) |
objectType | string | ✓ | Тип объекта (например did) |
channelState | number | ✓ | Код состояния Asterisk-канала (см. channelStateDesc) |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
context | string | ✓ | Контекст события |
callerID | string | ✓ | ID звонящего (номер телефона) |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
objectId | string | ✓ | ID объекта |
timestamp | number | ✓ | Время создания события |
callId | string | ✓ | Идентификатор звонка |
linkedId | string | ✓ | ID связанного звонка |
answered | string | ✓ | Был ли отвечен звонок: 0 или 1 |
callerNumber | string | ✓ | Номер звонящего |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
accountId | number | ✓ | Номер ЛС |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
callerIdName | string | ✓ | Имя вызывающего абонента, если передано АТС/оператором |
did | string | ✓ | Номер телефона |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "InboundCallEnd",
"created_at": "2026-07-01T20:25:11.241Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"userEventType": "InboundCallEnd",
"channel": "SIP/sip-node3-000056be",
"privilege": "user,all",
"exten": "s",
"objectType": "did",
"channelState": 4,
"callerIdNum": "79000000014",
"systemName": "207",
"dateReceived": "Jul 1, 2026, 5:25:11 PM",
"context": "hangup-signal-did-inbound-call-finished",
"callerID": "79000000014",
"event": "InboundCallEnd",
"objectId": "559985",
"timestamp": 1782926711,
"callId": "207-1782926711.179818",
"linkedId": "207-1782926711.179818",
"answered": "0",
"callerNumber": "79000000014",
"dateReceivedAtUTC": "2026-07-01 17:25:11.061776",
"eventType": "InboundCallEnd",
"priority": 3,
"accountId": 10001,
"channelStateDesc": "Ring",
"callerIdName": "79000000014",
"did": "79000000015",
"uniqueId": "207-1782926711.179818"
}
}
OutgoingEndЗавершение исходящего звонка телефонии
Завершение исходящего звонка
Событие: Завершение звонка телефонии
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
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
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) |
hangupCauseCode | string | ✓ | Код завершения звонка |
callerIdNum | string | ✓ | Номер вызывающего абонента (Caller ID number) |
systemName | string | ✓ | ID Asterisk-сервера (номер хаба) |
dateReceived | string | ✓ | Момент получения события (локальное время сервера) |
record | string | ✓ | Наличие записи: 1 — есть, 0 — нет |
context | string | ✓ | Контекст события |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
calledNumber | string | ✓ | Кто звонит |
timestamp | number | ✓ | Время создания события |
callId | string | ✓ | Идентификатор звонка |
linkedId | string | ✓ | ID связанного звонка |
answered | string | ✓ | Был ли отвечен звонок: 0 или 1 |
callerNumber | string | ✓ | Номер звонящего абонента |
connectedLineName | string | ✓ | Имя/номер собеседника в Connected Line (см. connectedLineNum) |
dateReceivedAtUTC | string | ✓ | Время получения Kafka-коннектором в UTC, до микросекунд; дублирует dateReceived |
eventType | string | ✓ | Тип события |
priority | number | ✓ | Приоритет текущего шага диалплана Asterisk |
accountId | number | ✓ | Номер ЛС |
channelStateDesc | string | ✓ | Расшифровка channelState (например Up, Ring, Down) |
did | string | ✓ | Номер телефона |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "OutgoingEnd",
"created_at": "2026-07-01T13:15:55.304Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"connectedLineNum": "79000000021",
"userEventType": "OutgoingEnd",
"channel": "SIP/sip-node1-00009a8f",
"privilege": "user,all",
"exten": "s",
"channelState": 0,
"hangupCauseCode": "21",
"callerIdNum": "79000000022",
"systemName": "206",
"dateReceived": "Jul 1, 2026, 10:15:55 AM",
"record": "0",
"context": "signal-outgoing-hangup-handler",
"event": "OutgoingEnd",
"calledNumber": "79000000022",
"timestamp": 1782900955,
"callId": "206-1782900948.347401",
"linkedId": "206-1782900948.347401",
"answered": "0",
"callerNumber": null,
"connectedLineName": "79000000021",
"dateReceivedAtUTC": "2026-07-01 10:15:55.150667",
"eventType": "OutgoingEnd",
"priority": 18,
"accountId": 10001,
"channelStateDesc": "Down",
"did": "79000000021",
"uniqueId": "206-1782900948.347404"
}
}
Также см.:
Каталог событий MCN Telecom - часть 1;
Каталог событий MCN Telecom - часть 2;
Каталог событий MCN Telecom - часть 4;
Каталог событий MCN Telecom - часть 5;
Каталог событий MCN Telecom - часть 6