Du har kanskje hørt eller lest om Call Screening-funksjonen som Google lanserte for sine Pixel-telefoner i USA. Ideen er flott - når du mottar et innkommende anrop, begynner den virtuelle assistenten å kommunisere, mens du ser denne samtalen i form av en chat og når som helst kan du begynne å snakke i stedet for assistenten. Dette er veldig nyttig i disse dager når nesten
arkitektur
Jeg foreslår at du ikke kaster bort tid på å forklare hvordan Voximplant og Dialogflow fungerer, hvis du ønsker det, kan du enkelt finne informasjon på Internett. Så la oss bli kjent med selve konseptet med vår Call Screening.
La oss anta at du allerede har et bestemt telefonnummer som du bruker hver dag og som du mottar viktige anrop på. I dette tilfellet trenger vi et annet nummer, som vil bli angitt overalt - i posten, på et visittkort, når du fyller ut elektroniske skjemaer, etc. Dette nummeret vil være koblet til et naturlig språkbehandlingssystem (i vårt tilfelle Dialogflow) og vil viderekoble anrop til hovednummeret ditt bare hvis du ønsker det. I diagramform ser det slik ut (bildet er klikkbart):
Når vi forstår arkitekturen, kan vi ta på oss implementeringen, men med ett forbehold: vi vil ikke gjøre det mobil applikasjon for å vise en dialog mellom Dialogflow og en innkommende oppringer, vil vi lage en enkel nettet-en applikasjon med en dialoggjengiver for å tydelig vise hvordan samtalescreening fungerer. Denne applikasjonen vil ha en Intervener-knapp ved å trykke på hvilket Voximplant som vil koble den innkommende abonnenten til den oppringte abonnenten, hvis sistnevnte bestemte seg for å snakke selv.
implementering
Logg inn
Åpent
Deretter går du til screeningsapplikasjonen, i "Tall"-delen, fanen "Tilgjengelig". Her vil du se nummeret du nettopp har kjøpt. Koble den til applikasjonen ved å bruke "Legg ved" -knappen - i vinduet som vises, la alle standardverdiene og klikk "Legg ved".
Når du er inne i applikasjonen, gå til fanen "Skript" og lag et skript myscreening - i det bruker vi koden fra artikkelen
OBS: du må endre verdien av servervariabelen til navnet på ngrok-serveren din (detaljer om ngrok vil være nedenfor). Bytt også ut verdiene dine på linje 31, der telefonnummeret ditt er hovednummeret ditt (for eksempel din personlige mobiltelefon), og voximplantnummeret er nummeret du nylig kjøpte.
outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)
CallPSTN-anropet vil skje i det øyeblikket du bestemmer deg for å bryte inn i samtalen og personlig snakke med den innkommende abonnenten.
Etter at du har lagret skriptet, må du koble det til det kjøpte nummeret. For å gjøre dette, mens du fortsatt er inne i applikasjonen, går du til "Ruting"-fanen for å lage en ny regel - knappen "Ny regel" øverst i høyre hjørne. Oppgi et navn (for eksempel alle anrop), la standardmasken (.* - som betyr at alle innkommende anrop vil bli behandlet av skriptene som er valgt for denne regelen) og spesifiser myscreening-skriptet.
Lagre regelen.
Fra nå av er telefonnummeret knyttet til manuset. Det siste du trenger å gjøre er å koble boten til applikasjonen. For å gjøre dette, gå til "Dialogflow Connector"-fanen, klikk på "Add Dialogflow Agent"-knappen i øvre høyre hjørne og last opp JSON-filen til Dialogflow-agenten din.
Hvis du trenger en agent for eksempel/testing, kan du ta vår på denne linken:
Enkel backend på NodeJS
La oss distribuere en enkel backend på en node, for eksempel slik:
Dette er et enkelt program som bare krever to kommandoer for å kjøre:
npm install
node index.js
Serveren vil kjøre på port 3000 på maskinen din, så for å koble den til Voximplant-skyen bruker vi ngrok-verktøyet. Når du installerer
ngrok http 3000
Du vil se domenenavnet som ngrok genererte for din lokale server - kopier det og lim det inn i servervariabelen.
kunde
Klientapplikasjonen ser ut som en enkel chat som du kan
Bare kopier alle filene til en eller annen katalog på webserveren din, så vil det fungere. I script.js-filen erstatter du servervariabelen med ngrok-domenenavnet og callee-variabelen med nummeret du kjøpte. Lagre filen og start programmet i nettleseren din. Hvis alt er ok, vil du se WebSocket-tilkoblingen i utviklerpanelet.
demo
Du kan se applikasjonen i aksjon i denne videoen:
PS Hvis du klikker på Intervener-knappen, vil den som ringer bli dirigert til telefonnummeret mitt, og hvis du klikker på Koble fra blir det...? Det stemmer, samtalen vil bli avbrutt.
Kilde: www.habr.com