Översikt över samtalsautomatisering

Med Samtalsautomation för Azure Communication Services kan utvecklare skapa serverbaserade, intelligenta samtalsarbetsflöden och samtalsinspelning för PSTN-kanaler (Voice And Public Switched Telephone Network). SDK:erna, som finns i C#, Java, JavaScript och Python, använder en åtgärdshändelsemodell som hjälper dig att skapa anpassade kundinteraktioner. Dina kommunikationsprogram kan lyssna på realtidssamtalshändelser och utföra kontrollplansåtgärder (som svar, överföring, uppspelning av ljud, startinspelning osv.) för att styra och kontrollera samtal baserat på din affärslogik.

Kommentar

Samtalsautomation stöder för närvarande inte rumssamtal .

Vanliga användningsfall

Några vanliga användningsfall som kan skapas med hjälp av Samtalsautomation är:

  • Program-VoIP eller PSTN anropar transaktionsarbetsflöden, till exempel påminnelser om klick och avtalade tider för att förbättra kundservicen.
  • Skapa interaktiva interaktionsarbetsflöden för att självbetjäna kunder för användningsfall som beställningsbokningar och uppdateringar, med hjälp av Åtgärder för uppspelning (ljud-URL, text till tal och SSML) och identifiering (DTMF och röst).
  • Integrera dina kommunikationsprogram med Kontaktcenter och dina privata telefoninätverk med direktdirigering.
  • Skydda kundens identitet genom att skapa nummermaskeringstjänster för att ansluta köpare till säljare eller användare till partnerleverantörer på din plattform.
  • Öka engagemanget genom att skapa automatiserade kundprogram för marknadsföring och kundservice.
  • Analysera i en efteranropsprocess dina omixade ljudinspelningar för kvalitetssäkringsändamål.

Samtalsautomation för Azure Communication Services kan användas för att skapa samtalsarbetsflöden för kundtjänstscenarier, enligt beskrivningen i arkitekturen på hög nivå. Du kan besvara inkommande samtal eller ringa utgående samtal. Kör åtgärder som att spela upp ett välkomstmeddelande och ansluta kunden till en liveagent i en Azure Communication Services Calling SDK-klientapp för att besvara begäran om inkommande samtal. Med stöd för PSTN eller direktdirigering i Azure Communication Services kan du sedan ansluta det här arbetsflödet tillbaka till ditt kontaktcenter.

Diagram över samtalsflödet för ett kundtjänstscenario.

Funktioner

I följande lista visas de funktioner som för närvarande är tillgängliga i Azure Communication Services Call Automation SDK:er.

Funktionsområde Kapacitet .NET Java JavaScript Python
Scenarier före anrop Besvara ett 1-till-1-samtal ✔️ ✔️ ✔️ ✔️
Besvara ett gruppsamtal ✔️ ✔️ ✔️ ✔️
Placera nytt utgående anrop till en eller flera slutpunkter ✔️ ✔️ ✔️ ✔️
Omdirigera* (vidarebefordra) ett anrop till en eller flera slutpunkter ✔️ ✔️ ✔️ ✔️
Avvisa ett inkommande samtal ✔️ ✔️ ✔️ ✔️
Scenarier med mellansamtal Lägga till en eller flera slutpunkter i ett befintligt anrop ✔️ ✔️ ✔️ ✔️
Avbryt att lägga till en slutpunkt i ett befintligt anrop ✔️ ✔️ ✔️ ✔️
Spela upp ljud från en ljudfil ✔️ ✔️ ✔️ ✔️
Spela upp ljud med text till tal ✔️ ✔️ ✔️ ✔️
Identifiera användarindata via DTMF ✔️ ✔️ ✔️ ✔️
Identifiera röstindata för användare ✔️ ✔️ ✔️ ✔️
Starta kontinuerlig DTMF-igenkänning ✔️ ✔️ ✔️ ✔️
Stoppa kontinuerlig DTMF-igenkänning ✔️ ✔️ ✔️ ✔️
Skicka DTMF ✔️ ✔️ ✔️ ✔️
Stäng av ljudet för deltagare ✔️ ✔️ ✔️ ✔️
Ta bort en eller flera slutpunkter från ett befintligt anrop ✔️ ✔️ ✔️ ✔️
Blind Transfer* ett 1:1-anrop till en annan slutpunkt ✔️ ✔️ ✔️ ✔️
Blind transfer* en deltagare från gruppanrop till en annan slutpunkt ✔️ ✔️ ✔️ ✔️
Lägg på ett samtal (ta bort samtalsbenet) ✔️ ✔️ ✔️ ✔️
Avsluta ett samtal (ta bort alla deltagare och slutsamtal) ✔️ ✔️ ✔️ ✔️
Avbryt medieåtgärder ✔️ ✔️ ✔️ ✔️
Dela anpassad information (via VOIP- eller SIP-huvuden) med slutpunkter när du lägger till dem i ett anrop eller överför ett anrop till dem ✔️ ✔️ ✔️ ✔️
Frågescenarier Hämta samtalstillståndet ✔️ ✔️ ✔️ ✔️
Hämta en deltagare i ett samtal ✔️ ✔️ ✔️ ✔️
Visa en lista över alla deltagare i ett samtal ✔️ ✔️ ✔️ ✔️
Samtalsinspelning Starta/pausa/återuppta/stoppa inspelning ✔️ ✔️ ✔️ ✔️

*Överföring eller omdirigering av ett VoIP-samtal till ett telefonnummer stöds för närvarande inte.

Arkitektur

Call Automation använder ett REST API-gränssnitt för att ta emot begäranden och ge svar på alla åtgärder som utförs i tjänsten. På grund av anropets asynkrona karaktär har de flesta åtgärder motsvarande händelser som utlöses när åtgärden slutförs eller misslyckas.

Azure Communication Services använder Event Grid för att leverera IncomingCall-händelsen och HTTPS Webhooks för alla återanrop från mellansamtalsåtgärden.

Skärmbild av flödet för inkommande samtal och åtgärder.

Anropsåtgärder

Åtgärder före anrop

Dessa åtgärder utförs innan målslutpunkten som anges i IncomingCall-händelsemeddelandet är ansluten. Web hook callback-händelser kommunicerar bara "svarsåtgärden" före anropet, inte för avvisande eller omdirigeringsåtgärder.

Svara Med hjälp av IncomingCall-händelsen från Event Grid och Call Automation SDK kan ett samtal besvaras av ditt program. Den här åtgärden möjliggör IVR-scenarier där programmet programmatiskt kan besvara inkommande PSTN-anrop. Andra scenarier är att besvara ett samtal för en användares räkning.

Avvisa för att avvisa ett samtal innebär att ditt program kan ta emot IncomingCall-händelsen och förhindra att samtalet ansluts till målslutpunkten.

Omdirigering Med hjälp av IncomingCall-händelsen från Event Grid kan ett anrop omdirigeras till en eller flera slutpunkter som skapar ett scenario med en enda eller samtidig ringning (sim-ring). Omdirigeringsåtgärden svarar inte på samtalet, samtalet omdirigeras eller vidarebefordras till en annan målslutpunkt för att besvaras.

Åtgärden Skapa samtalsskapande kan användas för att ringa utgående samtal till telefonnummer och andra kommunikationsanvändare. Användningsfall inkluderar att ditt program gör utgående anrop för att proaktivt informera användarna om ett avbrott eller meddela om en orderuppdatering.

Åtgärder mitt i anropet

Dessa åtgärder kan utföras på de anrop som besvaras eller placeras med hjälp av SDK:er för samtalsautomatisering. Varje åtgärd mitt i anropet har en motsvarande lyckad eller misslyckad web hook-återanropshändelse.

Lägg till/ta bort deltagare En eller flera deltagare kan läggas till i en enskild begäran där varje deltagare är en variant av målslutpunkter som stöds. En web hook-återanrop skickas för varje deltagare som har lagts till i anropet.

Spela upp När ditt program svarar på ett samtal eller ringer ett utgående samtal kan du spela upp en ljudfråga för uppringaren. Det här ljudet kan loopas om det behövs i scenarier som att spela upp hold-musik. Mer information finns i vår koncept- och instruktionsguide för anpassning av röstmeddelanden till användare med play-åtgärder.

Identifiera indata När programmet har spelat upp en ljuduppspelning kan du begära användarindata för att driva affärslogik och navigering i ditt program. Mer information finns i våra begrepp och instruktioner för att samla in användarindata.

Kontinuerlig DTMF-igenkänning När programmet behöver kunna ta emot DTMF-toner när som helst i anropet utan att programmet behöver utlösa en specifik identifieringsåtgärd. Detta kan vara användbart i scenarier där en agent är på ett anrop och behöver användaren för att ange någon form av ID eller spårningsnummer. Mer information om hur du använder den här vyn finns i vår guide.

Skicka DTMF När ditt program behöver skicka DTMF-toner till en extern deltagare kan det vara för ändamål som att ringa ut till en extern agent och ange tilläggsnumret, eller något som att navigera i en extern IVR-meny.

Stäng av Ljudet på Programmet kan stänga av ljudet för vissa användare baserat på din affärslogik. Användaren måste sedan slå på ljudet manuellt om de vill tala.

Överför När ditt program besvarar ett samtal eller ringer ett utgående samtal till en slutpunkt kan det samtalet överföras till en annan målslutpunkt. Överföring av ett 1:1-anrop tar bort programmets möjlighet att styra samtalet med hjälp av Call Automation SDK:er.

Post Du bestämmer när du ska starta/pausa/återuppta/stoppa inspelningen baserat på programmets affärslogik, eller så kan du ge slutanvändaren kontroll för att utlösa dessa åtgärder. Mer information finns i våra begrepp och snabbstarter.

Lägg på när programmet har besvarat ett 1-till-ett-samtal, tar upplåsningsåtgärden bort samtalsbenet och avslutar samtalet med den andra slutpunkten. Om det finns fler än två deltagare i samtalet (gruppsamtalet) tar en "hang-up"-åtgärd bort programmets slutpunkt från gruppanropet.

Avsluta Om programmet har besvarat ett 1-till-ett- eller gruppsamtal eller ringt ett utgående samtal med en eller flera deltagare, tar den här åtgärden bort alla deltagare och avslutar samtalet. Den här åtgärden utlöses genom att ställa in forEveryOne egenskapen på true i åtgärden för anrop på hang-up.

Avbryt medieåtgärder Baserat på affärslogik kan ditt program behöva avbryta pågående och köade medieåtgärder. Beroende på vilken medieåtgärd som avbröts och de som står i kö får du en webhook-händelse som anger att åtgärden har avbrutits.

Frågescenarier

Listdeltagare Returnerar en lista över alla deltagare i ett samtal. Inspelnings- och transkriptionsrobotar utelämnas från den här listan.

Händelser

I följande tabell beskrivs de aktuella händelser som genereras av Azure Communication Services. Följande två tabeller beskriver de händelser som genereras av Event Grid och från Call Automation som webhook-händelser.

Event Grid-händelser

De flesta händelser som skickas av Event Grid är plattformsoberoende, vilket innebär att de genereras oavsett SDK (samtals- eller samtalsautomation). Även om du kan skapa en prenumeration för alla händelser rekommenderar vi att du använder IncomingCall-händelsen för alla användningsfall för samtalsautomatisering där du vill styra samtalet programmatiskt. Använd de andra händelserna i rapporterings-/telemetrisyfte.

Händelse beskrivning
IncomingCall Meddelande om ett samtal till en kommunikationsanvändare eller ett telefonnummer
CallStarted Ett anrop upprättas (inkommande eller utgående)
CallEnded Ett samtal avslutas och alla deltagare tas bort
DeltagareLägg till En deltagare har lagts till i ett anrop
ParticipantRemoved En deltagare har tagits bort från ett anrop
RecordingFileStatusUpdated En inspelningsfil är tillgänglig

Läs mer om dessa händelser och nyttolastschema här

Anropa Automation webhook-händelser

Samtalsautomatiseringshändelser skickas till den URI för återanrop för webbkrokar som anges när du svarar eller ringer ett nytt utgående samtal.

Händelse beskrivning
Ring Anslut Programmets samtalsben är anslutet (inkommande eller utgående)
CallDisconnected Programmets anropsben är frånkopplat
CallTransferAccepted Programmets samtalsben har överförts till en annan slutpunkt
CallTransferFailed Överföringen av programmets anropsben misslyckades
AddParticipantSucceeded Programmet har lagt till en deltagare
AddParticipantFailed Programmet kunde inte lägga till en deltagare
CancelAddParticipantSucceeded Programmet avbröts när en deltagare skulle läggas till
CancelAddParticipantFailed Programmet kunde inte avbryta tillägg av en deltagare
RemoveParticipantSucceeded Programmet har tagit bort en deltagare från anropet.
RemoveParticipantFailed Programmet kunde inte ta bort en deltagare från anropet.
DeltagareUppdaterad Statusen för en deltagare ändrades när programmets samtalsben var anslutet till ett anrop
PlayCompleted Programmet har spelat upp den angivna ljudfilen
PlayFailed Programmet kunde inte spela upp ljud
PlayCanceled Den begärda uppspelningsåtgärden har avbrutits
RecognizeCompleted Igenkänningen av användarindata har slutförts
RecognizeCanceled Den begärda igenkänningsåtgärden har avbrutits
RecognizeFailed Det gick inte att känna igen användarindata
om du vill veta mer om att identifiera åtgärdshändelser kan du läsa vår instruktionsguide för att samla in användarindata
RecordingStateChanged Status för inspelningsåtgärden har ändrats från aktiv till inaktiv eller vice versa
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition slutfördes och en DTMF-ton togs emot från deltagaren
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition slutfördes men ett fel uppstod vid hantering av en DTMF-ton från deltagaren
ContinuousDtmfRecognitionS toppad StopContinuousRecognition har körts
SendDtmfCompleted SendDTMF slutfördes och DTMF-toner skickades till måldeltagaren
SendDtmfFailed Ett fel uppstod när DTMF-toner skulle skickas

Information om vilka händelser som publiceras för olika åtgärder finns i den här guiden som innehåller kodexempel och sekvensdiagram för olika anropskontrollflöden.

När du bekräftar motringningshändelser är det bästa praxis att svara med standard-HTTP-statuskoder som 200 OK. Detaljerad information är onödig och passar bättre för felsökningsprocesserna.

Mer information om hur du skyddar händelseleveransen för återanrop finns i den här guiden.

Uri för återanrop för åtgärd

Det är en valfri parameter i vissa API:er för mellananrop som använder händelser som asynkrona svar. Som standard skickas alla händelser till den standardåteranrops-URI som angetts av CreateCall/AnswerCall API när användaren upprättar ett anrop. Med användning av Uri för åtgärdsåteranrop skickas motsvarande händelser för den här enskilda begäran (endast en gång) till den nya URI:n.

API som stöds Motsvarande händelse
AddParticipant AddParticipantSucceed/AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed/RemoveParticipantFailed
TransferCall CallTransferAccepted/CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded/CancelAddParticipantFailed
Spela upp PlayCompleted/PlayFailed/PlayCanceled
PlayToAll PlayCompleted/PlayFailed/PlayCanceled
Recognize RecognizeCompleted/RecognizeFailed/RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionS toppad
SendDTMF ContinuousDtmfRecognitionToneReceived/ContinuousDtmfRecognitionToneFailed

Nästa steg

Här följer några intressanta artiklar: