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

Как создать исходящий вызов#

Бета-версия

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

Исходящий вызов начинается методом dial клиента, а сразу после него поднимается передача звука. Клиент и соединение к этому моменту должны быть созданы, см. инициализацию.

В dial передаётся номер телефона, полный идентификатор чата вида 79991234567@c.us либо идентификатор @lid вида 1062110180230@lid — последний нужен, когда номера собеседника у вас нет.

const phoneNumber = '79991234567'; // номер, которому звоните

try {
  await client.dial(phoneNumber);
  await calls.startAudioBridge();
  console.log('Вызов начат.');
} catch (error) {
  console.error('Ошибка начала вызова:', error);
}

Порядок здесь важен: startAudioBridge() нужно вызывать только после того, как dial() завершился, иначе сервер ответит ошибкой no active call. Подробнее — в разделе Передача звука; там же описано, что делать, если мост не поднялся.

В примере на ванильном JavaScript это выглядит так:

startCallButton.addEventListener('click', async () => {
  const phoneNumber = document.getElementById('phoneNumber').value;

  await client.dial(phoneNumber);
  await calls.startAudioBridge();
});

Дозвон виден по состоянию out-call, а когда собеседник взял трубку, состояние переходит в on-call — см. обработку состояний вызовов.

Если номер вводит пользователь

Номер стоит разбирать относительно страны, а не склеивать с кодом: иначе междугородняя восьмёрка или британский 0 попадут в набираемый адрес и звонок уйдёт другому человеку. В React-примере за это отвечает отдельная модель адреса, см. React клиент.