Sběrný modul CCM gatherer sbírá data o hovorech z Cisco Call Manageru. Připojuje se přímo na CCM databázi a data ukládá do systému Calom do databáze společné pro všechny sběrače. Data mapuje na odpovídající položky databáze Calomu. Sbíraná data jsou:
CDR.dateTimeDisconnect |
Údaj o konci
hovoru. |
CDR.duration |
Délka hovoru v
sekundách. |
CDR.callingPartyNumber |
Volající číslo. |
CDR.finalCalledPartyNumber |
Původně volané
číslo. |
CDR.originalCalledPartyNumber |
Číslo, na které byl
hovor nakonec spojen. |
CMR.numberOctetsSent + CMR.numberOctetsReceived |
Údaj o přeneseném
množství dat. Ukládá se pouze součet odchozích a
příchozích. |
CDR.authCodeDescription |
Autorizační kód. |
CDR.clientMatterCode |
Uživatelský kód. |
Data, která jsou sbírána a používána, ale ukládají se pouze údaje vypočtené na jejich základě:
CDR.globalCallID_callId, CDR.globalCallID_callManagerId |
Tyto údaje se používají pro jednoznačnou identifikaci hovoru, např. pro zjištění, zda daný hovor již byl stáhnut. |
CDR.dateTimeConnect |
Používá se pro kontrolu konzistence dat. |
CDR.OrigCause_value, CDR.DestCause_value |
Používají se pro určení, zda má být hovor ignorován nebo přidán do databáze. |
CDR.callingPartyNumberPartition |
V současné době se nepoužívá, ale je možné tento údaj mapovat na položku adom nebo acat. |
CDR.finalCalledPartyNumberPartition |
V současné době se nepoužívá, ale je možné tento údaj mapovat na položku bdom nebo bcat. |
CDR.originalCalledPartyNumberPartition |
V současné době se nepoužívá, ale je možné tento údaj mapovat na položku cdom nebo ccat. |
CDR.lastRedirectDn |
Používá se k určení, zda jde o hovor přesměrovaný. |
Calom CCM gatherer sbírá data o hovorech periodicky (s uživatelsky volitelnou periodou, min. 1 minuta). Při každém sběru se spojí s Cisco CCM databázemi CDR a CMR, a načte data. Je možné jej nastavit do režimu, kdy data z databáze po stáhnutí smaže nebo je může ponechat. Pro určování, zda daná data již stáhl, používá techniku "plovoucího okna" (s nastavitelnou délkou, defaultně 24 hodin), kdy ve svých datových strukturách uložen seznam všech hovorů od nejnovějšího načteného do velikosti okna (např. 24 hodin) dozadu. Hovory starší než je hranice okna, jsou automaticky ignorovány. Pokud je nastaveno mazání záznamů, je možné nepoužívat "plovoucí okno" a stahovat vždy všechny hovory.
Calom databáze obsahuje následující základní informace o hovorech:
flags |
Různé údaje o hovoru
(Event, Outgoing, Incoming, Internal, Long-duration, Terminated,
MCT, DISA, LCR, ECF, Route-optimization, System-reload, Transfer,
Intrusion, Conference, Recall-to-route, Alt-route-select,
Op-extended, Ans-diff-dial, Congestion, Test-call, FAC-rest-level,
Data, Injected, Auth-code used, Acct-code-used,
Soft-metering). |
when |
Údaj o čase hovoru (čas ukončení) s přesností na sekundy. |
duration |
Doba trvání hovoru (v sekundách). |
srcid |
ID zdroje dat, většinou ID ústředny. |
anum, bnum, cnum, pnum |
Volající účastník - "telefonní číslo", účastník, který hovor příjal (answering party), původně volaný účastník a účastník, na jehož účet byl hovor proveden (pokud byl např. použit autorizační kód). Je možné tyto údaje prefixovat a suffixovat dalšími údaji... |
pulses |
Počet pulzů z ústředny. Může sloužit pro tarifikaci nebo jako další informace o hovoru. |
op-queue-time |
Doba strávená ve frontě operátorky. |
queue-time |
Doba strávená v ostatních frontách. |
outgoing-trunk |
Odchozí trunk (typ string). Podle něj je možné rozlišit, přes jaký trunk z ústředny odešly. |
auth-code |
Autorizační kód. Používá se pro tarifikaci a určení pnum. |
account-code |
Kód účtu. Používá se pro tarifikaci a určení pnum. |
aux-code |
Doplňkový přístupový kód. |
Následující údaje jsou systémem k hovoru dynamicky přidávány:
adomain, bdomain, cdomain, pdomain |
Doména účastníků anum, bnum, cnum, pnum. Jedná se o záznam v hierarchické stromové struktuře domén (dirdb). Název může mít tvar např. "Prodejny.Mlada_Boleslav.financni". |
aname, bname, cname, pname |
Uživatelsky definovaná jména přiřazená anum, bnum, cnum, pnum. |
acomment, bcomment, ccomment, pcomment |
Uživatelsky definované komentáře přiřazené anum, bnum, cnum, pnum. |
acat, bcat, ccat, pcat |
Kategorie uživatelů anum, bnum, cnum, pnum. Tyto kategorie jsou číselné hodnoty a používají se pro tarifikaci. Jako kategorie může být např. "Mexiko", kam budou spadat všechna mexická čísla nebo "Finanční", kam budou spadat čísla z finančního oddělení. Systém kategorií je provázán se systémem hierarchické struktury domén. |
pulsecost |
Cena za 1 pulz hovoru. U některých operátorů může sloužit pro tarifikaci, dnes je však nejčastěji nevyužívaná. |
cost |
Výsledná vypočtená cena hovoru. Výpočet probíhá v modulu tarifikace, který je popsán níže. |
Přidávání doplňujících údajů se provádí v době
generování reportu. Přiřazení "telefonního čísla"
(např. anum) ke jménu, do domény, do kategorie, apod. se provádí
v modulu dirdb, což je databáze hierarchické struktury
domén, kde jsou uloženy informace o účastnících. Tento systém
odpovídá systému partitions u Cisco Call Manageru, ale navíc
podporuje stromovou hierarchii.
Existuje několik programů pro
synchronizaci dirdb s různými informačními systémy (např.
DNA).
Poznámky:
Údaje jsou celá čísla nebo řetězce s předdefinovanou maximální délkou 31 nebo 63, kterou je ale možné na požádání (při instalaci) nechat rozšířit.
Reporty jsou strukturované výstupy dat o hovorech ze systému Calom. Každý report je řízen definicí reportu, což je textový soubor popisující formát výstupu, a omezeními na výběr hovorů zahrnutých do reportu.
Výběr hovorů se řídí nejprve časovým rozsahem (jako např. "minulý měsíc" nebo "dnes 12:35 - 15:00") a následně dalšími atributy, např. výběr dnů v týdnu, typ hovoru (odchozí, příchozí, konferenční, ...), interval pro délku nebo cenu hovoru, zroj a cíl hovoru, na koho byl účtován, autorizační a account-kódy, apod. Je možné sestavit si další podmínky na hovor pomocí filtračního modulu, kde se zadává seznam predikátů, které hovor musí nebo naopak nesmí splňovat.
Samotný formát reportu je určen data-flow popisem - definicí reportu. Zde se určuje (fiktivní) tok dat o hovorech, s tím že v určitých uzlech se dělají součty/minima/maxima, hovory se podle určitých kritérií řadí nebo se do toku vybere jen určitá podmnožina. Jiné druhy uzlů rozvětvují toky dat nebo tisknou výstup.
Všechny položky z informací o hovorech je možné v reportu zobrazit, u položek jako datum je možné nadefinovat formáty výstupu (aby se např. pondělí zobrazovalo jako "Po", "Pondělí", "Mon", atp.).
Reporty je možné zadávat přes konzolového Calom klienta, klienta WebCalom, speciální program na příkazovou řádku creport nebo přímou komunikací s Calom serverem přes TCP/IP.
Poznámky:
Definice reportu je textový soubor, který může vkládat další soubory pro sdílení společných částí (např. pro tisk reportů v různých jazycích).
Nejčastěji používané definice reportu jsou dodávány se systémem (v češtině a angličtině).
Pro definici reportu je k dispozici (samostatně dodávaný) grafický nástroj Report editor.
Formát reportu je popsán v samostatném dokumentu ("intro", v angličtině).
Základní popis protokolu komunikace s Calom serverem je uveden v samostatném dokumentu "intro".
Výstup reportu je určen definicí reportu. Může to být textový soubor, HTML, CSV, XML nebo PDF.
Poznámky:
Je podporována převod z XML pomocí XSL:FO transformace.
V budoucnosti bude rozšířen o podporu RTF nebo DOC.
Výpočet ceny hovoru (příp. i dalších vlastností) je prováděn tarifikačními skripty. Tyto skripty jsou napsány ve zjednodušeném jazyce C s rozšířeními pro tarifikaci (jako např. přímá podpora stringů nebo data a času). Tyto skripty běží na Calom serveru a je možné je za běhu systému přidávat nebo měnit (změna se projeví při dalším spuštění reportu).
Tarifikační skripty se nespouštějí už při sběru dat, ale až při generování reportu (skript se aplikuje na každý hovor). Díky tomu je možné zvolit jiný tarifikační skript a vyzkoušet vygenerovat report s jinou tarifikací.
Tarifikační skripty mohou pracovat se všemi údaji o hovoru, mohou tedy (kromě výpočtu ceny) měnit i telefonní čísla, názvy nebo přidávat komentáře.
Tarifikační skripty se mohou skládat z mnoha souborů. Toto je používáno např. pro uložení tarifikačních tabulek zvlášť, mimo ostatní kód, (což umožňuje pružnější změnu tabulek).
Poznámky:
Základní sada reportů je dodávána se systémem.
Tarifikační skripty je možné upravovat přes rozhraní WebCalom (není standardní součástí).
Pokud je víc dostupných tarifikačních skriptů, je možné při spouštění reportu specifikovat, který se použije.
Před odstraněním používaného skriptu z běžícího systému je třeba nejdřív odstranit skripty, které jej používají. Při změně skriptu systém povolí změnu i používaného skriptu, ale jen pokud má stejný interface.
Dva současně běžící reporty mohou používat různé tarifikační skripty.