Ö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.

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

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.

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. Å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 forEveryOnetrue 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