Suivi de la session

Enregistrez-vous pour recevoir des rappels d'événements de session en temps réel et surveiller l'activité de votre session depuis votre serveur d'application.

Grâce à la plateforme vidéo de Vonage, les développeurs peuvent surveiller certaines activités des clients à l'aide de la fonction SDK clientsà partir de leur serveur d'applications.

En s'inscrivant aux rappels avec la fonction API Video REST de VonageVotre URL de rappel recevra des requêtes HTTP POST lorsque des sessions sont créées et détruites, que des clients se connectent et se déconnectent, et que des clients publient et dépublient des flux dans une session de votre projet Vonage.

En outre, vous pouvez enregistrer un rappel pour surveiller les événements liés aux archives vidéo de Vonage pour votre projet.

Enregistrement des rappels

Les événements de session et les mises à jour de l'état des archives peuvent tous être enregistrés dans des points de terminaison HTTP au sein de votre serveur.

Chaque fois qu'une activité enregistrée se produit, une requête HTTP est envoyée de l'infrastructure vidéo de Vonage à votre point d'extrémité.

Pour enregistrer un rappel :

  1. Connectez-vous à votre Video API Account de Vonage.

  2. Dans le menu de gauche, sélectionnez Applications.

  3. Pour les projets existants, cliquez sur les trois points et sélectionnez l'option Editer et faites défiler la page jusqu'à la section des capacités.

  4. Pour les nouveaux projets, la section des capacités s'affiche après avoir cliqué sur Créer une nouvelle application.

  5. Basculer pour activer l'option vidéo.

  6. Définissez l'URL de rappel dans la section Suivi de session.

Sécuriser les rappels : Vous pouvez sécuriser les demandes de rappel de webhook avec des rappels signés, à l'aide d'un secret de signature. Voir Rappels sécurisés.

L'URL de rappel des archives et l'URL de rappel de la diffusion sont définies séparément de l'URL de rappel des événements de session. de l'URL de rappel pour les événements de session. Définissez l'URL de rappel de l'archive dans la section Archive de votre site Web. Page de compte de l'API Video de Vonage.

Important : En cas d'échecs de livraison excessifs, le nouveau service ne désactivera plus le transfert d'événements, puisque le mécanisme de réessai et de compensation sera utilisé. Par conséquent, il n'y aura plus d'indication par courrier électronique pour notifier que les rappels ont été désactivés et doivent être réactivés, car le nouveau service ne suspendra/désactivera pas les rappels de quelque manière que ce soit.

Contrôle du démarrage et de l'arrêt des sessions

Le moment où les clients commencent à utiliser une session et le moment où une session cesse d'être utilisée, sessionCreated et sessionDestroyed sont envoyés à votre point de rappel enregistré.

Session créée

Cet événement est envoyé lorsque le premier client se connecte à une session. Si tous les clients se déconnectent (voir Session détruite), les clients peuvent se reconnecter ultérieurement à la même session.

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL de rappel que vous avez fournie. Le Content-Type de la requête est application/json. Les données de la requête sont un objet JSON de la forme suivante :

{
  "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
  "projectId": "123456",
  "event": "sessionCreated",
  "timestamp": 1470257688309,
  "createdAt": 1470257688309
}

L'objet JSON comprend les propriétés suivantes :

  • sessionId - L'identifiant de session associé à cet événement

  • projectId - L'identifiant du projet associé à cet événement

  • event - "sessionCreated"

  • timestamp - Horodatage de l'envoi de l'événement de rappel

  • createdAt - Date à laquelle le premier client s'est connecté à la session.

Session détruite

Cet événement est envoyé lorsqu'une session cesse d'être utilisée :

  • Une minute après que tous les participants se sont déconnectés de la session.

  • Lorsqu'une session Video API se termine, ce qui peut se produire après 8 heures.

  • Lorsqu'un serveur Video API s'arrête de manière inattendue.

Après l'envoi de cet événement, vous pouvez toujours réutiliser la session. Les clients peuvent se reconnecter à la session en utilisant le même identifiant de session Session créée sera envoyé. Cependant, il est préférable que les clients se reconnectent en utilisant un nouvel identifiant de session.

Par ailleurs, une bonne pratique consiste à demander aux clients de se reconnecter à de nouvelles sessions (en utilisant un nouvel identifiant de session) dans les 8 heures qui suivent l'interruption de la session. Session créée événement de rappel.

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL de rappel que vous avez fournie. Le Content-Type de la requête est application/json. Les données de la requête sont un objet JSON de la forme suivante :

{
  "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
  "projectId": "123456",
  "event": "sessionDestroyed",
  "timestamp": 1470258896953,
  "createdAt" : 1470258896953,
  "reason" : "clientDisconnected"
  }

L'objet JSON comprend les propriétés suivantes :

  • sessionId - L'identifiant de session associé à cet événement

  • projectId - L'identifiant du projet associé à cet événement

  • event - "sessionDestroyed"

  • timestamp - Horodatage de l'envoi de l'événement de rappel

  • createdAt - Date à laquelle cette session a cessé d'être utilisée

  • reason - Il est réglé sur l'une des valeurs suivantes :

    • "clientDisconnected" - Tous les clients se sont déconnectés de la session.

    • "forceDisconnected" - Un modérateur a déconnecté les clients de la session. Ou la session s'est interrompue. Ou un serveur Video API s'est arrêté de manière inattendue.

    • "mediaIdle" - Tous les clients ont été déconnectés de la session parce qu'ils n'ont pas publié ou souscrit à des flux dans les 4 heures suivant la connexion.

    • "serverRotation" - Tous les clients ont été déconnectés de la session en raison de la rotation des serveurs. Vous pouvez empêcher les clients d'être déconnectés pendant la rotation des serveurs en les configurant de manière à ce qu'ils utilisent la migration de session. Voir Rotation des serveurs et migration des sessions.

Événements de notification de la session

Les sessionNotification est envoyé lorsqu'une rotation d'un groupe de serveurs Video API pour l'une de vos sessions est prévue. Cet événement est envoyé 4 heures et 1 heure avant la rotation programmée.

Les sessionNotification est une requête HTTP POST envoyée à l'URL de rappel de suivi de session que vous avez fournie. Le Content-Type de la requête est application/json. Les données de la requête sont un objet JSON de la forme suivante :

{
  "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
  "projectId": "123456",
  "event": "sessionNotification",
  "reason": "serverRotation",
  "timestamp": 1470282888309,
  "remainingTime": 3600,
  "createdAt": 1470257688309
}

L'objet JSON comprend les propriétés suivantes :

  • sessionId - L'identifiant de session associé à cet événement

  • projectId - L'identifiant de l'application associé à cet événement

  • event - "sessionNotification"

  • reason - Pour un événement de rotation du serveur, cette valeur est fixée à "serverRotation". (Actuellement, il s'agit du seul type d'événement de notification de session).

  • remainingTime - Temps restant, en secondes, jusqu'à ce que les serveurs de la session fassent l'objet d'une rotation. Cette valeur est fixée à 14 400 secondes (4 heures) ou 3 600 secondes (1 heure).

  • timestamp - Horodatage de l'envoi de l'événement de rappel

  • createdAt - Date à laquelle le premier client s'est connecté à la session.

Voir Rotation des serveurs et migration des sessions pour plus d'informations sur les rotations de serveurs de l'API Video et sur la manière de maintenir la connexion des clients lors des rotations de serveurs.

Surveillance de l'activité de connexion

Une fois correctement enregistrée, l'infrastructure vidéo de Vonage peut envoyer des requêtes HTTP pour toutes les connexions établies (et détruites) à toutes les sessions d'un même projet.

Ceci est particulièrement utile pour suivre la disponibilité des utilisateurs sans nécessiter de connexions supplémentaires ou de rapports directement à partir du point d'extrémité.

Lorsque les clients reçoivent connectionCreated et connectionDestroyed en réponse à d'autres clients qui se connectent ou se déconnectent d'une session, ces mêmes événements sont envoyés à votre point de rappel enregistré.

Connexion créée

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL que vous avez fournie.

Le type de contenu (Content-Type) de la demande est application/json. Les données de la demande sont un objet JSON de la forme suivante :

{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "connectionCreated",
    "timestamp": 1470257688309,
    "connection": {
        "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
        "createdAt": 1470257688143,
        "data": "TOKENDATA"
    }
}

L'objet JSON comprend les propriétés suivantes :

  • sessionId - L'identifiant de session associé à cet événement.
  • projectId - L'identifiant du projet associé à cet événement.
  • event - "connectionCreated".
  • timestamp - Millisecondes depuis l'heure d'origine Unix.
  • connection - Un objet définissant la connexion, contenant les propriétés suivantes :
    • id - L'identifiant de la connexion.
    • data - Les données de connexion.
    • createdAt - Valeur de l'horodatage de la création de cet objet.

Connexion détruite

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL que vous avez fournie.

Le type de contenu (Content-Type) de la demande est application/json.

Les données de la demande sont un objet JSON de la forme suivante :

{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "connectionDestroyed",
    "reason": "clientDisconnected",
    "timestamp": 1470258896953,
    "connection": {
        "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
        "createdAt": 1470257688143,
        "data": ""
    }
}

L'objet JSON comprend les propriétés suivantes :

  • sessionId - L'identifiant de session associé à cet événement.
  • projectId - L'identifiant du projet associé à cet événement.
  • reason - Pour un connectionDestroyed il est défini comme l'un des éléments suivants :
    • "clientDisconnected" - Un client s'est déconnecté de la session (par exemple, en appelant la fonction OpenTok.js Session.disconnect() ou en fermant le navigateur ou l'application).
    • "forceDisconnected" - Un modérateur a déconnecté le client de la session (en appelant la fonction OpenTok.js Session.forceDisconnect() ).
    • "networkDisconnected" - La connexion réseau s'est interrompue brusquement (par exemple, le client a perdu sa connexion internet).
    • "mediaIdle" - Le client a été déconnecté d'une session parce qu'il n'a pas publié de flux ou ne s'y est pas abonné dans les 4 heures suivant sa connexion.
    • "serverRotation" - Le client a été déconnecté de la session en raison de la rotation des serveurs. Vous pouvez empêcher les clients d'être déconnectés pendant la rotation des serveurs en les configurant de manière à ce qu'ils utilisent la migration de session. Voir Rotation des serveurs et migration des sessions.
  • event - "connectionDestroyed".
  • timestamp - Millisecondes depuis l'heure d'origine Unix.
  • connection - Un objet définissant la connexion, contenant les propriétés suivantes :
    • id - L'identifiant de la connexion.
    • data - Les données de connexion.
    • createdAt - Valeur de l'horodatage de la création de cet objet.

Surveillance des cours d'eau

Les points d'accès au serveur peuvent également s'enregistrer pour recevoir des requêtes HTTP déclenchées par l'activité du flux sur toutes les sessions d'un projet donné.

Lorsque des flux sont créés et détruits, la demande contient les données de flux et de connexion pour le flux qui a déclenché l'événement.

Lorsque les clients reçoivent streamCreated et streamDestroyed en réponse à d'autres clients publiant dans une session, ces mêmes événements sont envoyés à votre point de rappel enregistré.

Flux créé

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL que vous avez fournie.

Le type de contenu (Content-Type) de la demande est application/json. Les données de la demande sont un objet JSON de la forme suivante :

{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "streamCreated",
    "timestamp": 1470258860571,
    "stream": {
        "id": "63245362-e00e-4834-8371-9397deb3e452",
        "connection": {
            "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
            "createdAt": 1470257688143,
            "data": ""
        },
        "createdAt": 1470258845416,
        "name": "",
        "videoType": "camera"
    }
}
  • sessionId - L'identifiant de session associé à cet événement.
  • projectId - L'identifiant du projet associé à cet événement.
  • event - "streamCreated".
  • timestamp - Millisecondes depuis l'heure d'origine Unix.
  • stream - Un objet qui définit le flux :
    • id - L'identifiant du flux.
    • connection - La connexion associée à ce flux. Cet objet comprend les propriétés suivantes :
      • id - L'identifiant de la connexion
      • data - Les données de connexion.
      • createdAt - Valeur de l'horodatage de la création de la connexion.
    • createdAt - Valeur de l'horodatage de la création du flux.
    • name - Le nom, s'il y en a un, transmis lors de l'initialisation de l'éditeur associé à ce flux.
    • videoType - Le type de vidéo envoyé sur ce flux, soit "camera", "screen"ou "custom" (ou indéfini pour un flux audio uniquement).

Stream détruit

Pour chaque événement distinct, le serveur envoie une requête HTTP POST à l'URL que vous avez fournie.

Le type de contenu (Content-Type) de la demande est application/json. Les données de la demande sont un objet JSON de la forme suivante :

{
    "sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
    "projectId": "123456",
    "event": "streamDestroyed",
    "reason": "clientDisconnected",
    "timestamp": 1470258896953,
    "stream": {
        "id": "63245362-e00e-4834-8371-9397deb3e452",
        "connection": {
            "id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
            "createdAt": 1470257688143,
            "data": ""
        },
        "createdAt": 1470258845416,
        "name": "",
        "videoType": "camera"
    }
}
  • sessionId - L'identifiant de session associé à cet événement.
  • projectId - L'identifiant du projet associé à cet événement.
  • event - "streamDestroyed".
  • reason - Pour un streamDestroyed il est défini comme l'un des éléments suivants :
    • "clientDisconnected" - Le client s'est déconnecté de la session (par exemple, en appelant la fonction OpenTok.js Session.disconnect() ).
    • "forceDisconnected" - Un modérateur a déconnecté l'éditeur du flux de la session, en appelant la fonction OpenTok.js Session.forceDisconnect() méthode.
    • "forceUnpublished" - Un modérateur a forcé l'éditeur du flux à cesser de publier le flux, en appelant la fonction OpenTok.js Session.forceUnpublish() méthode.
    • "mediaStopped" - L'utilisateur qui publie le flux a cessé de partager l'écran. Cette valeur n'est utilisée que dans les flux vidéo de partage d'écran.
    • "networkDisconnected" La connexion réseau s'est interrompue brusquement (par exemple, le client a perdu sa connexion internet).
    • "serverRotation" - Le flux a été détruit parce que le serveur a fait l'objet d'une rotation dans le cadre d'une opération de mise à l'échelle.
  • timestamp - Millisecondes depuis l'heure d'origine Unix.
  • stream - Un objet qui définit le flux :
    • id - L'identifiant du flux
    • connection - La connexion associée à ce flux. Cet objet comprend les propriétés suivantes :
      • id - L'identifiant de la connexion.
      • data - Les données de connexion.
      • createdAt - Valeur de l'horodatage de la création de la connexion.
    • createdAt - Valeur de l'horodatage de la création du flux.
    • name - Le nom, s'il y en a un, transmis lors de l'initialisation de l'éditeur associé à ce flux.
    • videoType - Le type de vidéo envoyé sur ce flux, soit "camera", "screen"ou "custom" (ou indéfini pour un flux audio uniquement).

Suivi des archives

Chaque archive passe par plusieurs états au cours de sa durée de vie. Pour chaque mise à jour de l'état, un point de terminaison du serveur avec un enregistrement de l'état de l'archive recevra une requête HTTP.

Cette fonction est particulièrement utile pour déclencher le post-traitement d'une archive ou pour effectuer toutes les tâches administratives nécessaires après qu'une archive a été téléchargée dans un espace de stockage permanent.

Pour plus d'informations, voir le site changement de statut des archives du guide du développeur de l'archivage vidéo de Vonage.

Surveillance des émissions

Voir le Suivi des changements d'état de la diffusion en direct du guide du développeur pour les diffusions en direct de Vonage.

Suivi de la progression des appels SIP

Vous pouvez surveiller les mises à jour de l'état des connexions SIP à une session.

Voir le Suivi de la progression de l'appel du guide du développeur Vonage Video SIP Interconnect.

Suivi de l'expérience Composer

Vous pouvez suivre les mises à jour du statut des compositeurs d'expérience. Voir les Configuration des rappels du guide du développeur Experience Composer.

Suivi des sous-titres en direct

Vous pouvez surveiller les mises à jour d'état pour les sous-titres en direct. Voir la page Rappels de légendes en direct du guide du développeur de sous-titres en direct.