Rychlý start: Správa hovoru v místnosti
Úvod
Během volání místnosti Azure Communication Services (ACS) můžete hovor spravovat pomocí volání sad SDK nebo sad SDK pro automatizaci volání nebo obojího. Při volání místnosti můžete řídit akce v hovoru pomocí rolí přiřazených účastníkům i vlastnostem nakonfigurovaným v místnosti. Role účastníka řídí možnosti povolené pro jednotlivé účastníky, zatímco vlastnosti místnosti platí pro volání místnosti jako celek.
Volání sad SDK
Volání sady SDK je knihovna volání na straně klienta, která umožňuje účastníkům hovoru v místnosti provádět několik operací v hovoru, jako je sdílení obrazovky, zapnutí/vypnutí videa, ztlumení nebo zrušení ztlumení atd. Úplný seznam funkcí najdete v tématu Přehled volání sady SDK.
Možnosti můžete řídit na základě rolí přiřazených účastníkům hovoru. Sdílení obrazovky může například sdílet jenom prezentující. Informace o rolích a oprávněních účastníků najdete v tématu Koncepty místností.
Volání sad SDK pro automatizaci
Sada SDK pro automatizaci volání je knihovna na straně serveru, která správcům umožňuje spravovat probíhající hovor v místnosti v centrálním a řízeném prostředí. Na rozdíl od volání sady SDK jsou operace sady SDK pro automatizaci volání nezávislé na rolích. Správce volání proto může jménem účastníků hovoru provést několik operací v hovoru.
Následující seznamy popisují běžné akce v rámci volání dostupné v hovoru v místnosti.
Připojení k hovoru do místnosti
Automatizace volání se musí připojit k existujícímu volání místnosti před provedením jakýchkoli operací volání. ConnectFailed
Události CallConnected
jsou vyvolány pomocí mechanismů zpětného volání, které indikují, jestli byla operace připojení úspěšná nebo selhala.
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);
Po úspěšném připojení k volání do místnosti se prostřednictvím identifikátoru URI zpětného volání CallConnect
zobrazí upozornění na událost. Podle potřeby můžete callConnectionId
načíst připojení k hovoru v místnosti. Následující ukázkové fragmenty kódu používají callConnectionId
k předvedení této funkce.
Přidání účastníka veřejné telefonní sítě
Pomocí automatizace hovorů můžete vytočit číslo veřejné telefonní sítě a přidat účastníka do hovoru do místnosti. Musíte ale nastavit místnost tak, aby povolovala možnost vytáčení do veřejné telefonní sítě (EnabledPSTNDialout
nastavená na true
) a prostředek služby Azure Communication Services musí mít zřízené platné telefonní číslo.
Další informace najdete v tématu Rychlý start k místnostem.
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);
Odebrání účastníka veřejné telefonní sítě
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);
Odeslat DTMF
Pošlete externímu účastníkovi seznam tónů DTMF.
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);
Záznam hovoru
Místnosti Azure Communication Services podporují možnosti nahrávání, včetně start
, stop
pause
, resume
a tak dále, poskytované automatizací volání. Podívejte se na následující fragmenty kódu pro spuštění, zastavení, pozastavení nebo obnovení záznamu v hovoru v místnosti. Úplný seznam akcí najdete v tématu Záznam automatizace volání.
// 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);
Ukončení hovoru
K ukončení volání můžete použít akci Zavěsit sadu SDK pro automatizaci volání. Po dokončení akce zavěsit sdk publikuje CallDisconnected
událost.
_ = await client.GetCallConnection(callConnectionId).HangUpAsync(forEveryone: true);
Další akce
Při volání do místnosti se podporují také následující akce v hovoru v hovoru.
- Přidání účastníka (identifikátor služby ACS)
- Odebrání účastníka (identifikátor služby ACS)
- Zrušení přidání účastníka (identifikátor ACS a číslo veřejné telefonní sítě)
- Zavěsit hovor
- Získání účastníka (identifikátor služby ACS a číslo veřejné telefonní sítě)
- Získání více účastníků (identifikátor služby ACS a číslo veřejné telefonní sítě)
- Získání nejnovějších informací o hovoru
- Přehrávání zvukových souborů i textu
- Přehrání všech zvukových souborů i textu
- Rozpoznávání DTMF i řeči
- Rozpoznávání průběžného DTMF
Další informace najdete v tématu Akce volání a akce médií.
Další kroky
V této části jste se naučili:
- Připojení k volání místnosti z aplikace
- Přidání akcí volání do volání do místnosti pomocí volání sad SDK
- Přidání akcí volání do volání místnosti pomocí sad SDK pro automatizaci volání
Můžete také chtít:
- Další informace o konceptech místností
- Informace o funkcích volání sad SDK
- Další informace o konceptech automatizace volání