Bibliothèque de client Azure CommunicationAutomation pour .NET - version 1.0.0
Ce package contient un Kit de développement logiciel (SDK) C# pour Azure Communication Call Automation.
| Code sourceDocumentation produit
Prise en main
Installer le package
Installez la bibliothèque de client Azure Communication CallAutomation pour .NET avec NuGet :
dotnet add package Azure.Communication.CallAutomation
Prérequis
Vous avez besoin d’un abonnement Azure et d’une ressource Communication Service pour utiliser ce package.
Pour créer un service communication, vous pouvez utiliser le portail Azure, le Azure PowerShell ou la bibliothèque de client de gestion .NET.
Concepts clés
CallAutomationClient
fournit la fonctionnalité permettant de répondre à un appel entrant ou d’initialiser un appel sortant.
Utilisation d’instructions
using Azure.Communication.CallAutomation;
Authentifier le client
Le client Call Automation peut être authentifié à l’aide de la chaîne de connexion acquise à partir d’une ressource de communication Azure dans le portail Azure.
var connectionString = "<connection_string>"; // Find your Communication Services resource in the Azure portal
CallAutomationClient callAutomationClient = new CallAutomationClient(connectionString);
Vous pouvez également utiliser un jeton Active Directory valide.
var endpoint = new Uri("https://my-resource.communication.azure.com");
TokenCredential tokenCredential = new DefaultAzureCredential();
var client = new CallAutomationClient(endpoint, tokenCredential);
Exemples
Passer un appel à un destinataire de numéro de téléphone
Pour effectuer un appel sortant, appelez la CreateCall
fonction ou CreateCallAsync
à partir de .CallAutomationClient
CallInvite callInvite = new CallInvite(
new PhoneNumberIdentifier("<targets-phone-number>"),
new PhoneNumberIdentifier("<caller-id-phonenumber>")
); // E.164 formatted recipient phone number
// create call with above invitation
createCallResult = await callAutomationClient.CreateCallAsync(
callInvite,
new Uri("<YOUR-CALLBACK-URL>")
);
Console.WriteLine($"Call connection id: {createCallResult.CallConnectionProperties.CallConnectionId}");
Gérer les événements de rappel Mid-Connection
Votre application recevra des événements de rappel de connexion intermédiaire via le point de terminaison de rappel que vous avez fourni. Vous devez écrire le contrôleur de gestionnaire d’événements pour recevoir les événements et diriger votre flux d’application en fonction de votre logique métier.
/// <summary>
/// Handle call back events.
/// </summary>>
[HttpPost]
[Route("/CallBackEvent")]
public IActionResult OnMidConnectionCallBackEvent([FromBody] CloudEvent[] events)
{
try
{
if (events != null)
{
// Helper function to parse CloudEvent to a CallAutomation event.
CallAutomationEventData callBackEvent = CallAutomationEventParser.Parse(events.FirstOrDefault());
switch (callBackEvent)
{
case CallConnected ev:
# logic to handle a CallConnected event
break;
case CallDisconnected ev:
# logic to handle a CallDisConnected event
break;
case ParticipantsUpdated ev:
# cast the event into a ParticipantUpdated event and do something with it. Eg. iterate through the participants
ParticipantsUpdated updatedEvent = (ParticipantsUpdated)ev;
break;
case AddParticipantSucceeded ev:
# logic to handle an AddParticipantSucceeded event
break;
case AddParticipantFailed ev:
# logic to handle an AddParticipantFailed event
break;
case CallTransferAccepted ev:
# logic to handle CallTransferAccepted event
break;
case CallTransferFailed ev:
# logic to handle CallTransferFailed event
break;
default:
break;
}
}
}
catch (Exception ex)
{
// handle exception
}
return Ok();
}
Gérer les événements Mid-Connection avec EventProcessor de CallAutomation
Pour gérer facilement les événements de mi-connexion, le KIT DE développement logiciel (SDK) d’Call Automation offre un moyen plus simple de gérer ces événements.
Examinons CallAutomationEventProcessor
. cela garantit la corelation entre l’appel et les événements plus facilement.
[HttpPost]
[Route("/CallBackEvent")]
public IActionResult OnMidConnectionCallBackEvent([FromBody] CloudEvent[] events)
{
try
{
// process incoming event for EventProcessor
_callAutomationClient.GetEventProcessor().ProcessEvents(cloudEvents);
}
catch (Exception ex)
{
// handle exception
}
return Ok();
}
ProcessEvents
est nécessaire pour qu’EventProcessor fonctionne.
Une fois l’événement consommé par EventProcessor, vous pouvez commencer à utiliser sa fonctionnalité.
Consultez l’exemple ci-dessous : où vous effectuez un appel avec CreateCall
et attendez CallConnected
l’événement de l’appel.
CallInvite callInvite = new CallInvite(
new PhoneNumberIdentifier("<targets-phone-number>"),
new PhoneNumberIdentifier("<caller-id-phonenumber>")
); // E.164 formatted recipient phone number
// create call with above invitation
createCallResult = await callAutomationClient.CreateCallAsync(
callInvite,
new Uri("<YOUR-CALLBACK-URL>")
);
// giving 30 seconds timeout for call reciever to answer
CancellationTokenSource cts = new CancellationTokenSource(TimeSpan.FromSeconds(30));
CancellationToken token = cts.Token;
try
{
// this will wait until CreateCall is completed or Timesout!
CreateCallEventResult eventResult = await createCallResult.WaitForEventProcessorAsync(token);
// Once this is recieved, you know the call is now connected.
CallConnected returnedEvent = eventResult.SuccessResult;
// ...Do more actions, such as Play or AddParticipant, since the call is established...
}
catch (OperationCanceledException ex)
{
// Timeout exception happend!
// Call likely was never answered.
}
Si le jeton d’annulation n’a pas été passé avec le délai d’expiration, le délai d’expiration par défaut est de 4 minutes.
Résolution des problèmes
Un RequestFailedException
est levée en tant que réponse de service pour toutes les demandes infructueuses. L’exception contient des informations sur le code de réponse retourné par le service.
Étapes suivantes
- Vue d’ensemble de l’automatisation des appels
- Concept d’appel entrant
- Créer un workflow d’interaction client à l’aide de l’automatisation des appels
- Rediriger les appels téléphoniques entrants avec Call Automation
- Démarrage rapide : action de lecture
- Démarrage rapide : Action Recognize
- En savoir plus sur l’enregistrement des appels dans Azure Communication Services
- Enregistrer et télécharger des appels avec Event Grid
Contribution
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.