Hallo VoIP-Freunde,
ich bräuchte mal eine Bestätigung von euch ob ich mit meiner Vermutung der Konfiguration richtig liege.
Ich möchte eine Datenbank anlegen in der eine Tabelle CDR existiert, in welcher alle Calls aufgelisted werden.
1.)
cdr_addon_mysql.conf.sample in /etc/astertisk kopieren und umbenennen zu cdr_addon_mysql.conf
2.)
cdr_addon_mysql.conf öffnen und ändern
bei mir:
[global]
hostname=localhost
dbname=asteriskcdrdb
table=cdr
password=password
user=asteriskcdruser
port=3306
sock=/tmp/mysql.sock
userfield=1
Mir scheint es als ob man bei einigen Fehlern den sock zu /var/run/mysqld/mysqld.sock ändern sollte.
Muss eigentlich in der cdr_addon_mysql.conf und der my.conf der selbe sock stehen ? Was empfehlt ihr da ?
Als nächstes habe ich die modules.conf geändert und folgende Zeile hinzugefügt:
load => cdr_addon_mysql.so
Mein nächster Schritt war die /etc/mysql/my.cnf zu editieren. Ich habe einfach noch die user und password Zeilen eingefügt.
[Client]
user=root
password=YES
port=3306
socket=/var/run/mysqld/mysqld.sock
Als nächstes habe ich den mysql-Server gestartet und die Datenbank angelegt.
CREATE DATABASE asteriskcdrdb;
GRANT INSERT
ON asteriskcdrdb.*
TO asteriskcdruser@localhost
IDENTIFIED BY 'password';
USE asteriskcdrdb;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
);
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
Dann habe ich den Asterisk mit 'reload' neu gestartet und auf meiner Testmachine kommt keine Fehlermeldung.
Ich habe dann einmal mit der 88 meine Voicemail aufgerufen und anschließend mit select * from cdr; den Inhalt der Tabelle abgefragt aber es stand nicht drin. Es sollte doch was drin stehen, oder funzt das nur bei ausgehenden Calls ?
Desweiteren stelle ich mir die Frage ob meine oberen Schritte ausreichend waren oder ob ich irgendwas noch machen muss (editieren, Dateien kopieren, etc.)?
Danke für eure Hilfe
Marc
ich bräuchte mal eine Bestätigung von euch ob ich mit meiner Vermutung der Konfiguration richtig liege.
Ich möchte eine Datenbank anlegen in der eine Tabelle CDR existiert, in welcher alle Calls aufgelisted werden.
1.)
cdr_addon_mysql.conf.sample in /etc/astertisk kopieren und umbenennen zu cdr_addon_mysql.conf
2.)
cdr_addon_mysql.conf öffnen und ändern
bei mir:
[global]
hostname=localhost
dbname=asteriskcdrdb
table=cdr
password=password
user=asteriskcdruser
port=3306
sock=/tmp/mysql.sock
userfield=1
Mir scheint es als ob man bei einigen Fehlern den sock zu /var/run/mysqld/mysqld.sock ändern sollte.
Muss eigentlich in der cdr_addon_mysql.conf und der my.conf der selbe sock stehen ? Was empfehlt ihr da ?
Als nächstes habe ich die modules.conf geändert und folgende Zeile hinzugefügt:
load => cdr_addon_mysql.so
Mein nächster Schritt war die /etc/mysql/my.cnf zu editieren. Ich habe einfach noch die user und password Zeilen eingefügt.
[Client]
user=root
password=YES
port=3306
socket=/var/run/mysqld/mysqld.sock
Als nächstes habe ich den mysql-Server gestartet und die Datenbank angelegt.
CREATE DATABASE asteriskcdrdb;
GRANT INSERT
ON asteriskcdrdb.*
TO asteriskcdruser@localhost
IDENTIFIED BY 'password';
USE asteriskcdrdb;
CREATE TABLE `cdr` (
`calldate` datetime NOT NULL default '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL default '',
`src` varchar(80) NOT NULL default '',
`dst` varchar(80) NOT NULL default '',
`dcontext` varchar(80) NOT NULL default '',
`channel` varchar(80) NOT NULL default '',
`dstchannel` varchar(80) NOT NULL default '',
`lastapp` varchar(80) NOT NULL default '',
`lastdata` varchar(80) NOT NULL default '',
`duration` int(11) NOT NULL default '0',
`billsec` int(11) NOT NULL default '0',
`disposition` varchar(45) NOT NULL default '',
`amaflags` int(11) NOT NULL default '0',
`accountcode` varchar(20) NOT NULL default '',
`userfield` varchar(255) NOT NULL default ''
);
ALTER TABLE `cdr` ADD INDEX ( `calldate` );
ALTER TABLE `cdr` ADD INDEX ( `dst` );
ALTER TABLE `cdr` ADD INDEX ( `accountcode` );
Dann habe ich den Asterisk mit 'reload' neu gestartet und auf meiner Testmachine kommt keine Fehlermeldung.
Ich habe dann einmal mit der 88 meine Voicemail aufgerufen und anschließend mit select * from cdr; den Inhalt der Tabelle abgefragt aber es stand nicht drin. Es sollte doch was drin stehen, oder funzt das nur bei ausgehenden Calls ?
Desweiteren stelle ich mir die Frage ob meine oberen Schritte ausreichend waren oder ob ich irgendwas noch machen muss (editieren, Dateien kopieren, etc.)?
Danke für eure Hilfe
Marc