Как настроить динамическую переадресацию входящих вызовов по API (на URL)

Статья описывает принцип работы динамической переадресации входящих вызовов по API: при поступлении входящего звонка платформа МТС Exolve отправляет на указанный адрес POST-запрос методом getControlCallFollowMe с данными о вызове, а ваш сервер возвращает параметры для маршрутизации вызова.

Ниже приведены входные параметры запроса, который МТС Exolve отправляет на ваш URL-адрес, и выходные параметры вашего ответа в нотации JSON-RPC.


Сначала установите переадресацию входящих вызовов с помощью API-метода SetCallForwarding


Входные параметры

ПараметрТипОписание
sip_idstringкупленный в приложении номер, на который поступил вызов
numberAstringномер телефона, с которого поступил вызов
call_sidstringуникальный идентификатор вызова

Выходные параметры

ПараметрТипОписание
sip_idstringкупленный в приложении номер, на который поступил вызов
resultResultнастройка переадресации

Result

ПараметрТипОписание
redirect_typeintтип переадресации: 1 — одиночная, 2 — последовательная, 3 — параллельная
followme_structFollowMeStructпараметры для переадресации входящего вызова
event_URLstringURL для отправки уведомлений о ходе звонка
event_extendedbooleanTrue— получить расширенные логи по звонку, False — получить стандартные логи (применимо только для redirect_type = 1). Если параметр не указан в ответе API клиента, по умолчанию передаются стандартные логи
client_idstringсквозной идентификатор вызова от API клиента
file_to_AstringID аудиосообщения, которое будет проигрываться звонящему абоненту. Если параметр не указан, аудио проигрываться не будет
file_to_BstringID аудиосообщения, которое будет проигрываться вызываемому абоненту. Если параметр не указан, аудио проигрываться не будет
maskingbooleanTrue — скрыть оригинальный номер звонящего абонента, False — показать оригинальный номер звонящего абонента. Если параметр не указан, показан оригинальный номер звонящего
display_numberstringномер, который показывается абоненту C (номер переадресации). Зависит от параметра masking. Если masking — False, принимающему вызов показывается реальный номер звонящего. Если masking — True, можно передать любой номер Exolve, принадлежащий этому приложению
answerbooleanTrue — для аудиоинформирования в ответном состоянии, False — для аудиоинформирования в предответном состоянии. Если параметр не указан в ответе API клиента, аудио проигрываетяся в предответном состоянии

FollowMeStruct

ПараметрТипОписание
i_follow_orderstringпорядок следования номера при переадресации вызова
activebooleanTrue — переадресовать вызов на redirect_number, False — сбросить вызов
namestringсимвольное имя номера для переадресации вызова
redirect_numberstringномер или юзернейм SIP ID для переадресации вызова
periodstringalways
period_descriptionstringописание расписания активности для переадресации вызова
timeoutstringтаймаут (в секундах), время ожидания ответа
sip_uristringURI-адрес SIP-аккаунта формата: {имя пользователя}@{домен или IP}:{порт}

Ответ должен соответствовать нотации JSON-RPC.

Примеры

Входные параметры:

{
    "id": "1",
    "jsonrpc": "2.0",
    "method": "getControlCallFollowMe",
    "params":
    {
       "sip_id": "74994445566",
       "numberA": "79990009988",
       "call_sid": "cald4c209ea-0e84-4a10-856a-6e7eab48e4f5"              
    }
}

Выходные параметры (переадресация на номер):

{
    "id": 1,
    "jsonrpc": "2.0",
    "sip_id": "74994445566",
    "result": {
        "redirect_type": 1,
        "event_URL": "http://domain/redirect.php",
        "client_id": "777",
        "event_extended": false,
        "file_to_A": "12345",
        "file_to_B": "54321",
        "masking": true,
        "display_number": "74994445566",
        "followme_struct": [ 1, [
            {
                "I_FOLLOW_ORDER": 1,
                "ACTIVE": true,
                "NAME": "Test",
                "REDIRECT_NUMBER": "79991112233",
                "PERIOD": "always",
                "PERIOD_DESCRIPTION": "always",
                "TIMEOUT": 30
            }
        ]]
    }
}

Выходные параметры (переадресация на SIP ID):

{
    "id": 1,
    "jsonrpc": "2.0",
    "sip_id": "74994445566",
    "result": {
        "redirect_type": 1,
        "event_URL": "http://domain/redirect.php",
        "client_id": "777",
        "event_extended": false,
        "file_to_A": "12345",
        "file_to_B": "54321",
        "masking": true,
        "display_number": "74994445566",
        "followme_struct": [ 1, [
            {
                "I_FOLLOW_ORDER": 1,
                "ACTIVE": true,
                "NAME": "Test",
                "REDIRECT_NUMBER": "883140776943211",
                "PERIOD": "always",
                "PERIOD_DESCRIPTION": "always",
                "TIMEOUT": 30
            }
        ]]
    }
}

Выходные параметры (переадресация на SIP ID):

{
    "id": 1,
    "jsonrpc": "2.0",
    "sip_id": "74994445566",
    "result": {
        "redirect_type": 1,
        "event_URL": "http://domain/redirect.php",
        "client_id": "777",
        "event_extended": false,
        "file_to_A": "12345",
        "file_to_B": "54321",
        "masking": true,
        "display_number": "74994445566",
        "followme_struct": [ 1, [
            {
                "I_FOLLOW_ORDER": 1,
                "ACTIVE": true,
                "NAME": "Test",
                "SIP_URI": "testsip06844538@testsip.test.ru",
                "PERIOD": "always",
                "PERIOD_DESCRIPTION": "always",
                "TIMEOUT": 30
            }
        ]]
    }
}