Vue d’ensemble de l’enregistrement d’appel

L’enregistrement d’appel vous permet d’enregistrer plusieurs scénarios d’appel disponibles dans Azure Communication Services en vous fournissant un ensemble d’API pour démarrer, arrêter, suspendre et reprendre un enregistrement. Qu’il s’agisse d’un appel PSTN, WebRTC ou SIP, ces API sont accessibles à partir de votre logique métier côté serveur. En outre, les enregistrements peuvent être déclenchés par une action utilisateur qui indique à l’application serveur de démarrer l’enregistrement.

En fonction des besoins de votre entreprise, vous pouvez utiliser l’enregistrement des appels pour différentes implémentations d’appels Azure Communication Services.

Par exemple, vous pouvez enregistrer des appels audio et vidéo 1:1 ou 1:N :

Diagramme montrant un appel en cours d’enregistrement.

Vous pouvez également utiliser l’enregistrement des appels pour enregistrer des workflows d’appels entrants et sortants RTC ou VoIP complexes gérés par Call Automation.

Quelle que soit la façon dont vous avez établi l’appel, l’enregistrement d’appel vous permet de produire des fichiers multimédias mixtes ou non mixtes qui sont stockés pendant 24 heures sur un stockage temporaire intégré. Vous pouvez récupérer les fichiers, les déplacer dans votre propre magasin d’objets blob Azure Apporter votre propre stockage (BYOS) ou une solution de stockage de votre choix. L’enregistrement d’appel prend en charge toutes les régions de données Azure Communication Services.

Diagramme montrant l’architecture d’enregistrement d’appel.

Call Recording prend en charge les besoins de votre entreprise

Call Recording prend en charge plusieurs sorties multimédia et types de contenu pour répondre aux besoins et aux cas d’usage de votre entreprise. Vous pouvez utiliser des formats mixtes pour des scénarios comme la conservation d’enregistrements, les notes de réunion, le coaching et la formation, ou même la conformité et l’adhésion. Vous pouvez également utiliser un format audio non mixte pour traiter des cas d’usage d’assurance qualité ou même des scénarios plus complexes comme des analyses avancées ou des processus post-appel sophistiqués basés sur l’IA.

Vidéo

Type de canal Format du contenu Résolution Taux d’échantillonnage Vitesse de transmission Débit de données Sortie Description
mixte mp4 1920 x 1080, 16 FPS (images par seconde) 16 kHz 1 Mbits/s 7,5 Mo/min* fichier unique, canal unique vidéo mixte dans une disposition défaut de vignette 3x3 par défaut (la plupart des haut-parleurs actifs) avec prise en charge du nom complet

Audio

Type de canal Format du contenu Taux d’échantillonnage Vitesse de transmission Débit de données Sortie Description
mixte mp3 16 kHz 48 Kbits/s 0,36 Mo/min* fichier unique, canal unique Audio mixte de tous les participants
mixte wav 16 kHz 256 Kbits/s 1,92 Mo/min fichier unique, canal unique Audio mixte de tous les participants
Non mélangé wav 16 kHz 256 Kbits/s 1,92 Mo/min* par canal fichier unique, jusqu’à 5 canaux wav Audio séparé, un participant par canal, jusqu’à cinq canaux

[*REMARQUE] Les formats Mp3 et Mp4 utilisent la compression avec perte qui entraîne une vitesse de transmission variable. Par conséquent, les valeurs de débit des données dans les tableaux précédents reflètent le maximum théorique. Le format WAV n’est pas compressé et la vitesse de transmission est fixe, de sorte que les calculs de débit de données sont exacts.

Obtenez un contrôle total sur vos enregistrements avec nos API Call Recording

Vous pouvez utiliser les API d’enregistrement d’appel pour gérer l’enregistrement via des déclencheurs de logique métier internes, tels qu’une application créant un appel de groupe et enregistrant la conversation. En outre, les enregistrements peuvent être déclenchés par une action utilisateur qui indique à l’application serveur de démarrer l’enregistrement. Les API d’enregistrement d’appel utilisent exclusivement le serverCallId pour lancer l’enregistrement. Pour savoir comment obtenir le serverCallId, consultez notre guide de Démarrage rapide avec Call Recording. Un élément recordingId est renvoyé lorsque l’enregistrement est démarré, que vous pouvez utiliser pour les opérations de suivi telle que les suspensions et les reprises.

Opération Fonctionne sur Commentaires
Démarrer l’enregistrement serverCallId Retourne recordingId.
Obtenir l’état de l’enregistrement recordingId Retourne RecordingStateResult.
Suspendre l'enregistrement recordingId La suspension et la reprise de l’enregistrement d’appel vous permettent d’ignorer l’enregistrement d’une partie d’un appel ou d’une réunion, et de reprendre l’enregistrement dans un fichier unique.
Reprendre l’enregistrement recordingId Reprend une opération d’enregistrement suspendue. Le contenu est inclus dans le même fichier que le contenu avant suspension.
Arrêter l’enregistrement recordingId Arrête l’enregistrement et lance le traitement du média final pour le téléchargement de fichiers.

Notifications Event Grid

Call Recording utilise Azure Event Grid pour vous fournir des notifications relatives aux médias et aux métadonnées.

Remarque

Azure Communication Services fournit un stockage multimédia à court terme pour les enregistrements. Les enregistrements sont disponibles pour le téléchargement pendant 24 heures. Après 24 heures, les enregistrements ne sont plus disponibles.

Une notification Event Grid Microsoft.Communication.RecordingFileStatusUpdated est publiée lorsqu’un enregistrement est prêt pour la récupération, en général quelques minutes après la fin du processus d’enregistrement (telle qu’une réunion terminée ou un enregistrement arrêté). Les notifications d’événements d’enregistrement incluent des éléments contentLocation et metadataLocation utilisés pour récupérer les informations multimédias enregistrées et un fichier de métadonnées d’enregistrement.

Référence du schéma de notification

{
    "id": string, // Unique guid for event
    "topic": string, // /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/Microsoft.Communication/communicationServices/{communication-services-resource-name}
    "subject": string, // /recording/call/{call-id}/serverCallId/{serverCallId}/recordingId/{recordingId}
    "data": {
        "recordingStorageInfo": {
            "recordingChunks": [
                {
                    "documentId": string, // Document id for retrieving from storage
                    "index": int, // Index providing ordering for this chunk in the entire recording
                    "endReason": string, // Reason for chunk ending: "SessionEnded", "ChunkMaximumSizeExceeded”, etc.
                    "metadataLocation": <string>,  // url of the metadata for this chunk
                    "contentLocation": <string>,   // url of the mp4, mp3, or wav for this chunk
                    "deleteLocation": <string>     // url of the mp4, mp3, or wav to delete this chunk
                }
            ]
        },
        "recordingStartTime": string, // ISO 8601 date time for the start of the recording
        "recordingDurationMs": int, // Duration of recording in milliseconds
        "sessionEndReason": string // Reason for call ending: "CallEnded", "InitiatorLeft", etc.
    },
    "eventType": string, // "Microsoft.Communication.RecordingFileStatusUpdated"
    "dataVersion": string, // "1.0"
    "metadataVersion": string, // "1"
    "eventTime": string // ISO 8601 date time for when the event was created
}

Informations de référence sur le schéma de métadonnées

{
  "resourceId": <string>,           // stable resource id of the Azure Communication Services resource recording
  "callId": <string>,               // id of the call
  "chunkDocumentId": <string>,      // object identifier for the chunk this metadata corresponds to
  "chunkIndex": <number>,           // index of this chunk with respect to all chunks in the recording
  "chunkStartTime": <string>,       // ISO 8601 datetime for the start time of the chunk this metadata corresponds to
  "chunkDuration": <number>,        // [Chunk duration has a maximum of 4 hours] duration of the chunk this metadata corresponds to in milliseconds
  "pauseResumeIntervals": [
              "startTime": <string>,          // ISO 8601 datetime for the time at which the recording was paused
              "duration": <number>            // duration of the pause in the recording in milliseconds
                          ],
  "recordingInfo": {
               "contentType": <string>,        // content type of recording, e.g. audio/audioVideo
               "channelType": <string>,        // channel type of recording, e.g. mixed/unmixed
               "format": <string>,             // format of the recording, e.g. mp4/mp3/wav
               "audioConfiguration": {
                   "sampleRate": <number>,       // sample rate for audio recording
                   "bitRate": <number>,          // bitrate for audio recording
                   "channels": <number>          // number of audio channels in output recording
                                     },
               "videoConfiguration": {
                   "longerSideLength": <number>,        // longerSideLength for video recording
                   "shorterSideLength": <number>,       // shorterSideLength for video recording
                   "frameRate": <number>,               // frameRate for video recording
                   "bitRate": <number>                  // bitrate for video recording
                                     }
                    },
  "participants": [
    {
      "participantId": <string>,    // participant identifier of a participant captured in the recording
      "channel": <number>           // channel the participant was assigned to if the recording is unmixed
    }
  ]
}

Questions liées à la réglementation et à la confidentialité

Nombre de pays, régions et états ont des lois et des réglementations qui s’appliquent à l’enregistrement d’appel. Les appels RTC, vocaux et vidéo exigent souvent que les utilisateurs consentent à l'enregistrement de leurs communications. Il est de votre responsabilité d’utiliser les capacités d’enregistrement des appels conformément à la loi. Vous devez obtenir le consentement des parties impliquées dans les communications enregistrées, d’une manière qui soit conforme aux lois applicables à chaque participant.

Les réglementations relatives à la maintenance des données personnelles exigent la possibilité d’exporter des données utilisateur. Afin de prendre en charge ces exigences, l’enregistrement des fichiers de métadonnées inclut l’participantId participant de chaque participant à un appel dans le tableau participants. Vous pouvez référencer l’identité utilisateur Azure Communication Services dans le tableau participants avec vos identités utilisateur internes pour identifier les participants à un appel.

Étapes suivantes

Voici quelques articles qui pourront vous intéresser :