log di registrazione delle chiamate Servizi di comunicazione di Azure

Servizi di comunicazione di Azure offre funzionalità di registrazione che è possibile usare per monitorare ed eseguire il debug della soluzione. Queste funzionalità vengono configurate tramite il portale di Azure.

Il contenuto di questo articolo si riferisce ai log abilitati tramite Monitoraggio di Azure (vedere anche domande frequenti). Per abilitare questi log per Servizi di comunicazione, vedere Abilitare la registrazione nelle impostazioni di diagnostica.

Categorie di log delle risorse

Servizi di comunicazione offre i tipi di log seguenti che è possibile abilitare:

  • Log di utilizzo: specificare i dati di utilizzo associati a ogni offerta di servizio fatturata.
  • Log di riepilogo della registrazione delle chiamate: fornire informazioni di riepilogo per le registrazioni delle chiamate, ad esempio:
    • Durata della chiamata.
    • Contenuto multimediale (ad esempio, audio/video, non mescolato o trascrizione).
    • Tipi di formato utilizzati per la registrazione ( ad esempio WAV o MP4).
    • Motivo per cui la registrazione è terminata.
  • Registrazione dei log delle operazioni in ingresso: fornire informazioni sulle richieste in ingresso per le operazioni di registrazione delle chiamate. Ogni voce corrisponde al risultato di una chiamata alle API di registrazione delle chiamate, ad esempio StartRecording, StopRecording, PauseRecording e ResumeRecording.

Un file di registrazione viene generato alla fine di una chiamata o di una riunione. Un utente o un'app (bot) può avviare e arrestare la registrazione. La registrazione può anche terminare a causa di un errore di sistema.

I log di riepilogo vengono pubblicati dopo che una registrazione è pronta per essere scaricata. I log vengono pubblicati entro il tempo di latenza standard per i log delle risorse di Monitoraggio di Azure. Vedere Tempo di inserimento dei dati di log in Monitoraggio di Azure.

Schema del log di utilizzo

Proprietà Descrizione
timestamp Il timestamp (UTC) relativo alla data e all'ora in cui è stato generato il log.
operationName Operazione associata al record di log.
operationVersion Valore api-version associato all'operazione, se l'operazione operationName è stata eseguita tramite un'API. Se nessuna API corrisponde a questa operazione, la versione rappresenta la versione dell'operazione, nel caso in cui le proprietà associate all'operazione cambino in futuro.
category La categoria di log dell'evento. La categoria è la granularità in base alla quale è possibile abilitare o disabilitare i log in una risorsa. Le proprietà visualizzate all'interno del properties BLOB di un evento sono le stesse all'interno di una categoria di log e un tipo di risorsa.
correlationID L'ID degli eventi correlati. È possibile usarlo per identificare gli eventi correlati tra più tabelle.
Properties Altri dati applicabili a varie modalità di Servizi di comunicazione.
recordID ID univoco per un record di utilizzo.
usageType Modalità di utilizzo , ad esempio Chat, PSTN o NAT.
unitType Tipo di unità su cui si basa l'utilizzo per una modalità di utilizzo, ad esempio minuti, megabyte o messaggi.
quantity Il numero di unità usate o consumate per questo record.

Schema del log di riepilogo della registrazione delle chiamate

Nome proprietà Tipo di dati Descrizione
timeGenerated Data/Ora Timestamp (UTC) di quando è stato generato il log.
operationName Stringa Operazione associata a un record di log.
correlationId Stringa ID usato per correlare gli eventi tra le tabelle.
recordingID Stringa ID per la registrazione a cui fa riferimento questo log.
category Stringa La categoria di log dell'evento. I log con la stessa categoria di log e lo stesso tipo di risorsa hanno gli stessi campi delle proprietà.
resultType Stringa Lo stato dell'operazione.
level Stringa Livello di gravità dell'operazione.
chunkCount Intero Numero totale di blocchi creati per la registrazione.
channelType Stringa Tipo di canale della registrazione, ad esempio misto o non combinato.
recordingStartTime Data/Ora Ora di avvio della registrazione.
contentType Stringa Contenuto della registrazione, ad esempio solo audio, audio/video o trascrizione.
formatType Stringa Formato di file della registrazione.
recordingLength Double Durata della registrazione in secondi.
audioChannelsCount Intero Numero totale di canali audio nella registrazione.
recordingEndReason Stringa Motivo per cui la registrazione è terminata.

Call Recording and example data (Registrazione chiamata e dati di esempio)

"operationName":            "Call Recording Summary",
"operationVersion":         "1.0",
"category":                 "RecordingSummary",

Una chiamata può avere una registrazione o più registrazioni, a seconda del numero di volte in cui viene attivato un evento di registrazione.

Ad esempio, se un agente avvia una chiamata in uscita su una riga registrata e la chiamata scende a causa di un segnale di rete scadente, callID avrà un recordingID valore. Se l'agente richiama il cliente, il sistema genera una nuova callID istanza e un nuovo recordingID valore.

Esempio: Call Recording for one call to one recording (Registrazione chiamata per una chiamata a una registrazione)

"properties"
{  
  "TimeGenerated":"2022-08-17T23:18:26.4332392Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "zzzzzz-cada-4164-be10-0000000000",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBvaW5xxxxxxxxFmNjkwxxxxxxxxxxxxSZXNvdXJjZVNwZWNpZmljSWQiOiJiZGU5YzE3Ni05M2Q3LTRkMWYtYmYwNS0yMTMwZTRiNWNlOTgifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-16T09:07:54.0000000Z",
    "RecordingLength": "73872.94",
    "ChunkCount": 6,
   "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Se l'agente avvia una registrazione e quindi arresta e riavvia la registrazione più volte mentre la chiamata è ancora attiva, callID avrà molti recordingID valori. Il numero di valori dipende dal numero di volte in cui sono stati attivati gli eventi di registrazione.

Esempio: Call Recording for one call to many recordings


{   
 "TimeGenerated": "2022-08-17T23:55:46.6304762Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBxxxxxxxxxxxxjkwMC05MmEwLTRlZDYtOTcxYS1kYzZlZTkzNjU0NzciLCJSxxxxxNwZWNpZmljSWQiOiI5ZmY2ZTY2Ny04YmQyLTQ0NzAtYmRkYy00ZTVhMmUwYmNmOTYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:43.3304762Z",
    "RecordingLength": 3.34,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}
{
    "TimeGenerated": "2022-08-17T23:55:56.7664976Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuxxxxxxiOiI4NDFmNjkwMC1mMjBiLTQzNmQtYTg0Mi1hODY2YzE4M2Y0YTEiLCJSZXNvdXJjZVNwZWNpZmljSWQiOiI2YzRlZDI4NC0wOGQ1LTQxNjEtOTExMy1jYWIxNTc3YjM1ODYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:54.0664976Z",
    "RecordingLength": 2.7,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

Log ACSCallRecordingIncomingOperations

Ecco le proprietà:

Proprietà Descrizione
timeGenerated Timestamp (UTC) di quando è stato generato il log.
callConnectionId ID della connessione di chiamata o della gamba, se disponibile.
callerIpAddress Indirizzo IP del chiamante, se l'operazione corrisponde a una chiamata API proveniente da un'entità con un indirizzo IP disponibile pubblicamente.
correlationId L'ID degli eventi correlati. È possibile usarlo per identificare gli eventi correlati tra più tabelle.
durationMs La durata dell'operazione in millisecondi.
level Livello di gravità dell'operazione.
operationName Operazione associata ai record di log.
operationVersion Versione dell'API associata all'operazione o alla versione dell'operazione (se non è disponibile alcuna versione dell'API).
resourceId Identificatore univoco per la risorsa a cui è associato il record.
resultSignature Stato secondario dell'operazione. Se questa operazione corrisponde a una chiamata API REST, questo campo contiene il codice di stato HTTP della chiamata REST corrispondente.
resultType Lo stato dell'operazione.
sdkType Il tipo di SDK usato nella richiesta.
sdkVersion Versione dell'SDK.
serverCallId ID chiamata server.
URI URI della richiesta.

Ecco un esempio:

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "a999f996-b4e1-xxxx-ac04-a59test87d97",
    "OperationName": "ResumeCallRecording",
    "OperationVersion": "2023-03-06",
    "URI": "https://acsresouce.communication.azure.com/calling/recordings/   eyJQbGF0Zm9ybUVuZHBviI0MjFmMTIwMC04MjhiLTRmZGItOTZjYi0...:resume?api-version=2023-03-06",
    "ResultType": "Succeeded",
    "ResultSignature": 202,
    "DurationMs": 130,
    "CallerIpAddress": "127.0.0.1",
    "CallConnectionId": "d5596715-ab0b-test-8eee-575c250e4234",
    "ServerCallId": "aHR0cHM6Ly9hcGk0vjCCCCCCQd2pRP2k9OTMmZT02Mzc5OTQ3xMDAzNDUwMzg...",
    "SdkVersion": "1.0.0-alpha.20220829.1",
    "SdkType": "dotnet"
}

Passaggi successivi

  • Ottenere informazioni dettagliate sulla registrazione delle chiamate.
  • Altre informazioni sulla registrazione delle chiamate.