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.jsonalapján dolgozik - a
state.jsonfigyelmen 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→ hanganyagok202310/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
- API vagy config hiba → nem történik feldolgozás
- Feldolgozás előtt hiba → leállás
Megfelelő működés
- Folyamatban lévő hívásba fut
→ leáll, menti az állapotot
→ következő futáskor újrapróbálja
- Minden feldolgozva
→ menti az utolsó ID-t
→ következő futás (cdrid + 1)-től indul