2024. május 1., szerda

Gyorskeresés

Mikor érkezik a következő trolibusz? - BKK Futár API feat. CUCM & UCCX

Írta: |

[ ÚJ BEJEGYZÉS ]

Egy ideje laborozom már a Cisco "telefónia" palettájának két égkövével, a CUCM-rel és az UCCX-szel (aki esetleg nem ismerné őket: mindkettő VMware ESXi alatt futtatható virtuális appliance, előbbi telefonközpont, utóbbi Call Canterként funkcionál, de szorosan integrálódnak egymáshoz).

Miután a háttérrendszerként szolgáló Shadow-ot is összeraktam (ő PHP-n íródott saját program, és azt a célt szolgálja, hogy az UCCX kéréseire rendre választ adjon), adta magát a dolog, hogy össze kéne rakni egy látványos demót, hogyan is tud ez a pár technológia együttműködni, és valami érdekes dolgot alkotni.

Ami ebben a demóban történik: egy, a telefonközponthoz kapcsolt telefonról felhívod azt a melléket, amin a demó applikáció jelentkezik, majd az bemondja, hogy a következő trolibusz X megállóból az Örs vezér tere irányába legközelebb mikor indul, perc és másodperc pontossággal.

Ha a trolibusz hamarabb jön mint 2 perc, akkor azt már nem mondja be, hanem inkább a következőt. Ha 15 percen belül nem jön, de 30 percen belül igen, bemondja hogy több mint 15 perc múlva jön a busz, ha 30 percen belül sem jön, akkor pedig arról tájékoztat.

Az adatokat a BKK Futár szolgáltatja, és figyelembe veszi a valós idejű információkat is a program.

Íme a videó:

Hogyan is van ez megoldva?
1) Elsőként kapcsolatba kell lépned a BKK Futár API-jával. Nagyon fasza API-t raktak össze, nem semmi munka van benne, szóval túl sok nyűgöd nem lesz vele (persze ha van valamennyi alapképzettséged), arra azonban figyelj, hogy nincsenek túl jól dokumentálva a kimeneti paraméterek, így lehet, hogy picit dolgoznod kell vele, mire pont azokat a dolgokat tudod kinyerni, amire neked van szükséged.

2) Másodrészt kell írnod egy háttérrendszert PHP-ban (ami lehet akár csak egy sima PHP szkript is), ami feldolgozza a BKK-tól jövő adatokat, és azt előkészíti az UCCX szkriptnek (ami majd egy egyszerű HTTP GET kéréssel fog lekérdezést indítani a PHP szkript felé). Ez amúgy egy opcionális lépés, ha ügyesen mozogsz JAVA-ban, akkor akár közvetlenül az UCCX szkriptben is lekérdezheted az információkat, nekem egy plusz réteg beiktatása egyszerűbb volt.

3) Kell lenned egy telefonközpontodnak (CUCM), amit már összeintegráltál az amúgy szintén meglévő és működő Call Center-eddel (UCCX). (Esetleg CME-nek és hozzá való CUE-nek, de az hardveres beszerzést igényel valószínűleg.)

4) Kell lenned egy csomó prompt-nak (felvett hangfájlnak), amivel elő tudod állítani a bemondani kívánt szöveget (pl.: az egy perctől a tizenöt percig 15 fájlra lesz szükséged, de a másodpercekhez szintén kell felvenned hangot, a többiről nem is beszélve).

5) Végül kell egy jól megírt UCCX szkriptednek lennie (ez az, ami megadja például, hogy mi kerüljön bemondásra, stb.). Ezzel fogod majd bemondatni helyes sorrendben a szükséges prompt-okat.

Például:

+1) És ha mindezekkel megvagy, kereshetsz egy telefonszolgáltatót, akitől bérelhetsz egy telefonszámot, majd egy Voice Gateway (és a szolgáltatódtól kapott SIP-trunk segítségével) ki tudod engedni a "publikus" éterbe is az alkalmazásod (ergo ha felhívod pl. a +36 1 123 4567-et, akkor az UCCX fog jelentkezni a bemondással).

Ha esetleg van érdeklődés a téma iránt, címlapos cikkben bővebben is kifejtem, hogyan is lehet egy ilyet, vagy hasonló dolgot összerakni. :R

Copyright © 2000-2024 PROHARDVER Informatikai Kft.