Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wprowadzenie
Podczas rozmowy w pokoju usług Azure Communication Services (ACS) można zarządzać rozmową przy użyciu zestawów SDK do prowadzenia rozmów, zestawów SDK do automatyzacji rozmów albo obu tych zestawów. Podczas rozmowy w pokoju można kontrolować działania przy użyciu zarówno ról przypisanych uczestnikom, jak i właściwości skonfigurowanych w pokoju. Role uczestnika kontrolują możliwości przyznane dla uczestnika, natomiast właściwości pokoju mają zastosowanie do rozmowy pokojowej jako całości.
Wywoływanie pakietów SDK
SDK po stronie klienta to biblioteka umożliwiająca uczestnikom rozmowy w pokoju wykonywanie kilku operacji podczas rozmowy, takich jak udostępnianie ekranu, włączanie/wyłączanie wideo, wyciszanie/wyłączanie wyciszenia i tak dalej. Aby uzyskać pełną listę możliwości, zobacz Wywoływanie zestawu SDK — omówienie.
Kontrolujesz możliwości na podstawie ról przypisanych do uczestników rozmowy. Na przykład tylko prezenter może udostępniać ekran. Aby uzyskać informacje o rolach i uprawnieniach uczestników, zobacz Pojęcia dotyczące pokoi.
Zestawy SDK automatyzacji wywołań
Zestaw SDK do automatyzacji połączeń to biblioteka po stronie serwera, która umożliwia administratorom zarządzanie trwającą rozmową w pokoju w scentralizowanym i kontrolowanym środowisku. W przeciwieństwie do SDK do wywoływania, operacje zestawu SDK usługi Call Automation są niezależne od przypisanych ról. W związku z tym administrator połączeń może wykonywać kilka operacji podczas rozmowy w imieniu uczestników rozmowy w pokoju.
Poniższe listy opisują typowe działania dostępne podczas połączenia w pokoju.
Nawiązywanie połączenia z pokojem
Usługa Call Automation musi połączyć się z istniejącym połączeniem w sali, zanim wykona dowolne operacje w trakcie rozmowy. Zdarzenia CallConnected
lub ConnectFailed
są wywoływane przy użyciu mechanizmów wywołania zwrotnego, aby wskazać, czy operacja połączenia zakończyła się pomyślnie, czy zakończyła się niepowodzeniem.
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 pomyślnym nawiązaniu połączenia z pokojem CallConnect
zdarzenie jest powiadamiane za pośrednictwem identyfikatora URI wywołania zwrotnego. Możesz użyć callConnectionId
, aby odzyskać połączenie z pokoju w razie potrzeby. Poniższe przykładowe fragmenty kodu używają elementu , callConnectionId
aby zademonstrować tę funkcję.
Dodawanie uczestnika PSTN
Korzystając z funkcji Call Automation, możesz wybrać numer PSTN i dodać uczestnika do rozmowy w pokoju. Należy jednak skonfigurować pokój, aby włączyć opcję wybierania numerów PSTN (ustawienie EnabledPSTNDialout
na true
), a zasób usług Azure Communication Services musi mieć prawidłowy numer telefonu.
Aby uzyskać więcej informacji, zobacz Szybki start dotyczący pokoi.
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);
Usuń uczestnika PSTN
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);
Wyślij DTMF
Wyślij listę tonów DTMF do zewnętrznego uczestnika.
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);
Nagrywanie połączeń
Pokoje usług Azure Communication Services obsługują funkcje rejestrowania, w tym start
, stop
, pause
, resume
i tak dalej, udostępniane przez usługę Call Automation. Zobacz następujące fragmenty kodu, aby uruchomić/zatrzymać/wstrzymać/wznowić nagrywanie podczas połączenia w pokoju. Aby uzyskać pełną listę działań, zobacz Automatyczne rejestrowanie wywołań.
// 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);
Kończenie połączenia
Możesz użyć akcji Rozłącz w SDK Call Automation, aby zakończyć połączenie. Po zakończeniu akcji rozłączenia zestaw SDK publikuje CallDisconnected
zdarzenie.
_ = await client.GetCallConnection(callConnectionId).HangUpAsync(forEveryone: true);
Inne akcje
Akcje podczas połączenia są również obsługiwane w połączeniu w pokoju.
- Dodawanie uczestnika (identyfikator ACS)
- Usuń uczestnika (identyfikator ACS)
- Anulowanie dodawania uczestnika (identyfikator ACS i numer PSTN)
- Zawieszanie połączenia
- Pobierz uczestnika (identyfikator ACS i numer PSTN)
- Pobierz wielu uczestników (identyfikator ACS i numer PSTN)
- Uzyskiwanie najnowszych informacji o połączeniu
- Odtwarzanie zarówno plików audio, jak i tekstu
- Odtwórz wszystkie pliki audio i tekst
- Rozpoznawanie zarówno dtMF, jak i mowy
- Rozpoznawanie ciągłego sygnału DTMF
Aby uzyskać więcej informacji, zobacz akcje wywołania i akcje multimedialne.
Następne kroki
W tej sekcji przedstawiono, jak wykonać następujące działania:
- Dołącz do rozmowy w pokoju ze swojej aplikacji
- Dodawanie akcji podczas rozmowy w pokoju za pomocą zestawów SDK do wywoływania.
- Dodawanie akcji w trakcie rozmowy do rozmowy w pokoju przy użyciu zestawów SDK do automatyzacji połączeń
Możesz również wykonać następujące czynności:
- Dowiedz się więcej o koncepcji pokoi
- Dowiedz się więcej o wywoływaniu funkcji zestawów SDK
- Dowiedz się więcej o pojęciach związanych z automatyzacją wywołań