Översikt över samtalsautomatisering
Med Samtalsautomation för Azure Communication Services kan utvecklare skapa serverbaserade, intelligenta samtalsarbetsflöden och samtalsinspelningar för PSTN-kanaler (Voice And Public Switched Telephone Network). SDK:erna, som är tillgängliga 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 (till exempel svar, överföring, spela upp ljud, starta inspelning och så vidare) för att styra och kontrollera samtal baserat på din affärslogik.
Vanliga användningsfall
Några vanliga användningsfall som du kan skapa med hjälp av Samtalsautomatisering:
- 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.
Använd Azure Communication Services Call Automation 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 eller 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
Följande funktioner är för närvarande 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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Anslut till ett pågående samtal eller rum (i förhandsversion) | ✔️ | ✔️ | ✔️ | ✔️ | |
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 | ✔️ | ✔️ | ✔️ | ✔️ | |
Starta/stoppa ljuduppspelning (offentlig förhandsversion) | ✔️ | ✔️ | ✔️ | ✔️ | |
Starta/stoppa transkription i realtid (offentlig förhandsversion) | ✔️ | ✔️ | ✔️ | ✔️ | |
Ta bort en eller flera slutpunkter från ett befintligt anrop | ✔️ | ✔️ | ✔️ | ✔️ | |
Blind Överför ett 1:1-anrop till en annan slutpunkt | ✔️ | ✔️ | ✔️ | ✔️ | |
Blind Överför 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. Återanropshändelser för webbkrokar kommunicerar answer
bara åtgärden före anropet, inte för reject
eller redirect
åtgärder.
Svar – Med hjälp av IncomingCall-händelsen från Event Grid och Call Automation SDK kan ditt program besvara ett samtal. Använd den här åtgärden i IVR-scenarier där ditt program programmatiskt kan besvara inkommande PSTN-anrop. Andra scenarier är att besvara ett samtal för en användares räkning.
Avvisa – Om du vill avvisa ett anrop kan ditt program ta emot IncomingCall
händelsen och förhindra att anropet ansluts till målslutpunkten.
Omdirigering – Med hjälp av IncomingCall
händelsen från Event Grid kan du omdirigera ett anrop till en eller flera slutpunkter som skapar ett enda eller samtidigt ringningsscenario (sim-ring). Omdirigeringsåtgärden svarar inte på samtalet. Samtalet omdirigeras eller vidarebefordras till en annan målslutpunkt för att besvaras.
Skapa samtal – Använd åtgärden Skapa samtal 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.
Anslut samtal (i förhandsversion) – Använd åtgärden Anslut samtal för att ansluta till ett pågående samtal och vidta samtalsåtgärder på det. Du kan också använda den här åtgärden för att ansluta och hantera ett Rum-samtal programmatiskt, som att utföra PSTN-uppringningar för Room med hjälp av din tjänst.
Åtgärder mitt i anropet
Ditt program kan utföra dessa åtgärder på samtal 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 – Du kan lägga till en eller flera deltagare i en enda 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 Spela upp ljud i samtal och Anpassa röstmeddelanden till användare med åtgärden Spela upp.
Identifiera indata – När programmet har spelat upp en ljudfråga kan du begära användarindata för att driva affärslogik och navigering i ditt program. Mer information finns i Samla in användarindata och instruktionsguiden Samla in användarindata med åtgärden Identifiera.
Kontinuerlig DTMF-igenkänning – När ditt program 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. Den här möjligheten kan vara användbar 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 finns i Så här styr du medieåtgärder mitt i anropet.
Skicka DTMF – När ditt program behöver skicka DTMF-toner till en extern deltagare. Använd den här åtgärden för att ringa ut till en extern agent och ange tilläggsnumret eller navigera i en extern IVR-meny.
Stäng av – 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öring – När ditt program besvarar ett samtal eller placerar 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å ditt program 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.
Hang-up – När programmet svarar på ett 1-till-ett-anrop 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 – Oavsett om ditt program svarar på ett 1-till-ett- eller gruppsamtal eller ringer 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 egenskapen forEveryOne
på true
i hang-up-anropsåtgärden.
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 stod i kö kan programmet få en webhook-händelse som anger att åtgärden avbröts.
Starta/stoppa ljuduppspelning (offentlig förhandsversion) – Med ljuduppspelning kan du prenumerera på ljudströmmar i realtid från ett pågående samtal. Mer detaljerad vägledning om hur du kommer igång med ljudströmning och information om återanropshändelser för ljudströmning finns i vårt koncept och vår snabbstart.
Start/Stoppa realtidstranskription (offentlig förhandsversion) – Med transkription i realtid kan du komma åt live-transkriptioner för ljudet från ett pågående samtal. Mer detaljerad vägledning om hur du kommer igång med transkription i realtid och information om återanropshändelser i realtid finns i vårt koncept och vår snabbstart.
Frågescenarier
Lista deltagare – 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. De skickas oavsett SDK (samtal eller samtalsautomation). Du kan skapa en prenumeration för alla händelser, men vi rekommenderar att du använder IncomingCall
händelsen för alla användningsfall för samtalsautomatisering där du vill styra anropet 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 |
Upprättade ett anrop (inkommande eller utgående). |
CallEnded |
Avslutade ett samtal och tog bort alla deltagare. |
ParticipantAdded |
En deltagare har lagts till i ett anrop. |
ParticipantRemoved |
En deltagare har tagits bort från ett anrop. |
RecordingFileStatusUpdated |
Det finns en inspelningsfil. |
Läs mer om dessa händelser och nyttolastschema i Azure Communication Services – röst- och videosamtalshändelser
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 |
---|---|
CallConnected |
Samtalet har startats (när du använder Answer eller Create åtgärdar) eller programmet har anslutits till ett pågående anrop (när åtgärden används Connect ). |
CallDisconnected |
Programmet har kopplats från anropet. |
CreateCallFailed |
Programmet kunde inte skapa anropet. |
ConnectFailed |
Programmet kunde inte ansluta till ett anrop (endast för Connect samtalsåtgärd). |
CallTransferAccepted |
Överföringsåtgärden har slutförts och överföringsobjektet är anslutet till måldeltagaren. |
CallTransferFailed |
Överföringsåtgärden misslyckades. |
AddParticipantSucceeded |
Programmet har lagt till en deltagare i anropet. |
AddParticipantFailed |
Programmet kunde inte lägga till en deltagare i anropet (på grund av ett fel eller så accepterade deltagaren inte inbjudan) |
CancelAddParticipantSucceeded |
Programmet avbröt en AddParticipant begäran (deltagaren lades inte till i anropet). |
CancelAddParticipantFailed |
Programmet kunde inte avbryta en AddParticipant-begäran (det kan bero på att begäran redan har bearbetats). |
RemoveParticipantSucceeded |
Programmet har tagit bort en deltagare från anropet. |
RemoveParticipantFailed |
Programmet kunde inte ta bort en deltagare från anropet. |
ParticipantsUpdated |
Statusen för en deltagare ändrades när programmet 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änning av användarindata har slutförts. |
RecognizeCanceled |
Den begärda Recognize åtgärden har avbrutits. |
RecognizeFailed |
Det gick inte att känna igen användarindata. Mer information om att identifiera åtgärdshändelser finns i instruktionsguiden 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örts 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. |
ContinuousDtmfRecognitionStopped |
Har körts StopContinuousRecognition . |
SendDtmfCompleted |
SendDTMF slutförts och skickat DTMF-toner till måldeltagaren. |
SendDtmfFailed |
Ett fel uppstod när DTMF-tonerna skulle skickas. |
Information om vilka händelser som publiceras för olika åtgärder finns i Åtgärder för anropskontroll. Artikeln innehåller kodexempel och sekvensdiagram för olika anropskontrollflöden.
Bästa praxis när du bekräftar återanropshändelser är att svara med standard-HTTP-statuskoder som 200 OK. Detaljerad information är onödig och passar bättre för felsökningsprocesserna.
Information om hur du skyddar händelseleveransen för återanrop finns i Så här skyddar du webhook-slutpunkten.
Åtgärd motringnings-URI
Åtgärd Motringnings-URI ä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 anges av CreateCall
/ AnswerCall
API-händelser när användaren upprättar ett anrop. Med hjälp av åtgärdsåteranrops-URI skickar API:et 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 |
Play |
PlayCompleted / PlayFailed / PlayCanceled |
PlayToAll |
PlayCompleted / PlayFailed / PlayCanceled |
Recognize |
RecognizeCompleted / RecognizeFailed / RecognizeCanceled |
StopContinuousDTMFRecognition |
ContinuousDtmfRecognitionStopped |
SendDTMF |
ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed |
Nästa steg
Relaterade artiklar
- Förstå hur din resurs debiteras för olika samtalsanvändningsfall med exempel.
- Se snabbstart för att ringa ett utgående samtal.
- Lär dig mer om användnings- och driftloggar som publicerats av samtalsautomation.