Перейти к содержанию

JavaScript WhatsАpp API Calls Client Library#

Бета-версия

Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно. В будущем за функционал может взиматься дополнительная плата.
Подключение к функционалу можно запросить через техподдержку GREEN-API

Библиотека JavaScript WhatsАpp API Calls Client позволяет принимать и совершать голосовые звонки WhatsApp* из приложений на JavaScript и TypeScript через API сервиса GREEN-API. Сигнальные сообщения передаются по WebSocket, а звук — по WebRTC, поэтому звонки работают прямо в браузере без установки дополнительного ПО. Чтобы воспользоваться библиотекой, нужно получить регистрационный токен и ID инстанса в личном кабинете.

Из чего состоит библиотека#

  • GreenApiVoipClient — клиент для работы с REST-методами управления звонками: инициировать, принять, отклонить и завершить звонок. Учётные данные передаются в конструктор клиента.
  • CallsConnection — объект, который возвращает метод connectCalls(). Он устанавливает WebSocket-соединение для получения событий о состоянии звонков и уведомлений о входящих вызовах. Аудиопоток звонка передаётся отдельно по WebRTC.

Плюсы использования WebRTC:

  • Доступность в браузерах
  • Низкая задержка (на уровне долей секунды), sub-second latency
  • Контроль перегрузки (congestion control)
  • Обязательное шифрование

Авторизация в личном кабинете#

Чтобы совершать и принимать звонки, инстанс должен быть в авторизованном состоянии. Для авторизации инстанса перейдите в личный кабинет и отсканируйте QR-код с использованием приложения WhatsApp*. Библиотека занимается только звонками и в авторизации инстанса не участвует.

Готовый клиент на этой библиотеке#

В репозитории лежит рабочий софтфон на React — эталонная реализация, с которой стоит начинать: всё описанное в этом разделе там применено в работающем виде.

  • React клиент — что умеет, как запустить и как устроен
  • voip.green-api.com — развёрнутый пример, его можно открыть в браузере, ничего не устанавливая

Как собрать своего клиента#

Разделы ниже проходят через интеграцию по шагам — от настройки окружения до обработки каждого события.

Усовершенствуйте наши примеры, добавляя элементы пользовательского интерфейса, обработку ошибок и любую другую пользовательскую логику, необходимую для создания вашего уникального сервиса.

Другие примеры#

Документация#

Сторонние продукты#

У самой библиотеки зависимостей времени выполнения нет. React-клиент из примеров использует React, Redux Toolkit, React Router, Ant Design, иконки MUI и libphonenumber-js.

Лицензия#

Лицензировано на условиях MIT.