Vue d’ensemble de Call Automation
Call Automation d’Azure Communication Services permet aux développeurs de créer des flux de travail d’appels intelligents basés sur serveur, ainsi que des fonctionnalités d’enregistrement d’appel pour les canaux vocaux et le réseau téléphonique commuté (RTC) public. Les kits de développement logiciel (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 (comme répondre, transférer, lire un audio, démarrer un enregistrement, etc.) pour diriger et contrôler les appels en fonction de votre logique métier.
Cas d’utilisation courants
Voici quelques-uns des cas d’usage courants possibles avec 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’usage 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é.
Utilisez Call Automation d’Azure Communication Services pour créer des flux de travail d’appel dans les scénarios d’assistance à la clientèle (comme indiqué dans 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.
Fonctionnalités
Les fonctionnalités suivantes sont 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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Se connecter à un appel en cours ou à une salle (en préversion) | ✔️ | ✔️ | ✔️ | ✔️ | |
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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Démarrer/arrêter la diffusion audio (préversion publique) | ✔️ | ✔️ | ✔️ | ✔️ | |
Démarrer/Arrêter la transcription en temps réel (préversion publique) | ✔️ | ✔️ | ✔️ | ✔️ | |
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.
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
soit connecté. Les événements de rappel par webhook communiquent uniquement l’action answer
avant appel, et non les actions reject
ou redirect
.
Répondre : à l’aide de l’événement IncomingCall d’Event Grid et du SDK Call Automation, votre application peut répondre à un appel. Utilisez cette action dans les 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, vous pouvez rediriger un appel vers un ou plusieurs points de terminaison, créant 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 pour la réponse.
Créer un appel : utilisez l’action Créer un appel pour passer des appels sortants vers des numéros de téléphone et vers 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.
Connecter un appel (en préversion) : utilisez l’action Connecter un appel pour se connecter à un appel en cours et effectuer des actions d’appel sur celui-ci. Vous pouvez également utiliser cette action pour connecter et gérer un appel de salle par programmation, comme l’exécution d’appels sortants RTC pour une salle à l’aide de votre service.
Actions en cours d’appel
Votre application peut effectuer ces actions 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 : vous pouvez ajouter un ou plusieurs participants dans une requête unique, 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 plus d’informations, consultez Lire l’audio dans l’appel et Personnalisation des invites vocales destinées aux utilisateurs avec l’action Lire.
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 plus d’informations, consultez Collecte de l’entrée utilisateur et le guide de procédure Collecter les entrées utilisateur avec l’action de reconnaissance.
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 avoir besoin de déclencher une action de reconnaissance spécifique. Cette capacité peut être utile dans les scénarios où un agent est sur un appel et a besoin que l’utilisateur entre un type d’ID ou de numéro de suivi. Pour plus d’informations, consultez le Guide pratique pour contrôler les actions multimédias intermédiaires.
Envoyer DTMF : lorsque votre application doit envoyer des tonalités DTMF à un participant externe. Utilisez cette action pour appeler un agent externe et fournir le numéro d’extension, ou pour 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 - Quand 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 où il faut 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 répond à 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 réponde à un appel individuel ou de groupe, ou qu’elle passe un appel sortant avec un ou plusieurs participants, cette action supprime tous les participants et met fin à l’appel. Cette 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 des opérations multimédias en cours et en file d’attente. En fonction de l’opération multimédia annulée et des opérations en file d’attente, votre application est susceptible de recevoir un événement webhook indiquant que l’action a été annulée.
Démarrer/arrêter la diffusion audio (préversion publique) : La diffusion audio vous permet de vous abonner à des flux audio en temps réel à partir d’un appel en cours. Pour obtenir des conseils plus détaillés sur la prise en main de la diffusion audio en continu et des informations sur les événements de rappel de la diffusion audio en continu, consultez notre concept et notre guide de démarrage rapide.
Démarrer/Arrêter la transcription en temps réel (préversion publique) : La transcription en temps réel vous permet d’accéder à la transcription en direct de l’audio d’un appel en cours. Pour des conseils plus détaillés sur la prise en main de la transcription en temps réel et des informations sur les événements de rappel de la transcription en temps réel, consultez notre concept et notre guide de démarrage rapide.
Scénarios de requêtes
Lister les participants : retourne une liste de tous les participants à 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. Ils sont envoyés quel que soit le SDK (Appel 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 |
Notification d’un appel à un utilisateur de communication ou à un numéro de téléphone. |
CallStarted |
Établissement d’un appel (entrant ou sortant). |
CallEnded |
Arrêt d’un appel et suppression de tous les participants. |
ParticipantAdded |
Ajout d’un participant à un appel. |
ParticipantRemoved |
Suppression d’un participant d’un appel. |
RecordingFileStatusUpdated |
Un fichier d’enregistrement est disponible. |
Apprenez-en davantage sur ces événements et sur le schéma de charge utile dans Azure Communication Services – Événements d’appel vocal et vidéo.
É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 |
L’appel a correctement démarré (si utilisation de l’action Answer ou Create ) ou votre application s’est correctement connectée à un appel en cours (si utilisation de l’action Connect ). |
CallDisconnected |
Votre application a été déconnectée de l’appel. |
CreateCallFailed |
Votre application n’a pas pu créer l’appel. |
ConnectFailed |
Votre application n’a pas pu se connecter à un appel (pour l’action d’appel Connect uniquement). |
CallTransferAccepted |
L’action de transfert s’est correctement terminée et le destinataire est connecté au participant cible. |
CallTransferFailed |
Échec de l’action de transfert. |
AddParticipantSucceeded |
Votre application a correctement ajouté un participant à l’appel. |
AddParticipantFailed |
Votre application n’a pas pu ajouter un participant à l’appel (en raison d’une erreur ou si le participant n’a pas accepté l’invitation) |
CancelAddParticipantSucceeded |
Votre application a correctement annulé une requête AddParticipant (le participant n’a pas été ajouté à l’appel). |
CancelAddParticipantFailed |
Votre application n’a pas pu annuler une requête AddParticipant (cela peut être dû au fait que la requête a déjà été traitée). |
RemoveParticipantSucceeded |
Votre application a correctement supprimé un participant de l’appel. |
RemoveParticipantFailed |
Votre application n’a pas pu supprimer un participant de l’appel. |
ParticipantsUpdated |
Ls statut d’un participant a changé pendant que votre application était connectée à un appel. |
PlayCompleted |
Votre application a correctement lu 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 s’est correctement terminée. |
RecognizeCanceled |
L’action Recognize demandée a été annulée. |
RecognizeFailed |
La reconnaissance de l’entrée utilisateur a échoué. Pour plus d’informations sur la reconnaissance des évènements d’action, consultez le guide pratique sur la collecte des entrées utilisateur. |
RecordingStateChanged |
Le statut de l’action d’enregistrement est passé d’actif à inactif ou inversement. |
ContinuousDtmfRecognitionToneReceived |
StartContinuousDtmfRecognition s’est terminée avec succès et une tonalité DTMF a été reçue du participant. |
ContinuousDtmfRecognitionToneFailed |
StartContinuousDtmfRecognition s’est terminée, mais une erreur s’est produite lors de la gestion d’une tonalité DTMF du participant. |
ContinuousDtmfRecognitionStopped |
StopContinuousRecognition a été correctement exécutée. |
SendDtmfCompleted |
SendDTMF s’est correctement terminée et a envoyé les tonalités DTMF 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 pour différentes actions, consultez Actions pour le contrôle d’appel. L’article fournit des exemples de code et des diagrammes de séquence pour différents flux de contrôle d’appel.
En guise de meilleure pratique lorsque vous accusez réception d’événements de rappel, veillez à 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 découvrir comment sécuriser la remise des événements de rappel, consultez le Guide pratique pour sécuriser le point de terminaison webhook.
URI de rappel d’opération
L’URI de rappel d’opération est 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 des événements d’API CreateCall
/ AnswerCall
lorsque l’utilisateur établit un appel. Utilisant l’URI de rappel d’opération, l’API envoie les évènements correspondants de cette requête spécifique (unique seulement) au nouvel URI.
API prise en charge | Événement correspondant |
---|---|
AddParticipant |
AddParticipantSucceed / AddParticipantFailed |
RemoveParticipant |
RemoveParticipantSucceed / RemoveParticipantFailed |
TransferCall |
CallTransferAccepted / CallTransferFailed |
CancelAddParticipant |
CancelAddParticipantSucceeded / CancelAddParticipantFailed |
Play |
PlayCompleted / PlayFailed / PlayCanceled |
PlayToAll |
PlayCompleted / PlayFailed / PlayCanceled |
Recognize |
RecognizeCompleted / RecognizeFailed / RecognizeCanceled |
StopContinuousDTMFRecognition |
ContinuousDtmfRecognitionStopped |
SendDTMF |
ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed |
Hold |
HoldFailed |
StartMediaStreaming |
MediaStreamingStarted / MediaStreamingFailed |
StopMediaStreaming |
MediaStreamingStopped / MediaStreamingFailed |
StartTranscription |
TranscriptionStarted / TranscriptionFailed |
UpdateTranscription |
TranscriptionUpdated / TranscriptionFailed |
StopTranscription |
TranscriptionStopped / TranscriptionFailed |
Étapes suivantes
Articles connexes
- Découvrez comment votre ressource est facturée pour différents cas d’usage d’appel à l’aide d’exemples.
- Consultez le guide de démarrage rapide expliquant comment passer un appel sortant.
- Découvrez l’utilisation et les journaux opérationnels publiés par l’automatisation des appels.