Jednoduchá integrace VoIP telefonie – praktická ukázka

Datum: 07.02.2018

Dnes navážu na minulou teoretickou část, v které jsem vysvětlil, jak můžete telefonní ústřednu integrovat s vaším informačním systémem. Přínosem integrace je např. zobrazení informací z vašeho informačního systému při příchozím hovoru (kdo Vám volá, jaké má objednávky, otevřené tickety na support, …). Na praktickém příkladu Vám ukážu jak jednoduchou integraci VoIP technologie pomocí webhooku provést.

WARNING: Článek je zaměřen technicky a jsou předpokládány základní programátorské znalosti

 

Kapitoly

  • Vývojové prostředí Amazon Beanstalk pro emulaci IS/CRM
  • Testovací aplikace v Amazon Beanstalk
  • Softwarový SIP telefon Microsip
  • Konfigurace webhooku
  • Ukázkový hovor a zobrazení dat

 

Vývojové prostředí Amazon Beanstalk pro emulaci IS/CRM

Pokud jste programátor, tak se Vám často může stát, že si chcete vyzkoušet nějaký projekt. Problém nastává v situaci, kdy potřebujete, aby testovaná aplikace byla dosažitelná z internetu. Asi budete souhlasit, že nikoho nebaví doprošování se správců o vytvoření serveru a jeho konfiguraci včetně doménového jména. O firewallu ani nemluvím.

V těchto případech se dají velmi dobře použít Cloud služby, které dokáží takové malé vývojové prostředí poskytnout. Zdarma. Patří mezi ně Heroku, Google Cloud Platform, Amazon Web Services a další.

Dnešní příklad vám ukážu pomocí služeb Amazonu. Konkrétně se jedná o službu Amazon Beanstalk (AWS EB), která poskytuje celé prostředí. Použiji prostředí Node.JS.

Po přihlášení do AWS zvolte Vám nejbližší region např. EU Frankfurt. V rámci tohoto region vytvořte v AWS EB novou aplikaci např. example-app.

V rámci aplikace se vytváří tzv. prostředí. Může jich být více – vývojové, produkční, testovací.

Pro ukázku jsem vytvořil prostředí s názvem ipex-exampleapp. Název prostředí musí být unikátní přes celou platformu, protože na jeho základě je vytvořen DNS název. Aplikace bude tedy dostupná na adrese http://ipex-exampleapp.eu-central-1.elasticbeanstalk.com

Vytváření prostředí ipex-exampleapp:

 

Jakmile máme prostředí vytvořeno, musíme ještě v našem počítači nainstalovat podpůrnou aplikaci (EB CLI)pomocí které můžeme náš kód do AWS EB nahrávat (deploy).

Aplikace je v Pythonu, takže první je nutné nainstalovat Python. Poté instalaci provedeme takto:

pip install awsebcli --upgrade --user

Celý návod pro instalaci je k dispozici na webu AWS EB.

 

 

Testovací aplikace v Amazon Beanstalk

Pro jednoduchost jsme připravili malou Node.JS aplikaci a umístili ji do GIT repozitáře

 

Provedeme její stažení a instalaci potřebných závislostí

git clone https://bitbucket.org/ipex/examples.git

cd examples/Server-side-integration/Nodejs/

npm -i

Nyní provedeme konfiguraci EB CLI klienta

(předpokladem je připravený a funkční SSH klíč nastavený v AWS EB)

eb init (při konfiguraci vybereme region, aplikaci a prostředí)

5) eu-central-1 : EU (Frankfurt)

1) example-app

Jakmile máme klienta nastaveného, můžeme nahrát zdrojový kód do AWS EB

eb deploy

Aplikace má 2  základní routy:

Ukládání dat

 

Celé námi použité URL –  http://ipex-exampleapp.eu-central-1.elasticbeanstalk.com/webhook/test

 

Stažení dat

 

Celé námi použité URL –  http://ipex-exampleapp.eu-central-1.elasticbeanstalk.com/webhook/test

 

 

Softwarový SIP telefon Microsip

Nahrání aplikace do Amazonu pár minut zabere, takže si mezitím můžeme připravit VoIP klienta pro testování. Pro běžného webového programátora je tato část nejméně příjemná, protože VoIP oblast je mu často cizí. Zkusím tedy popsat co nejjednodušeji.

Od správce ústředny si je třeba vyžádat

  • Telefonní číslo např. 555555555
  • Adresu ústředny např. example-pbx.voipex.io
  • SIP Login např. sipucet20
  • SIP password např. tajneheslo

Pro testování je ideální malý lehký testovací SW VoIP telefon, který je rychlý a potřebuje minimum prostředků. Doporučuju tedy https://www.microsip.org/

Po instalaci vyplníme konfigurační údaje takto

 

 

 

 

 

 

 

 

 

 

 

 

 

 

POZOR: transport je nutné přepnout na UDP

 

Pokud se přihlášení do ústředny podaří, bude vlevo dole svítit zelená ikona

 

 

 

 

Konfigurace webhooku

Po přihlášení do ústředny naleznete v menu API -> Webhook nastavení.

 

URL – adresa Vašeho webového serveru, který přijme a zpracuje Webhook

login/heslo – přihlašovací údaje pro HTTP BASIC ověření pokud chcete Vaši stránku zabezpečit. Pro testování není povinné, ale pro běžný provoz doporučuji.

 

 

Ukázkový hovor a zobrazení dat

Nyní máme konečně celé prostředí připraveno a můžeme začít sklízet ovoce

Z libovolného telefonu si zavoláme na číslo, které jsme dostali od správce ústředny přiděleno.

Poté se v aplikaci můžeme podívat jaká data byly vygenerovány.

Jednoduše stačí v prohlížeči zavolat http://ipex-exampleapp.eu-central-1.elasticbeanstalk.com/webhook/test a zobrazí se nám JSON soubor, který si můžeme lokálně uložit

 

Obsah může vypadat např. takto

[{
"EventName":"NewCall",
"From":"777777777",
"To":"555555555",
"Line":null,
"Direction":"incoming",
"UniqueId":"1517822542.42685"
},
{
"EventName":"Ringing",
"From":"777777777",
"To":"20",
"Line":"20",
"Direction":"incoming",
"UniqueId":"1517822542.42685",
"Email":"",
"Login":"cervenka@ipex.cz"
},
...]

Další podrobnou dokumentaci včetně příkladů naleznete na https://ipexas.atlassian.net/wiki/spaces/VD/pages/7405779/Server+side+integration

TIP: Pokud Vám tento způsob přijde jako příliš složitý, nabízíme i speciální aplikaci, do které si již pouze napojíte svá data. Realtime komunikaci s ústřednou zajistí naše aplikace CTI okno. Více o ní se dozvíte v některém z dalších článků.

 

Marek Červenka
IPEX a.s.

 

Máte k článku nějaké dotazy? Pošlete je na email cervenka(zavináč)ipex.cz a já se je pokusím zodpovědět.

 

 

Facebook Twitter LinkedIn Google+