Databáze uživatelů dirdb systému Calom

Úvod

Při generování reportu se provádí přiřazení účastníků k telefonním číslům (a jejich prefixům). Tato přiřazení jsou uložena v databázi dirdb. Tato databáze obsahuje informace, které se zobrazují v reportu (např. jméno účastníka) i informace používané pro tarifikaci (kategorie).

Formát databáze dirdb

Databáze dirdb je hierarchická struktura skládající se ze dvou typů záznamů: organizačních domén (ORG) a záznamů o účastníkovi (DIR). Organizační domény tvoří stromovou strukturu podobnou složkám/adresářům v souborovém systému. Plné jméno organizační domény je tvořeno jmény všech nadřazených domén a jména doměny, oddělených tečkou (např. "ext.Evropa.Česká republika").
DIR záznam leží vždy v právě jedné organizační doméně. Plné jméno DIR záznamu je tvořeno plným jménem organizační domény kam patří a jménem záznamu, oddělených tečkou (např. "Prodej.Hana Svobodová").

Záznamy ORG neobsahují žádné další informace kromě jména a indikátorů (flags - použité pouze pro interní potřeby). Záznamy DIR obsahují:

Algoritmus přiřazení DIR záznamu k číslu

Při generování reportu se k hovorům na základě telefonního čísla a dalších údajů (CIL-kód) přiřadí DIR záznamy.
Ke každému hovoru se přiřadí až 4 DIR záznamy:

K číslům ANUM, BNUM a CNUM se nejdřív hledá shoda s nějakým záznamem DIR (v položce DIR) a pokud takový záznam není nalezen, hledá se DIR záznam s flagem P (PREFIX) a nejdelším prefixem odpovídajícím danému číslu.
Pro číslo PNUM se nejdřív zjišťuje, zda nebyly použity autorizační nebo account kódy. Pokud ano, hledá se DIR záznam podle nich (v položce CILC) a pouze pokud záznam není nalezen, postupuje se jako v případě čísel ANUM, BNUM a CNUM.

Příklad dirdb databáze

Typická databáze dirdb se třemi organizačními jednotkami první úrovně může vypadat např. (DIR záznamy jsou označené prefixem <x>):

ext
    Evropa
       <x> Albánie           000355
       ...
       Česká republika
           <x> Brno          05
           <x> Plzeň         019
           <x> Praha         02
           <x> ostatní       01
           <x> ostatní       03
           <x> ostatní       04
           <x> ostatní       06
           <x> ostatní       07
           <x> ostatní       08
           <x> ostatní       09
        ...
        <x> Německo          00049
    Asie
        <x> Čína             00086
      ...
   ...
Vývoj
    skupina 1
        <x> Josef Novák      2456
        <x> Miroslav Pokorný 2457
    skupina 2
        <x> Pavel Prokeš     2510
        <x> Miroslav Pokorný 2522
Prodej
    <x> Antonín Svoboda      2568
    <x> Hana Svobodová       2571
Kořen celé hierarchie je organizační doména ".", pod ní jsou organizační domény "ext" (pro vnější čísla), "Vývoj" a "Prodej" (oddělení vývoje, resp. prodeje).
V rámci organizašní domény "Evropa", celým jménem "ext.Evropa", jsou jak DIR záznamy ("Albánie"), tak další organizační domény ("Česká republika").

API pro přístup k databázi dirdb

Databázi dirdb je možné číst i modifikovat prostřednictvím Calom CLI rozhraní.
Modifikace dirdb databáze probíhá pouze v paměti serveru a po skončení modifikace je třeba výsledek permanentně uložit pomocí příkazu "ORG DUMP" (nebo "DIR DUMP").
Alternativou je příkaz "DIRDB AUTODUMP ON", který způsobí uložení databáze po každém kroku.
Během modifikace je možné databázi uzamknout pro zápis, aby dva uživatelé nemohli databázi modifikovat současně. Je třeba databázi explicitně odemknout nebo použít "ORG DUMP", který databázi odemkne.
V případě nutnosti je možné databázi explicitně odemknout. Na rozdíl od všech ostatních zdrojů se zámek na dirdb databázi automaticky neuvolňuje ukončením CLI spojení.
Číst databázi je možné i v uzamčeném stavu.

Příkazy CLI rozhraní:
ORG LIST <org> Vypiš organizační domény v doméně <org>.
ORG ADD <org> Vytvoř novou organizační doménu <org>.
ORG DELETE <org> Odstraň organizační doménu <org>. Musí být prázdná.
ORG RENAME <org> <new-name> Přejmenuj organizační doménu <org> na <new-name>.
ORG DUMP Ulož databázi dirdb na disk. Vytvoří zálohu původní databáze.
DIR LIST <org> Vypiš DIR záznamy v doméně <org>.
DIR ADD <org> <num> <name> <cat> [<cilc>] [<comment>] [PREFIX] Přídej DIR záznam do organizační domény <org>.
<num> je číslo účastníka, <name> je jméno, <cat> je (číselná) kategorie, <cilc> je CIL-kód, <comment> je komentář (libovolný text).
Parametry <num> a <cilc> (je-li specifikován) musí být unikátní.
Parametry <cilc>, <comment> a PREFIX jsou nepovinné.
DIR DELETE <num> Smaž DIR záznam s číslem <num>.
DIR RENAME <old-name> <new-name> Změň číslo DIR záznamu z <old-name> na <new-name>.
DIR MOVE <num> <org> Přesuň DIR záznam s číslem <num> do organizační domény <org>.
DIR DUMP Stejné jako ORG DUMP.
DIR INFO <num> Najdi DIR záznam s číslem <num>.
DIR CILINFO <cilc> Najdi DIR záznam s CIL-kódem <cilc>.
DIRDB LOG [ON|OFF] [LOGSIZE] Kontroluje zaznamenávání (log) o všech dirdb operacích.
ON - zapíná zaznamenávání, OFF - vypíná zaznamenávání. LOGSIZE - nastaví maximální velikost log souboru.
DIRDB RESOLVER <url> [GLOBAL] Přidá externí zdroj dirdb dat s URL <url>.
Od verze Calom serveru 2.3.0.
DIRDB AUTODUMP Nastaví automatické ukládání dirdb databáze po každé operaci.
Od verze Calom serveru 2.3.1.
DIRDB LOCK Zamkne dirdb databázi.
Pokud je jedním CLI spojením zamčená databáze, není možné jí do odemčení modifikovat z jiného CLI spojení.
Od verze Calom serveru 2.3.1.
DIRDB UNLOCK [FORCE] Odemkne dirdb databázi.
Pokud je jedním CLI spojením zamčená databáze, není možné jí do odemčení modifikovat z jiného CLI spojení.
Parametr FORCE specifikuje, že má být odemčena i když je zamčena jiným CLI spojením. Na rozdíl od všech ostatních zdrojů se zámek na dirdb databázi automaticky neuvolňuje ukončením CLI spojení.
Od verze Calom serveru 2.3.1.

Bezpečnostní strategie

Calom server nevynucuje způsob zabezpečení komunikace mezi jednotlivými moduly. Komunikace probíhá otevřeným TCP spojením, a zabezpečení spojení musí provést správce systému.
Jedním z řešení je SSL tunneling, který pro komunikaci vytvoří zabezpečené spojení.
Podrobnější rozbor bezpečnosti najdete v dokumentu Bezpečnostní aspekty.

Popisovaná verze Calom serveru: 2.3.1
Poslední úprava: 29.8.2006