Faciliter le diagnostic de problèmes grâce la nouvelle API d'alertes

Primary tabs

 

Disponible dès maintenant sur la branche master de Linphone-sdk

Cette nouvelle API de liblinphone, notre librairie, a pour but de notifier de manière centralisée des rapports d'évènements concernant un certain nombre de problèmes liés à la qualité audio/vidéo ainsi que la qualité du réseau. Cette API est disponible dans les langages C++, C#, Swift et Java (Android). Les binaires issus de la branche master portent actuellement des versions 5.3.x-alpha, et vous trouverez ici la documentation complète de cette API.

Nous avons implémenté une surveillance pour les évènements suivants  : 

  • La webcam ne produit aucune image. 
  • Le framerate de la webcam est bas. 
  • La réception des paquets vidéo s'est bloquée pendant une durée donnée. 
  • La perte de paquets dépasse un taux donné pendant une durée donnée. 
  • Le Reciever Report indique une perte de paquets d'un taux donné. 
  • La retransmission du Nack est inefficace. 
  • Les paquets se perdent en rafale (burst). 
  • L'estimation de bande passante est inférieure à un seuil donné. 
  • Le flux vidéo est reçu avec une bande passante inférieure à un seuil donné. 
  • La définition vidéo envoyée est inférieure à une définition donnée. 
  • Le terminal détecte un faible signal réseau (Disponible uniquement sur Android compte tenu de l'absence de ces informations sur iOS). 
  • Le terminal a perdu le signal réseau.

La remontée de ces évènements prend la forme de traces dans les logs de Linphone. Ils sont horodatés et référencent le call-id ainsi que l'émetteur et le destinataire de l'appel SIP. Certains évènements fournissent des données supplémentaires utiles pour interpréter et comprendre ces évènements. 

Lorsque l'évènement est déclenché, il est notifié à l'application via une callback de l'objet LinphoneCore. Les différents évènements sont vérifiés à intervalles réguliers. Si les données repassent en dessous du seuil de déclenchement de l'alerte, cette alerte est levée, ce qui est notifié via une callback stipulant que l'incident est terminé. 

Tous les seuils et les intervalles de vérification sont paramétrables dans le fichier de configuration de liblinphone.

Cette API d'alerte a une double usage : d'une part elle permet aux applications d'afficher à l'utilisateur des messages d'incidents pertinents, en temps réel. D'autre part, elles permettent aux applications de remonter à un service de monitoring de manière synthétique les incidents de qualité de service qui peuvent survenir chez les utilisateurs. On peut donc par la suite en faire usage pour aider des utilisateurs qui contactent le service de support, ou créer des statistiques générales concernant la performance du service, ce qui peut servir à identifier d'éventuels problèmes de réseau.