Table of content
описание 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.
Запросы от Платформы к клиенту
Headers
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": ""
}
Headers
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":""
}
Headers
https://your-domain/history_file_completed
Description
Входяшие параметры:
Название параметра | Описание | Формат | Допустимость пустого значения |
---|---|---|---|
order_id | Идентификатор выгрузки | Строка | Не допускается |
result | Код выполнения операции: 0 – Обработка выполнена успешно 1– Обработка выполнена не успешно |
Число | Не допускается |
resultMessage | Описание результата выполнения выгрузки |
Строка | Не допускается |
Body
{
"order_id": "",
"result": "",
"resultMessage": ""
}
Запросы от клиента к Платформе
Headers
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":""
}
Headers
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": ""
}
Headers
https://api.itapi.ru/get_record
Description
Входящие параметры:
Название параметра | Описание | Формат | Допустимость пустого значения |
---|---|---|---|
session_id | Внутренний идентификатор сессии на Платформе | Строка | Не допускается |
ip_adress | IP-адрес, с которого будет доступна возможность загрузки записи разговора по временной ссылке. Если IP-адрес не указан, то загрузка записи разговора будет доступна только с IP-адреса, с которого пришел запрос на формирование одноразовой ссылки. |
Строка | Допускается |
Возвращаемые параметры:
Название параметра | Описание | Формат | Допустимость пустого значения |
---|---|---|---|
result | Код выполнения операции: 0 – Операция выполнена успешно |
Целое число | Не допускается |
resultMessage | Описание результата выполнения запроса | Строка | Не допускается |
url | Одноразовая ссылка на файл с записью разговора, доступный для скачивания. | Строка | Допускается, если result > 0 |
Body
{"session_id": ""}
Headers
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 – не оператор |
Логическое значение | Не допускается |
Адрес электронной почты пользователя домена | Строка | Допускается | |
recording | Признак того, что разговоры пользователя записываются: 0 – не записываются; 1 – записываются; 2 – записываются с аналитикой. |
Число | Не допускается |
Описание объекта group
Название параметра | Описание | Формат | Допустимость пустого значения |
---|---|---|---|
name | Название группы, в которой состоит пользователь домена | Строка | Не допускается |
pin | Внутренний номер группы домена | Строка | Не допускается |
Адрес электронной почты группы | Строка | Допускается | |
distribution | Алгоритм распределения вызовов (классификатор): 0 – не задан; 1 – всем пользователям; 2 – наиболее свободный; 3 – наименее занятый; 4 – случайный. |
Число | Не допускается |
users_list | Строковый массив внутренних номеров пользователей, которые входят в данную группу | Массив | Допускается |
Body
{
"domain":"",
"user_name":"",
"user_pin":""
}
Headers
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": ""
}
Headers
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":""
}
Headers
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
}
Headers
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
}
Headers
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":""
}