Delen via


Quickstart: Een chatgesprek beheren

Inleiding

Tijdens een ACS-ruimteoproep (Azure Communication Services) kunt u de oproep beheren met behulp van aanroepende SDK's of Automation-SDK's voor gesprekken of beide. In een ruimtegesprek kunt u acties in gesprek beheren met behulp van de rollen die zijn toegewezen aan deelnemers en eigenschappen die in de ruimte zijn geconfigureerd. De functies van de deelnemer bepalen welke mogelijkheden per deelnemer zijn toegestaan, terwijl ruimte-eigenschappen van toepassing zijn op de oproep in de ruimte als geheel.

Aanroepen van SDK's

Calling SDK is een aanroepende bibliotheek aan de clientzijde waarmee deelnemers aan een ruimtegesprek verschillende inbelbewerkingen kunnen uitvoeren, zoals het delen van het scherm, video in- of uitschakelen, het dempen/dempen opheffen, enzovoort. Zie Het overzicht van de calling-SDK voor de volledige lijst met mogelijkheden.

U bepaalt de mogelijkheden op basis van rollen die zijn toegewezen aan deelnemers in het gesprek. Zo kan alleen de presentator het scherm delen. Zie Concepten van ruimten voor rollen en machtigingen van deelnemers.

Automation-SDK's aanroepen

Call Automation SDK is een bibliotheek aan de serverzijde waarmee beheerders een doorlopende ruimteaanroep kunnen beheren in een centrale en gecontroleerde omgeving. In tegenstelling tot aanroepende SDK zijn aanroepautomatiserings-SDK-bewerkingen rollen agnostisch. Daarom kan een oproepbeheerder verschillende inbelbewerkingen uitvoeren namens de deelnemers aan de ruimtegesprek.

In de volgende lijsten worden veelvoorkomende inroepacties beschreven die beschikbaar zijn in een ruimtegesprek.

Verbinding maken met een ruimtegesprek

Oproepautomatisering moet verbinding maken met een bestaande ruimteaanroep voordat er in-callbewerkingen worden uitgevoerd. De CallConnected gebeurtenissen ConnectFailed worden gegenereerd met behulp van callbackmechanismen om aan te geven of een verbindingsbewerking is geslaagd of mislukt.

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

Zodra de verbinding met een ruimtegesprek is geslaagd, wordt een CallConnect gebeurtenis op de hoogte gesteld via de callback-URI. U kunt callConnectionId zo nodig een oproepverbinding voor de ruimteoproep ophalen. In de volgende voorbeeldcodefragmenten wordt gebruikgemaakt van de callConnectionId codefragmenten om deze functie te demonstreren.

PSTN-deelnemer toevoegen

Met Gespreksautomatisering kunt u uitbellen naar een PSTN-nummer en de deelnemer toevoegen aan een ruimtegesprek. U moet echter een ruimte instellen om de optie voor uitbellen via PSTN in te schakelen (EnabledPSTNDialout ingesteld op true) en de Azure Communication Services-resource moet een geldig telefoonnummer hebben ingericht.

Zie de quickstart ruimten voor meer informatie.

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

PSTN-deelnemer verwijderen


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 verzenden

Verzend een lijst met DTMF-tonen naar een externe deelnemer.

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

Oproepen opnemen

Azure Communication Services-ruimten bieden ondersteuning voor opnamemogelijkheden, waaronderstart, stoppause, , resumeenzovoort, die worden geleverd door Gespreksautomatisering. Zie de volgende codefragmenten om een opname in een ruimtegesprek te starten/stoppen/onderbreken/hervatten. Zie Gespreksautomatisering opnemen voor een volledige lijst met acties.

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

Een gesprek beëindigen

U kunt de call Automation SDK-actie Ophangen gebruiken om een aanroep te beëindigen. Wanneer de actie Ophangen is voltooid, publiceert de SDK een CallDisconnected gebeurtenis.

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

Andere acties

De volgende aanroepacties worden ook ondersteund in een ruimtegesprek.

  1. Deelnemer toevoegen (ACS-id)
  2. Deelnemer verwijderen (ACS-id)
  3. Deelnemer toevoegen annuleren (ACS-id en PSTN-nummer)
  4. Oproep ophangen
  5. Deelnemer ophalen (ACS-id en PSTN-nummer)
  6. Meerdere deelnemers ophalen (ACS-id en PSTN-nummer)
  7. Ontvang de meest recente informatie over een gesprek
  8. Zowel audiobestanden als tekst afspelen
  9. Alle audiobestanden en tekst afspelen
  10. Zowel DTMF als spraak herkennen
  11. Continue DTMF herkennen

Zie oproepacties en mediaacties voor meer informatie.

Volgende stappen

In deze sectie hebt u geleerd hoe u het volgende kunt doen:

  • Deelnemen aan een chatgesprek vanuit uw toepassing
  • Inbelacties toevoegen aan een ruimtegesprek met behulp van aanroepende SDK's
  • Inbelacties toevoegen aan een ruimtegesprek met behulp van Call Automation SDK's

U wilt mogelijk ook: