Condividi tramite


Log di registrazione delle chiamate di 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 riguarda i 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: forniscono i dati di utilizzo associati a ogni offerta del servizio fatturata.
  • Log di riepilogo della registrazione delle chiamate: fornire informazioni di riepilogo per le registrazioni delle chiamate, ad esempio:
    • Durata 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 Time di inserimento dati 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 del 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 di tale operazione nel caso in cui le proprietà associate all'operazione cambino in futuro.
category La categoria di log dell'evento. La categoria è la granularità con cui è possibile abilitare o disabilitare i log di una risorsa. Le proprietà che appaiono all'interno del BLOB properties di un evento sono le stesse all'interno di una categoria di log e di un tipo di risorsa.
correlationID L'ID degli eventi correlati. Può essere usato per identificare 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 della proprietà Tipo di dati Descrizione
timeGenerated Data/Ora Timestamp (UTC) relativo alla data e all'ora in cui è stato generato il log.
operationName String L'operazione associata a un record del log.
correlationId String ID usato per correlare gli eventi tra le tabelle.
recordingID String ID per la registrazione a cui fa riferimento questo log.
category String La categoria di log dell'evento. I log con la stessa categoria di log e lo stesso tipo di risorsa hanno gli stessi campi di proprietà.
resultType String Lo stato dell'operazione.
level String Il livello di gravità dell'operazione.
chunkCount Intero Numero totale di blocchi creati per la registrazione.
channelType String Tipo di canale della registrazione, ad esempio misto o non combinato.
recordingStartTime Data/Ora Ora di avvio della registrazione.
contentType String Contenuto della registrazione, ad esempio solo audio, audio/video o trascrizione.
formatType String Formato di file della registrazione.
recordingLength Double Durata della registrazione in secondi.
audioChannelsCount Intero Numero totale di canali audio nella registrazione.
recordingEndReason String Motivo per cui la registrazione è terminata.

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 valore recordingID. Se l'agente richiama il cliente, il sistema genera una nuova istanza di callID e un nuovo valore recordingID.

Esempio: 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 valori recordingID. Il numero di valori dipende dal numero di volte in cui sono stati attivati gli eventi di registrazione.

Esempio: Registrazione chiamata per una chiamata a molte registrazioni


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

ACSCallRecordingIncomingOperations logs

Ecco le proprietà:

Proprietà Descrizione
timeGenerated Timestamp (UTC) relativo alla data e all'ora in cui è stato generato il log.
callConnectionId ID della connessione di chiamata o della gamba, se disponibile.
callerIpAddress L'indirizzo IP del chiamante, se l'operazione corrisponde a una chiamata API proveniente da un'entità con un indirizzo IP pubblicamente disponibile.
correlationId L'ID degli eventi correlati. Può essere usato per identificare eventi correlati tra più tabelle.
durationMs La durata dell'operazione in millisecondi.
level Il livello di gravità dell'operazione.
operationName L'operazione associata ai record di log.
operationVersion La versione API associata all'operazione o la versione dell'operazione (se non è disponibile alcuna versione API).
resourceId Identificatore univoco della risorsa a cui è associato il record.
resultSignature Lo 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 La versione 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