Možná jste slyšeli nebo četli o funkci Call Screening, kterou Google představil pro své telefony Pixel v USA. Myšlenka je skvělá – když vám přijde příchozí hovor, virtuální asistent začne komunikovat, zatímco vy vidíte tento rozhovor ve formě chatu a kdykoliv můžete začít mluvit místo asistenta. To je velmi užitečné v dnešní době, kdy téměř , ale přitom nechcete propásnout důležité hovory od někoho, kdo není ve vašem seznamu kontaktů. Jediná hádanka – tato funkčnost je dostupná pouze na telefonu Pixel a pouze v USA. Což je, pravda, překážka, ale překážky existují, aby se překonávaly, že? Takže jsme se rozhodli ukázat, jak implementovat podobné řešení pomocí Voximplant a Dialogflow. Prosím, pokračujte s námi.
Architektura
Nehodlám ztrácet čas vysvětlováním, jak fungují Voximplant a Dialogflow; pokud chcete, snadno najdete informace na internetu. Tak se pojďme seznámit s konceptem našeho Call Screening.
Představte si, že máte telefonní číslo, které používáte každý den a na které dostáváte důležité hovory. V takovém případě budeme potřebovat druhé číslo, které bude uvedeno všude – v e-mailu, na vizitkách, při vyplňování online formulářů atd. Toto číslo bude propojeno se systémem zpracování přirozeného jazyka (v našem případě Dialogflow) a bude přesměrovávat hovory na vaše hlavní číslo, pouze pokud si to budete přát. V grafické podobě to vypadá takto (obrázek je klikací):
Pochopením architektury se můžeme pustit do realizace, ale s jednou podmínkou: nebudeme vytvářet mobilní aplikaci, abychom ukázali dialog mezi Dialogflow a příchozím účastníkem, vytvoříme jednoduchou webovou-aplikaci s renderováním dialogu, abychom názorně ukázali princip fungování Call Screening. V této aplikaci bude tlačítko Intervene, po jehož stisknutí Voximplant spojí příchozího účastníka s volaným účastníkem, pokud se rozhodl mluvit sám.
Implementace
Přihlaste se do a vytvořte novou aplikaci, například screening:

Otevřete a zakupte číslo, které bude fungovat jako zprostředkovatel:

Dále přejděte do aplikace screening, do sekce „Čísla“, záložka „Dostupné“. Zde uvidíte právě zakoupené číslo. Připojte ho k aplikaci pomocí tlačítka „Připojit“ – v zobrazeném okně nechte všechny výchozí hodnoty a klikněte na „Připojit“.
Pokud jste uvnitř aplikace, přejděte na kartu „Scénáře“ a vytvořte scénář myscreening – v něm použijeme kód z článku. . Kód bude mírně upraven, protože potřebujeme „vidět“ dialog mezi volajícím a asistentem; celý kód můžete .
POZOR: Budete muset změnit hodnotu proměnné server na název vašeho ngrok serveru (podrobnosti o ngrok najdete níže). Také zadejte své hodnoty na 31. řádku, kde your phone number – to je vaše hlavní číslo (např. osobní mobilní), a voximplant number – číslo, které jste nedávno zakoupili.
outbound_call = VoxEngine.callPSTN(„YOUR PHONE NUMBER“, „VOXIMPLANT NUMBER“)Volejte callPSTN ve chvíli, kdy se rozhodnete přerušit hovor a osobně si promluvit s příchozím volajícím.
Jakmile uložíte scénář, musíte ho připojit k zakoupenému číslu. K tomu, stále uvnitř vaší aplikace, přejděte na kartu „Routing“, abyste vytvořili nové pravidlo – tlačítko „Nové pravidlo“ v pravém horním rohu. Zadejte název (např. allcalls), nechte masku výchozí (.* – což znamená, že všechny příchozí hovory budou zpracovávány scénáři vybranými pro toto pravidlo) a zadejte scénář myscreening.

Uložte pravidlo.
Od nynějška je telefonní číslo připojeno ke scénáři. Poslední krok, který je třeba udělat – připojit bota k aplikaci. K tomu přejděte na kartu „Dialogflow-connector“, stiskněte tlačítko „Přidat Dialogflow agenta“ v pravém horním rohu a nahrajte JSON soubor vašeho agenta Dialogflow.

Pokud potřebujete agenta pro příklad/testování, můžete vzít našeho na tomto odkazu: . Jen od něj nepožadujte moc, je to jen příklad, který můžete upravit podle svých představ a s výsledky se klidně podělit 🙂.
Jednoduchý backend na NodeJS
Pojďme rozjet jednoduchý backend na nodu, například takový:
Je to běžná aplikace, která vyžaduje pouze dva příkazy k spuštění:
npm install
node index.js
Server bude spuštěn na portu 3000 na vašem stroji, proto pro jeho připojení k cloudu Voximplant používáme nástroj ngrok. Jakmile nainstalujete , spusťte ho příkazem:
ngrok http 3000Uvidíte doménové jméno, které ngrok vygeneroval pro váš místní server – zkopírujte ho a vložte do proměnné server.
Zákazník
Klientská aplikace vypadá jako jednoduchý chat, který si můžete.
Jednoduše zkopírujte všechny soubory do nějakého adresáře na vašem webovém serveru a bude to fungovat. V souboru script.js změňte hodnotu proměnné server na doménové jméno ngrok a hodnotu proměnné callee na číslo, které jste zakoupili. Uložte soubor a spusťte aplikaci v prohlížeči. Pokud je vše v pořádku, uvidíte WebSocketové spojení v panelu pro vývojáře.
Demo
Aplikaci v akci můžete vidět v tomto videu:

P. S. Pokud stisknete tlačítko Intervene, bude volající přesměrován na moje telefonní číslo, a pokud stisknete Disconnect – ano, hovor bude přerušeno.
Zdroj: habr.com
