Dela via


Snabbstart: Hantera ett rumssamtal

Introduktion

Under ett acs-rumssamtal (Azure Communication Services) kan du hantera samtalet med hjälp av SDK:er för samtal eller SDK:er för samtalsautomatisering eller båda. I ett rumssamtal kan du styra anropsåtgärder med både de roller som tilldelats deltagarna och egenskaper som konfigurerats i rummet. Deltagarens rollkontrollfunktioner tillåts per deltagare, medan rumsegenskaper gäller för rumsanropet som helhet.

Anropa SDK:er

Att anropa SDK är ett samtalsbibliotek på klientsidan som gör det möjligt för deltagare i ett rumssamtal att utföra flera anropsåtgärder, till exempel skärmresurs, aktivera/inaktivera video, stänga av/slå på ljudet och så vidare. En fullständig lista över funktioner finns i Calling SDK Overview (Anropa SDK-översikt).

Du styr funktionerna baserat på roller som tilldelats deltagarna i anropet. Det är till exempel bara presentatören som kan skärmresursen. Information om deltagarroller och behörigheter finns i Rumsbegrepp.

Anropa Automation SDK:er

Call Automation SDK är ett bibliotek på serversidan som gör det möjligt för administratörer att hantera ett pågående rumssamtal i en central och kontrollerad miljö. Till skillnad från SDK för samtal är SDK-åtgärder för samtalsautomatisering roller agnostiska. Därför kan en samtalsadministratör utföra flera anropsåtgärder för deltagarna i rumssamtalet.

I följande listor beskrivs vanliga anropsåtgärder som är tillgängliga i ett rumssamtal.

Ansluta till ett rumssamtal

Samtalsautomation måste ansluta till ett befintligt rumssamtal innan du utför några anropsåtgärder. Händelserna CallConnected eller ConnectFailed aktiveras med hjälp av återanropsmekanismer för att ange om en anslutningsåtgärd lyckades eller misslyckades.

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

När en händelse har anslutits till ett rumssamtal CallConnect meddelas den via återanrops-URI. Du kan använda callConnectionId för att hämta en samtalsanslutning i rumssamtalet efter behov. Följande exempelkodfragment använder callConnectionId för att demonstrera den här funktionen.

Lägg till PSTN-deltagare

Med hjälp av Samtalsautomation kan du ringa ut till ett PSTN-nummer och lägga till deltagaren i ett rumssamtal. Du måste dock konfigurera ett rum för att aktivera pstn-utringningsalternativet (EnabledPSTNDialout inställt på true) och Azure Communication Services-resursen måste ha ett giltigt telefonnummer etablerat.

Mer information finns i Snabbstart för rum.

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

Ta bort PSTN-deltagare


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

Skicka DTMF

Skicka en lista med DTMF-toner till en extern deltagare.

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

Samtalsinspelning

Azure Communication Services-rum har stöd för inspelningsfunktioner som start, stop, pause, resumeoch så vidare, som tillhandahålls av Call Automation. Se följande kodfragment för att starta/stoppa/pausa/återuppta en inspelning i ett rumssamtal. En fullständig lista över åtgärder finns i Samtalsautomatiseringsinspelning.

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

Avsluta ett samtal

Du kan använda åtgärden Call Automation SDK Hang Up för att avsluta ett samtal. När åtgärden Hang Up slutförs publicerar SDK en CallDisconnected händelse.

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

Andra åtgärder

Följande anropsåtgärder stöds också i ett rumssamtal.

  1. Lägg till deltagare (ACS-identifierare)
  2. Ta bort deltagare (ACS-identifierare)
  3. Avbryt lägg till deltagare (ACS-identifierare och PSTN-nummer)
  4. Lägg på luren
  5. Hämta deltagare (ACS-identifierare och PSTN-nummer)
  6. Hämta flera deltagare (ACS-identifierare och PSTN-nummer)
  7. Få senaste information om ett samtal
  8. Spela upp både ljudfiler och text
  9. Spela upp alla både ljudfiler och text
  10. Identifiera både DTMF och tal
  11. Identifiera kontinuerlig DTMF

Mer information finns i samtalsåtgärder och medieåtgärder.

Nästa steg

I det här avsnittet har du lärt dig att:

  • Ansluta till ett rumssamtal från ditt program
  • Lägga till anropsåtgärder i ett rumssamtal med hjälp av anropande SDK:er
  • Lägga till anropsåtgärder i ett rumssamtal med hjälp av SDK:er för samtalsautomatisering

Du kanske också vill: