Статья описывает принцип работы динамической переадресации входящих вызовов по API: при поступлении входящего звонка платформа МТС Exolve отправляет на указанный адрес POST-запрос методом getControlCallFollowMe с данными о вызове, а ваш сервер возвращает параметры для маршрутизации вызова.
Ниже приведены входные параметры запроса, который МТС Exolve отправляет на ваш URL-адрес, и выходные параметры вашего ответа в нотации JSON-RPC.
Сначала установите переадресацию входящих вызовов с помощью API-метода SetCallForwarding
Входные параметры
| Параметр | Тип | Описание |
|---|---|---|
| sip_id | string | купленный в приложении номер, на который поступил вызов |
| numberA | string | номер телефона, с которого поступил вызов |
| call_sid | string | уникальный идентификатор вызова |
Выходные параметры
| Параметр | Тип | Описание |
|---|---|---|
| sip_id | string | купленный в приложении номер, на который поступил вызов |
| result | Result | настройка переадресации |
Result
| Параметр | Тип | Описание |
|---|---|---|
| redirect_type | int | тип переадресации: 1 — одиночная, 2 — последовательная, 3 — параллельная |
| followme_struct | FollowMeStruct | параметры для переадресации входящего вызова |
| event_URL | string | URL для отправки уведомлений о ходе звонка |
| event_extended | boolean | True— получить расширенные логи по звонку, False — получить стандартные логи (применимо только для redirect_type = 1). Если параметр не указан в ответе API клиента, по умолчанию передаются стандартные логи |
| client_id | string | сквозной идентификатор вызова от API клиента |
| file_to_A | string | ID аудиосообщения, которое будет проигрываться звонящему абоненту. Если параметр не указан, аудио проигрываться не будет |
| file_to_B | string | ID аудиосообщения, которое будет проигрываться вызываемому абоненту. Если параметр не указан, аудио проигрываться не будет |
| masking | boolean | True — скрыть оригинальный номер звонящего абонента, False — показать оригинальный номер звонящего абонента. Если параметр не указан, показан оригинальный номер звонящего |
| display_number | string | номер, который показывается абоненту C (номер переадресации). Зависит от параметра masking. Если masking — False, принимающему вызов показывается реальный номер звонящего. Если masking — True, можно передать любой номер Exolve, принадлежащий этому приложению |
| answer | boolean | True — для аудиоинформирования в ответном состоянии, False — для аудиоинформирования в предответном состоянии. Если параметр не указан в ответе API клиента, аудио проигрываетяся в предответном состоянии |
FollowMeStruct
| Параметр | Тип | Описание |
|---|---|---|
| i_follow_order | string | порядок следования номера при переадресации вызова |
| active | boolean | True — переадресовать вызов на redirect_number, False — сбросить вызов |
| name | string | символьное имя номера для переадресации вызова |
| redirect_number | string | номер или юзернейм SIP ID для переадресации вызова |
| period | string | always |
| period_description | string | описание расписания активности для переадресации вызова |
| timeout | string | таймаут (в секундах), время ожидания ответа |
| sip_uri | string | URI-адрес 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
}
]]
}
}