Résolution des problèmes dans Azure Communication Services

Ce document vous aide à résoudre les problèmes que vous pouvez rencontrer dans votre solution Communication Services. Si vous voulez résoudre des problèmes liés aux SMS, vous pouvez activer la création de rapports de remise avec Event Grid pour capturer les détails de remise de SMS.

Obtenir de l'aide

Nous encourageons les développeurs à poser des questions, à suggérer des fonctionnalités et à signaler des problèmes. Pour vous aider à obtenir de l’aide, nous avons une page de support et d’aide dédiée qui liste les options de support.

Pour vous aider à résoudre certains types de problèmes, vous pouvez être invité à fournir les informations suivantes :

  • ID MS-CV : cet ID sert à résoudre les problèmes liés aux appels et aux messages.
  • ID d’appel : cet ID sert à identifier les appels Communication Services.
  • ID de message SMS : cet ID sert à identifier les messages SMS.
  • ID de résumé de programme de numérotation courte : cet ID est utilisé pour identifier une application de résumé de programme de numérotation courte.
  • ID de dossier de campagne de vérification de numéro gratuit : cet ID sert à identifier une application de dossier de campagne de vérification de numéro gratuit.
  • ID de message Email: cet ID est utilisé pour identifier envoyer des demandes Email.
  • ID de corrélation : cet ID est utilisé pour identifier les requêtes effectuées à l’aide de Call Automation.
  • Journaux d’appel : ces journaux contiennent des informations détaillées pouvant servir à résoudre les problèmes d’appel et de réseau.

Pour plus d’informations sur la limitation et les limites, consultez également notre documentation sur les limites de service.

Accéder à votre ID MS-CV

Vous pouvez accéder à l’ID MS-CV en configurant les diagnostics dans l’instance d’objet clientOptions lors de l’initialisation de vos kits SDK. Les diagnostics peuvent être configurés pour n’importe quel kit SDK Azure, notamment Conversation, Identité et Appel VoIP.

Exemple d’options client

Les extraits de code suivants illustrent la configuration des diagnostics. Quand les SDK sont utilisés avec les diagnostics activés, les détails des diagnostics peuvent être envoyés à l’écouteur d’événements configuré :

// 1. Import Azure.Core.Diagnostics
using Azure.Core.Diagnostics;

// 2. Initialize an event source listener instance
using var listener = AzureEventSourceListener.CreateConsoleLogger();
Uri endpoint = new Uri("https://<RESOURCE-NAME>.communication.azure.net");
var (token, communicationUser) = await GetCommunicationUserAndToken();
CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);

// 3. Setup diagnostic settings
var clientOptions = new ChatClientOptions()
{
    Diagnostics =
    {
        LoggedHeaderNames = { "*" },
        LoggedQueryParameters = { "*" },
        IsLoggingContentEnabled = true,
    }
};

// 4. Initialize the ChatClient instance with the clientOptions
ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential, clientOptions);
ChatThreadClient chatThreadClient = await chatClient.CreateChatThreadAsync("Thread Topic", new[] { new ChatThreadMember(communicationUser) });

ID d’accès requis pour Call Automation

Quand vous résolvez des problèmes avec le SDK Call Automation, comme les problèmes de gestion ou d’enregistrement des appels, vous devez collecter les ID qui vous aident à identifier l’appel ou l’opération en échec. Vous pouvez fournir l’un des deux ID mentionnés ici.

  • Dans l’en-tête de la réponse de l’API, recherchez le champ X-Ms-Skype-Chain-Id.

    Screenshot of response header showing X-Ms-Skype-Chain-Id.

  • À partir des événements de rappel que votre application reçoit après l’exécution d’une action. Par exemple, CallConnected ou PlayFailed, recherchez l’ID de corrélation.

    Screenshot of call disconnected event showing correlation ID.

En plus de l’un de ces ID, fournissez les détails sur le cas d’usage défaillant et le timestamp du moment où la défaillance a été observée.

Accéder à votre ID d’appel client

Lors de la résolution de problèmes d’appels vocaux ou vidéo, vous pouvez être invité à fournir un call ID. Cette valeur est accessible avec la propriété id de l’objet call :

// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)

Accéder à votre ID de message SMS

Pour les problèmes liés aux SMS, vous pouvez recueillir l’ID de message à partir de l’objet de réponse.

// Instantiate the SMS client
const smsClient = new SmsClient(connectionString);
async function main() {
  const result = await smsClient.send({
    from: "+18445792722",
    to: ["+1972xxxxxxx"],
    message: "Hello World 👋🏻 via Sms"
  }, {
    enableDeliveryReport: true // Optional parameter
  });
console.log(result); // your message ID is in the result
}

Accéder à votre ID de résumé de programme de numérotation courte

L’ID du résumé de programme est accessible sur le portail Azure, dans le panneau Numéros courts.

Screenshot showing a short code program brief ID.


Accéder à votre ID de dossier de campagne de vérification de numéro gratuit

L’ID du dossier de programme se trouve sur le portail Azure, dans le panneau Documentation réglementaire.

Screenshot showing a toll free verification campaign brief ID.


Accéder à votre ID d’opération de messagerie

Quand vous résolvez des problèmes liés à l’envoi d’e-mail ou aux demandes d’état d’e-mail, vous pouvez être invité à fournir un operation ID. Cette valeur est accessible dans la réponse :

var emailSendOperation = await emailClient.SendAsync(
    wait: WaitUntil.Completed,
    senderAddress: sender,
    recipientAddress: recipient,
    subject: subject,
    htmlContent: htmlContent);

/// Get the OperationId so that it can be used for tracking the message for troubleshooting
Console.WriteLine($"Email operation id = {emailSendOperation.Id}");

Accès aux fichiers de support dans le SDK Calling

Le SDK Calling fournit des méthodes pratiques pour accéder aux fichiers journaux. Ces fichiers peuvent être précieux pour les spécialistes et les ingénieurs de support Microsoft. La collecte proactive de ces journaux quand des problèmes sont détectés est recommandée.

Activer les journaux d’appel et y accéder

[JavaScript]

Le Kit de développement logiciel (SDK) Appel d’Azure Communication Services s’appuie en interne sur la bibliothèque @azure/logger pour contrôler la journalisation. Utilisez la méthode setLogLevel du package @azure/logger pour configurer le niveau de sortie du journal. Créez un enregistreur d’événements et passez-le au constructeur CallClient :

import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });

Vous pouvez utiliser AzureLogger pour rediriger la sortie de journalisation des SDK Azure en remplaçant la méthode AzureLogger.log : vous pouvez vous connecter à la console du navigateur, un fichier, une mémoire tampon, envoyer à notre propre service, etc. Si vous comptez envoyer des journaux sur le réseau à votre propre service, n’envoyez pas une demande par ligne de journal, car cela affecte les performances du navigateur. À la place, regroupez les lignes des journaux et envoyez-les par lots.

// Redirect log output
AzureLogger.log = (...args) => {
    // To console, file, buffer, REST API, etc...
    console.log(...args); 
};

SDK natif (Android/iOS)

Pour Android, iOS et Windows, le SDK Calling Azure Communication Services offre l’accès aux fichiers journaux.

Pour le SDK natif Calling, consultez les tutoriels d’accès aux fichiers journaux

Bibliothèques d’interface utilisateur (Android, iOS)

Si vous utilisez les bibliothèques d’interface utilisateur Azure Communication Services pour Android ou iOS, des commentaires utilisateur peuvent être sollicités via le formulaire de support intégré.

Pour plus d’informations sur l’utilisation des fonctionnalités de support du formulaire de support Calling UI, consultez le tutoriel d’intégration du formulaire de support. Ce document vous montre comment ajouter le gestionnaire d’événements nécessaire et comment créer une implémentation de client/serveur de base pour centraliser le stockage des informations de support. Ce guide est conçu pour vous aider à intégrer les services de support que votre organisation utilise.

Génération de flux de support de bout en bout dans vos intégrations ACS

Que vous utilisiez le SDK Calling ou le SDK Calling UI, le support offert aux utilisateurs finaux est un composant clé d’une intégration robuste. Le document suivant met en évidence les principales considérations à chaque point de la boucle de commentaires du support et fournit des points de départ pour en savoir plus.

Offre de support utilisateur


Rechercher les informations Microsoft Entra

  • Obtention de l’ID de répertoire
  • Obtention de l’ID d’application
  • Obtention de l’identifiant utilisateur

Obtention de l’ID de répertoire

Pour rechercher votre ID d’annuaire (locataire), suivez ces étapes :

  1. Accédez à portail Azure et connectez-vous au portail Azure à l’aide des informations d’identification.

  2. Dans le volet de gauche, sélectionnez Microsoft Entra ID.

  3. Dans la page Vue d’ensemble de Microsoft Entra ID, copiez l’ID d’annuaire (locataire) et stockez-le dans le code de votre application.

    Screenshot of how to copy Microsoft Entra tenant ID and store it.

Obtention de l’ID d’application

Pour rechercher votre ID d’application, suivez ces étapes :

  1. Accédez à portail Azure et connectez-vous au portail Azure à l’aide des informations d’identification.

  2. Dans le volet de gauche, sélectionnez Microsoft Entra ID.

  3. Sous Inscriptions d’applications dans Microsoft Entra ID, sélectionnez votre application.

  4. Copiez l’ID d’application et stockez-le dans votre code d’application.

    Screenshot of how to copy Microsoft Entra application ID and store it.

    L’ID de répertoire (locataire) est également accessible dans la page de présentation de l’application.

Obtention de l’identifiant utilisateur

Pour rechercher votre ID utilisateur, suivez ces étapes :

  1. Accédez à portail Azure et connectez-vous au portail Azure à l’aide des informations d’identification.

  2. Dans le volet de gauche, sélectionnez Microsoft Entra ID.

  3. Sous Utilisateurs dans Microsoft Entra ID, sélectionnez votre utilisateur.

  4. Dans la page Profil des utilisateurs Microsoft Entra, copiez l’ID d’objet et stockez-le dans le code de votre application.

    Screenshot of how to copy Microsoft Entra user ID and store it.

Obtention d’un ID de ressource immuable

Parfois, vous devez également fournir l’ID de ressource immuable de votre ressource Communication Service. Suivez ces étapes pour le rechercher :

  1. Accédez à portail Azure et connectez-vous au portail Azure à l’aide des informations d’identification.
  2. Ouvrez votre ressource Communication Services.
  3. Dans le volet gauche, sélectionnez Vue d’ensemble et basculez vers une vue JSONScreenshot of how to switch Communication Resource overview to a JSON view.
  4. À partir de la page JSON de ressource, copiez la valeur immutableResourceId et fournissez-la à votre équipe de support technique. Screenshot of Resource JSON.

Vérification de l’éligibilité de la licence Teams au support Azure Communication Services pour les utilisateurs de Teams

Il existe deux façons de vérifier l’éligibilité de votre licence Teams au support Azure Communication Services pour les utilisateurs de Teams :

  • Vérification via le client web Teams
  • Vérification de votre licence Teams actuelle via l’API Microsoft Graph

Vérification via le client web Teams

Pour vérifier l’éligibilité de votre licence Teams avec le client web Teams, suivez ces étapes :

  1. Ouvrez votre navigateur et accédez au client web Teams.
  2. Connectez-vous avec des informations d’identification correspondant à une licence Teams valide.
  3. Si l’authentification réussit et que vous restez dans le domaine https://teams.microsoft.com/, cela signifie que votre licence Teams est éligible. Si l’authentification échoue ou si vous êtes redirigé vers le domaine https://teams.live.com/v2/, cela signifie que votre licence Teams n’est pas éligible pour bénéficier du support Azure Communication Services pour utilisateurs de Teams.

Vérification de votre licence Teams actuelle via l’API Microsoft Graph

Vous pouvez rechercher votre licence Teams actuelle en utilisant l’API Microsoft Graph licenseDetails qui renvoie les licences attribuées à un utilisateur. Suivez ces étapes pour utiliser l’outil Afficheur Graph afin de voir les licences attribuées à un utilisateur :

  1. Ouvrez votre navigateur et accédez à l’Afficheur Graph.

  2. Connectez-vous à l’Afficheur Graph en utilisant les informations d’identification. Screenshot of how to sign in to Graph Explorer.

  3. Dans la zone de requête, entrez l’API suivante, puis cliquez sur Exécuter la requête :

    https://graph.microsoft.com/v1.0/me/licenseDetails
    

    Screenshot of how to enter API in Graph Explorer.

    Vous pouvez également effectuer une requête sur un utilisateur particulier en fournissant l’ID utilisateur à l’aide de l’API suivante :

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. Le volet Aperçu de la réponse affiche la sortie comme suit :

    Notez que l’objet de réponse illustré ici pourrait être abrégé pour faciliter la lisibilité.

    {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('071cc716-8147-4397-a5ba-b2105951cc0b')/assignedLicenses",
        "value": [
            {
                "skuId": "b05e124f-c7cc-45a0-a6aa-8cf78c946968",
                "servicePlans":[
                    {
                        "servicePlanId":"57ff2da0-773e-42df-b2af-ffb7a2317929",
                        "servicePlanName":"TEAMS1",
                        "provisioningStatus":"Success",
                        "appliesTo":"User"
                    }
                ]
            }
        ]
    }
    
  5. Recherchez des détails de licence où la propriété servicePlanName contient l’une des valeurs de la table Licences Teams éligibles.

Codes d’erreur du kit SDK Appel

Le kit SDK Appel Azure Communication Services utilise les codes d’erreur suivants pour vous aider à résoudre des problèmes d’appel. Ces codes d’erreur sont exposés via la propriété call.callEndReason à l’issue d’un appel.

Code d'erreur Description Action à effectuer
403 Interdit / Échec de l’authentification. Vérifiez que votre jeton Communication Services est valide et qu’il n’a pas expiré.
404 Appel introuvable. Assurez-vous que le numéro que vous appelez (ou l’appel que vous êtes en train de joindre) existe.
408 Le délai d’attente du contrôleur d’appel a expiré. Le contrôleur d’appel a atteint le délai d’attente des messages de protocole provenant des points de terminaison utilisateur. Vérifiez que les clients sont connectés et disponibles.
410 Erreur locale de pile multimédia ou d’infrastructure multimédia. Veillez à utiliser le kit SDK le plus récent dans un environnement pris en charge.
430 Impossible de remettre le message à l’application cliente. Vérifiez que l’application cliente est en cours d’exécution et disponible.
480 Le point de terminaison de client distant n’est pas inscrit. Vérifiez que le point de terminaison distant est disponible.
481 Échec du traitement de l’appel entrant. Soumettez une demande de support via le portail Azure.
487 Appel annulé, refusé localement, terminé en raison d’un problème d’incompatibilité avec le point de terminaison, ou ne parvenant pas à générer l’offre multimédia. Comportement attendu.
490, 491, 496, 497, 498 Problèmes de réseau de point de terminaison local. Vérifiez votre réseau.
500, 503, 504 Erreur d’infrastructure Communication Services. Soumettez une demande de support via le portail Azure.
603 Appel global refusé par le participant Communication Services distant Comportement attendu.

Codes d’erreur du KIT de développement logiciel (SDK) Call Automation

Les codes d’erreur ci-dessous sont exposés par le Kit de développement logiciel (SDK) Call Automation.

Code d’erreur Description Actions à entreprendre
400 Demande incorrecte La requête d’entrée n’est pas valide. Examinez le message d’erreur pour déterminer quelle entrée est incorrecte.
400 Échec de lecture Vérifiez que votre fichier audio est WAV, 16 KHz, Mono et assurez-vous que l’URL du fichier est accessible publiquement.
400 La reconnaissance a échoué Consultez le message d'erreur. Le message indique si cet échec est dû à l’expiration du délai d’attente ou si l’opération a été annulée. Pour plus d’informations sur les codes d’erreur et les messages, vous pouvez consulter notre guide pratique pour la collecte des entrées utilisateur.
401 Non autorisé Échec de l’authentification HMAC. Vérifiez si la chaîne de connexion utilisée pour créer CallAutomationClient est correcte.
403 Interdit La requête est interdite. Assurez-vous que vous pouvez avoir accès à la ressource à laquelle vous essayez d’accéder.
404 Ressource introuvable L’appel sur lequel vous essayez d’agir n’existe pas. Par exemple, le transfert d’un appel qui a déjà été déconnecté.
429 Trop de demandes Réessayez après un délai suggéré dans l’en-tête Nouvelle tentative-Après, puis effectuez un retour en arrière exponentiel.
500 Erreur interne du serveur Réessayez après un retard. Si le problème persiste, déclenchez un ticket de support.
500 Échec de lecture Soumettez une demande de support via le portail Azure.
500 La reconnaissance a échoué Vérifiez le message d’erreur et vérifiez que le format de fichier audio est valide (WAV, 16 KHz, Mono), si le format de fichier est valide, puis déposez une demande de support via Portail Azure.
502 Passerelle incorrecte Réessayez après un retard avec un nouveau client HTTP.

Tenez compte des conseils ci-dessous pour résoudre certains problèmes.

  • Votre application ne reçoit pas d’événement IncomingCall Event Grid : assurez-vous que le point de terminaison de l’application a été validé avec Event Grid au moment de la création de l’abonnement aux événements. L’état de provisionnement de votre abonnement aux événements est marqué comme réussi si la validation a réussi.
  • Obtention de l’erreur « Le champ CallbackUri n’est pas valide » : Call Automation ne prend pas en charge les points de terminaison HTTP. Vérifiez que l’URL de rappel que vous fournissez prend en charge HTTPS.
  • L’action PlayAudio ne lit rien : actuellement, seul le format de fichier Wave (.wav) est pris en charge pour les fichiers audio. Le contenu audio du fichier d’ondes doit être mono (monocanal), échantillons 16 bits avec un taux d’échantillonnage de 16 000 (16 KHz).
  • Les actions sur les points de terminaison PSTN ne fonctionnent pas : CreateCall, Transfer, AddParticipant et Rediriger vers des numéros de téléphone vous obligent à définir sourceCallerId dans la demande d’action. Sauf si vous utilisez le routage direct, l’ID de l’appelant source doit être un numéro de téléphone appartenant à votre ressource Communication Services pour que l’action réussisse.

Reportez-vous à cet article pour en savoir plus sur les problèmes connus suivis par l’équipe produit.

Codes d’erreur du Kit SDK Conversation

Le kit SDK Appel Azure Communication Conversation utilise les codes d’erreur suivants pour vous aider à résoudre des problèmes de conversation. Les codes d’erreur sont exposés via la propriété error.code dans la réponse d’erreur.

Code d'erreur Description Action à effectuer
401 Non autorisé Vérifiez que votre jeton Communication Services est valide et qu’il n’a pas expiré.
403 Interdit Assurez-vous que l’initiateur de la demande a accès à la ressource.
429 Trop de demandes Assurez-vous que votre application côté client gère ce scénario de manière conviviale. Si l’erreur persiste, soumettez une demande de support.
503 Service indisponible Soumettez une demande de support via le portail Azure.

Codes d’erreur SMS

Le Kit de développement logiciel (SDK) SMS d’Azure Communication Services utilise les codes d’erreur suivants pour vous aider à résoudre des problèmes de SMS. Les codes d’erreur sont exposés via le champ « DeliveryStatusDetails » dans le rapport de livraison de SMS.

Code d'erreur Description Action à effectuer
2000 Message livré avec succès
4000 Le message est rejeté en raison d’une détection de fraude Vérifiez que vous ne dépassez pas le nombre maximal de messages autorisés pour votre numéro.
4001 Le message est rejeté en raison d’un format non valide du numéro de l’expéditeur Assurez-vous que le numéro du destinataire est au format E.164 et que le numéro de l’expéditeur est au format E.164 ou Numéro court.
4002 Le message est rejeté en raison d’un format non valide du numéro du destinataire Assurez-vous que le numéro du destinataire est au format E.164.
4003 Échec de la livraison du message en raison d’une destination non prise en charge Vérifiez que la destination à laquelle vous tentez d’envoyer le message est prise en charge.
4004 La livraison du message a échoué parce que le numéro du destinataire n’existe pas. Vérifiez que le numéro du destinataire auquel vous envoyez le message est valide.
4005 Le message est bloqué par l’opérateur du destinataire
4006 Le numéro du destinataire n’est pas accessible Essayez de renvoyer le message ultérieurement.
4007 Le numéro du destinataire a refusé de recevoir des messages de votre part Marquez le numéro du destinataire comme étant désabonné afin qu’aucune autre tentative de message ne soit effectuée vers ce numéro.
4008 Vous avez dépassé le nombre maximal de messages autorisés pour votre profil. Assurez-vous que vous ne dépassez pas le nombre maximal de messages autorisé pour votre numéro, ou utilisez des files d’attente pour regrouper les messages par lot.
4009 Le message est rejeté par Microsoft Entitlement System Le plus souvent, cela se produit quand une activité frauduleuse est détectée. Pour plus d’informations, contactez le support.
4010 Le message a été bloqué en raison de la non vérification du numéro gratuit Examinez les limites d’envoi non vérifiées et envoyez la vérification gratuite dès que possible
5 000 Le message n’a pas pu être livré. Pour plus d’informations, contactez l’équipe du support technique Microsoft Déposez une demande de support via le portail Azure.
5001 Échec de la livraison du message en raison d’une indisponibilité temporaire de l’application/du système
5002 Le transporteur ne prend pas en charge le rapport de remise Le plus souvent, cela se produit si un transporteur ne prend pas en charge les rapports de remise. Aucune action n’est nécessaire, car le message a peut-être déjà été remis.
9999 Échec de la livraison du message en raison d’une erreur inconnue ou d’une défaillance Essayez de renvoyer le message.