I’m stuck with getting cdr records stored in MySql database. I have a working realtime environment and have verified that the db connection works fine when used via res_config_mysql.conf. I’d appreciate Your help on how to get the odbc connector working as I think there’s something wrong with its configuration.
The problem presented itself as an error when making a call that was supposed to be stored in mysql cdr: Unable to retrieve database handle. CDR failed. This kept popping up every time I was trying to have a call be stored in my mysql cdr table, and I traced the problem to the odbc connector, where my knowhow is about to end.
One problem may be that odbcinst -j outputs wrong ini files, I believe I
need these to be under /etc/ instead of /usr/local/etc/, but I’m unsure about how to change those permanently.
# odbcinst -j unixODBC 2.3.2
DRIVERS…………: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size…….: 4
SQLLEN Size……..: 4
SQLSETPOSIROW Size.: 2
Odbcinst does see the connection, it reads it from
# odbcinst -q -d
I tried copying my connection information onto those files listed above and I’m not getting any errors in Asterisk logs when restarting Asterisk. However:
# echo “select 1” | isql -v MySQL
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect
Here’s the contents of odbc.ini:
Description = MySQL Asterisk database Trace = Off TraceFile = stderr Driver = MySQL
SERVER = serverip USER = myuser PASSWORD = mypass PORT = 3306
DATABASE = asterisk
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1
And here I hit a wall, how can I fix the configuration?
MySQL-asterisk is referred to in res_odbc.conf, whose label is referred to in cdr_odbc.conf. When the odbc connector starts working, is this the correct way to configure the cdr db connection in Asterisk?