Schnellstart: Verwalten eines Chatroom-Anrufs

Einführung

Während eines Azure Communication Services (ACS)-Chatroom-Anrufs können Sie den Anruf mithilfe von Anruf-SDKs oder Anrufautomatisierungs-SDKs oder beides verwalten. In einem Chatroom-Anruf können Sie In-Call-Aktionen mithilfe der Rollen steuern, die Teilnehmern zugewiesen sind, und Eigenschaften, die im Raum konfiguriert sind. Die Rollensteuerungsfunktionen des Teilnehmers pro Teilnehmer sind zulässig, während Room-Eigenschaften für den gesamten Chatroom-Anruf gelten.

Calling SDKs

Das Anruf-SDK ist eine clientseitige Anrufbibliothek, mit der Teilnehmer in einem Chatroom-Anruf mehrere In-Call-Vorgänge ausführen können, z. B. Bildschirmfreigabe, Video ein-/ausschalten, Stummschalten/Stummschaltung aufheben usw. Die vollständige Liste der Funktionen finden Sie unter SDK-Anrufe-Übersicht.

Sie steuern die Funktionen basierend auf Rollen, die Teilnehmern im Anruf zugewiesen sind. Beispielsweise kann nur der Referent Bildschirmfreigaben machen. Informationen zu Teilnehmerrollen und -berechtigungen finden Sie unter Räume-Konzepte.

Anrufautomatisierungs-SDKs

Das Anrufautomatisierungs-SDK ist eine serverseitige Bibliothek, mit der Administratoren einen laufenden Chatroom-Anruf in einer zentralen und kontrollierten Umgebung verwalten können. Im Gegensatz zum Aufrufen des SDK sind Anrufautomatisierungs-SDK-Vorgänge rollenunabhängig. Daher kann ein Anrufadministrator mehrere Anrufvorgänge im Namen der Teilnehmer des Chatrooms ausführen.

In den folgenden Listen werden allgemeine In-Call-Aktionen beschrieben, die in einem Chatroom verfügbar sind.

Herstellen einer Verbindung mit einem Raumanruf

Die Anrufautomatisierung muss eine Verbindung mit einem vorhandenen Chatroom-Anruf herstellen, bevor In-Call-Vorgänge ausgeführt werden. Die CallConnected oder ConnectFailed Ereignisse werden mithilfe von Rückrufmechanismen ausgelöst, um anzugeben, ob ein Verbindungsvorgang erfolgreich war oder fehlgeschlagen ist.

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);

Sobald die Verbindung mit einem Chatroom-Anruf erfolgreich hergestellt wurde, wird ein CallConnect Ereignis über den Rückruf-URI benachrichtigt. Sie können callConnectionId verwenden, um bei Bedarf eine Anrufverbindung für den Chatroom-Anruf abzurufen. Die folgenden Beispielcodeausschnitte verwenden callConnectionId, um diese Funktion zu veranschaulichen.

Hinzufügen eines PSTN-Teilnehmers

Mithilfe der Anrufautomatisierung können Sie eine PstN-Nummer anrufen und den Teilnehmer zu einem Chatroom-Anruf hinzufügen. Sie müssen jedoch einen Room einrichten, um die PSTN-Auswahloption (EnabledPSTNDialout auf true festgelegt) zu aktivieren, und die Azure Communication Services-Ressource muss über eine gültige Telefonnummer verfügen.

Weitere Informationen finden Sie unter Räume – Schnellstart.

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);

Entfernen eines PSTN-Teilnehmers


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);

DTMF senden

Senden Sie eine Liste der DTMF-Töne an externe Teilnehmende.

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);

Anrufaufzeichnung

Azure Communication Services-Räume unterstützen Aufzeichnungsfunktionen, einschließlich start, stop, pause, resume usw., die von der Anrufautomatisierung bereitgestellt werden. In den folgenden Codeausschnitten können Sie eine Aufzeichnung in einem Chatroom-Anruf starten/beenden/anhalten/fortsetzen. Eine vollständige Liste der Aktionen finden Sie unter Aufzeichnung der Anrufautomatisierung.

// 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);

Beenden eines Anrufs

Sie können die Anrufautomatisierungs-SDK Hang Up-Aktion verwenden, um einen Aufruf zu beenden. Nach Abschluss der Hang Up-Aktion veröffentlicht das SDK ein CallDisconnected Ereignis.

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

Andere Aktionen

Die folgenden In-Call-Aktionen werden auch in einem Chatroom-Anruf unterstützt.

  1. Hinzufügen eines Teilnehmers (ACS-ID)
  2. Entfernen eines Teilnehmers (ACS-ID)
  3. Abbrechen des Hinzufügens eines Teilnehmers (ACS-ID und PSTN-Nummer)
  4. Anruf auflegen
  5. Abrufen eines Teilnehmer (ACS-ID und PSTN-Nummer)
  6. Abrufen mehrerer Teilnehmer (ACS-ID und PSTN-Nummer)
  7. Abrufen der neuesten Informationen zu einem Anruf
  8. Wiedergeben von Audiodateien und Text
  9. Wiedergeben aller Audiodateien und Text
  10. Erkennen von DTMF und Sprache
  11. Fortlaufende DTMF-Erkennung

Weitere Informationen finden Sie unter Anrufaktionen und Medienaktionen.

Nächste Schritte

In diesem Abschnitt haben Sie Folgendes gelernt:

  • Teilnehmen an einem Raumanruf aus Ihrer Anwendung
  • Hinzufügen von In-Call-Aktionen zu einem Chatroom-Anruf mithilfe von Anruf-SDKs
  • Hinzufügen von In-Call-Aktionen zu einem Chatroomanruf mithilfe von Anrufautomatisierungs-SDKs

Das könnte Sie auch interessieren: