JavaScript
Crear una aplicación del lado del cliente
Cree un archivo HTML llamado client_js.html. Añade el siguiente código, pero asegúrate de pegar el JWT que has generado para el usuario en el paso anterior como valor para el token constante:
Copia
<!DOCTYPE html>
<html lang="en">
<head>
<script src="./node_modules/@vonage/client-sdk/dist/vonageClientSDK.min.js"></script>
<style>
input, button {
font-size: 1rem;
}
#answer, #reject, #hangup {
display: none;
}
</style>
</head>
<body>
<h1>Inbound PSTN phone call</h1>
<p id="notification">Lines are open for calls...</p>
<br />
<button type="button" id="answer">Answer</button>
<button type="button" id="reject">Reject</button>
<button type="button" id="hangup">Hang Up</button>
<script>
const answerButton = document.getElementById("answer");
const rejectButton = document.getElementById("reject");
const hangUpButton = document.getElementById("hangup");
const notification = document.getElementById("notification");
const token = 'ALICE_JWT';
const client = new vonageClientSDK.VonageClient();
let callId = null;
client.createSession(token)
.then(sessionId => {
console.log("Id of created session: ", sessionId);
})
.catch(error => {
console.error("Error creating session: ", error);
});
client.on('callInvite', (_callId) => {
callId = _callId;
notification.textContent = "You are receiving a call";
answerButton.style.display = "inline";
rejectButton.style.display = "inline";
});
client.on('legStatusUpdate', (_callId, legId, status) => {
notification.textContent = `Caller Leg Status is: ${status}`;
});
client.on("callHangup", (_callId, callQuality, reason) => {
console.log(`Call ${_callId} has hung up, callQuality:${callQuality}, reason:${reason}`);
callId = null;
notification.textContent = "Lines are open for calls...";
answerButton.style.display = "none";
rejectButton.style.display = "none";
hangUpButton.style.display = "none";
});
// Answer the call.
answerButton.addEventListener("click", () => {
client.answer(callId)
.then(() => {
console.log("Success answering call.");
notification.textContent = "You are on a call";
answerButton.style.display = "none";
rejectButton.style.display = "none";
hangUpButton.style.display = "inline";
})
.catch(error => {
console.error("Error answering call: ", error);
});
});
// Reject the call
rejectButton.addEventListener("click", () => {
client.reject(callId)
.then(() => {
console.log("Success rejecting call.");
notification.textContent = "You rejected the call";
answerButton.style.display = "none";
rejectButton.style.display = "none";
})
.catch(error => {
console.error("Error rejecting call: ", error);
});
});
// Hang up the call
hangUpButton.addEventListener("click", () => {
client.hangup(callId)
.then(() => {
console.log("Success hanging up call.");
notification.textContent = "You ended the call";
answerButton.style.display = "none";
rejectButton.style.display = "none";
hangUpButton.style.display = "none";
})
.catch(error => {
console.error("Error hanging up call: ", error);
});
});
</script>
</body>
</html>
Esta es tu aplicación web que utiliza el Client SDK para aceptar una llamada entrante.
Las principales características de este código son:
- Un cuadro de notificación que puede actualizarse con el estado de la llamada.
- Un botón para responder a una llamada entrante.
- Un botón para rechazar una llamada entrante.
- Un botón para colgar una llamada entrante.
- El código crea una sesión utilizando el JWT generado anteriormente.
- El código establece dos controladores de eventos principales.
- El primero se activa al recibir una invitación de llamada entrante. Esto, a su vez, configura tres controladores de eventos de botón que permiten responder, rechazar y colgar la llamada entrante mediante los métodos del Client SDK.
answer,rejectyhanguprespectivamente. - La segunda, recibe actualizaciones del estado del tramo de llamada y establece el texto del cuadro de notificación en el estado de la llamada entrante.
- El primero se activa al recibir una invitación de llamada entrante. Esto, a su vez, configura tres controladores de eventos de botón que permiten responder, rechazar y colgar la llamada entrante mediante los métodos del Client SDK.
Recibir una llamada telefónica en una aplicación
Recibes una llamada de un teléfono a tu aplicación
Pasos
1
Introducción a esta tarea2
Prerequisites3
Crear un servidor webhook4
Crear una aplicación de Vonage5
Comprar un número de Vonage6
Vincular un número de Vonage7
Crear un usuario8
Generar un JWT9
Instalar Client SDK10
Crear una aplicación del lado del cliente11
Ejecute su aplicación12
¿Y ahora qué?