MCN Telecom logo

База знаний

Command Palette

Search for a command to run...

Структура интеграции 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 — программный интерфейс приложения).

  • Токен может видеть сотрудник в роли Администратора или Владельца аккаунта;

  • Токен привязан к сотруднику и договору (если у пользователя много договоров можно сделать нужный договор по умолчанию (нажмите на звездочку перед договором) и тогда в нем появится токен.

    85858.png

    Как вызвать токен с ЛС не по умолчанию

    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.

Структура интеграции MCNtelecom