Ö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.
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.
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:
- Förstå hur din resurs debiteras för olika samtalsanvändningsfall med exempel.
- Prova snabbstarten för att ringa ett utgående samtal.
- Lär dig mer om användnings- och driftloggar som publicerats av samtalsautomation.