Diagnostic facile des problèmes grâce à la nouvelle API d’alerte
Cette nouvelle API de Liblinphone, notre bibliothèque, est conçue pour recevoir de manière centralisée des rapports d’événements liés à divers problèmes audio/vidéo et à la qualité du réseau. Cette API est disponible en C++, C#, Swift et Java (Android). Les binaires de la branche master portent actuellement la version 5.3.x-alpha, et la documentation complète de cette API est disponible ici.
Nous avons mis en place une surveillance pour les événements suivants :
- La webcam ne produit aucune image
- Le taux d’images de la webcam est faible
- La réception des paquets vidéo est bloquée pendant une certaine durée
- La perte de paquets dépasse un seuil donné pendant une durée donnée
- Le Receiver Report indique une perte de paquets au-delà d’un certain taux
- La retransmission par NACK est inefficace
- Les paquets sont perdus par salves
- La bande passante estimée est inférieure à un seuil défini
- Le flux vidéo est reçu avec une bande passante inférieure à un seuil
- La définition vidéo envoyée est inférieure à une définition attendue
- Le terminal détecte un signal réseau faible (uniquement sur Android, cette information n’étant pas disponible sur iOS)
- Le terminal a perdu le signal réseau
Les remontées issues de ces événements prennent la forme de traces dans les logs de Linphone. Chaque trace est horodatée et contient l’ID de l’appel, ainsi que l’émetteur et le destinataire de l’appel SIP. Certains événements incluent également des données supplémentaires utiles pour l’analyse.
Lorsqu’un événement est déclenché, LinphoneCore en est informé via un callback. Les événements sont vérifiés à intervalles réguliers. Si les données reviennent sous les seuils d’alerte, un nouveau callback notifie la fin de l’incident.
Tous les seuils et intervalles de vérification peuvent être configurés dans le fichier de configuration de liblinphone.
Cette API d’alerte a un double objectif : Permettre aux applications d’afficher en temps réel des messages d’incident pertinents aux utilisateurs. Offrir aux applications un service de supervision, résumant les incidents de qualité de service pouvant affecter les utilisateurs. Ces informations peuvent ensuite être utilisées pour :
- Aider les utilisateurs qui contactent le support
- Produire des statistiques générales sur les performances du service
- Identifier d’éventuels problèmes de réseau