описание api.itapi.ru

В заголовке POST-запроса передаются параметры:

header.X-Client-ID: содержит значение уникального кода услуги «Интеграционный API»;

код указан в поле «Уникальный код идентификации» на странице настроек Интеграционного API . По X-Client-ID идентифицируется абонент услуги «Виртуальная АТС»;

header.X-Client-Sign: подпись, которой в целях повышения уровня безопасности подписывается каждый запрос (от Интеграционного API к внешней системе и в обратном направлении). Подпись запроса (header.X-Client-Sign) формируется как хэш-сумма от следующих параметров:
- уникальный код идентификации – свой для каждого клиента ВАТС;
- данные запроса;
- уникальный ключ для подписи – указан в одноименном поле на странице настроек Интеграционного API. Данный параметр должен быть известен только отправляющей и принимающей стороне.
То есть: X-Client-Sign = sha256hex (<уникальный код идентификации> + <данные запроса
(json)> + <уникальный ключ для подписи>)
Данные POST-запроса передаются в формате JSON (Content-Type: application/json).

Пример он-лайн калькулятора sha256hex - http://www.xorbin.com/tools/sha256-hash-calculator.


Запросы от Платформы к клиенту

POST
call_events

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://your-domain/call_events

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
session_id Внутренний идентификатор сессии на Платформе.
Все последующие события (переадресация, перевод средствами СП), генерируемые в процессе обработки вызова, будут иметь одинаковое значения данного поля
Строка Не допускается
timestamp Время возникновения события (UTC +3)*

* события по вызовам передаются по московскому
времени
Строка Не допускается
type Тип вызова:
incoming – входящий
outbound – исходящий
internal – внутренний
Строка Не допускается
state Тип уведомления:
- new
- calling
- connected
- disconnected
- end
Строка Не допускается
from_number Номер в формате E.164 или SIP-URI вызывающего абонента. Строка Не допускается
from_pin Внутреннйи номер (PIN) вызывающего абонента.
Устанавливается только для исходящих и внутренних вызовов.
Строка Допускается
request_number Номер в формате E.164 или SIP-URI вызываемого абонента. Строка Не допускается
request_pin Внутренний номер (PIN) вызываемого абонента.
Устанавливается только для входящих и внутренних вызовов
Строка Допускается
disconnect_reason Причина завершения вызова.
Устанавливается только для уведомлений о завершении вызова (disconnected).
Строка Допускается
is_record Флаг, уведомляющий о наличии записи разговора.
Устанавливается только для уведомлений о завершении вызова (end).

Событие «new» фиксируется при создании сессии вызова.

Событие «calling» фиксируется при начале дозвона до пользователя домена по его контактным номерам. Данное событие может передаваться несколько раз, например, при переборе контактных номеров или при поиске оператора, который может ответить.

Событие «connected» фиксируется при ответе на вызов (установка акустического соединения со вторым участником). Данное событие может передаваться несколько раз, например, при переводе вызова. Повторная отправка «connected» предваряется одним или несколькими событиями «calling», с перебираемыми при дозвоне номерами.

Событие «disconnected» фиксируется при завершении плеча вызова (разрыв соединения со вторым участником). Данное событие может передаваться несколько раз, например при переводе вызова.

Событие «end» фиксируется при завершении сессии.


Body

{
"session_id": "",
"timestamp": "",
"type": "",
"state": "",
"from_number": "",
"from_pin": "",
"request_number": "",
"request_pin": "",
"disconnect_reason": "",
"is_record": ""
}

POST
get_number_info

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://your-domain/get_number_info

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
domain Название домена, на который пришел вызов Строка Не допускается
from_number Номер в формате E.164 Строка Не допускается
request_number Номер в формате E.164 (номер входящей линии). Строка Не допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (кодпроверен, номер свободен)
Число Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если
result = 0
displayName Отображаемое имя для добавления информации о вызове. Строка Допускается, если
result > 0
PIN Внутренний номер пользователя, на который необходимо маршрутизировать вызов.
Если поле пустое или ответ на запрос не получен в установленный таймаут, то вызов маршрутизируется в соответствии с установленными правилами маршрутизации.
Строка Допускается

Body

{
"domain":"",
"from_number":"",
"request_number":""
}

POST
history_file_completed

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://your-domain/history_file_completed

Description

Входяшие параметры:

Название параметра Описание Формат Допустимость пустого значения
order_id Идентификатор выгрузки Строка Не допускается
result Код выполнения операции:
0 – Обработка выполнена успешно
1– Обработка выполнена не успешно
Число Не допускается
resultMessage Описание результата выполнения
выгрузки
Строка Не допускается

Body

{
"order_id": "",
"result": "",
"resultMessage": ""
}



Запросы от клиента к Платформе

POST
call_back

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/call_back

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
request_number Номер в формате E.164 Строка Не допускается
from_sipuri SIP-URI пользователя домена, с которым идет предварительное соединение.
Если задан from_sipuri и from_pin, то
используется параметр from_sipuri
Строка Допускается, если
задан from_pin
from_pin Внутренний номер пользователя домена, с которым идет предварительное соединение. Строка Допускается, если
задан from_sipuri

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно
Целое число Не допускается
resultMessage Описание результата выполнения запроса Строка Не допускается
session_id Внутренний идентификатор сессии на Платформе Строка Допускается, если
result > 0

Body

{
    "request_number": "",
    "from_sipuri": "",
    "from_pin":""	
}

POST
auth_number

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/auth_number

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
to_number Номер абонента Строка Не допускается
auth_code Числовой код, который будет озвучен. От 3 до 5 цифр Целое число Не допускается
from_number Внешний номер домена, с которого будет осуществлен вызов. Строго 10 цифр. Если не указан или не найден, используется номер по умолчанию Строка Допускается
greeting_type Номер приветствия перед озвучиванием кода из числа предопределенных.

Возможные значения:
1 - “Ваш проверочный код”
2 - “Код авторизации”
3 - “Код подтверждения”
любое другое число - отсутствие приветствия
Целое число Допускается
repeat Количество повторов, после первого
озвучивания
Максимальное количество повторов – 3.
Целое число Допускается
pause Пауза в сек. перед повтором Целое число Допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)

Неуспешные коды:
102 - ‘АОН должен содержать 10-значный номер’
103 - ‘Номер АОН не доступен для использования в сценарии’
201 - ‘Номер абонента не может быть
пустым’
202 - ‘Длина номера превышает %max_len% символов’
203 - ‘Телефонный номер должен состоять не более, чем из 15 цифр’
204 - ‘Имя пользователя для SIP-URI содержит запрещенные символы’
205 - ‘Некорректный домен для SIP-URI’
301 - ‘Название домена не может быть пустым’
302 - ‘Домен не найден’
302 - ‘Домен заблокирован’
302 - ‘Универсальный API или интеграция с CRM не включены’
401 - ‘Код не может быть пустым’
402- ‘Код должен содержать от 3 до 5
цифр’
501 - ‘Номер приветствия должен быть числом’
701 - ‘Пауза должна содержать число
секунд’
-1 - ‘Error decoding POST body as JSON’
Целое число Не допускается
resultMessage Описание результата выполнения запроса.
Примеры сообщений приведены выше по тексту
Строка Допускается, если
result = 0
session_id Внутренний идентификатор сессии на
Платформе.
Строка Допускается, если
result > 0

Общий алгоритм сценария «Авторизация номера исходящим вызовом UAPI»
Сценарий «Авторизация номера исходящим вызовом» выполняет следующую последовательность действий:

1. Осуществляет проверки:

-Проверяется указанный “Номер вызываемого абонента” (из вх. параметров запроса):
а. Если указан неправильный номер, то сценарий останавливается и возвращается ошибка.

- Проверяется указанный АОН (из вх.параметров запроса):
а. Если номер не указан, то используется номер по умолчанию домена.
б. Если указанный номер не принадлежит домену, является номером 8800 или внешним номером домена, то возвращается ошибка (см. описание метода - код 103).

- Проверяется число повторов:
а. Если не число или отрицательное число, то приравнивать к 0 - т.е. фраза произнесется один раз и не будет ни одного повтора (будет ноль повторов)

- Проверяется последовательность цифр:
а. Не число – ошибка.
б. Число вне диапазона от «000» до «99999» - ошибка.
- Стандартные проверки состояния домена (нет блокировок, есть средства на балансе и т.п.).

2. Если проверки пройдены, то осуществляется исходящий вызов на номер вызываемого абонента с использованием указанного номера домена

3. Если вызываемый абонент не ответил, то сценарий завершается, повторных попыток дозвона не предусмотрено

4. В случае ответа вызываемого абонента сценарий:
в. Проигрывает файл приветствия, соответствующий указанному “номеру приветствия” из входящих параметров.
г. Проигрывает последовательность файлов, соответствующих указанным цифрам в указанной последовательности из входящих параметров (может быть от 3 до 5 цифр).
д. Если указано число повторов, то цикл по числу повторов:

  • i. Уменьшает число оставшихся повторов на 1.
  • ii. Пауза на указанное во входящих параметрах число секунд (допускается от 1 до 5 секунд):
    ­если пришло пустое значение или меньше 1, то длительность паузы = 1 сек;
    ­если пришло больше 5, то длительность паузы = 5 сек.
  • iii. Проигрывает фразу «Повторяю».
  • iv. Конец цикла.

е. Если число повторов = 0 или вообще не было указано (или указано отрицательное значение), то:
i. Соединение с абонентом прерывается.
ii. Сценарий завершается.


Body

{
    "to_number": "",
    "auth_code": "",
    "from_number": "",
    "greeting_type": "",
    "repeat": "",
    "pause": ""
}

POST
get_record

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/get_record

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
session_id Внутренний идентификатор сессии на Платформе Строка Не допускается
ip_adress IP-адрес, с которого будет доступна возможность загрузки записи разговора по временной ссылке.

Если IP-адрес не указан, то загрузка записи разговора будет доступна только с IP-адреса, с которого пришел запрос на формирование одноразовой ссылки.
Строка Допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно
Целое число Не допускается
resultMessage Описание результата выполнения запроса Строка Не допускается
url Одноразовая ссылка на файл с записью разговора, доступный для скачивания. Строка Допускается, если
result > 0

Body

{"session_id": ""}

POST
users_info

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/users_info

Description

Предоставление по запросу внешней системы информации о пользователях домена:
- возвращается информация об одном пользователе, если на вход передается логин (AOR) или добавочный номер (PIN) пользователя;
- возвращается информация обо всех пользователях домена, если в параметры AOR пользователя и PIN пользователя содержат пустые значения.

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
domain Название домена, по которому запрашивается информация Строка Не допускается
user_name Логин пользователя домена Строка Допускается
user_pin Внутренний номер (PIN) пользователя домена Строка Допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен
Число Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0
users Информация о пользователях домена.
Отображается массив объектов user.
Если задан user_aor или user_pin, то в списке возвращается только один элемент.
JSON Допускается, если result > 0
groups Информация о группах домена (не входят группы переадресации).
Отображается массив объектов group.
Если задан user_aor или user_pin, то параметр не передается.
JSON Допускается, если
result > 0 или
указан AOR или
PIN пользователя

Описание объекта user:

Название параметра Описание Формат Допустимость пустого значения
display_name Отображаемое имя пользователя домена Строка Допускается
name Логин пользователя домена Строка Не допускается
pin Внутренний номер
пользователя домена
Строка Не допускается
is_supervisor Признак того, что пользователь является администратором домена.
true – администратор;
false – не администратор.
Логическое значение Не допускается
is_operator Признак того, что пользователь является оператором.
true – оператор;
false – не оператор
Логическое значение Не допускается
email Адрес электронной почты пользователя домена Строка Допускается
recording Признак того, что разговоры пользователя записываются:
0 – не записываются;
1 – записываются;
2 – записываются с аналитикой.
Число Не допускается

Описание объекта group

Название параметра Описание Формат Допустимость пустого значения
name Название группы, в которой состоит пользователь домена Строка Не допускается
pin Внутренний номер группы домена Строка Не допускается
email Адрес электронной почты группы Строка Допускается
distribution Алгоритм распределения вызовов (классификатор):
0 – не задан;
1 – всем пользователям;
2 – наиболее свободный;
3 – наименее занятый;
4 – случайный.
Число Не допускается
users_list Строковый массив внутренних номеров пользователей, которые входят в данную группу Массив Допускается

Body

{
"domain":"",
"user_name":"",
"user_pin":""
}

POST
call_info

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/call_info

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
session_id Внутренний идентификатор сессии на Платформе Строка Не допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)
Число Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0
info Детальная информация о вызове JSON Допускается, если result > 0

Описание параметра info

Название параметра Описание Формат Допустимость пустого значения
call_type 1 – обычный звонок
3 – callback
Целое число Не допускается
direction Направление вызова:
1 – от внешнего клиента (входящий);
2 – внешнему клиенту (исходяший);
3 – внутренний
Целое число Не допускается
state 1 – вызов принят
2 – вызов не принят
Целое число Не допускается
orig_number Номер в формате SIP-URI вызывающего
абонента.
Строка Не допускается
orig_pin Внутренний номер (PIN) вызывающего абонента (для исходящих и внутренних вызовов). Строка Допускается для
входящих вызовов
dest_number Номер в формате SIP-URI вызываемого абонента:
- для входящих вызовов – номер линии домена
Строка Не допускается
answering_sipuri Номер первого ответившего абонента в формате SIP-URI. Строка Допускается, если не было акустического соединения
answering_pin Внутренний номер (PIN) первого ответившего абонента (для входящих и внутренних вызовов). Строка Допускается
start_call_date Дата и время входящего вызовы TIMESTAMP Не допускается
duration Продолжительность вызова в секундах, при отсутствии соединения передается 0 Число Не допускается
session_log Краткий протокол вызова (переадресации, переводы, перехваты и т.д.), как в журнале Текст Не допускается
is_voicemail Флаг, уведомляющий о наличии голосового сообщения. Bool Не допускается
is_record Флаг, уведомляющий о наличии записи разговора. Bool Не допускается
is_fax Флаг, уведомляющий о наличии факсимильного сообщения. Bool Не допускается
status_code Код ошибки соединения Строка Допускается
status_string Текст ошибки соединения Строка Допускается

Body

{
    "session_id": ""
}

POST
restricting_user_outgoing_calls/get

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/restricting_user_outgoing_calls/get

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
user_name Логин пользователя домена Строка Допускается, если задан user_pin
user_pin Внутренний номер (PIN) пользователя домена Строка Допускается, если задан user_name

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)
Строка Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0
restricting_outgoing_calls 0 – Без ограничений
1 – Запрет международных
2 – Запрет междугородных и международных
3 – Запрет всех вызовов, кроме внутренних
Число Не допускается

Body

{
"user_name":"",
"user_pin":""
}

POST
restricting_user_outgoing_calls/set

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/restricting_user_outgoing_calls/set

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
user_name Логин пользователя домена Строка Допускается, если задан user_pin
user_pin Внутренний номер (PIN) пользователя домена Строка Допускается, если задан user_name
restricting_outgoing_calls 0 – Без ограничений
1 – Запрет международных
2 – Запрет междугородных и международных
3 – Запрет всех вызовов, кроме внутренних
Число Не допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)
Строка Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0

Body

{
"user_name":"",
"user_pin":"",
"restricting_outgoing_calls": 0
}

POST
user_calls_charges

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/user_calls_charges

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
user_name Логин пользователя домена Строка Не допускается
date_start Datetime по часовому поясу Москвы в формате datetime (yyyy-MM-dd HH:mm:ss) Строка Не допускается
date_end Datetime по часовому поясу Москвы в формате datetime (yyyy-MM-dd HH:mm:ss) Строка Не допускается
shift Сдвиг – значение определяет сколько элементов необходимо пропустить при выдаче результата.
Если значение не задано, то возвращается список вызовов без сдвига (сортируется по дате и времени начала вызова).
Например, если запрашивается третья страница (page_size = 30 ), то значение параметра устанавливается равным 60
Целое число Допускается.
Если значение не задано, то устанавливается равным 0
page_size Количество возвращаемых вызовов.
Может принимать значение от 1 до 100.
По умолчанию 20
Целое число Допускается,
Если значение не задано, то устанавливается равным 20

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)
Строка Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0
number_of_calls Общее количество телефонных номеров, удовлетворяющих запросу Число Допускается, если result > 0
calls Детальная информация о вызовах
Массив значений call.
Вызовы отсортированы по дате и времени начала вызова.
JSON Допускается, если result > 0 или список пустой

Описание параметра call:

Название параметра Описание Формат Допустимость пустого значения
dest_number Номер в формате E.164 (без префикса +) Строка Не допускается
start_call_date Дата и время исходящего вызова в формате datetime (yyyy-MM-dd HH:mm:ss.S) Строка Не допускается
duration Продолжительность вызова в секундах, при отсутствии соединения передается 0 Строка Не допускается
service_tar_duration Тарифицируемый интервал Строка Не допускается
service_charges Стоимость вызова Строка Не допускается

Ограничения метода:

Разница между date_end и date_start не может быть более 31 дня.
Максимальный размер page_size равен 100 вызовов


Body

{
"user_name":"shebanov3",
"date_start":"2023-06-06 00:00:00",
"date_end":"2023-07-07 00:00:00",
"shift": 0,
"page_size": 15
}

POST
user_active_calls

Headers

X-Client-ID
{{keyA}}
X-Client-Sign
{{hash}}
Content-Type
application/json
https://api.itapi.ru/user_active_calls

Description

Входящие параметры:

Название параметра Описание Формат Допустимость пустого значения
pin Внутренний номер пользователя домена (PIN), по которому запрашивается информация об активных вызовах Число Не допускается

Возвращаемые параметры:

Название параметра Описание Формат Допустимость пустого значения
result Код выполнения операции:
0 – Операция выполнена успешно (код проверен, номер свободен)
Число Не допускается
resultMessage Описание результата выполнения запроса Строка Допускается, если result = 0
calls Список активных вызовов пользователя (call) JSON Допускается

Описание объекта call

Название параметра Описание Формат Допустимость пустого значения
session_id Внутренний идентификатор сессии на Платформе. Строка Не допускается
session_start Старт сессии (UTC) TIMESTAMP Не допускается
type Тип вызова для пользователя:
- incoming
- outbound
- internal
Строка Не допускается
state Состояние вызова:
- calling
- connected
Строка Не допускается
number Номер собеседника в формате E.164 или SIP-URI Строка Не допускается

Body

{
"pin":""
}