Forum Keyyo
onNewCall event (js) - Version imprimable

+- Forum Keyyo (https://forum.keyyo.com)
+-- Forum : Editeurs & Développeurs (/forumdisplay.php?fid=20)
+--- Forum : API (/forumdisplay.php?fid=22)
+--- Sujet : onNewCall event (js) (/showthread.php?tid=1671)



onNewCall event (js) - ismail1999 - 15/03/2018 12:21

Bonjour,

Je souhaite recevoir des appels dans mon application, j'utilise l'event onNewCall, cette évènement est déclenché malheureusement à chaque rechargement de page, c'est comme si il garde l'historique du dernier appel. Svp, comment je fais pour que cet event est déclenché seulement au lancement ou à la réception d'un nouveau appel.


RE: onNewCall event (js) - Keyyo QA - 23/03/2018 17:41

Bonjour,


Il est possible que si vous rechargez la page juste après un événement d'appel, le dernier événement remonte toujours, car normalement la page est chargée une seule fois, puis son fonctionnement repose sur les événements Javascript.

Vous pouvez filtrer les événements en vérifiant le type et le Callref afin de déterminer si il s'agit d'un nouvel appel ou bien du précédent appel reçu ou émis.

N'hésitez pas à revenir vers nous pour toute question complémentaire.


RE: onNewCall event (js) - ismail1999 - 23/03/2018 18:47

Merci, je vais essayer cela


RE: onNewCall event (js) - ismail1999 - 28/03/2018 17:50

J'ai essayé pas mal de trucs ça ne marche toujours pas. Si l'application était mono-page ça aurait été parfait mais malheureusement ce n'est pas le cas.
Je serai ravi si j'ai un exemple en JS.
Merci bien


RE: onNewCall event (js) - Keyyo QA - 30/03/2018 17:01

Bonjour,

Votre application dispose-t-elle de plusieurs pages ouvertes en même temps ou bien une seule page ouverte à la fois mais pouvant être rechargée ?


RE: onNewCall event (js) - ismail1999 - 03/04/2018 11:06

Plusieurs pages ouvertes en même temps


RE: onNewCall event (js) - Keyyo QA - 06/04/2018 17:41

Bonjour,

L’événement remonte dans toutes les pages en simultané pour chaque appel ?

Pouvez-vous détailler le scénario afin que nous puissions comprendre et reproduire le problème ?


RE: onNewCall event (js) - ismail1999 - 06/04/2018 18:35

cti.onNewCall = function(call) {
var temp = cti.calls;
temp.splice(-1,1);
if (!_.find(temp, ['callref',call.callref])) {
let thecall = _.filter(cti.calls, ['callref',call.callref])
if (!_.find(thecall,['state',call.state])){

// TRAITEMENT

}
}

Je fais comme ça pour bloquer les evenements des anciens appels lors du rechargement de la page. Mais lorsque je reçois plusieurs appels. Les conditions ne sont pas assez suffisantes pour bloquer le traitement.


RE: onNewCall event (js) - Keyyo QA - 09/04/2018 09:48

Bonjour,


Idéalement il faudrait stocker chaque appel dans un tableau et les supprimer lorsqu'ils passent en état "terminated". Cela permet de ne garder que les nouveaux appels.

Une autre solution serait de faire un plugin "WebExtension" qui tourne en background et qui est chargé de recevoir les événements et de les stocker. Ensuite les scripts sur les pages récupèrent les appels en cours auprès du script d'arrière plan.