Для работы с API нужна авторизация.
Для авторизации необходимо:
- Получить токен
Для получения токена надо сформировать POST запрос
в запросе ожидаются параметры:
email - e-mail адрес, например just@example.ru
password - пароль, например 1234567890
Пары email/password должны быть установлены нами предварительно.
Пример данных запроса в формате json:
{"email": "just@example.ru", "password": "1234567890"}
ответ:
{"token": eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYyNzMwOTI3MiwianRpIjoiNDc1OGFjMGMtYjEzZi00NTE0LTlmNTEtZWI3MzNmYmNlYWFlIi"}
Полученный токен имеет время жизни 24 часа.
- При запросах к API в заголовке должен присутствовать параметр Authorization.
Формат: Bearer <токен>
например:
Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTYyNzMwOTI3MiwianRpIjoiNDc1OGFjMGMtYjEzZi00NTE0LTlmNTEtZWI3MzNmYmNlYWFlIi
Запросы на инициирование вызова PinCall, а также на получение данных о вызове PinCall
Инициирование вызова - POST запрос.
в запросе ожидаются параметры:
async = 1 (другие значения недопустимы)
dstNumber - номер в формате e164, 9-15 цифр, первой цифрой не должен быть 0, например 79871234567
timeout - таймаут от 20 до 79 сек, должен быть обязательно задан
pin - 4-х значный цифровой код, должен присутствовать обязательно
lang – язык для воспроизведения PIN кода. В настоящий момент может принимать значения ru или en
Пример данных запроса в формате json:
{"async": "1", "dstNumber": "79871234567", "timeout": "30", "pin": "1330", "lang": "ru"}
Данные ответа:
- параметр status - код завершения операции.
Общая классификация соответствует кодам завершения HTTP:
2xx: успешно
4xx, 5xx: ошибка при выполнении операции
- параметр message - присутствует в случае завершения с ошибкой и содержит ее краткое описание
- объект callDetails,
содержащий параметры:
callId – идентификатор сгенерированного вызова, строка
pin – код, который использован как последние 4 цифры номера источника, строка
status = null
async - копирует значение из запроса
timeout - копирует значение из запроса
lang - копирует значение из запроса
dstNumber - копирует значение из запроса
Пример данных в ответе:
{"status": "200", "callDetails": {"async": "1", "dstNumber": "79871234567", "pin": "1333", "timeout": "30", "lang": "ru", "callId": "zW49iyxL9WDZ5Fi", "status": "null"}}
Получение данных о вызове - POST запрос.
в запросе один обязательный параметр:
callId – идентификатор сгенерированного вызова, строка
Пример данных запроса в формате json:
{"callId": "VkjBKofAHZxrEMX"}
Данные ответа:
- параметр status - код завершения операции.
Общая классификация соответствует кодам завершения HTTP:
2xx: успешно
4xx, 5xx: ошибка при выполнении операции
- параметр message - присутствует в случае завершения с ошибкой и содержит ее краткое описание
- объект callDetails,
содержащий параметры:
callId – идентификатор сгенерированного вызова, строка
reasonCode - SIP response code
status - статус вызова, строка, возможные значения: "ANSWER" – отвечено, "BUSY" – занято, "NOANSWER" – нет ответа, "CONGESTION" - канал перегружен
result - DELIVERED - вызов доставлен до абонента, NOTDELIVERED - не доставлен
description - расширенный комментарий о причине завершения вызова
может принимать значения:
- для result = DELIVERED
call answered
- для result = NOTDELIVERED
call not answered
Пример данных в ответе:
{"status": "200", "callDetails": {"callId": "jRe3RyO3WqUKcEq", "reasonCode": "200", "status": "ANSWER", "result": "DELIVERED", "description": "call answered"}}
или
{"status": "404", "callDetails": {"callId": "jRe3RyO3WqUKcEd", "result": "Call not found! Try later..."}}