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 — развёрнутый пример, его можно открыть в браузере, ничего не устанавливая
Как собрать своего клиента#
Разделы ниже проходят через интеграцию по шагам — от настройки окружения до обработки каждого события.
- Настройка окружения и HTML страницы
- Установка и импорт библиотеки
- Как выполнить инициализацию и авторизацию в клиенте
- Передача звука: аудиомост и медиапотоки
- Обработка состояний вызовов
- Как создать исходящий вызов
- Как обработать входящий вызов
- Как окончить или сбросить вызов
Усовершенствуйте наши примеры, добавляя элементы пользовательского интерфейса, обработку ошибок и любую другую пользовательскую логику, необходимую для создания вашего уникального сервиса.
Другие примеры#
- Ванильный JavaScript клиент — те же звонки без фреймворка, чтобы посмотреть на API отдельно
Документация#
- Звонки API — REST-методы и соединение, на которых построена библиотека: состояние звонка, набор, приём, отклонение, завершение
- Документация по методам сервиса GREEN-API — остальные методы инстанса, например, получение списка контактов
- Описание библиотеки (README)
- Пошаговое руководство
Сторонние продукты#
У самой библиотеки зависимостей времени выполнения нет. React-клиент из примеров использует React, Redux Toolkit, React Router, Ant Design, иконки MUI и libphonenumber-js.
Лицензия#
Лицензировано на условиях MIT.