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

Звонки, инициированные бизнесом | Документация для разработчиков

Звонки, инициированные бизнесом

Обновлено: 13 ноября 2025 г

Обзор

API для звонков позволяет совершать звонки пользователям WhatsApp из вашего бизнеса.
Пользователь определяет, когда можно принимать звонки, предоставляя права на совершение звонков рабочему номеру телефона .

Диаграмма последовательности вызовов

Диаграмма последовательности звонков, инициированных бизнесом, показывающая взаимодействие между бизнесом, облачным API и пользователем WhatsApp
Примечание: ACCEPTED обычно приходит после установления соединения. Облачный API отправляет его в основном для аудита событий вызова.

Предварительные требования

Прежде чем начать совершать звонки по инициативе компании, убедитесь в следующем:
Подпишитесь на поле веб-перехватчика «звонки».API для звонков включены для вашего рабочего телефонного номера
И наконец, прежде чем позвонить пользователю WhatsApp, вы должны получить его разрешение.

Схема обработки звонков, инициированных бизнесом

Часть 1: Получение разрешения на звонок пользователю WhatsApp

Получить разрешение на совершение звонков от пользователя WhatsApp можно одним из следующих способов:
Отправить сообщение с запросом на разрешение вызова
Вы можете запросить разрешение на звонок, отправив пользователю WhatsApp запрос на разрешение. Отправьте его в виде сообщения в свободной форме во время работы службы поддержки клиентов или используйте шаблон сообщения.
Узнайте, как отправить запрос на разрешение на звонок в свободной форме.Узнайте, как отправить запрос на разрешение для вызова шаблона.
Включите параметр callback_permission_status в настройках вызова.
Если параметр callback_permission_status включен, пользователь автоматически предоставляет вашей компании разрешение на совершение звонков при обращении к вам.
Пользователь WhatsApp предоставил постоянные разрешения
Пользователь также может в любое время предоставить компании постоянные права доступа через свой бизнес-профиль.

Часть 2: Ваша компания инициирует новый звонок пользователю WhatsApp

Теперь, когда у вас есть разрешение пользователя, вы можете инициировать новый звонок нужному пользователю WhatsApp.
Если ошибок нет, вы получите успешный ответ:
Примечание: Ответ с кодом ошибки 138006 указывает на отсутствие у пользователя WhatsApp разрешения на запрос вызова для этого номера компании.

Часть 3: Установление соединения с помощью сигнализации веб-перехватчика

После успешного инициирования нового вызова вы получите ответ веб-перехватчика Call Connect, содержащий ответ SDP от Cloud API. Затем ваша компания применит ответ SDP из этого веб-перехватчика к вашему стеку WebRTC для инициирования медиасоединения.
После этого вы получаете соответствующий веб-хук статуса, указывающий на то, что вызов проходит успешно , принят или отклонен :

Конечные точки для звонков, инициированных бизнесом

Инициировать звонок

Используйте этот конечный пункт для инициирования звонка пользователю WhatsApp, указав номер телефона и предложение WebRTC-звонка. Существует ограничение в 10000 инициированных новых звонков в течение 24 часов с одного корпоративного номера телефона.
Параметры тела
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный номер телефонаОшибки доступа/авторизацииОшибки проверки формата запроса, например, информация о соединении, SDP, ICEОшибки проверки SDPОшибки ограничения вызовов

Завершить вызов

Используйте эту конечную точку для завершения активного вызова.
в медиатракте присутствует RTCP BYE
Когда пользователь WhatsApp завершает вызов, вам не нужно звонить на эту конечную точку. После успешного завершения вызова вы получите веб-перехватчик завершения вызова .
Параметры тела
Параметр Описание Пример значения
call_id
Нить
Необходимый

Идентификатор телефонного звонка.
При входящих звонках вы получаете идентификатор вызова от веб-перехватчика Call Connect, когда звонок инициирует пользователь WhatsApp.
“wacid.ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh”
действие
Нить
Необходимый

Действие, выполняемое в отношении указанного идентификатора вызова.
Значения могут быть связаны | предварительное принятие | принятие | отклонение | завершение
«прекратить»
Ответ об успехе
Ответ с ошибкой
Возможные ошибки, которые могут возникнуть:
Неверный идентификатор вызоваНеверный номер телефонаПользователь WhatsApp уже завершил звонокВызов с отклонением уже выполняетсяОшибки доступа/авторизации

Веб-хуки для инициированных бизнес-звонков

внутри "value" ответа вебхука находится "calls" "calls" содержит метаданные о звонке, которые используются для обработки каждого звонка, совершенного или принятого вашей компанией.
Чтобы получать веб-хуки Calling API, подпишитесь на поле веб-хука «calls».

веб-перехватчик статуса вызова

Этот веб-перехватчик отправляется при следующих событиях вызова:
Звонок: Когда устройство пользователя WhatsApp начинает звонитьПринято: Когда пользователь WhatsApp принимает звонокОтклонено: Когда пользователь WhatsApp отклоняет звонок. В этом случае вы также получаете веб-хук завершения вызова
Здесь используется структура веб-хуков, аналогичная структуре веб-хуков статуса, применяемых для сообщений Cloud API.
Значения веб-хуков для "статусов"
Заполнитель Описание
идентификатор
Нить
Уникальный идентификатор для вызова
метка времени
Целое число
Временная метка UNIX события веб-перехватчика
recipient_id
Целое число
Номер телефона пользователя WhatsApp, принимающего звонок
статус
Целое число
Текущий статус вызова.
Возможные значения:
ЗВОНОК : Инициированный компанией звонок поступает на абонента.
ПРИНЯТО : Звонок, инициированный компанией, принят пользователем.
ОТКЛОНЕНО : Звонок, инициированный представителем компании, отклонен пользователем.
biz_opaque_callback_data
Нить
Произвольная строка, которую ваша компания передает в вызов для отслеживания и регистрации данных.
Возвращается только в том случае, если предоставлено через запросы API Initiate New Call.

Вызов завершения веб-перехватчика

Уведомление через веб-перехватчик отправляется всякий раз, когда вызов завершается по какой-либо причине, например, когда пользователь WhatsApp кладет трубку или когда компания вызывает конечную точку с действием « завершить» или «отклонить» .
Значения веб-хуков для "вызовов"
Заполнитель Описание
идентификатор
Нить
Уникальный идентификатор для вызова
к
Целое число
Вызываемый номер (звонящий)
от
Целое число
Номер звонящего
событие
Целое число
Событие вызова, о котором этот веб-перехватчик уведомляет подписчика
метка времени
Целое число
Временная метка UNIX события веб-перехватчика
направление
Нить
Направление совершаемого звонка.
Может содержать либо:
BUSINESS_INITIATED — для звонков, инициированных вашей компанией.
USER_INITIATED — для звонков, инициированных пользователем WhatsApp.
время начала
Целое число
Временная метка UNIX, указывающая на начало звонка.
Присутствует только тогда, когда на звонок ответил другой абонент.
конец_времени
Целое число
Временная метка UNIX, отражающая момент завершения звонка.
Присутствует только тогда, когда на звонок ответил другой абонент.
продолжительность
Целое число
Продолжительность разговора в секундах.
Присутствует только тогда, когда на звонок ответил другой абонент.
biz_opaque_callback_data
Нить
Произвольная строка, которую ваша компания передает в вызов для отслеживания и регистрации данных.
Возвращается только в том случае, если предоставлено через запрос API Initiate Call или запрос Accept Call.
ошибки.код
Целое число
Объект errors присутствует только для неудачных вызовов, если доступна информация об ошибке. Code — это один из кодов ошибок вызова.

Обзор SDP и примеры структур

Протокол описания сеанса (SDP) — это текстовый формат, используемый для описания характеристик мультимедийных сеансов, таких как голосовые и видеозвонки, в приложениях для связи в реальном времени. SDP предоставляет стандартизированный способ описания медиапотоков сеанса. Это включает тип медиафайлов, кодеки, протоколы и параметры для установления и управления сеансом.
В контексте WebRTC протокол SDP используется для согласования параметров передачи данных между отправителем и получателем, позволяя им согласовать специфику обмена данными.