Vue d’ensemble de Call Automation

Call Automation d’Azure Communication Services permet aux développeurs de créer des workflows d’appels intelligents basés sur un serveur ainsi que des fonctionnalités d’enregistrement d’appel pour les canaux vocaux et le réseau téléphonique commuté public (PSTN, ou RTC en français). Les SDK, disponibles en C#, Java, JavaScript et Python, utilisent un modèle d’événement d’action pour vous aider à créer des interactions client personnalisées. Vos applications de communication peuvent écouter les événements d’appel en temps réel et effectuer des actions de plan de contrôle (réponse, transfert, lecture audio, démarrage d’un enregistrement, etc.) pour diriger et contrôler les appels en fonction de votre logique métier.

Remarque

Call Automation ne prend actuellement pas en charge les salles d’appels.

Cas d’utilisation courants

Voici certains cas d’usage courants de Call Automation :

  • Programmez des appels VoIP ou RTC pour des flux de travail transactionnels comme les appels par clic et les rappels de rendez-vous pour améliorer le service client.
  • Créez des flux de travail d’interaction interactifs pour les clients en libre service dans des cas d’utilisation comme les réservations de commandes et les mises à jour, à l’aide d’actions de lecture (URL audio, synthèse vocales et SSML) et de reconnaissance (DTMF et Voice).
  • Intégrez vos applications de communication aux centres de contacts et à vos réseaux de téléphonie privés à l’aide du routage direct.
  • Protégez l’identité de vos clients en créant des services de masquage de numéros pour mettre en relation les acheteurs avec les vendeurs ou les utilisateurs avec les fournisseurs partenaires sur votre plateforme.
  • Augmentez l’engagement en créant des programmes automatisés de suivi des clients pour le marketing et le service client.
  • Analysez dans un processus postappel vos enregistrements audio séparés à des fins d’assurance qualité.

Call Automation d’Azure Communication Services peut être utilisé pour créer des flux de travail d’appel dans les scénarios de service client (cf. l’architecture de haut niveau). Il est possible de répondre aux appels entrants ou d’effectuer des appels sortants. Exécutez des actions comme lire un message d’accueil ou mettre le client en relation avec un agent en direct sur une application cliente du kit SDK d’appel Azure Communication Services pour répondre à la demande d’appel entrante. Grâce à la prise en charge d’Azure Communication Services RTC ou du routage direct, vous pouvez ensuite connecter ce flux de travail à votre centre de contacts.

Diagramme du flux d’appels dans un scénario de service client.

Fonctionnalités

La liste suivante présente l’ensemble des fonctionnalités actuellement disponibles dans les kits SDK Call Automation d’Azure Communication Services.

Zone Fonctionnalités Fonctionnalité .NET Java JavaScript Python
Scénarios avant appel Répondre à un appel individuel ✔️ ✔️ ✔️ ✔️
Répondre à un appel de groupe ✔️ ✔️ ✔️ ✔️
Passer un nouvel appel sortant vers un ou plusieurs points de terminaison ✔️ ✔️ ✔️ ✔️
Rediriger* (transférer) un appel vers un ou plusieurs points de terminaison ✔️ ✔️ ✔️ ✔️
Rejeter un appel entrant ✔️ ✔️ ✔️ ✔️
Scénarios en cours d’appel Ajouter un ou plusieurs points de terminaison à un appel existant ✔️ ✔️ ✔️ ✔️
Annuler l’ajout d’un point de terminaison à un appel existant ✔️ ✔️ ✔️ ✔️
Lire un fichier audio ✔️ ✔️ ✔️ ✔️
Lire l’audio en utilisant la synthèse vocale ✔️ ✔️ ✔️ ✔️
Reconnaître l’entrée utilisateur via DTMF ✔️ ✔️ ✔️ ✔️
Reconnaître les entrées vocales de l’utilisateur ✔️ ✔️ ✔️ ✔️
Démarrer la reconnaissance DTMF en continu ✔️ ✔️ ✔️ ✔️
Arrêter la reconnaissance DTMF en continu ✔️ ✔️ ✔️ ✔️
Envoyer DTMF ✔️ ✔️ ✔️ ✔️
Désactiver le son du participant ✔️ ✔️ ✔️ ✔️
Supprimer un ou plusieurs points de terminaison d’un appel existant ✔️ ✔️ ✔️ ✔️
Effectuer un transfert aveugle* d’un appel individuel vers un autre point de terminaison ✔️ ✔️ ✔️ ✔️
Effectuer un transfert aveugle* d’un participant de l’appel de groupe vers un autre point de terminaison ✔️ ✔️ ✔️ ✔️
Raccrocher (supprimer le signal d’appel) ✔️ ✔️ ✔️ ✔️
Mettre fin à un appel (supprimer tous les participants et arrêter l’appel) ✔️ ✔️ ✔️ ✔️
Annuler les opérations multimédias ✔️ ✔️ ✔️ ✔️
Partager des informations personnalisées (via des en-têtes VOIP ou SIP) avec des points de terminaison lors de leur ajout à un appel ou du transfert d’un appel vers eux ✔️ ✔️ ✔️ ✔️
Scénarios de requêtes Récupérer l’état d’appel ✔️ ✔️ ✔️ ✔️
Trouver un participant à un appel ✔️ ✔️ ✔️ ✔️
Lister les participants à un appel ✔️ ✔️ ✔️ ✔️
Enregistrement d’appel Démarrer/mettre en pause/reprendre/arrêter un enregistrement ✔️ ✔️ ✔️ ✔️

*Le transfert ou la redirection d’un appel VoIP vers un numéro de téléphone n’est actuellement pas pris en charge.

Architecture

Call Automation utilise une interface d’API REST pour recevoir des demandes et fournir des réponses à toutes les actions effectuées dans le service. Pour la plupart des actions, des événements correspondants sont déclenchés lorsque l’action se termine correctement ou échoue, et ce, en raison de la nature asynchrone de l’appel.

Azure Communication Services utilise Event Grid pour fournir l’événement IncomingCall et les webhooks HTTPS pour tous les rappels d’action en cours d’appel.

Capture d’écran du flux de l’appel entrant et des actions.

Actions d’appel

Actions avant appel

Ces actions sont effectuées avant que le point de terminaison de destination qui figure dans la notification d’événement IncomingCall ne soit connecté. Les événements de rappel par webhook communiquent uniquement l’action de « réponse » avant appel, et non les actions de rejet ni de redirection.

Répondre : à l’aide de l’événement IncomingCall d’Event Grid et du SDK Call Automation, votre application peut répondre à un appel. Cette action permet des scénarios IVR dans lesquels votre application peut répondre par programmation aux appels RTC entrants. Un autre cas de figure consiste à répondre à un appel au nom d’un utilisateur.

Rejeter : rejeter un appel signifie que votre application peut recevoir l’événement IncomingCall et empêcher l’appel d’être connecté au point de terminaison de destination.

Rediriger : à l’aide de l’événement IncomingCall d’Event Grid, un appel peut être redirigé vers un ou plusieurs points de terminaison. On obtient ainsi un scénario de sonnerie unique ou simultanée. L’action de redirection ne répond pas à l’appel, l’appel est simplement redirigé ou transféré vers un autre point de terminaison de destination à répondre.

Créer un appel : une action Créer un appel peut être utilisée pour passer des appels sortants à des numéros de téléphone et à d’autres utilisateurs de communication. Parmi les cas d’usage, on peut citer une application qui passe des appels sortants pour informer de manière proactive les utilisateurs d’une panne ou d’une mise à jour de commande.

Actions en cours d’appel

Ces actions peuvent être effectuées sur les appels qui reçoivent une réponse ou qui sont passés à l’aide des kits SDK Call Automation. Chaque action en cours d’appel correspond à un événement de rappel par webhook ayant réussi ou échoué.

Ajouter ou supprimer un ou plusieurs participants : il est possible d’ajouter un ou plusieurs participants dans une seule demande, chacun d’eux constituant une variante des points de terminaison de destination pris en charge. Un rappel de webhook est envoyé pour chaque participant qui a pu être ajouté à l’appel.

Lire : lorsque votre application répond à un appel ou passe un appel sortant, vous pouvez diffuser une invite audio auprès de l’appelant. Ce contenu audio peut si nécessaire être lu en boucle dans des scénarios comme la lecture de musique d’attente. Pour en savoir plus, consultez nos concepts et notre guide pratique sur la personnalisation des invites vocales pour les utilisateurs avec l’action de lecture.

Reconnaître l’entrée : une fois que votre application a diffusé une invite audio, vous pouvez demander à l’utilisateur d’entrer des données pour piloter la logique métier et la navigation dans votre application. Pour en savoir plus, consultez nos concepts et notre guide pratique sur la collecte des entrées utilisateur.

Reconnaissance DTMF en continu : lorsque votre application doit être en mesure de recevoir des tonalités DTMF à n’importe quel moment de l’appel sans que l’application ait besoin de déclencher une action de reconnaissance spécifique. Cela peut être utile dans les scénarios où un agent est sur un appel et a besoin de l’utilisateur pour entrer un type d’ID ou de numéro de suivi. Pour en savoir plus sur l’utilisation de cet affichage, consultez notre guide.

Envoyer DTMF : lorsque votre application doit envoyer des tonalités DTMF à un participant externe, il peut s’agir d’appeler un agent externe et de lui communiquer son numéro d’extension, ou de naviguer dans un menu IVR externe..

Désactiver le micro : votre application peut désactiver le micro de certains utilisateurs en fonction de votre logique métier. L’utilisateur doit ensuite réactiver son micro manuellement s’il souhaite parler.

Transférer : lorsque votre application répond à un appel ou passe un appel sortant vers un point de terminaison, cet appel peut être transféré vers un autre point de terminaison de destination. Le fait de transférer un appel individuel empêche votre application de le contrôler à l’aide des SDK Call Automation.

Enregistrer : vous décidez du moment quand démarrer/mettre en pause/reprendre/arrêter un enregistrement en fonction de la logique métier de votre application, ou vous pouvez octroyer le contrôle à l’utilisateur final pour qu’il déclenche ces actions. Pour en savoir plus, consultez nos concepts et notre démarrage rapide.

Raccrocher : lorsque votre application a répondu à un appel individuel, l’action Raccrocher supprime le signal d’appel et met fin à l’appel avec l’autre point de terminaison. S’il y a plus de deux participants à l’appel (appel de groupe), exécuter une action Raccrocher a pour effet de supprimer de l’appel de groupe le point de terminaison de votre application.

Terminer : que votre application ait répondu à un appel individuel ou de groupe ou qu’elle ait passé un appel sortant avec un ou plusieurs participants, cette action supprime tous les participants et met fin à l’appel. L’opération est déclenchée en définissant la propriété forEveryOne sur true dans l’action d’appel Mettre fin.

Annuler les opérations multimédias : en fonction de la logique métier, votre application peut avoir besoin d’annuler les opérations multimédias en cours et en file d’attente. En fonction de l’opération multimédia annulée et des événements en file d’attente, vous recevrez un événement webhook indiquant que l’action a été annulée.

Scénarios de requêtes

Liste des participants : renvoie une liste de tous les participants dans un appel. Les bots d’enregistrement et de transcription sont omis dans cette liste.

Événements

Le tableau suivant présente les événements actuels émis par Azure Communication Services. Les deux tableaux suivants décrivent les événements émis par Event Grid et à partir de l’automatisation des appels en tant qu’événements webhook.

Événements Event Grid

La plupart des événements envoyés par Event Grid sont indépendants de la plateforme, ce qui signifie qu’ils sont émis quel que soit le kit SDK (Calling ou Call Automation). Bien qu’il soit possible de créer un abonnement pour n’importe quel événement, nous vous recommandons d’utiliser l’événement IncomingCall pour tous les cas d’usage Call Automation dans lesquels vous souhaitez contrôler l’appel programmatiquement. Servez-vous des autres événements à des fins de création de rapports ou de télémétrie.

Événement Description
IncomingCall Un appel est notifié à un utilisateur de communication ou à un numéro de téléphone.
CallStarted Un appel (entrant ou sortant) est établi.
CallEnded Il est mis fin à un appel. Tous les participants sont supprimés.
ParticipantAdded Un participant a été ajouté à un appel.
ParticipantRemoved Un participant a été supprimé d’un appel.
RecordingFileStatusUpdated Un fichier d’enregistrement est disponible

Découvrez plus en détail ces événements et le schéma de charge utile ici

Événements webhook Call Automation

Les événements Call Automation sont envoyés à l’URI de rappel par webhook spécifié lorsque vous répondez à un appel sortant ou que vous en passez un.

Événement Description
CallConnected Le signal d’appel de votre application est connecté (entrant ou sortant)
CallDisconnected Le signal d’appel de votre application est déconnecté
CallTransferAccepted Le signal d’appel de votre application a été transféré vers un autre point de terminaison
CallTransferFailed Échec du transfert du signal d’appel de votre application
AddParticipantSucceeded Votre application a ajouté un participant
AddParticipantFailed Votre application n’a pas pu ajouter un participant
CancelAddParticipantSucceededed Votre application a annulé l’ajout d’un participant
CancelAddParticipantFailed Votre application n’a pas pu annuler l’ajout d’un participant
RemoveParticipantSucceeded Votre application a supprimé un participant de l’appel.
RemoveParticipantFailed Votre application n’a pas pu supprimer un participant de l’appel.
ParticipantsUpdated L’état d’un participant a changé pendant que le signal d’appel de votre application a été connecté à un appel
PlayCompleted Votre application a lu avec succès le fichier audio fourni
PlayFailed Votre application n’a pas pu lire le fichier audio
PlayCanceled L’action de lecture demandée a été annulée
RecognizeCompleted La reconnaissance de l’entrée utilisateur a réussi
RecognizeCanceled L’action de reconnaissance demandée a été annulée
RecognizeFailed Échec de la reconnaissance de l’entrée utilisateur
Pour en savoir plus sur la reconnaissance des événements d’action, consultez notre guide pratique sur la collecte des entrées utilisateur
RecordingStateChanged L’état de l’action d’enregistrement est passé d’actif à inactif ou inversement
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition s’est terminé avec succès et un ton DTMF a été reçu du participant
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition terminée, mais une erreur s’est produite lors de la gestion d’un ton DTMF du participant
ContinuousDtmfRecognitionStopped Exécution réussie de StopContinuousRecognition
SendDtmfCompleted SendDTMF s’est terminé avec succès et les tonalités DTMF ont été envoyées au participant cible
SendDtmfFailed Une erreur s’est produite lors de l’envoi des tonalités DTMF

Pour comprendre quels sont les événements publiés en fonction des différentes actions, consultez ce guide, qui fournit des exemples de code et des diagrammes de séquence pour divers flux de contrôle d’appel.

Lorsque vous accusez réception des événements de rappel, la meilleure pratique consiste à répondre avec des codes d’état HTTP standard, comme 200 OK. Les informations détaillées sont inutiles et sont davantage adaptées à vos processus de débogage.

Pour savoir comment sécuriser la remise des événements de rappel, reportez-vous à ce guide.

Rappel d'opération URI

Il s’agit d’un paramètre facultatif dans certaines API intermédiaires qui utilisent des événements comme réponses asynchrones. Par défaut, tous les événements sont envoyés à l’URI de rappel par défaut défini par l’API CreateCall / AnswerCall lorsque l’utilisateur établit un appel. Avec l’utilisation de l’URI de rappel d’opération, les événements correspondants de cette requête individuelle (unique uniquement) sont envoyés au nouvel URI.

API prise en charge Événement correspondant
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted / CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded / CancelAddParticipantFailed
Lire PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted / RecognizeFailed / RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed

Étapes suivantes

Voici quelques articles qui pourront vous intéresser :