Перейти к основному содержимому

Wait Call

Wait Call – это способ подтверждения номера телефона с помощью исходящего звонка, который совершает сам пользователь. Услуга предназначена для авторизации, верификации или подтверждения действий, аналогично SMS-коду или Telegram Gateway, но реализуется через телефонный звонок.

Отправка осуществляется через общий метод отправки сообщений POST /api/message.

Авторизация без озвучивания кода

Как это работает

  1. Клиент вводит свой номер телефона на сайте или в мобильном приложении.
  2. Система предлагает пользователю сделать звонок
на авторизационный номер телефона.
  3. Происходит дозвон и сброс. Если введённый номер совпал с номером, с которого осуществлялся звонок, система его авторизует.

В этом режиме пользователю необходимо просто позвонить на указанный номер. Звонок будет сброшен, а вы получите информацию о том, был ли звонок совершен. Подходит для максимально быстрой авторизации без участия пользователя в интерфейсе.

Пример запроса:

curl -X POST "https://cp.redsms.ru/api/message" \
-H "login: <USERNAME>" \
-H "ts: ts-value-42" \
-H "secret: $(echo -n 'ts-value-42<API_KEY>' | md5sum | awk '{print $1}')" \
-H "Content-type: application/json" \
-d '{
"route": "wcall",
"to": "+79993332211",
}'

Пример тела ответа:

{
"items": [
{
"uuid": "af19b73c-0c01-11ef-8136-0242ac120002",
"status": "created",
"status_time": 1715763320,
"to": "+79993332211",
"replacedFrom": "+79160001122"
}
],
"errors": [],
"count": 1,
"success": true
}
примечание

В ответе поле replacedFrom содержит номер, на который должен позвонить пользователь.

Авторизация с озвучиванием кода

Как это работает

  1. Клиент вводит свой номер телефона на сайте или в мобильном приложении.
  2. Система предлагает пользователю сделать звонок
на авторизационный номер телефона.
  3. Клиент звонит на номер, ему озвучивается код, он вводит его
в соответствующее поле и проходит авторизацию. Пользователь звонит на указанный номер, и во время соединения ему проговаривается код из поля text. Подходит для сценариев, где пользователь вводит код в вашем приложении или на сайте.

Пример запроса:

curl -X POST "https://cp.redsms.ru/api/message" \
-H "login: <USERNAME>" \
-H "ts: ts-value-42" \
-H "secret: $(echo -n 'ts-value-42<API_KEY>' | md5sum | awk '{print $1}')" \
-H "Content-type: application/json" \
-d '{
"route": "wcall",
"to": "+79993332211",
"text": "1234"
}'

Пример ответа:

{
"items": [
{
"uuid": "b101a6b4-0c01-11ef-8136-0242ac120002",
"status": "created",
"status_time": 1715763325,
"to": "+79993332211",
"replacedFrom": "+79160001122"
}
],
"errors": [],
"count": 1,
"success": true
}

Статус доставки

Статус можно получить через метод GET /api/message/{uuid} или Webhook:

СтатусЗначение
wcall_deliveredПользователь успешно совершил звонок на указанный номер
timeoutПользователь не совершил звонок в течение заданного времени жизни сообщения

Примечания

  1. Тарифицируются все отправленные запросы.
  2. Если параметр text не указан, то для отправки выбирается режим без озвучивания кода.
  3. Номер, на который необходимо совершить звонок, всегда указывается в ответе в поле replacedFrom.
  4. Можно задать время жизни сообщения — если в течение этого времени пользователь не совершит звонок, сообщение получит статус timeout.
  5. Логика подтверждения зависит от режима:
    • В режиме без кода: подтвердить авторизацию по факту звонка (delivered).
    • В режиме с кодом: пользователь должен ввести полученный по звонку код.