pedroslopez / whatsapp-web.js

A WhatsApp client library for NodeJS that connects through the WhatsApp Web browser app
https://wwebjs.dev
Apache License 2.0
15.05k stars 3.58k forks source link

Metodo reject() Reject the call com problemas #2593

Closed ojauumdev closed 9 months ago

ojauumdev commented 11 months ago

Is there an existing issue for this?

Describe the bug

Ao usar o metodo: reject() Reject the call

para rejeitar uma chamada e logo em seguida enviar uma mensagem ao usuario, a chamada é recusada, a mensagem é enviada porem se eu parar o servico e iniciar novamente, o dispositivo é desconectado(acao do envio da mensagem). Se eu apenas rejeitar a ligacao sem envio de mensagem, quando paro o servico e inicio novamente o dispositivo nao é desconectado.

Expected behavior

Rejeita a chamada, envia a mensagem e a conexao permanece ativa.

Steps to Reproduce the Bug or Issue

Ao usar o metodo: reject() Reject the call

para rejeitar uma chamada e logo em seguida enviar uma mensagem ao usuario, a chamada é recusada, a mensagem é enviada porem se eu parar o servico e iniciar novamente, o dispositivo é desconectado(acao do envio da mensagem). Se eu apenas rejeitar a ligacao sem envio de mensagem, quando paro o servico e inicio novamente o dispositivo nao é desconectado.

Relevant Code

client.on('call', async call => { if (call.fromMe) { console.log("Ignorando chamadas feitas pelo próprio bot."); return; }

const chatId = call.from;

if (call.isGroup) {
    console.log("Chamadas de grupo são ignoradas.");
    return;
}

console.log("Chamada de usuário individual detectada.");

db.query('SELECT aceitarChamadas, mensagemRecusa FROM configuracoes LIMIT 1', (err, results) => {
    if (err) {
        console.error('Erro ao buscar configurações:', err);
        return;
    }

    const aceitarChamadas = results[0].aceitarChamadas;
    const mensagemRecusa = results[0].mensagemRecusa;

    if (!aceitarChamadas) {
        console.log("Chamada recebida de", chatId, "mas não aceitando.");

        call.reject();

        // Chama a função para enviar a mensagem de recusa
        sendRecusalMessage(client, chatId, mensagemRecusa);

    } else {
        console.log("Aceitando chamada de", chatId);
        // Note que não há um método 'accept' mencionado na documentação que você forneceu, então não podemos aceitar a chamada programaticamente.
    }
});

});

Browser Type

Chromium

WhatsApp Account Type

WhatsApp Business

Does your WhatsApp account have multidevice enabled?

No, I am not using Multi Device

Environment

Phone OS: IOS whatsapp-web.js: v1.22.2-alpha.3

Additional context

No response

ojauumdev commented 10 months ago

Algum retorno sobre esse problema?

alechkos commented 9 months ago

The Call.reject method works properly, it seems that the issue is in your code