Kihagyás

CapITris Archiver

A CapITris Archiver célja, hogy a CapITris telefonos rendszerén keresztül futó hívások adatait és hanganyagait a CapITris API-n keresztül lekérje és lementse.

A program egy Java alkalmazás (CapITrisArchiver.jar), adatbázis-kapcsolatot nem igényel.

A program futtatása

A program indítható manuálisan, de javasolt ütemezett feladatként futtatni.

Több példányban nem futhat — ezt egy run.lock fájl biztosítja.

Indítási módok:

java -jar CapITrisArchiver.jar

java -jar CapITrisArchiver.jar -nostatelistening
  • -nostatelistening esetén:
  • csak a config.json alapján dolgozik
  • a state.json figyelmen kívül marad

A state.json fájl:

  • a futás végén jön létre/frissül
  • tartalmazza:
  • utolsó feldolgozott hívás
  • hiba esetén a hibapont

config.json

Kötelező konfigurációs fájl.

Példa

{
  "output_dir": "D:/output",
  "api_config": {
    "apikey": "APIKEY...",
    "apiurl": "https://api.capitris.hu/v3/api/ugyfel/"
  },
  "cdr_config": {
    "cdr_mp3name": "[CDRID]_[INTERVIEWID]_[PHONE]_[TIME]",
    "cdr_startdate": "2023.10.25",
    "cdr_enddate": "2023.10.25",
    "cdr_savelist": true,
    "cdr_savemp3": true,
    "cdr_storefields": "cdrid,interviewid,historyid,listitem_num,start_time"
  },
  "smtp_config": {
    "sendemail_iferror": true,
    "sender_to": "test@support.hu",
    "smtp_tls": 3,
    "smtp_host": "smtp.office365.com",
    "sender_from": "Teszt <teszt@teszt.hu>",
    "smtp_username": "teszt@teszt.hu",
    "smtp_password": "PWD",
    "smtp_port": 587
  }
}

Mezők

Mező Típus Kötelezőség Leírás
output_dir szöveg opcionális Mentési mappa
api_config objektum kötelező API konfiguráció
api_config/apikey szöveg kötelező API kulcs
api_config/apiurl szöveg kötelező API URL
cdr_config objektum kötelező Letöltési beállítások
cdr_mp3name szöveg opcionális Fájlnév sablon
cdr_startdate dátum kötelező Kezdő dátum
cdr_enddate dátum opcionális Végdátum
cdr_savelist boolean opcionális Lista mentése
cdr_savemp3 boolean opcionális Hanganyag mentése
cdr_storefields szöveg kötelező Exportált mezők
smtp_config objektum opcionális Hibajelző e-mail
smtp_config/sendemail_iferror boolean opcionális Küldjön-e e-mailt
smtp_config/sender_to szöveg kötelező Címzett
smtp_config/smtp_host szöveg kötelező SMTP szerver
smtp_config/smtp_port integer kötelező Port

state.json

A program automatikusan generálja.

Példa

{
  "cdr_lastrunstate": 0,
  "cdr_lastcdrid": 1051021,
  "cdr_lastdate": "2023.10.25 19:42:16",
  "cdr_laststopped": "2023.10.25 23:19:33"
}

Mezők

Mező Típus Leírás
cdr_lastrunstate integer 0=ok, 1=részleges, 2=hiba
cdr_lastcdrid integer Utolsó feldolgozott hívás
cdr_lastdate időpont Hívás kezdete
cdr_laststopped időpont Futás vége

Mentési szerkezet

A mentés havi bontásban történik (yyyyMM).

Struktúra:

  • cdrlists → napi TXT fájlok
  • mp3 → hanganyagok

    202310/cdrlists/cdrlist_20231001.txt 202310/mp3/1000001_...mp3

Működés

Kétféle futási mód:

1. config.json alapján

  • teljes intervallum feldolgozása
  • napi bontás
  • meglévő fájlokat újragenerálja

2. state.json alapján

  • folytatás az utolsó feldolgozott ponttól
  • nem törli a meglévő adatokat
  • hozzáfűzi az új rekordokat

Futás kimenetele

Hibás esetek

  1. API vagy config hiba → nem történik feldolgozás
  2. Feldolgozás előtt hiba → leállás

Megfelelő működés

  1. Folyamatban lévő hívásba fut

→ leáll, menti az állapotot
→ következő futáskor újrapróbálja

  1. Minden feldolgozva

→ menti az utolsó ID-t
→ következő futás (cdrid + 1)-től indul