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
, stop
pause
, , resume
enzovoort, 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.
- Deelnemer toevoegen (ACS-id)
- Deelnemer verwijderen (ACS-id)
- Deelnemer toevoegen annuleren (ACS-id en PSTN-nummer)
- Oproep ophangen
- Deelnemer ophalen (ACS-id en PSTN-nummer)
- Meerdere deelnemers ophalen (ACS-id en PSTN-nummer)
- Ontvang de meest recente informatie over een gesprek
- Zowel audiobestanden als tekst afspelen
- Alle audiobestanden en tekst afspelen
- Zowel DTMF als spraak herkennen
- 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:
- Meer informatie over het concept Ruimten
- Meer informatie over functies voor aanroepen van SDK's
- Meer informatie over gespreksautomatiseringsconcepten