I recently started to build/update my FreePBX Asterisk server, and noticed that there were no CDR (Call Detail Records) being recorded…
Despite googling around it, I could not find a good solution, until I noticed that the libraries being pulled in from ‘/usr/lib/odbc/’ had version 5 in them, and my installation had version 8…
So, I had downloaded the wrong ODBC library (why does FreePBX/asterisk use ODBC anyway?).
ls -la /usr/lib/odbc/
total 80160
drwxr-xr-x 2 root root 4096 Aug 17 15:03 ./
drwxr-xr-x 112 root root 12288 Aug 7 13:09 ../
lrwxrwxrwx 1 7161 31415 16 Mar 9 01:18 libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 7161 31415 23772232 Mar 9 01:18 libmyodbc8a.so*
-rwxr-xr-x 1 7161 31415 23793016 Mar 9 01:18 libmyodbc8w.so*
lrwxrwxrwx 1 7161 31415 13 Mar 9 01:18 libssl.so -> libssl.so.1.1
Meanwhile, the file /etc/odbcinst.ini shows
cat /etc/odbcinst.ini
[MySQL]
Description=ODBC for MySQL
Driver=/usr/lib/odbc/libmyodbc5w.so
Setup=/usr/lib/odbc/libodbcmy5S.so
FileUsage=1
On to the solution… You’ll find the installation instructions (or FreePBX on Ubuntu) at https://wiki.freepbx.org/display/FOP/Installing+FreePBX+14+on+Ubuntu+18.04
And the offending part is at “Install MySQL ODBC Connector / The MySQL ODBC connector is used for CDRs. “
mkdir -p /usr/lib/odbc
curl -s https://cdn.mysql.com/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.11-linux-ubuntu18.04-x86-64bit.tar.gz | \
tar -C /usr/lib/odbc --strip-components=2 --wildcards -zxvf - */lib/*so
Should basically be substituted with:
mkdir -p /usr/lib/odbc
curl -s https://dev.mysql.com/get/Downloads/Connector-ODBC/5.3/mysql-connector-odbc-5.3.14-linux-glibc2.12-x86-64bit.tar.gz | \
tar -C /usr/lib/odbc --strip-components=2 --wildcards -zxvf - */lib/*so
And, now you’re getting the ODBC 5 drivers, instead of the 8 drivers (which might be compatible calling-wise, but not name-wise).
The /usr/lib/odbc should now look like:
root@nuc:~# ll /usr/lib/odbc/
total 80160
drwxr-xr-x 2 root root 4096 Aug 17 15:03 ./
drwxr-xr-x 112 root root 12288 Aug 7 13:09 ../
lrwxrwxrwx 1 7161 31415 16 Mar 9 01:18 libcrypto.so -> libcrypto.so.1.1
-rwxr-xr-x 1 7161 31415 17239614 Oct 28 2019 libmyodbc5a.so*
-rwxr-xr-x 1 7161 31415 17259773 Oct 28 2019 libmyodbc5w.so*
-rwxr-xr-x 1 7161 31415 23772232 Mar 9 01:18 libmyodbc8a.so*
-rwxr-xr-x 1 7161 31415 23793016 Mar 9 01:18 libmyodbc8w.so*
lrwxrwxrwx 1 7161 31415 13 Mar 9 01:18 libssl.so -> libssl.so.1.1
After download the 5.3 drivers restart asterisk with
service asterisk restart
And you should start seeing CDR records in FreePBX.