szervusztok!
adot nálunk egy panasonic telefonközpont. eddig rá volt kötve egy tarifa számláló gép és egy taxameter nevű csoda programmal. ezt szeretném lecserélni egy linuxra. a cél az lenne, hogy a telefonközpont üzeneteit kéne olvasni és egy sql adatbázisba pumpálni. azt szeretném kérdezni, hogy valaki foglalkozot-e esetleg valami hasonlóval?
arra gondoltam, hogy egy script figyelné folyamatosan a portot és ha jön infó akkor megfelelő paranccsal egy mysql adatbzisba nyomná.
csak sajna nem tudom a soros port olvasásának a menetét.
- 1477 megtekintés
Hozzászólások
cséréld az egész központot :>
Core2Duo T7100, 4G, Ubuntu 9.04, 2.6.30
- A hozzászóláshoz be kell jelentkezni
hát ez nekem is eszembe jutott. de sajna arra pénzt nem kapnék
- A hozzászóláshoz be kell jelentkezni
régi jó pana központok a világ végéig elmennének, miért kéne kidobni?
- A hozzászóláshoz be kell jelentkezni
nekem alapvetően nincs gondom vele. szerintem bőven elég. csak inkább a vezetők akik akarnak ticsivel több mindent. de pénzt nem adnának rá. mondanám pl akarnak jobb készülékeket. de plusz digitális kártyára nem adnak lóvét.
de működni jól működik.
- A hozzászóláshoz be kell jelentkezni
Ezt le kell programoznod.
Nincs mese.
Két dolog, egyrészt a linux hogyan olvassa a soros portját.
Másrészt, a Pana magától kidobja a hívás logot, vagy pedog neked kell egy paranccsal lekérned.
Ez pedig dokumentáció...
- A hozzászóláshoz be kell jelentkezni
alapvetően ha érzékel csatlakozást akkor magától kitolja. ha nem akkor pufferben tárolja az utolsó 1000-t.
kipróbáltam win alatt a hyperes betárcsázással és dobja magától. nem kell külön lekérdezni. így kicsit egyszerübb is mert lényegében csak olvasni kell. illetve elötte felépíteni a csatlakozást
- A hozzászóláshoz be kell jelentkezni
Kicsit későn vettem észre a topicot, de én (részben) megcsináltam.
Nálunk egy KX-TA616 van, abból szedem (szedném) az adatokat MySQL-be.
Gentoo alatt sima csomagként fellelhető cuccokból bash scriptben összeraktam.
Figyeli a soros portot, ki-parse-olja (szép magyar szó :) belőle a szükséges adatokat és betolja az adatbázisba.
Ami még hiányzik - illetve javítandó - hogy a script folyamatos loop-ként fut, folyamatos adatbázis kapcsolattal, amit a mysql bizonyos timeout után lezár, ezért ott megdöglik a logolás. Át kéne alakítani, hogy kapott log-soronként külön nyisson egy sql kapcsolatot, írjon és zárja le, de erre eddig lusta voltam. :( Amúgy lehetne syslog-ba is logoltatni és onnan SQL-be felszívni.
Jelenleg így néz ki:
#!/bin/bash
SQLHOST="" # ertelemszeruen kitoltendok, modositandok
SQLUSER=""
SQLPASS=""
SQLDB=""
SERIAL="/dev/ttyS0"
MYDIR="/opt/panalog"
logserial -t $SERIAL \
| sed --unbuffered -e "s/*/* /" -e "s/\/ /\/0/" -e "s/'/\\\'/g" -e 's/"/\\\"/g' \
| awk -f $MYDIR/rules.awk \
| mysql --user=$SQLUSER --password=$SQLPASS --host=$SQLHOST \
--database=$SQLDB --force -q --reconnect --unbuffered --wait
És a rules.awk:
{
SQLTABLE="panasonic"
if ( NF >= 8 && $1 != "Date" && $1 != "" ) {
DATE=$1
if ( $2 == "*" ) {
TIME=$3
EXT=$4
CO=$5
TRANS="Yes"
if ($6 == "<") {
NUMBER=$7
DURATION=$9
} else {
NUMBER=$6
DURATION=$7
}
} else {
TIME=$2
EXT=$3
CO=$4
TRANS="No"
if ($5 == "<") {
NUMBER=$6
DURATION=$8
} else {
NUMBER=$5
DURATION=$6
}
}
if ( NUMBER == "incoming" ) {
DIRECTION="In"
} else {
DIRECTION="Out"
}
print "INSERT into "SQLTABLE" (date,time,ext,co,direction,number,duration,transferred) values (STR_TO_DATE('"DATE"', '%m/%d/%y'),STR_TO_DATE('"TIME"', '%I:%i%p'),'"EXT"','"CO"','"DIRECTION"','"NUMBER"',STR_TO_DATE('"DURATION"', '%H:%i\\'%s\\\"'),'"TRANS"');"
fflush()
}
}
Bedobom GPL-be :) Ha javítottad, dobd be te is!
- A hozzászóláshoz be kell jelentkezni