Eventos
Phone SDK posee un listado de eventos que te ayudarán a ejecutar acciones sobre el HTML. Son los cuales deberás escuchar mediante funciones para realizar cambios de interfaz.
Para utilizar los eventos deberás realizar lo siguiente:
const phone = new VideskPhone(APIToken);
phone.listen('no-agents', () => {});
Los siguientes eventos con * (asterisco) son requeridos y obligatorios, si no los escuchas de forma apropiada el comportamiento del SDK no será el esperado.
token-error
token-error
Este evento se emitirá cuando el token proporcionado sea erróneo, mal formado o inválido. Esto podría eventualmente suceder si un administrador de cuenta, elimina la integración desde la cuenta.
phone.on['token-error'] = () => {
// Verificar token
};
no-agents
*
no-agents
*Este evento se emitirá cuando no existan agentes conectados en tu cuenta luego de haber intentado la llamada mediante el método phone.call()
.
phone.on['no-agents'] = () => {
// Muestra un mensaje que no hay agentes disponibles
};
queued
*
queued
*Este evento se emite cuando el cliente ha sido añadido a la fila de espera, luego de haber llamado al método phone.call()
.
phone.on['queued'] = (event) => {
const { position, avgWait, segment } = event;
// Muestra una interfaz que permita visualizar la posición y/o el tiempo de espera.
};
La posición y/o el tiempo de espera, podrían estar desactivados por el administrador de la cuenta.
queue-updated
*
queue-updated
*Este evento se emitirá cuando se actualice la posición en la fila, solo posterior al evento queued
. Es de suma relevancia que escuches este evento.
phone.on['queue-updated'] = (event) = {
const { position } = event;
// Actualizar posición en la fila
};
customer-leave
*
customer-leave
*Este evento se emitirá cuando se ejecuta el evento phone.leave()
estando en la fila de espera.
phone.on['customer-leave'] = () => {
// Mostrar un mensaje de abandono de fila
};
dismissed
*
dismissed
*Este evento se emitirá cuando un agente rechace la llamada.
phone.on['dismissed'] = () => {
// Mostrar un mensaje de llamada rechazada
};
out-queue
out-queue
Este evento se emite cuando la llamada ha sido contestada por un agente. Es opcional escuchar este evento.
phone.on['out-queue'] = () => {
// No es necesario modificar nada
};
answered
*
answered
*Este evento se emite cuando la llamada ha sido contestada por un agente.
phone.on['answered'] = (event) => {
const { call } = event;
// Deberás hacer uso de nuestro SDK de WebRTC
let webrtc = new VideskWebRTCSDK(call, events, options);
webrtc.create();
};
connected-call
connected-call
Este evento se emite cuando se ha conectado a la llamada de forma exitosa. Es opcional escuchar este evento.
phone.on['connected-call'] = () => {
// No es necesario modificar nada
};
agent-disconnect
agent-disconnect
Este evento se emite cuando el agente quién contestó la llamada eventualmente se desconecta de la videollamada por problemas de red. Es opcional escuchar este evento.
No deberás terminar la llamada, ya que el agente se reconectará de forma automática. En caso de traspasar varios minutos nuestra API terminará la llamada de forma automática.
phone.on['agent-disconnect'] = () => {
// Mostrar un mensaje de agente desconectado
};
customer-hangup
customer-hangup
Este evento se emite cuando se ejecuta el método phone.hangup()
. Es opcional escuchar este evento.
phone.on['customer-hangup'] = () => {
// Muestra un mensaje de llamada finalizada
};
ended
*
ended
*Este evento se emite cuando se termina la llamada, ya sea por lado de agente o al ejecutar el método phone.hangup()
.
phone.on['ended'] = () => {
// Muestra un mensaje de llamada finalizada
webrtc.destroy();
};
Deberás eliminar la instancia de WebRTC creada, mediante el método destroy()
.
transferred-segment
*
transferred-segment
*Este evento se emitirá cuando un agente ha transferido al cliente a un segmento nuevo.
phone.on['transferred-segment'] = (event) => {
const { queue } = event;
// Mostrar un mensaje, no deberás hacer nada con las conexiones
};
transferred-agent
*
transferred-agent
*Este evento se emitirá cuando un agente ha transferido al cliente a un agente en específico.
phone.on['transferred-agent']= (event) => {
const { call } = event;
// Deberás crear una nueva instancia de WebRTC SDK y destruir la anterior
webrtc.destroy();
webrtc = new new VideskWebRTCSDK(call, events, options);
webrtc.create();
};
connection-error
connection-error
Este evento se emitirá cuando exista algún error en la red o parámetros mal formados que se enviaron a la API. Es opcional escuchar este evento.
phone.on['connection-error'] = (event) => {
const { event, code, name, message, date, errors } = event;
}
network-issues
*
network-issues
*Este evento se emitirá cuando existan problemas de red, como desconexión a Internet o demasiadas reconexiones producto de una red poco confiable.
phone.on['network-issues'] = () => {
// Mostrar mensaje de red poco estable
};
http-block
http-block
Este evento se emitirá cuando nuestra API detecte actividad sospechosa como un bot o una llamada desde una red poco confiable. Es opcional escuchar este evento.
phone.on['http-block'] = () => {
// Mostrar mensaje de red poco confiable
};
transport-disconnect
transport-disconnect
Este evento se emite cuando nuestra API desconecta de forma automática la conexión ya sea en la fila de espera o al terminar la llamada. Es decir, naturalmente este evento se emitirá dos veces en una llamada normal. Es opcional escuchar este evento.
phone.on['transport-disconnect'] = () => {
// Uso interno
};
beamport:create
beamport:create
Este evento se emite cuando el agente solicita realizar una conexión para transferencia de archivos usando Beamport.
phone.on['beamport:create'] = (event) => {
const { accessToken, channel } = event;
// Activar crear Beamport
};
Límites y usos
No crees más de una instancia de VideskPhone
, ya que podrías generar múltiples llamadas. Esto afectará en los reportes y podrías suspender tu cuenta por comportamiento sospechoso.
Este SDK te permitirá integrar Videsk en múltiples ambientes, ya sea en un sitio web, aplicación móvil utilizando marcos web, kioskos, IoT, etc.
Para el caso de integraciones en apps iOS y Android, te sugerimos utilizar Custom Tabs para Android y Safari View Controller para iOS.
Estos marcos web (Custom Tabs y Safari View Controller) ofrecerán máxima compatibilidad para las videollamadas. Otros marcos como WebView para Android y iOS son compatibles pero podrías experimentar ciertos bugs activos en este tipo de integración.
Última actualización
¿Te fue útil?