Démarrage rapide : Gérer un appel de salle

Introduction

Au cours d’un appel de salle Azure Communication Services (ACS), vous pouvez gérer l’appel au moyen de Kits de développement logiciel (SDK) d’appel et de Kits de développement logiciel (SDK) d’automatisation des appels. Dans un appel de salle, vous pouvez contrôler les actions en cours d’appel au moyen des rôles attribués aux participants et aux propriétés configurés dans la salle. Les fonctionnalités de contrôle des rôles du participant sont octroyées par participant, tandis que les propriétés de salle s’appliquent à l’appel de salle dans son ensemble.

SDK d’appel

Le Kit de développement logiciel (SDK) d’appel est une bibliothèque d’appels côté client qui permet aux participants d’un appel de salle d’effectuer plusieurs opérations en cours d’appel, telles que le partage d’écran, l’activation/la désactivation de la vidéo, l’activation/désactivation du son, etc. Pour obtenir la liste complète des fonctionnalités, consultez Vue d’ensemble du Kit de développement logiciel (SDK) d’appel.

Vous contrôlez les fonctionnalités en fonction des rôles attribués aux participants dans l’appel. Par exemple, seul le présentateur peut partager l’écran. Pour connaître les rôles et autorisations des participants, consultez Concepts des salles.

Kits de développement logiciel (SDK) d’automatisation des appels

Le Kit de développement logiciel (SDK) d’automatisation des appels est une bibliothèque côté serveur qui permet aux administrateurs de gérer un appel de salle en cours dans un environnement centralisé et contrôlé. Contrairement au Kit de développement logiciel (SDK) d’appel, les opérations du Kit de développement logiciel (SDK) d’automatisation des appels sont indépendantes des rôles. Par conséquent, un administrateur d’appel peut effectuer plusieurs opérations en cours d’appel pour le compte des participants à l’appel de salle.

Les listes suivantes décrivent les actions en cours d’appel couramment disponibles dans un appel de salle.

Se connecter à un appel de salle

L’automatisation des appels doit être associée à un appel de salle existant avant que les opérations en cours d’appel ne puissent être effectuées. Les événements CallConnected ou ConnectFailed sont déclenchés au moyen de mécanismes de rappel pour indiquer si une opération de connexion a réussi ou échoué.

Uri callbackUri = new Uri("https://<myendpoint>/Events"); //the callback endpoint where you want to receive subsequent events
CallLocator roomCallLocator = new RoomCallLocator("<RoomId>");
ConnectCallResult response = await client.ConnectAsync(roomCallLocator, callbackUri);

Une fois connecté à un appel de salle, un événement CallConnect est signalé via l’URI de rappel. Vous pouvez utiliser callConnectionId pour récupérer une connexion d’appel à l’appel de salle si nécessaire. Les exemples de code suivants utilisent callConnectionId pour illustrer cette fonction.

Ajouter un participant au réseau téléphonique commuté (RTC)

Grâce à l’automatisation des appels, vous pouvez composer un numéro de réseau téléphonique commuté et ajouter le participant à un appel de salle. Toutefois, vous devez activer l’option de composition d’un numéro de réseau téléphonique commuté dans la configuration de la salle (EnabledPSTNDialout définie sur true) et la ressource Azure Communication Services doit disposer d’un numéro de téléphone valide provisionné.

Pour plus d’informations, consultez Guide de démarrage rapide Salles.

var callerIdNumber = new PhoneNumberIdentifier("+16044561234"); // This is the ACS-provisioned phone number for the caller  
var callThisPerson = new CallInvite(new PhoneNumberIdentifier("+16041234567"), callerIdNumber); // The target phone number to dial out to
CreateCallResult response = await client.GetCallConnection(callConnectionId).AddParticipantAsync(callThisPerson);

Supprimer un participant au réseau téléphonique commuté (RTC)


var removeThisUser = new PhoneNumberIdentifier("+16044561234");

// Remove a participant from the call with optional parameters
var removeParticipantOptions = new RemoveParticipantOptions(removeThisUser)
{
    OperationContext = "operationContext",
    OperationCallbackUri = new Uri("uri_endpoint"); // Sending event to a non-default endpoint
}

RemoveParticipantsResult result = await client.GetCallConnection(callConnectionId).RemoveParticipantAsync(removeParticipantOptions);

Envoyer DTMF

Envoyez une liste de tonalités DTMF à un participant externe.

var tones = new DtmfTone[] { DtmfTone.One, DtmfTone.Two, DtmfTone.Three, DtmfTone.Pound }; 
var sendDtmfTonesOptions = new SendDtmfTonesOptions(tones, new PhoneNumberIdentifier(calleePhonenumber))
{ 
	OperationContext = "dtmfs-to-ivr" 
}; 

var sendDtmfAsyncResult = await callAutomationClient.GetCallConnection(callConnectionId).GetCallMedia().SendDtmfTonesAsync(sendDtmfTonesOptions);

Enregistrement d’appels

Les salles Azure Communication Services prennent en charge les fonctionnalités d’enregistrement, notamment start, stop, pause, resume, etc. prévues par l’automatisation des appels. Consultez les exemples de code suivants pour démarrer/arrêter/suspendre/reprendre un enregistrement dans un appel de salle. Pour obtenir la liste complète des actions possibles, consultez l’Enregistrement dans le cadre de l’automatisation des appels.

// Start recording
StartRecordingOptions recordingOptions = new StartRecordingOptions(new ServerCallLocator("<ServerCallId>"))
{
   RecordingContent = RecordingContent.Audio,
   RecordingChannel = RecordingChannel.Unmixed,
   RecordingFormat = RecordingFormat.Wav,
   RecordingStateCallbackUri = new Uri("<CallbackUri>"),
   RecordingStorage = RecordingStorage.CreateAzureBlobContainerRecordingStorage(new Uri("<YOUR_STORAGE_CONTAINER_URL>"))
};
Response<RecordingStateResult> response = await callAutomationClient.GetCallRecording()
.StartAsync(recordingOptions);

// Pause recording using recordingId received in response of start recording.
var pauseRecording = await callAutomationClient.GetCallRecording ().PauseAsync(recordingId);

// Resume recording using recordingId received in response of start recording.
var resumeRecording = await callAutomationClient.GetCallRecording().ResumeAsync(recordingId);

// Stop recording using recordingId received in response of start recording.
var stopRecording = await callAutomationClient.GetCallRecording().StopAsync(recordingId);

Mettre fin à un appel

Vous pouvez utiliser l’action Raccrocher du Kit de développement logiciel (SDK) d’automatisation des appels pour arrêter un appel. Une fois l’action Raccrocher terminée, le Kit de développement logiciel (SDK) publie un événement CallDisconnected.

_ = await client.GetCallConnection(callConnectionId).HangUpAsync(forEveryone: true); 

Autres actions

Les actions en cours d’appel suivantes sont également prises en charge lors d’un appel de salle.

  1. Ajouter un participant (identifiant stockage compatible Azure)
  2. Supprimer le participant (identifiant stockage compatible Azure)
  3. Annuler l’ajout d’un participant (identifiant stockage compatible Azure et numéro de réseau téléphonique commuté)
  4. Raccrocher l’appel
  5. Obtenir le participant (identifiant stockage compatible Azure et numéro de réseau téléphonique commuté)
  6. Obtenir plusieurs participants (identifiant stockage compatible Azure et numéro de réseau téléphonique commuté)
  7. Obtenir les dernières informations sur un appel
  8. Lire les fichiers audio et le texte
  9. Lire tous les fichiers audio et le texte
  10. Reconnaître la numérotation en fréquences vocales et la voix
  11. Reconnaître la numérotation en fréquences vocales continue

Pour plus d’informations, consultez actions d’appel et actions multimédia.

Étapes suivantes

Dans cette section, vous avez appris à :

  • Rejoindre un appel de salle à partir de votre application
  • Ajouter des actions en cours d’appel dans un appel de salle à l’aide de Kits de développement logiciel (SDK) d’appel
  • Ajouter des actions en cours d’appel dans un appel de salle à l’aide de Kits de développement logiciel (SDK) d’automatisation d’appel

Vous souhaiterez peut-être également :