Condividi tramite


Panoramica della registrazione delle chiamate

Registrazione chiamate consente di registrare più scenari di chiamata disponibili in Servizi di comunicazione di Azure fornendo un set di API per avviare, arrestare, sospendere e riprendere la registrazione. Che si tratti di una chiamata PSTN, WebRTC o SIP, è possibile accedere a queste API dalla logica di business lato server. Inoltre, le registrazioni possono essere attivate da un'azione dell'utente che indica all'applicazione server di avviare la registrazione.

A seconda delle esigenze aziendali, è possibile usare Registrazione chiamate per diverse implementazioni di chiamate di Servizi di comunicazione di Azure.

Ad esempio, è possibile registrare chiamate audio e video 1:1 o 1:N:

Diagramma che mostra una chiamata che viene registrata.

È anche possibile usare la registrazione delle chiamate per registrare flussi di lavoro PSTN complessi o VoIP in ingresso e in uscita gestiti da Automazione delle chiamate.

Indipendentemente dal modo in cui è stata stabilita la chiamata, Call Recording consente di produrre file multimediali misti o non misti archiviati per 24 ore in una risorsa di archiviazione temporanea predefinita. È possibile recuperare i file, spostarli nel proprio archivio BLOB di Azure Bring Your Own Storage o in una soluzione di archiviazione preferita. La registrazione delle chiamate supporta tutte le aree dati di Servizi di comunicazione di Azure.

Diagramma che mostra l'architettura di registrazione delle chiamate.

Registrazione delle chiamate che supporta le esigenze aziendali

La registrazione delle chiamate supporta più output multimediali e tipi di contenuto per soddisfare le esigenze aziendali e i casi d'uso. È possibile usare formati misti per scenari quali la registrazione dei documenti, le note sulle riunioni, il coaching e la formazione o persino la conformità e l'adesione. In alternativa, puoi usare un formato audio non miscelato per affrontare i casi d'uso di controllo della qualità o scenari ancora più complessi, come analisi avanzate o sofisticati processi post-chiamata basati su IA.

Video

Tipo di canale Formato del contenuto Risoluzione Frequenza di campionamento Velocità in bit Frequenza dei dati Risultato Descrzione
misto mp4 1920x1080, 16 FPS (fotogrammi al secondo) 16 kHz 1 Mbps 7,5 MB/min* singolo file, canale singolo video misto in una disposizione predefinita 3x3 (altoparlanti più attivi) con supporto del nome visualizzato

Audio

Tipo di canale Formato del contenuto Frequenza di campionamento Velocità in bit Frequenza dei dati Risultato Descrzione
misto mp3 16 kHz 48 kbps 0,36 MB/min* singolo file, canale singolo audio misto di tutti i partecipanti
misto wav 16 kHz 256 Kbps 1,92 MB/min singolo file, canale singolo audio misto di tutti i partecipanti
non mescolato wav 16 kHz 256 Kbps 1,92 MB/min* per canale file singolo, fino a 5 canali wav audio non mescolato, un partecipante per canale, fino a cinque canali

[*NOTA] I formati Mp3 e Mp4 usano la compressione con perdita di dati che comporta una velocità in bit variabile; pertanto, i valori della frequenza dei dati nelle tabelle precedenti riflettono il valore massimo teorico. Il formato WAV non è compresso e la velocità in bit è fissa, quindi i calcoli della velocità dei dati sono esatti.

Ottenere il controllo completo sulle registrazioni con le API di registrazione delle chiamate

È possibile usare le API di registrazione delle chiamate per gestire la registrazione tramite trigger di logica di business interni, ad esempio un'applicazione che crea una chiamata di gruppo e registra la conversazione. Inoltre, le registrazioni possono essere attivate da un'azione dell'utente che indica all'applicazione server di avviare la registrazione. Per avviare una registrazione, le API di registrazione delle chiamate possono usare ( callConnectionId preferito) o serverCallId quando il callConnectionId non è disponibile. Per sapere come ottenere il callConnectionId o il serverCallId, consulta la Guida Introduttiva Alla Registrazione Delle Chiamate. Un recordingId viene restituito all'avvio della registrazione, che può quindi essere usato per operazioni di follow-on come pausa e ripresa.

Operation Opera su Commenti
Inizia registrazione callConnectionId oppure serverCallId Restituisce recordingId.
Ottenere lo stato di registrazione recordingId Restituisce RecordingStateResult.
Metti in pausa la registrazione recordingId La sospensione e la ripresa della registrazione delle chiamate consente di ignorare la registrazione di una parte di una chiamata o di una riunione e riprendere la registrazione in un singolo file.
Riprendi la registrazione recordingId Riprende un'operazione di registrazione sospesa. Il contenuto viene incluso nello stesso file del contenuto di prima della sospensione.
Interrompi registrazione recordingId Arresta la registrazione e avvia l'elaborazione multimediale finale per il download di file.

Notifiche di Event Grid

La registrazione delle chiamate usa Griglia di eventi di Azure per fornire notifiche relative ai file multimediali e ai metadati.

Annotazioni

Servizi di comunicazione di Azure offre un archivio multimediale a breve termine per le registrazioni. Le registrazioni sono disponibili per il download per 24 ore. Dopo 24 ore, le registrazioni non sono più disponibili.

Una notifica Microsoft.Communication.RecordingFileStatusUpdated di Griglia di eventi viene pubblicata quando una registrazione è pronta per il recupero, in genere alcuni minuti dopo il completamento del processo di registrazione, ad esempio la fine della riunione o la registrazione è stata arrestata. Le notifiche degli eventi di registrazione includono contentLocation e metadataLocation, che vengono usate per recuperare sia i supporti registrati che un file di metadati di registrazione.

Informazioni di riferimento sullo schema di notifica

{
    "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
}

Informazioni di riferimento sullo schema dei metadati

{
  "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
    }
  ]
}

Problemi normativi e sulla privacy

Molti paesi/aree geografiche e stati hanno leggi e normative applicabili alla registrazione delle chiamate. Le chiamate PSTN, vocali e video richiedono spesso il consenso degli utenti alla registrazione delle comunicazioni. È responsabilità dell'utente usare le funzionalità di registrazione delle chiamate in conformità alla legge. È necessario ottenere il consenso dalle parti delle comunicazioni registrate in modo conforme alle leggi applicabili a ogni partecipante.

Le normative relative alla manutenzione dei dati personali richiedono la possibilità di esportare i dati utente. Per supportare questi requisiti, i file di metadati di registrazione includono il participantId per ogni partecipante alla chiamata nell'array participants. È possibile incrociare i dati dell'identità utente di Azure Communication Services nell'array participants con le identità utente interne per identificare i partecipanti di una chiamata.

Problemi noti

In rari scenari di disponibilità elevata o ripristino di emergenza (HADR), una singola sessione di registrazione delle chiamate può produrre più file di registrazione che condividono lo stesso recordingId e chunkId. In questi casi, StopCallRecording può restituire 404 Recording not found anche se i file di registrazione vengono recapitati correttamente tramite RecordingFileStatusUpdated eventi. Le applicazioni devono correlare le registrazioni usando serverCallId e non presuppongono una relazione uno-a-uno tra chiamate, ID di registrazione, ID blocchi e file di output.

Passaggi successivi

Ecco alcuni articoli di interesse per te: