Hacer una llamada

Esta guía explica cómo realizar una llamada con el Vonage Client SDK. Antes de comenzar, asegúrate de haber agregado el SDK a tu aplicación y (Android, iOS, JS).

NOTA: En iOS se espera que utilice CallKit para las llamadas entrantes y salientes. Siga las instrucciones de Llamadas salientes con iOS CallKit entrada del blog.

Hacer una llamada

En serverCall le permite iniciar una llamada de voz utilizando la función Voice API. Cuando se llama a este método, el answer_url webhook que está configurado para su Aplicación de Vonage se ejecutará. Esto define el lógica y capacidades de la llamada.

// 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);
    });

Datos personalizados

Incluir sus propios datos personalizados le permite pasar contexto, en un formato clave-valor, a su answer_url servidor webhook. Si proporciona un valor con el campo to rellenará el nivel superior to en la consulta que hagas a tu servidor webhook. Otros datos estarán bajo el 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);
    });

Los datos estarán disponibles en la consulta de la solicitud realizada a su answer_url servidor webhook:

{
  "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"
    }
}

Escuchar eventos de llamada

Para ver actualizaciones sobre el estado de una llamada, por ejemplo, para saber si el otro miembro respondió o colgó la llamada, debes escuchar los eventos de estado de tramo.

Para ver actualizaciones sobre el estado de la llamada:

// 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});
});

Referencia