We recently switched from using cdr_mysql on Asterisk (now depreciated) to crd_obdc + cdr_adaptive_odbc to store CDR logs to MySQL. Below is the process for doing so.
Install needed libraries.
1. apt-get install libmyodbc unixodbc-bin 2. sudo apt-get install unixODBC unixODBC-dev
Lookup socket:
mysqladmin -u root -p version
Update /etc/odbc.ini – set socket to location found in above command:
[MySQL-ivr_test] Description = ivr_test MySQL ODBC Driver = MySQL Socket = /var/run/mysqld/mysqld.sock Server = localhost User = root Password = password Port = 3306 Database = ivr_test Option = 3
Find you driver & setup paths:
find / -name 'lib*odbc*.so'
and then update /etc/odbcinst.ini (look for the two files “libmyodbc.so” & “libodbcmyS.so” from the above command and then set the Driver, Setup fields correspondingly):
[MySQL] Description = ODBC for MySQL Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so FileUsage = 1
Install the ODBC driver:
odbcinst -i -d -f /etc/odbcinst.ini
Install your system DSN:
odbcinst -i -s -l -f /etc/odbc.ini
Test:
odbcinst -s -q
Try and connect:
isql -v MySQL-ivr_test MYSQLUSER MYSQLUSERPASSWORD
Almost there, now on the asterisk side of things:
Update /etc/asterisk/res_odbc.conf
[MySQL-ivr_test] enabled => yes dsn => MySQL-ivr_test username => username password => paswordhere preconnect => yes
Update /etc/asterisk/cdr_adaptive_odbc.conf
[first] connection=MySQL-ivr_test table=users_call_logs alias start => calldate
See also IVR set up in Asterisk here.
Thanks to:
http://www.kaffeetalk.de/how-to-setup-and-configure-mysql-with-unixodbc-under-ubuntu-14-04/
http://nerdvittles.com/?p=604
http://www.asteriskdocs.org/en/3rd_Edition/asterisk-book-html-chunk/installing_configuring_odbc.html