Структура интеграции MCNtelecom
Добро пожаловать , мы подготовили для вас набор необходимых инструментов и базовых правил для работы с нашим API.
Создать интеграцию с помощью веб хуков
-
Структура Базовых событий :
ВАТС : начало входящего звонка
Тип события:
ВАТС: Начало входящего звонка
Время события:
01.01.2026, 00:00:00
Данные события:
ivrSchemaId: 0000 userEventType: "VpbxInboundCallStart" channel: "SIP" privilege: "user,all" exten: "s" channelState: 4 callerIdNum: 70000000000 systemName: 123 dateReceived: "Yan 01, 2026, 0:00:00 PM" context: "signal-vpbx-inbound-call" callerID: 70000000000 event: "VpbxInboundCallStart" timestamp: 1765978000 callId: "000-0000000000.00000000" linkedId: "000-0000000000.00000000" callerNumber: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.721211" eventType: "VpbxInboundCallStart" priority: 3 accountId: 000000 channelStateDesc: "Ring" callerIdName: 793100000000 did: 70000000000 uniqueId: "000-0000000000.00000000" vpbxId: 0000ВАТС : начало исходящего звонка
Тип события:
ВАТС: Начало исходящего звонка
Время события:
01.01.2026, 00:00:00
Данные события:
originateData: "" connectedLineNum: 70000000000 userEventType: "VpbxOutgoingStart" channel: "SIP" privilege: "user,all" exten: "s" channelState: 0 isRedirect: 1 callerIdNum: "s" systemName: 123 dateReceived: "Yan 01, 2026, 0:00:00 PM" context: "signal-outgoing-call" event: "VpbxOutgoingStart" calledNumber: 70000000000 timestamp: 1765970000 callId: "000-0000000000.00000000" linkedId: "000-0000000000.00000000" connectedLineName: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.048139" eventType: "VpbxOutgoingStart" internalNumber: 000 priority: 11 accountId: 000000 callback: 0 channelStateDesc: "Down" did: 70000000000 uniqueId: "000-0000000000.00000000" vpbxId: 0000ВАТС : завершение входящего звонка
Тип события:
ВАТС: Завершение входящего звонка
Время события:
01.01.2026, 00:00:00
Данные события:
ivrSchemaId: 00000 userEventType: "VpbxInboundCallEnd" channel: "SIP" privilege: "user,all" transcribationLanguage: "" exten: "s" channelState: 6 duration: 2 callerIdNum: 70000000000 file: "" systemName: 123 dateReceived: "Yan 01, 2026, 0:00:00 PM" record: 0 InternalNumber: "" transcribationProvider: "" transcribation: "" context: "signal-vpbx-inbound-call-end" schemaBillsec: 0 callerID: 70000000000 event: "VpbxInboundCallEnd" billsec: 0 timestamp: 1765970000 callId: "000-0000000000.00000000" linkedId: "000-0000000000.00000000" answered: 0 callerNumber: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.520961" eventType: "VpbxInboundCallEnd" priority: 40 firstAnswer: false accountId: 00000 durationWaiting: 2 queueName: "" time: "00:00:00" coreUserId: "" channelStateDesc: "Up" callerIdName: 70000000000 did: 70000000000 uniqueId: "000-0000000000.00000000" queue: "" vpbxId: 00000ВАТС : завершение исходящего звонка
Тип события:
ВАТС: Завершение исходящего звонка
Время события:
01.01.2026, 00:00:00
Данные события:
connectedLineNum: 70000000000 userEventType: "VpbxOutgoingEnd" callBack: 0 channel: "SIP" privilege: "user,all" transcribationLanguage: "" exten: "s" channelState: 5 answerList:{0000: true },duration: 8 isRedirect: 1 hangupCauseCode: 16 callerIdNum: 70000000000 file: "20260101-00000-0000-70000000000-000000000000000000000" systemName: 123 dateReceived: "Yan 01, 2026, 0:00:00 PM" record: 1 transcribationProvider: "" transcribation: "" context: "signal-outgoing-hangup-handler" event: "VpbxOutgoingEnd" calledNumber: 70000000000 billsec: 0 timestamp: 1765900000 callId: "000-0000000000.00000000" linkedId: "000-0000000000.00000000" answered: 0 connectedLineName: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.432797" eventType: "VpbxOutgoingEnd" internalNumber: 0000 priority: 16 firstAnswer: false accountId: 0000 durationWaiting: 8 coreUserId: "" channelStateDesc: "Ringing" did: 70000000000 uniqueId: "000-0000000000.00000000" vpbxId: 00000 -
Структура событий очереди :
Начало звонка в очереди
Тип события:
Начало звонка в очереди
Время события:
01.01.2026, 00:00:00
Данные события:
linkedid: "000-0000000000.00000000" cid_num: 70000000000 eventtime: 1765975061680000 peeraccount: "" eventType: "QUEUE_LINK_START" exten: "s" accountId: 000000 userdeftype: "QUEUE_LINK_START" appname: "CELGenUserEvent" userfield: 00000 cid_rdnis: "" peer: "" cid_dnid: 70000000000 extra: {callid: "000-0000000000.00000000" queue_name: "Название Вашей очереди" queue: 000 queue_id: 000000 scenario_id: 00000 }, cid_ani: 70000000000 context: "queue" cid_name: 70000000000 channame: "SIP" eventtype: "QUEUE_LINK_START" id: 939970000 amaflags: 36 accountcode: 000000 uniqueid: "000-0000000000.00000000"Завершение звонка в очереди
Тип события:
Завершение звонка в очереди
Время события:
01.01.2026, 00:00:00
Данные события:
linkedid: "000-0000000000.00000000" cid_num: 70000000000 eventtime: 1765886885800000 peeraccount: "" eventType: "QUEUE_LINK_END" exten: "h" accountId: 000000 userdeftype: "QUEUE_LINK_END" appname: "CELGenUserEvent" userfield: 00000 cid_rdnis: "" peer: "" cid_dnid: 70000000000 extra: {callid: "000-0000000000.00000000" queue_name: "Название Вашей очереди" queue: 000 queue_id: 000000 scenario_id: 000000 status: "LOST" }, cid_ani: 70000000000 context: "queue" cid_name: 70000000000 channame: "SIP" eventtype: "QUEUE_LINK_END" id: 9378000000 amaflags: 35 accountcode: 000000 uniqueid: "000-0000000000.00000000"Начало звонка на абонента в очереди
Тип события:
Начало звонка на абонента в очереди
Время события:
01.01.2026, 00:00:00
Данные события:
callId: "000-0000000000.00000000" queueId: null answered: 0 callerNumber: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.434168" eventType: "QueueCallEnd" startGeneralTime: 1765900000 internalNumber: 000 duration: 45 accountId: 000000 durationWaiting: 45 file: 0 queueName: "Название Вашей очереди" record: 0 billsec: 0 did: 70000000000 uniqueID: "000-0000000000.00000000" queue: 000 whoAnswered: false timestamp: 17659000000 vpbxId: 00000Завершение звонка на абонента в очереди
Тип события:
Завершение звонка на абонента в очереди
Время события:
01.01.2026, 00:00:00
Данные события:
callId: "000-0000000000.00000000" queueId: null answered: 0 callerNumber: 70000000000 dateReceivedAtUTC: "2026-01-01 00:00:00.434168" eventType: "QueueCallEnd" startGeneralTime: 1765970000 internalNumber: 000 duration: 45 accountId: 00000 durationWaiting: 45 file: 0 queueName: "Название Вашей очереди" record: 0 billsec: 0 did: 70000000000 uniqueID: "000-0000000000.00000000" queue: 000 whoAnswered: false timestamp: 1765970000 vpbxId: 00000 -
Структура других событий:
Готовность файла записи звонка
Тип события:
Готовность файла записи разговора
Время события:
01.01.2026, 00:00:00
Данные события:
callId: "000-0000000000.00000000" accountId: 000000 fileName: "20260101-160000-70000000000-70000000000-000000000000000000000" data: {callId: "000-0000000000.00000000" fileName: "20260101-160000-70000000000-70000000000-000000000000000000000" eventVersion: 2 numA: 70000000000 type: "call" transcribationLanguage: "" eventTs: 17659782000000 numB: 70000000000 objectType: "" accountId: 000000 objectNum: "" transcribationProvider: "" transcribation: 0 eventName: "record_upload_done" vpbxId: 00000 }, eventType: "record_upload_done" id: "590bff05-0f9b-4205-8312-1d431d8000000" type: "external_event" vpbxId: 00000ВАТС: Реплика элемента: «Вопрос-Ответ»
Тип события:
ВАТС: Реплика элемента: “Вопрос-Ответ”
Время события:
01.01.2026, 00:00:00
Данные события:
linkedid: "000-0000000000.00000000" link_uniqueid_term: "000-0000000000.00000000-1765970000-3" speechkit_id: 0000 speechkit_dialog_id: 0000000 eventType: "SpeechKitDialog" dialog_value: "" server_id: 32 accountId: 000000 vpbx_id: 00000 number: 70000000000 account_id: 000000 dialog_type: "answer" uniqueid: "000-0000000000.00000000" event_time: "2026-01-01T00:00:00.918152Z" did: 70000000000 vpbxId: 00000
Как создать веб хук по API
-
В верхнем меню перейдите в раздел «Интеграции» → вкладка «Методы API»;
✅Примечание: Для создания веб хуков по API вам понадобится API токен из раздела «Интеграции» → вкладка «Токены». - В меню слева выберите «Интеграции»;
-
Найдите Webhooks methods:
/webhook/get
/webhook/create
```json { "name":"New webhook", "url":"https://example.ru", "method":"get", "headers": {}, "body":null, "query": { "from":"John", "to":"To ${{contact_name}}" }, "logic": {}, "event_id":1,(Обязательный параметр) Все методы можно посмотреть здесь/event/get "is_retriable":false, "bodyDataType":"json", "filter_id":1, "allVariables":true, "ignore_response":false } ``` </details>/webhook/update
/webhook/duplicate
-
- В меню слева выберите «Интеграции»;
Частые вопрос про токены (Api ключ)
API-токен (или API key) — это уникальный идентификатор, который используется для аутентификации и авторизации при доступе к API (Application Programming Interface — программный интерфейс приложения).
-
Токен может видеть сотрудник в роли Администратора или Владельца аккаунта;
-
Токен привязан к сотруднику и договору (если у пользователя много договоров можно сделать нужный договор по умолчанию (нажмите на звездочку перед договором) и тогда в нем появится токен.
Как вызвать токен с ЛС не по умолчанию
key - x-account-id — Название переменной;
value — Номер аккаунта в котором должна пройти авторизация. Если в хедере передать номер аккаунта то авторизация произойдёт в нём, если хедер пустой авторизация будет в аккаунте по-умолчанию (где звездочка).Пример curl:
curl --location 'https://integration.mcn.ru/api/protected/api/integration/config/get?config_id=####'
--header 'accept: application/json'
--header 'Content-Type: application/json'
--header 'Sec-Fetch-Mode: cors'
--header 'x-account-id: ######'
--header 'Authorization: Bearer '
--data '
Общие вопросы и полезные ссылки
База знаний
Как создать учетную запись sip
Интеграционные триггеры
Веб-хуки
Как получить токен
Ответы на запросы методов API
Если у Вас остались вопросы связанные с интеграцией или возникли проблемы при создании интеграции можете обратиться по номеру +74951059999 или на почту support@mcn.ru.