MCN Telecom logo

На главную

Command Palette

Search for a command to run...

Каталог событий MCN Telecom - часть 6

4 просмотраСоздано 18.08.2026Обновлено 20.08.2026

События (вебхуки и триггеры), которые платформа MCN Telecom отправляет на адрес (URL) клиента. Единый envelope для всех событий, один channel = один event_type.

Часть 6

Часть 1 смотрите здесь;
Часть 2 смотрите здесь;
Часть 3 смотрите здесь;
Часть 4 смотрите здесь;
Часть 5 смотрите здесь.

Operations

VpbxRobocallObject - Событие из голосового робота

Голосовой робот: звонок

Событие: Событие из голосового робота
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
originateDatastringДанные инициации звонка (originateData)
taskContactsIdstringНомер, к которому привязано текущее задание робоколла
robocallIdstringИдентификатор робоколла
userEventTypestringДублирует event_type — тип события AMI UserEvent
channelstringИмя канала Asterisk (SIP/PJSIP, Local и др.)
privilegestringУровень логирования/видимости события в Asterisk AMI
extenstringExtension диалплана, где сработало событие
objectTypestringТип объекта (например did)
channelStatenumberКод состояния Asterisk-канала (см. channelStateDesc)
callerIdNumstringНомер вызывающего абонента (Caller ID number)
systemNamestringID Asterisk-сервера (номер хаба)
dateReceivedstringМомент получения события (локальное время сервера)
contextstringКонтекст события
eventstringДублирует event_type — служебное поле Asterisk UserEvent
calledNumberstringНомер вызывающей стороны
objectIdstringИдентификатор объекта
timestampnumberВремя создания события
callIdstringИдентификатор звонка
linkedIdstringID связанного звонка
callerNumberstringНомер звонящего абонента
dateReceivedAtUTCstringВремя получения Kafka-коннектором в UTC, до микросекунд
eventTypestringТип события
prioritynumberПриоритет текущего шага диалплана Asterisk
accountIdnumberНомер ЛС
channelStateDescstringРасшифровка channelState (например Up, Ring, Down)
callerIdNamestringИмя вызывающего абонента, если передано АТС/оператором
taskIdstringИдентификатор задачи робоколла
uniqueIdstringУникальный ID call-leg, формат {systemName}-{timestamp}.{seq}
vpbxIdstringНомер Виртуальной АТС

— обязательное поле; — необязательное.

Пример: Payload

{
"account_id": 10001,
  "event_type": "VpbxRobocallObject",
  "created_at": "2026-07-01T16:50:21.801Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "originateData": "",
    "taskContactsId": "26181272",
    "robocallId": "9",
    "userEventType": "VpbxRobocallObject",
    "channel": "Local/s@autodial-client-leg-0002e24c;1",
    "privilege": "user,all",
    "exten": "s",
    "objectType": "ivr",
    "channelState": 6,
    "callerIdNum": "79000000041",
    "systemName": "125",
    "dateReceived": "Jul 1, 2026, 4:50:21 PM",
    "context": "autodial-object-leg",
    "event": "VpbxRobocallObject",
    "calledNumber": "79000000041",
    "objectId": "51325",
    "timestamp": 1782913821,
    "callId": "125-1782913817.12136236",
    "linkedId": "125-1782913817.12136235",
    "callerNumber": null,
    "dateReceivedAtUTC": "2026-07-01 13:50:21.438913",
    "eventType": "VpbxRobocallObject",
    "priority": 32,
    "accountId": 10001,
    "channelStateDesc": "Up",
    "callerIdName": "Autodialer",
    "taskId": "17227",
    "uniqueId": "125-1782913817.12136235",
    "vpbxId": "280"
  }
}
VpbxRobocallClient - Событие из голосового робота

Голосовой робот: Cобытие

Событие: Событие из голосового робота
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
callIdstringИдентификатор звонка
originateDatastringДанные инициации звонка (originateData)
linkedIdstringID связанного звонка
callerNumberstringНомер звонящего абонента
userEventTypestringДублирует event_type — тип события AMI UserEvent
dateReceivedAtUTCstringВремя получения события Kafka-коннектором в UTC, до микросекунд
didIdstringНомер контакта
channelstringИмя канала Asterisk (SIP/PJSIP, Local и др.)
privilegestringУровень логирования/видимости события в Asterisk AMI
eventTypestringТип события
prioritynumberПриоритет текущего шага диалплана Asterisk
extenstringExtension диалплана, где сработало событие (для входящих обычно s)
channelStatenumberКод состояния Asterisk-канала (см. channelStateDesc)
accountIdnumberНомер ЛС
systemNamestringID Asterisk-сервера (номер хаба)
dateReceivedstringМомент получения события (локальное время сервера)
contextstringКонтекст события
channelStateDescstringРасшифровка channelState (например Up, Ring, Down)
eventstringДублирует event_type — служебное поле Asterisk UserEvent
calledNumberstringНомер вызывающей стороны
uniqueIdstringУникальный ID call-leg, формат {systemName}-{timestamp}.{seq}
vpbxIdstringНомер Виртуальной АТС
timestampnumberВремя создания события

— обязательное поле; — необязательное.

Пример: Payload

{
 "account_id": 10001,
  "event_type": "VpbxRobocallClient",
  "created_at": "2026-07-01T17:30:17.949Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "callId": "125-1782916217.12150226",
    "originateData": "",
    "linkedId": "125-1782916217.12150225",
    "callerNumber": null,
    "userEventType": "VpbxRobocallClient",
    "dateReceivedAtUTC": "2026-07-01 14:30:17.736215",
    "didId": "4511",
    "channel": "Local/s@autodial-client-leg-0002e2ce;2",
    "privilege": "user,all",
    "eventType": "VpbxRobocallClient",
    "priority": 28,
    "exten": "s",
    "channelState": 4,
    "accountId": 10001,
    "systemName": "125",
    "dateReceived": "Jul 1, 2026, 5:30:17 PM",
    "context": "autodial-client-leg",
    "channelStateDesc": "Ring",
    "event": "VpbxRobocallClient",
    "calledNumber": "79000000040",
    "uniqueId": "125-1782916217.12150226",
    "vpbxId": "280",
    "timestamp": 1782916217
  }
}
CreatedNewUser - Создание нового пользователя чат-ботов

Создание нового пользователя чат-ботов

Описание: Создание нового пользователя чат-ботов
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
temp_scenario_idstringID временного сценария
finished_atnullМомент завершения диалога чат-бота (null, если ещё не завершён)
mcn_idstringВнутренний ID виджета чат-бота
widget_browserstringUser-Agent браузера пользователя виджета
widget_system_languagestringЯзык системы пользователя виджета
blocked_sincenullМомент блокировки пользователя, если заблокирован
eventTypestringДублирует event_type события
contact_idnullID контакта в адресной книге, связанного с пользователем виджета
platformstringПлатформа
chat_idstringID чата
accountIdnumberID аккаунта
current_urlstringURL страницы, на которой открыт виджет чат-бота
account_idstringНомер ЛС
chat_user_idnumberID чата в Telegram
created_tsstringВремя создания события
widget_osstringОперационная система пользователя виджета
queue_idnullID очереди
platform_user_idstringID пользователя на платформе

— обязательное поле; — необязательное.

Пример: Payload

{
 "account_id": 10001,
  "event_type": "CreatedNewUser",
  "created_at": "2026-07-01T22:45:59.276Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "mcn_widget_city": "{\"geonameId\":499099,\"names\":{\"de\":\"Samara\",\"en\":\"Samara\",\"es\":\"Samara\",\"fr\":\"Samara\",\"ja\":\"サマーラ\",\"pt-BR\":\"Samara\",\"ru\":\"Самара\"}}",
    "temp_scenario_id": "78235",
    "finished_at": null,
    "mcn_id": "62fcdeeaef0a4063",
    "widget_browser": "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Mobile Safari/537.36",
    "widget_system_language": "ru-RU",
    "blocked_since": null,
    "mcn_widget_country": "{\"geonameId\":2017370,\"isoCode\":\"RU\",\"names\":{\"de\":\"Russland\",\"en\":\"Russia\",\"es\":\"Rusia\",\"fr\":\"Russie\",\"ja\":\"ロシア\",\"pt-BR\":\"Rússia\",\"ru\":\"Россия\",\"zh-CN\":\"俄罗斯联邦\"}}",
    "eventType": "CreatedNewUser",
    "contact_id": null,
    "platform": "mcn-widget",
    "chat_id": "5608",
    "accountId": 10001,
    "current_url": "https://www.example.com",
    "account_id": "10001",
    "chat_user_id": 59154342,
    "created_ts": "2026-07-01T19:45:58.553Z",
    "widget_os": "Android",
    "queue_id": null,
    "platform_user_id": "62fcdeeaef0a4063",
    "mcn_widget_ip": "203.0.113.10"
  }
}
Calltracking_call - Звонок из коллтрекинга

Звонок из коллтрекинга

Описание: Звонок из коллтрекинга
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
google_idstringID клика Google Ads, связанный со звонком
utm_mediumstringUTM-метка medium
ya_tracker_idstringID счётчика Яндекс Метрики
durationnumberДлительность разговора
event_typestringДублирует event_type события внутри data
connect_timestringВремя соединения
repeatnumberПризнак повторного звонка
utm_contentstringUTM-метка content
google_tracker_idstringID трекера Google Ads, связанный со звонком
channel_namestringНазвание рекламного канала коллтрекинга
linkedIdstringID связанного звонка
utm_campaignstringUTM-метка campaign
mcn_callidstringВнутренний ID звонка в системе коллтрекинга
eventTypestringТип события
utm_termstringUTM-метка term
last_locationstringПоследняя страница/раздел сайта перед звонком
accountIdstringНомер лицевого счёта; дублирует account_id из Envelope
sitestringСтраница трекера
account_idstringНомер ЛС
phonestringНомер телефона
ya_client_idstringID посетителя Яндекс Метрики
tracker_namestringНазвание трекера коллтрекинга
roistat_visit_idstringID визита Roistat
dst_numberstringНомер, на который поступил звонок (номер коллтрекинга)
utm_sourcestringUTM-метка source

— обязательное поле; — необязательное.

Пример: Payload

{
 "account_id": 10001,
  "event_type": "calltracking_call",
  "created_at": "2026-07-01T13:34:25.812Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "google_id": "",
    "utm_medium": "",
    "ya_tracker_id": "",
    "duration": 60,
    "event_type": "calltracking_call",
    "connect_time": "2026-07-01T10:34:06.000Z",
    "repeat": 0,
    "utm_content": "",
    "google_tracker_id": "",
    "channel_name": "Тест оффлайн",
    "linkedId": "",
    "utm_campaign": "",
    "mcn_callid": "006a44ed-0700-800b-7d3b-d7d00a67aa0b",
    "eventType": "calltracking_call",
    "utm_term": "",
    "last_location": "",
    "accountId": "10001",
    "site": "",
    "account_id": "10001",
    "phone": "79000000003",
    "ya_client_id": "",
    "tracker_name": "Тест оффлайн",
    "roistat_visit_id": "",
    "dst_number": "79000000004",
    "utm_source": ""
  }
}
Sms_event - Входящее/исходящее СМС

Входящий/исходящий СМС

Описание: Событие о входящем/исходящем СМС
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
datenumberМетка времени отправки сообщения
client_account_idnumberНомер лицевого счёта клиента
message_codingnullКодировка SMS-сообщения
eventTypestringТип события
messagestringТекст сообщения
typestringТип SMS: p2p — между абонентами, a2p — от приложения абоненту
src_numberstringНомер отправителя (номер A)
accountIdnumberНомер лицевого счёта; дублирует account_id из Envelope
sent_timenumberUnix-время отправки SMS, микросекунды
idnumberID SMS-сообщения во внутренней системе
dst_numberstringНомер получателя (номер B)
smscstringИдентификатор SMS-центра (SMSC), через который отправлено сообщение
directionstringНаправление SMS: incoming — входящее, outgoing — исходящее

— обязательное поле; — необязательное.

Пример: Payload

{
 "account_id": 10001,
  "event_type": "sms_event",
  "created_at": "2026-07-01T18:34:48.548Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "date": 1782920088283097,
    "client_account_id": 10001,
    "message_coding": null,
    "eventType": "sms_event",
    "message": "Текст входящего СМС",
    "type": "p2p",
    "src_number": "Example",
    "accountId": 10001,
    "sent_time": 1782920088279568,
    "id": 7979973,
    "dst_number": "+79000000004",
    "smsc": "yate-smsgw",
    "direction": "incoming"
  }
}
Sms_billing_event - Биллинговая информация о СМС

Списание за отправку СМС

Описание: Биллинговая информация о СМС
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
service_start_timestampnumberUnix-время начала тарифицируемой услуги
setup_timenumberОтметка времени
account_tariff_light_idnumberID тарифного плана лицевого счёта
number_service_idnumberID услуги номера, к которой относится списание
term_gtnullGlobal Title принимающей стороны SMS; служебное поле SMPP
package_pricelist_idnumberID прайс-листа пакета услуг
package_sms_consumednumberЧисло SMS, списанных из пакета
location_idnumberID локации/региона тарификации
src_numberstringНомер отправителя (номер A)
ratenumberТариф за единицу услуги
term_cdr_idnullID CDR-записи принимающей стороны; служебное поле
trunk_service_idnumberID транкового сервиса, через который отправлено SMS
idnumberID записи биллинга SMS
stats_package_sms_idnumberID записи статистики по пакету SMS
id_since_startnumberПорядковый номер записи с начала биллингового периода
pricelist_location_idnumberID локации в прайс-листе
costnumberСтоимость SMS
smpp_cdr_idnumberID CDR-записи по SMPP-каналу отправки
countnumberКоличество SMS
eventTypestringТип события
accountIdnumberНомер лицевого счёта; дублирует account_id из Envelope
account_idnumberНомер лицевого счёта
dst_imsistringIMSI принимающего абонента
smpp_gtnullGlobal Title в SMPP-канале; служебное поле
orig_cdr_idnullID CDR-записи исходящей стороны; служебное поле
dst_numberstringНомер получателя (номер B)
src_imsistringIMSI отправляющего абонента
orig_gtnullGlobal Title исходящей стороны; служебное поле

— обязательное поле; — необязательное.

Пример: Payload

{
 "account_id": 10001,
  "event_type": "sms_billing_event",
  "created_at": "2026-07-01T23:40:24.352Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "service_start_timestamp": 1776168259,
    "setup_time": 1782938422000000,
    "account_tariff_light_id": 103523009,
    "number_service_id": 2971790,
    "term_gt": null,
    "package_pricelist_id": 2667,
    "package_sms_consumed": 0,
    "location_id": 1,
    "src_number": "79000000033",
    "rate": 0,
    "term_cdr_id": null,
    "trunk_service_id": 0,
    "id": 15873213,
    "stats_package_sms_id": 0,
    "id_since_start": 831164,
    "pricelist_location_id": 39362,
    "cost": 0,
    "smpp_cdr_id": 77432665,
    "count": 1,
    "eventType": "sms_billing_event",
    "accountId": 10001,
    "account_id": 10001,
    "dst_imsi": "",
    "smpp_gt": null,
    "orig_cdr_id": null,
    "dst_number": "79000000034",
    "src_imsi": "",
    "orig_gt": null
  }
}
SessionCreated - Cоздание новой сессии ИИ-агента

ИИ Агент: Сессия создана

Описание: Событие создания новой сессии ИИ-агента.
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
idstringИдентификатор события
typestringТип события
eventTsstringUnix-время (мс) создания события на стороне сценарного движка
eventNamestringИмя события
eventVersionstringВерсия внутреннего формата события сценария
agentIdstringID ИИ-агента
accountIdstringНомер лицевого счёта; дублирует account_id из Envelope
sessionIdstringID сессии ИИ-агента
linkedIdstringID связанного звонка

— обязательное поле; — необязательное.

Пример: Payload

{
  "account_id": 0,
  "event_type": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
  "data": {
    "id": "string",
    "type": "string",
    "eventTs": "string",
    "eventName": "string",
    "eventVersion": "string",
    "agentId": "string",
    "accountId": "string",
    "sessionId": "string",
    "linkedId": "string"
  }
}
ResponseTranscription - Завершение транскрибации реплики ИИ-агента

ИИ Агент: Завершение транскрибации

Описание: Событие завершения транскрибации реплики ИИ-агента.
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
idstringИдентификатор события
typestringТип события
eventTsstringUnix-время (мс) создания события на стороне сценарного движка
eventNamestringИмя события
eventVersionstringВерсия внутреннего формата события сценария
accountIdstringНомер лицевого счёта; дублирует account_id из Envelope
sessionIdstringID сессии ИИ-агента
transcriptionstringТекст транскрибации реплики ИИ-агента

— обязательное поле; — необязательное.

Пример: Payload

{
  "account_id": 0,
  "event_type": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "idempotencyKey": "0c14c6a6-6f50-4d1e-b0c4-b46ff43ba6a1",
  "data": {
    "id": "string",
    "type": "string",
    "eventTs": "string",
    "eventName": "string",
    "eventVersion": "string",
    "accountId": "string",
    "sessionId": "string",
  }
}
Task.status-changed - Изменение статуса задания автозвонка

Автозвонки 2.0: Изменение статуса задания

Описание: Событие изменения статуса задания автозвонка.
Payload: allOf — общий Envelope + данные события.

Envelope

ПолеТипОбяз.Описание
account_idintegerID аккаунта в системе
event_typestringТип события — см. components/messages
created_atstring (date-time)Момент события (UTC)
idempotencyKeystring (uuid)Ключ идемпотентности; используется для дедупликации повторных доставок
dataobjectДанные, специфичные для event_type

data

ПолеТипОбяз.Описание
accountIdnumberНомер лицевого счёта; дублирует account_id из Envelope
eventTypestringДублирует event_type события
idstringУникальный технический идентификатор события (UUID)
eventstringДублирует event_type; служебное поле Asterisk UserEvent
timestampstringМомент события (ISO 8601)

— обязательное поле; — необязательное.

Пример: Payload

{
  "account_id": 10001,
  "event_type": "task.status-changed",
  "created_at": "2026-06-19T11:15:09.859Z",
  "idempotencyKey": "5b133904-6192-49d2-abbc-f95be887fb70",
  "data": {
    "accountId": 10001,
    "payload": {
      "task": {
        "schedule": {
          "allowHolidays": true,
          "name": "Пример Компания",
          "id": "schedule:1rl2idte",
          "serviceId": 2326719,
          "value": [
            {
              "dayOfWeek": {
                "start": 1,
                "end": 7
              },
              "hour": {
                "start": 0,
                "end": 23
              },
              "minute": {
                "start": 0,
                "end": 59
              }
            }
          ]
        },
        "connector": {
          "retrySettings": {
            "busy": {
              "delay": {
                "unit": "s",
                "count": 30
              },
              "attempts": 3
            },
            "noAnswer": {
              "delay": {
                "unit": "s",
                "count": 30
              },
              "attempts": 3
            },
            "technicalFailure": {
              "delay": {
                "unit": "s",
                "count": 30
              },
              "attempts": 3
            }
          },
          "callSource": {
            "callMode": "client_first",
            "useSubscriberNumberTimezone": true,
            "type": "vpbx",
            "vpbxId": "280"
          },
          "id": "connector:p4nm30gt",
          "scenarioId": "1201",
          "scenarioName": "Example Scenario (vpbx)",
          "network": "vpbx"
        },
        "service": {
          "accountId": 10001,
          "deactivationDate": null,
          "id": 2326719,
          "requireModeration": false,
          "activationDate": "2022-08-02T21:00:00.000Z",
          "status": "activated"
        },
        "name": "sfsd copy (-vhv) copy (hqos)",
        "timezoneName": "Europe/Moscow",
        "contactGroupId": 142,
        "interval": {
          "from": "2026-02-15T21:00:00.000Z",
          "to": "2036-02-16T20:59:59.999Z"
        },
        "id": "task:4t137kgp",
        "orchestratorVersion": "1.0.49",
        "serviceId": 2326719,
        "speed": {
          "count": 60,
          "timeUnit": {
            "unit": "h",
            "quantity": 1
          }
        },
        "status": "on_moderation"
      },
      "newStatus": "ready_to_start",
      "oldStatus": "on_moderation"
    },
    "eventType": "task.status-changed",
    "id": "a28476ba-01c0-48ab-8009-98855fdd2320",
    "event": "task.status-changed",
    "timestamp": "2026-06-19T08:15:09.214Z"
  }
}

Также см.:
Каталог событий MCN Telecom - часть 1;
Каталог событий MCN Telecom - часть 2;
Каталог событий MCN Telecom - часть 3;
Каталог событий MCN Telecom - часть 4;
Каталог событий MCN Telecom - часть 5

Была ли эта статья полезной