cdr-Felder: start, answer und end nicht in der MySQL

chebrise

Neuer User
Mitglied seit
25 Jul 2006
Beiträge
69
Punkte für Reaktionen
0
Punkte
0
hallo Forum,

bei mir läuft Asterisk 1.4.21
der CDR wird erfolgreich in die MySQL Tabelle geschrieben, nur dass drei Felder fehlen.
Die Felder start, answer und end werden nicht in die DB geschrieben obwohl sie in der /var/log/asterisk/cdr-csv/Master.csv aufgeführt sind.

Was kann ich dagegen tuen?

Das Feld calldate ist vom Typ DATETIME, also Date und TIME oder DATETIME!?!?
Muss ich einfach an der richtigen Stelle Felder zu der MySQL Tabelle zufügen, wenn ja welchen Typ müssen die haben (DATE, Time oder DATETIME)?

Und die Master CSV hat auch eine völlig andere Reihenfolge als die Daten in der MySQL, haben die überhaupt etwas miteinander zu tuen?

Was kann ich tuen damit alles was in die /var/log/asterisk/cdr-csv/Master.csv rein kommt auch in die MySQL Tabelle rein kommt???
 
ok, ich bin zumindest der Antwort ein wenig näher gekommen.
In der cdr_addon_mysql.c steht natürlich nichts von Feldern wie start, answer und stop. Gefunden habe ich da z.B. folgende Zeilen:
Code:
#ifdef MYSQL_LOGUNIQUEID
		sprintf(sqlcmd, "INSERT INTO %s (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield) VALUES ('%s','%s','%s','%s','%s', '%s','%s','%s','%s',%i,%i,'%s',%i,'%s','%s','%s')", dbtable, timestr, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, cdr->duration, cdr->billsec, ast_cdr_disp2str(cdr->disposition), cdr->amaflags, accountcode, uniqueid, userfielddata);
#else
		sprintf(sqlcmd, "INSERT INTO %s (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,userfield) VALUES ('%s','%s','%s','%s','%s', '%s','%s','%s','%s',%i,%i,'%s',%i,'%s','%s')", dbtable, timestr, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, cdr->duration, cdr->billsec, ast_cdr_disp2str(cdr->disposition), cdr->amaflags, accountcode, userfielddata);
#endif

da sieht man deutlich, warum die uniqueid auch in die MySQL Tabelle kommt wenn man sie laut voip-info.org in dieser Datei am Anfang definiert.
Stellt sich jetzt die Frage ob ich die fehlenden drei einfach dazu schreiben kann... ich glaube nein, obwohl Glaube in die Kirche gehört... aber beim Überfliegen des Codes sehe ich öfters diverse Felder wiederholt auftauchen. Also ist es wahrscheinlich nicht damit erledigt wenn man nur die oben gezeigten Zeilen editiert.

Wenn mir damit jemand helfen könnte wäre das super.
Ich spreche nicht fließend C aber verstehe doch wenn jemand mit mir C reden möchte.

Ich kann doch nicht der einzige sein der besagte Felder in der MySQL haben möchte. Google bringt mir außer jemandem mit dem gleichen Problem keine Lösung :(
Oder ist es einfacher als ich dachte?
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.