Lehetséges, hogy hallott vagy olvasott a Call Screening funkcióról, amelyet a Google indított el Pixel telefonjaival az Egyesült Államokban. Az ötlet nagyszerű – amikor bejövő hívást kap, a virtuális asszisztens beszélni kezd, miközben a beszélgetést csevegés formájában látja, és bármikor átveheti a szót az asszisztenstől. Ez nagyon hasznos manapság, amikor szinte , de nem szeretné, ha fontos hívások elvesznének olyanoktól, akik nem szerepelnek a névjegyzékében. Az egyetlen bökkenő, hogy ez a funkció csak Pixel telefonon érhető el és csak az Egyesült Államokban. Nos, a nehézségek azért vannak, hogy leküzdjük őket, igaz? Ezért úgy döntöttünk, hogy elmondjuk, hogyan lehet hasonló megoldást létrehozni a Voximplant és a Dialogflow segítségével. Kérem, folytassa a cikket.
Architektúra
Javaslom, hogy ne pazaroljunk időt a Voximplant és a Dialogflow működésének magyarázására, ha szeretné, könnyen talál információt az interneten. Tehát ismerkedjünk meg a Call Screening koncepciójával.
Tegyük fel, hogy már van egy telefonszáma, amelyet naponta használ, és amelyre fontos hívásokat kap. Ebben az esetben szükségünk van egy második számra, amit mindenütt megadunk – az e-mailben, a névjegykártyán, amikor online űrlapokat töltünk ki stb. Ez a szám egy természetes nyelvfeldolgozó rendszerhez lesz csatlakoztatva (jelen esetben a Dialogflow), és csak akkor irányítja át a hívásokat a fő számra, ha azt ön kívánja. A sémás megjelenítés így néz ki (a kép kattintható):
A felépítés megértése után nekiláthatunk a megvalósításnak, de egy feltétellel: nem fogunk mobil alkalmazást készíteni, hogy bemutassuk a dialógust a Dialogflow és a bejövő előfizető között, hanem egy egyszerű web-alkalmazást hozunk létre, amely megjeleníti a dialógust, hogy szemléltessük a Call Screening működésének elvét. Ebben az alkalmazásban lesz egy Intervene gomb, amelynek megnyomásakor a Voximplant összeköti a bejövő előfizetőt a hívott előfizetővel, ha az utóbbi beszélni kíván.
Megvalósítás
Jelentkezzen be a és hozzon létre egy új alkalmazást, például screening:

Nyisd meg és vásároljon egy számot, amely közvetítőként fog működni:

Ezután lépjen be a screening alkalmazásba, a „Számok” szakaszba, az „Elérhető” fülre. Itt látni fogja a nemrégiben megvásárolt számot. Csatolja a gomb segítségével a „Csatolás” – a megjelenő ablakban hagyjon minden értéket az alapértelmezett beállításon, majd nyomja meg a „Csatolás” gombot.
Az alkalmazásban a „Forgatókönyvek” fülre lépve hozzon létre egy myscreening elnevezésű forgatókönyvet – ebben fogjuk használni a cikkben található kódot. . A kód azonban kissé módosulni fog, mivel látnunk kell a hívó és a segítő közötti párbeszédet; a teljes kódot .
FIGYELEM: módosítania kell a server változó értékét az Ön ngrok szerverének nevére (az ngrok részletei lentebb találhatók). Ezenkívül az értékeket is cserélje ki a 31. sorban, ahol a your phone number az Ön fő száma (például személyes mobil), míg a voximplant number az a szám, amelyet nemrég vásárolt.
outbound_call = VoxEngine.callPSTN(“YOUR PHONE NUMBER”, “VOXIMPLANT NUMBER”)A callPSTN hívás akkor történik, amikor úgy dönt, hogy belép a beszélgetésbe és személyesen beszél a bejövő hívóval.
Miután elmentette a forgatókönyvet, a megvásárolt számhoz kell csatolnia. Ehhez, továbbra is az alkalmazásában maradva, lépjen a „Routing” fülre, hogy új szabályt hozzon létre – a jobbra fent található „Új szabály” gombbal. Adja meg a nevet (például allcalls), hagyja az alapértelmezett maszkot (.* – ami azt jelenti, hogy az összes bejövő hívást azok a forgatókönyvek kezelik, amelyek az adott szabályhoz vannak kiválasztva), és adja meg a myscreening forgatókönyvet.

Mentse a szabályt.
Mostantól a telefonszám a forgatókönyvhöz van csatolva. Az utolsó lépés az, hogy a botot csatolja az alkalmazáshoz. Ehhez lépjen a „Dialogflow csatoló” fülre, nyomja meg a „Dialogflow ügynök hozzáadása” gombot jobbra fent, és töltse fel a Dialogflow ügynökének JSON fájlját.

Ha minta/teszteléshez ügynökre van szüksége, akkor a miénket is felhasználhatja ezen a linken: . Csak ne várjon tőle túl sokat, ez csupán egy példa, amelyet kedve szerint módosíthat és bátran megoszthatja az eredményeket 🙂
Egyszerű backend NodeJS-en
Hozzunk létre egy egyszerű backendet Node.js-ben, például a következő módon:
Ez egy szokásos alkalmazás, amely csak két parancsot igényel a futtatáshoz:
npm install
node index.js
A szerver a gépeden a 3000-es porton fog elindulni, ezért a Voximplant felhővel való összekapcsolásához az ngrok segédprogramot használjuk. Miután telepítetted, működtesd a következő paranccsal:
ngrok http 3000Látni fogod a domaint, amelyet az ngrok generált a helyi szervered számára – másold ki és állítsd be a server változóba.
Ügyfél
A kliensalkalmazás egyszerű csevegőként néz ki, amelyet.
Egyszerűen másold át az összes fájlt a webkiszolgálód egyik könyvtárába, és az működni fog. A script.js fájlban cseréld ki a server változó értékét az ngrok doménra, és a callee változó értékét a megvásárolt számra. Mentsd el a fájlt, és indítsd el az alkalmazást a böngészőben. Ha minden rendben van, látni fogod a WebSocket kapcsolatot a fejlesztői panelen.
Demos
Az alkalmazást élőben a következő videón tudod megnézni:

P. S. Ha megnyomod az Intervene gombot, a hívó a telefonszámomra lesz irányítva, és ha a Disconnect gombra kattintasz – akkor…? Így van, a hívás megszakad.
Forrás: habr.com
