Fazer uma ligação

Este guia explica como fazer uma chamada usando o Vonage Client SDK. Antes de começar, certifique-se de ter adicionado o SDK ao seu aplicativo e (Android, iOS, JS).

NOTA: No iOS, espera-se que você utilize o CallKit para chamadas recebidas e realizadas. Siga as Chamadas de saída usando o CallKit do iOS postagem no blog.

Fazendo uma ligação

O serverCall Esse método permite que você inicie uma chamada de voz usando o recurso repleto de funcionalidades Voice API. Quando esse método é chamado, o answer_url webhook que está configurado para o seu Aplicativo Vonage será executado. Isso define o lógica e recursos da ligação.

// After creating a session
client.serverCall({to:phoneNumberOrUsername})
    .then(callId => {
        console.log("Id of created call: ", callId);
    })
    .catch(error => {
        console.error("Error making call: ", error);
    });

Dados personalizados

Incluir seus próprios dados personalizados permite que você passe o contexto, no formato chave-valor, para o seu answer_url servidor de webhooks. Se você fornecer um valor com o to chave, ela preencherá o nível superior to na consulta que você faz ao seu servidor de webhook. Outros dados estarão na seção custom_data objeto.

// After creating a session
client.serverCall({to:phoneNumberOrUsername, device_name: "Alice app"})
    .then(callId => {
        console.log("Id of created call: ", callId);
    })
    .catch(error => {
        console.error("Error making call: ", error);
    });

Os dados estarão disponíveis na consulta da solicitação enviada ao seu answer_url servidor de webhooks:

{
  "to": "447000000000",
  "from_user": "Alice",
  "conversation_uuid": "CON-8dd32088-66be-42ae-b0af-c9e12ca588ed",
  "uuid": "54c255ca-9c1c-4ecd-b175-a1d022dc7b07",
  "custom_data": {
      "to": "447000000000",
      "device_name": "Alice app"
    }
}

Ouvir eventos de chamada

Para acompanhar as atualizações sobre o status de uma chamada — por exemplo, para saber se o outro participante atendeu ou desligou —, você deve monitorar os eventos de status da ligação.

Para ver atualizações sobre o andamento da convocatória:

// After creating a session
client.on("legStatusUpdate", (callId, legId, status) => {
    console.log({callId, legId, status});
});

client.on("callInvite", (callId, from, channelType) => {
    // Answer / Reject Call
    console.log({callId, from, channelType});
});

client.on("callHangup", (callId, callQuality, reason) => {
    console.log(`Call ${callId} has hung up, callQuality:${callQuality}, reason:${reason}`);
});

client.on("sessionError", (error) => {
    console.error({error});
});

Referência