Udostępnij za pośrednictwem


Szybki przewodnik: zarządzanie rozmową w pokoju

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, resumei 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.

  1. Dodawanie uczestnika (identyfikator ACS)
  2. Usuń uczestnika (identyfikator ACS)
  3. Anulowanie dodawania uczestnika (identyfikator ACS i numer PSTN)
  4. Zawieszanie połączenia
  5. Pobierz uczestnika (identyfikator ACS i numer PSTN)
  6. Pobierz wielu uczestników (identyfikator ACS i numer PSTN)
  7. Uzyskiwanie najnowszych informacji o połączeniu
  8. Odtwarzanie zarówno plików audio, jak i tekstu
  9. Odtwórz wszystkie pliki audio i tekst
  10. Rozpoznawanie zarówno dtMF, jak i mowy
  11. 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: