Journaux d’enregistrement des appels Azure Communication Services
Azure Communication Services offre des fonctionnalités de journalisation que vous pouvez utiliser pour superviser et déboguer votre solution Communication Services. Vous configurez ces fonctionnalités via le Portail Azure.
Le contenu de cet article fait référence aux journaux activés via Azure Monitor (voir également FAQ). Pour activer ces journaux d’activité pour Communication Services, consultez Activer la journalisation dans les paramètres de diagnostic.
Catégories de journaux de ressources
Communication Services propose les types de journaux suivants que vous pouvez activer :
- Journaux d’utilisation : fournissez des données d’utilisation associées à chaque offre de service facturée.
- Journaux récapitulatives de l’enregistrement des appels : fournissez des informations récapitulatives pour les enregistrements d’appels, par exemple :
- Durée de l’appel.
- Contenu multimédia (par exemple, audio/vidéo, non mélangé ou transcription).
- Types de format utilisés pour l’enregistrement (par exemple, WAV ou MP4).
- Raison pour laquelle l’enregistrement s’est terminé.
- Enregistrement des journaux des opérations entrantes : fournissez des informations sur les demandes entrantes pour les opérations d’enregistrement des appels. Chaque entrée correspond au résultat d’un appel aux API d’enregistrement d’appel, telles que StartRecording, StopRecording, PauseRecording et ResumeRecording.
Un fichier d’enregistrement est généré à la fin d’un appel ou d’une réunion. Un utilisateur ou une application (bot) peut démarrer et arrêter l’enregistrement. L’enregistrement peut également se terminer en raison d’une défaillance système.
Les journaux de synthèse sont publiés une fois qu’un enregistrement est prêt à être téléchargé. Les journaux sont publiés dans le temps de latence standard pour les journaux de ressources Azure Monitor. Consultez le temps d’ingestion des données de journal dans Azure Monitor.
Schéma du journal d’utilisation
Propriété | Description |
---|---|
timestamp |
Horodatage (UTC) de la génération du journal. |
operationName |
Opération associée à l’enregistrement de journal. |
operationVersion |
Valeur api-version associée à l’opération, si l’opération operationName a été effectuée via une API. Si aucune API ne correspond à cette opération, la version représente la version de l’opération, au cas où les propriétés associées à l’opération changent à l’avenir. |
category |
Catégorie de journal de l’événement. La catégorie est la granularité à laquelle vous pouvez activer ou désactiver les journaux d’activité sur une ressource. Les propriétés qui apparaissent dans l’objet properties blob d’un événement sont identiques dans une catégorie de journal et un type de ressource. |
correlationID |
ID des événements corrélés. Vous pouvez l’utiliser pour identifier les événements corrélés entre plusieurs tables. |
Properties |
Autres données applicables aux différents modes de Communication Services. |
recordID |
ID unique d’un enregistrement d’utilisation. |
usageType |
Mode d’utilisation (par exemple, Conversation, PSTN ou NAT). |
unitType |
Type d’unité sur lequel l’utilisation est basée sur un mode d’utilisation (par exemple, minutes, mégaoctets ou messages). |
quantity |
Nombre d’unités utilisées ou consommées pour cet enregistrement. |
Schéma du journal récapitulative de l’enregistrement des appels
Nom de la propriété | Type de données | Description |
---|---|---|
timeGenerated |
Date et heure | Horodatage (UTC) du moment où le journal a été généré. |
operationName |
Chaîne | Opération associée à un enregistrement de journal. |
correlationId |
Chaîne | ID utilisé pour mettre en corrélation les événements entre les tables. |
recordingID |
Chaîne | ID de l’enregistrement auquel ce journal fait référence. |
category |
Chaîne | Catégorie de journal de l’événement. Les journaux avec la même catégorie de journal et le même type de ressource ont les mêmes champs de propriété. |
resultType |
Chaîne | L’état de l’opération. |
level |
Chaîne | Le niveau de gravité de l’opération. |
chunkCount |
Entier | Nombre total de blocs créés pour l’enregistrement. |
channelType |
Chaîne | Type de canal de l’enregistrement, tel que mixte ou non mélangé. |
recordingStartTime |
Date et heure | Heure à laquelle l’enregistrement a démarré. |
contentType |
Chaîne | Contenu de l’enregistrement, tel que l’audio uniquement, l’audio/vidéo ou la transcription. |
formatType |
Chaîne | Format de fichier de l’enregistrement. |
recordingLength |
Double | Durée de l’enregistrement en secondes. |
audioChannelsCount |
Entier | Nombre total de canaux audio dans l’enregistrement. |
recordingEndReason |
Chaîne | Raison pour laquelle l’enregistrement s’est terminé. |
Appeler l’enregistrement et les exemples de données
"operationName": "Call Recording Summary",
"operationVersion": "1.0",
"category": "RecordingSummary",
Un appel peut avoir un enregistrement ou plusieurs enregistrements, selon le nombre de fois qu’un événement d’enregistrement est déclenché.
Par exemple, si un agent démarre un appel sortant sur une ligne enregistrée et que l’appel tombe en raison d’un signal réseau médiocre, callID
a une recordingID
valeur. Si l’agent appelle le client, le système génère une nouvelle callID
instance et une nouvelle recordingID
valeur.
Exemple : Appeler l’enregistrement pour un appel à un enregistrement
"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
}
Si l’agent démarre un enregistrement, puis arrête et redémarre l’enregistrement plusieurs fois pendant que l’appel est toujours activé, callID
aura de nombreuses recordingID
valeurs. Le nombre de valeurs dépend du nombre de fois où les événements d’enregistrement ont été déclenchés.
Exemple : Appeler l’enregistrement pour un appel à de nombreux enregistrements
{
"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
}
Journaux ACSCallRecordingIncomingOperations
Voici les propriétés :
Propriété | Description |
---|---|
timeGenerated |
Horodatage (UTC) du moment où le journal a été généré. |
callConnectionId |
ID de la connexion ou de la jambe d’appel, le cas échéant. |
callerIpAddress |
Adresse IP de l’appelant, si l’opération correspond à un appel d’API provenant d’une entité avec une adresse IP disponible publiquement. |
correlationId |
ID des événements corrélés. Vous pouvez l’utiliser pour identifier les événements corrélés entre plusieurs tables. |
durationMs |
Durée de l’opération en millisecondes. |
level |
Le niveau de gravité de l’opération. |
operationName |
Opération associée aux enregistrements de journal. |
operationVersion |
Version de l’API associée à l’opération ou à la version de l’opération (s’il n’existe aucune version de l’API). |
resourceId |
Identificateur unique de la ressource à laquelle l’enregistrement est associé. |
resultSignature |
Sous-état de l’opération. Si cette opération correspond à un appel d’API REST, ce champ est le code d’état HTTP de l’appel REST correspondant. |
resultType |
État de l'opération. |
sdkType |
Type de SDK utilisé dans la demande. |
sdkVersion |
Version du Kit de développement logiciel (SDK). |
serverCallId |
ID d’appel du serveur. |
URI |
URI de la requête. |
Voici un exemple :
"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"
}
Étapes suivantes
- Obtenir des insights sur l’enregistrement des appels.
- En savoir plus sur l’Enregistrement des appels.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de l’année 2024, nous abandonnerons progressivement le mécanisme de retour d’information GitHub Issues pour le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultez :Soumettre et afficher des commentaires pour