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.
- Hinzufügen eines Teilnehmers (ACS-ID)
- Entfernen eines Teilnehmers (ACS-ID)
- Abbrechen des Hinzufügens eines Teilnehmers (ACS-ID und PSTN-Nummer)
- Anruf auflegen
- Abrufen eines Teilnehmer (ACS-ID und PSTN-Nummer)
- Abrufen mehrerer Teilnehmer (ACS-ID und PSTN-Nummer)
- Abrufen der neuesten Informationen zu einem Anruf
- Wiedergeben von Audiodateien und Text
- Wiedergeben aller Audiodateien und Text
- Erkennen von DTMF und Sprache
- 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:
- Informationen zum Räume-Konzepte
- Erfahren Sie mehr über Features von Anruf-SDKs
- Erfahren Sie mehr über Konzepte der Anrufautomatisierung