Популярные статьи
- Почему скорость 4G/LTE интернета может быть низкой?
1636 просмотра
- 💰 Как проверить баланс
1123 просмотра
- Как правильно набирать номер телефона?
681 просмотра
- 🔌📞Как подключить телефонный номер к ВАТС
451 просмотра
Каталог событий MCN Telecom — Авторизация по звонку
Авторизация по звонку
События (вебхуки и триггеры), связанные с авторизацией пользователей с помощью телефонного звонка.
Единый Envelope используется для всех событий: один channel соответствует одному event_type.
Содержание
Также см.:
«Каталог событий MCN Telecom — Виртуальная АТС (Звонки ВАТС, Переадресация и внутренние номера)»;
«Каталог событий 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.
Flash Call
FlashCall - Авторизационный звонок
Событие: Звонки FlashCall
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 связанного звонка, объединяет все плечи одного вызова |
stop_time | string | ✓ | Момент окончания звонка (ISO 8601) |
apiRaws | array<any> | ✓ | Сырые ответы внешних API, использованных при звонке; служебное поле для отладки |
q931_status | number | ✓ | Статус Q.931 — протокола управления соединениями ISDN |
number | string | ✓ | Номер, на который выполняется звонок |
final_status | string | ✓ | Финальный статус звонка |
sip_ip | string | ✓ | IP-адрес SIP-сигнализации звонящей стороны |
sip_call_hash_id | string | ✓ | Хэш-идентификатор SIP-вызова |
uniqueid | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
verification_call_uuid | string | ✓ | ID связи звонка с вызовом API |
extra_info_id | string | ✓ | Доп. метаданные вызова в JSON-строке (например ID автодозвона) |
object_type | string | ✓ | Тип канала связи (например pstn) |
sip_port | string | ✓ | Порт SIP-сигнализации звонящей стороны |
eventType | string | ✓ | Название события |
server_id | number | ✓ | Внутренний ID сервера, обработавшего событие |
call_id | string | — | Идентификатор звонка |
call_leg_id | number | ✓ | Числовой ID плеча звонка |
accountId | number | ✓ | Номер лицевого счёта; дублирует account_id из Envelope |
vpbx_id | number | ✓ | Номер ВАТС |
start_time | string | ✓ | Момент начала звонка (ISO 8601) |
account_id | number | ✓ | Номер ЛС |
orig | boolean | ✓ | Признак исходящей стороны (orig), а не принимающей (term) |
call_id_md5 | string | — | MD5-хэш идентификатора звонка |
channame | string | ✓ | Имя канала Asterisk |
last_linked_id | string | ✓ | linkedId предыдущего связанного звонка при повторном дозвоне |
hangup_cause | string | ✓ | Причина завершения звонка |
did | string | ✓ | Номер Flash Call |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "FlashCall",
"created_at": "2026-06-24T02:30:09.377Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"linkedid": "213-1782257405.1107881",
"stop_time": "2026-06-23T23:30:05.80176Z",
"apiRaws": [],
"q931_status": 17,
"number": "79000000010",
"final_status": "NO ANSWER",
"sip_ip": "10.251.103.113",
"sip_call_hash_id": "213-1782257405.1107885",
"uniqueid": "213-1782257405.1107885",
"verification_call_uuid": "f1bbfc462e44_10001",
"extra_info_id": "{\"autodial_uuid\": \"f1bbfc462e44_10001\"}",
"object_type": "pstn",
"sip_port": "5060",
"eventType": "FlashCall",
"server_id": 36,
"call_leg_id": 4207801,
"accountId": 10001,
"vpbx_id": 0,
"start_time": "2026-06-23T23:30:05.547869Z",
"account_id": 10002,
"orig": false,
"call4raw": {
"marketplace_id": 1,
"mob": true,
"is_tech_trunk": false,
"prefix": 0,
"is_dst_number_ported": false,
"location_id": 1,
"nnp_filter_orig_ids": [
325
],
"package_credit": 0,
"nnp_own_operator_id": 6720,
"connect_time": 1782257405000000,
"subaccount_id": 0,
"open_number_plan": false,
"id": 65120938,
"pricelist_id": 0,
"trunk_settings_stats_id": 0,
"nnp_region_id": 54,
"nnp_number_range_id": 2100966,
"stats_nnp_package_pricelist_minute_id": 0,
"nnp_own_region_id": 6,
"nnp_pricelist_filter_b_id": 58784,
"package_time": 0,
"dst_number": "79000000010",
"is_src_number_ported": false,
"geo_operator_id": 0,
"hash": "39ee5132-eaa8-4e01-45d4-a0e2a9687d56",
"disconnect_cause": 17,
"nnp_is_mob": true,
"interconnect_rate": 0,
"number_service_id": 2396468,
"numA": "79000000011",
"our": true,
"cdr_id": 38983903,
"numB": "79000000010",
"nnp_own_city_id": 7345,
"geo_id": 7,
"src_number": "79000000011",
"nnp_pricelist_id": 991,
"geo_mob": true,
"is_include_vat": true,
"nnp_own_is_mobile": false,
"nnp_operator_id": 6720,
"nnp_rdr_count": 0,
"signalling_call_id": "831ed876-e04e-45df-e197-7223a5b6cf87",
"stub_worked": false,
"nnp_rdr_ndc": 0,
"nnp_filter_orig_id": 0,
"interconnect_cost": 0,
"account_id": 10002,
"orig": true,
"account_tariff_light_id": 0,
"nnp_own_is_mob": false,
"operator_id": 0,
"destination_id": 1,
"is_internal_trunk": false,
"mcc": 0,
"tax_rate": 0,
"pbx_id": 512,
"tax_cost": 0,
"nnp_rdr_city_id": 0,
"trunk_group_id": 0,
"nnp_pricelist_filter_a_id": 5484,
"trunk_service_id": 0,
"nnp_ndc": 931,
"server_id": 12,
"nnp_own_number_range_id": 1221086,
"hub_id": 2,
"nnp_own_country_code": 643,
"nnp_original_operator_id": 0,
"number_ported": false,
"nnp_filter_term_id": 0,
"nnp_rdr_country_prefix": 0,
"leg_type": 1,
"nnp_rdr_region_id": 0,
"nnp_city_id": 115125,
"weak_match": false,
"nnp_country_code": 643,
"nnp_package_minute_id": 0,
"nnp_rdr_operator_id": 0,
"session_time": 0,
"sim_imsi_profile_id": 0,
"peer_id": 65120939,
"nnp_pricelist_location_id": 19817,
"rate": 0,
"nnp_filter_term_ids": [
330
],
"nnp_own_ndc": 345,
"stats_nnp_package_minute_id": 0,
"call_type": 0,
"cost": 0,
"mnc": 0,
"nnp_own_country_prefix": 7,
"mcn_callid": "006a3b16-fd00-8001-0e7a-ad503229b5a2",
"nnp_country_prefix": 7,
"pdd": 0,
"billed_time": 0,
"nnp_package_pricelist_id": 17560,
"trunk_id": 2329,
"account_version": 5,
"nnp_rdr_country_code": 0,
"nnp_package_price_id": 0,
"nnp_rdr_is_mob": false,
"nnp_rdr_number_range_id": 0
},
"channame": "SIP/sip-node1-000174ee",
"last_linked_id": "213-1782257405.1107882",
"hangup_cause": "",
"did": "79000000011"
}
}
Password Call
PasswordCall - Авторизационный звонок
Событие: Авторизация через звонок
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 | ✓ | Идентификатор звонка |
redirect | boolean | ✓ | Признак переадресации |
linkedId | string | ✓ | ID связанного звонка |
code | string | ✓ | Код звонка |
finalStatus | string | ✓ | Статус ответа |
callerNumber | string | ✓ | Номер звонящего абонента |
dateReceivedAtUTC | string | ✓ | Время получения события Kafka-коннектором в UTC, до микросекунд |
channel | string | ✓ | Имя канала Asterisk (SIP/PJSIP, Local и др.) |
eventType | string | ✓ | Тип события |
uuid | string | ✓ | Уникальный ID авторизационного звонка |
duration | number | ✓ | Длительность вызова/сессии, секунды |
accountId | number | ✓ | Номер аккаунта |
lang | string | ✓ | Язык голосового оповещения |
event | string | ✓ | Дублирует event_type — служебное поле Asterisk UserEvent |
calledNumber | string | ✓ | Номер, на который был совершён звонок |
uniqueId | string | ✓ | Уникальный ID call-leg, формат {systemName}-{timestamp}.{seq} |
q931Status | string | ✓ | Код ответа |
timestamp | string | ✓ | Момент события (ISO 8601) |
vpbxId | string | ✓ | Номер ВАТС |
✓— обязательное поле;—— необязательное.
Пример: Payload
{
"account_id": 10001,
"event_type": "PasswordCall",
"created_at": "2026-07-01T22:16:34.924Z",
"idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
"data": {
"callId": "120-1782933390.45553429",
"redirect": false,
"linkedId": "120-1782933390.45553423",
"code": "5 4 4 4",
"finalStatus": "CANCEL",
"callerNumber": "79000000023",
"dateReceivedAtUTC": "2026-07-01 19:16:30.889",
"channel": "SIP/sip-node2-003419e1",
"eventType": "PasswordCall",
"uuid": "ef2cf79ee507_10001",
"duration": 2,
"accountId": 10001,
"lang": "ru-RU",
"event": "task.target-call-result.completed",
"calledNumber": "79000000024",
"uniqueId": "120-1782933390.45553429",
"q931Status": "17",
"timestamp": "2026-07-01T19:16:34.444Z",
"vpbxId": "15613"
}
}