Journaux d’automatisation 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.

Prérequis

Azure Communication Services fournit des fonctionnalités de supervision et d’analytique via les journaux Azure Monitor et les métriques Azure Monitor. Chaque ressource Azure requiert son propre paramètre de diagnostic, qui définit les critères suivants :

  • Catégories de données de journal et de métrique envoyées aux destinations que le paramètre définit. Les catégories disponibles varient selon le type de ressource.

  • Une ou plusieurs destinations auxquelles envoyer les journaux. Les destinations actuelles incluent l’espace de travail Log Analytics, Azure Event Hubs et Stockage Azure.

    Un paramètre de diagnostic unique ne peut pas définir plus d’un de chaque type de destination. Si vous souhaitez envoyer des données à plusieurs types de destination (par exemple, deux espaces de travail Log Analytics), créez plusieurs paramètres. Chaque ressource peut avoir jusqu’à cinq paramètres de diagnostic.

Important

Vous devez activer un paramètre de diagnostic dans Azure Monitor pour envoyer les données de journal de vos enquêtes à un espace de travail Log Analytics, un hub d’événements ou un compte de stockage Azure pour recevoir et analyser vos données d’enquête. Si vous n’envoyez pas de données Call Automation à l’une de ces options, vos données d’enquête ne seront pas stockées et seront perdues.

Les instructions suivantes configurent votre ressource Azure Monitor pour commencer à créer des journaux et des métriques pour votre instance Communication Services. Pour obtenir une documentation détaillée sur l’utilisation des paramètres de diagnostic sur toutes les ressources Azure, consultez Activer la journalisation dans les paramètres de diagnostic.

Sous le nom du paramètre de diagnostic, sélectionnez Journaux d’activité d’automatisation des appels d’opération et journaux récapitulatives des événements Automation des appels pour activer les journaux d’activité d’Automatisation des appels.

Screenshot of diagnostic settings for Call Automation.

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 opérationnels d’automatisation des appels : fournissez des informations opérationnelles sur les demandes d’API Call Automation. Vous pouvez utiliser ces journaux pour identifier les points d’échec et interroger toutes les requêtes effectuées dans un appel (à l’aide de l’ID de corrélation ou de l’ID d’appel du serveur).
  • Journaux de synthèse des médias Automation : fournissez des informations sur le résultat des opérations multimédias. Ces journaux vous sont fournis de manière asynchrone lorsque vous effectuez des requêtes multimédias à l’aide des API Automation d’appel. Vous pouvez utiliser ces journaux pour identifier les points d’échec et les modèles possibles sur la façon dont les utilisateurs interagissent avec votre application.

Schéma du journal d’utilisation

Propriété Description
Timestamp Horodatage (UTC) du moment où le journal a été généré.
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.

Journaux opérationnels Automation d’appel

Propriété Description
TimeGenerated Horodatage (UTC) du moment où le journal a été généré.
OperationName Opération associée à l’enregistrement de journal.
CorrelationID Identificateur permettant d’identifier un appel et de mettre en corrélation les événements d’un appel unique.
OperationVersion Version 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.
ResultType État de l'opération.
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.
DurationMs Durée de l’opération en millisecondes.
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.
Level Niveau de gravité de l’événement.
URI URI de la requête.
CallConnectionId ID qui représente la connexion d’appel, le cas échéant. Cet ID est différent pour chaque participant et est utilisé pour identifier sa connexion à l’appel.
ServerCallId ID unique permettant d’identifier un appel.
SDKVersion Version du Kit de développement logiciel (SDK) utilisée pour la requête.
SDKType Type de KIT de développement logiciel (SDK) utilisé pour la requête.
ParticipantId ID permettant d’identifier le participant d’appel qui a effectué la demande.
SubOperationName Nom utilisé pour identifier le sous-type d’opération multimédia (lecture ou reconnaissance).
operationID ID utilisé pour mettre en corrélation les événements asynchrones.

Voici un exemple de journal opérationnel Call Automation :

[
{
"TimeGenerated [UTC]": "5/25/2023, 5:43:25.746 PM",
"Level": "Informational",
"CorrelationId": "e2a97d52-0cbb-4adf-8c4b-e10f791fb764",
"OperationName": "Play",
"OperationVersion": "3/6/23",
"URI": "ccts-media-synthetics-prod.communication.azure.com",
"ResultType": "Succeeded",
"ResultSignature": "202",
"DurationMs": "82",
"CallerIpAddress": "40.88.50.228",
"CallConnectionId": "401f3500-fcb6-4b84-927e-81cd6372560b",
"ServerCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzZWEyLTAxLmNvbnYuc2t5cGUuY29tL2NvbnYvZzRoWlVoS1ZEVUtma19HenRDZ1JTQT9pPTEyJmU9NjM4MjA1NDc4MDg5MzEzMjIz",
"SdkVersion": "",
"SdkType": "unknown",
"SubOperationName": "File",
"OperationId": "5fab0875-3211-4879-8051-c688d0854c4d",
}

Journaux de synthèse des médias Automation d’appel

Propriété Description
TimeGenerated Horodatage (UTC) de l’événement.
level Niveau de gravité de l’événement. Il doit s’agir de l’un des Informational, Warning, ou ErrorCritical. 
resourceId ID de la ressource qui a émis l’événement.
durationMs Durée de l’opération en millisecondes.
callerIpAddress
correlationId ID de chaîne Skype. 
operationName Nom de l’opération représentée par cet événement.
operationVersion
resultType État de l’événement. Les valeurs classiques incluent Completed, Canceledet Failed.
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.
operationId ID d’opération utilisé pour mettre en corrélation les événements asynchrones.
recognizePromptSubOperationName Sous-type de l’opération. Les valeurs potentielles incluent File, TextToSpeechet SSML.
playInLoop True si la boucle a été demandée pour l’opération de lecture. False sinon.
playToParticipant True si l’opération de jeu avait une cible. False s’il s’agissait d’une opération de jeu à tous.
interrupted True si l’invite est interrompue. False sinon.
resultCode Code de résultat de l’opération.
resultSubcode Sous-code de résultat de l’opération.
resultMessage Message de résultat de l’opération.

Voici un exemple de journal de synthèse multimédia Call Automation :

[
{
"TimeGenerated [UTC]": "5/24/2023, 7:57:40.480 PM",
"Level": "Informational",
"CorrelationId": "d149d528-a392-404c-8fcd-69087e9d0802",
"ResultType": "Completed",
"OperationName": "Play",
"OperationId": "7bef24d5-eb95-4ee6-bbab-0b7d45d91288",
"PlayInLoop": "FALSE",
"PlayToParticipant": "TRUE",
"PlayInterrupted": "FALSE",
"RecognizePromptSubOperationName": "",
"ResultCode": "200",
"ResultSubcode": "0",
"ResultMessage": "Action completed successfully."
}

Étapes suivantes