Как создать исходящий вызов#
Бета-версия
Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно. В будущем за функционал может взиматься дополнительная плата.
Подключение к функционалу можно запросить через техподдержку 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 клиент.