CDR_TDS Driver Disappears – “does Not Provide A License Key” On Reload Attempt
Hi All
I have an Asterisk 1.8.32.3 instance that will at random intervals stop logging CDR data to MSSQL via FreeTDS.
On investigation I’ll find that the FreeTDS module has been unloaded somehow. It is not listed in cdr show status or show module like.
Trying
module load cdr_tds
results in
module cdr_tds does not provide a license key
and the module is not loaded.
The only way to get things working again is to kill Asterisk, and do a make install again.
On restart, FreeTDS is back.
Just replacing cdr_tds.so from a backup fails, Asterisk still won’t load it.
You have to replace the asterisk binary -and- the cdr_tds.so file – their sizes change as well, and a sha256sum when FreeTDS “does not provide a license key” varies for both the main asterisk binary and the cdr_tds.so module.
I have this on multiple sites very far apart, different hardware, asterisk instances compiled at widely varying times.
Anybody encountered this before?
Thanks,
2 thoughts on - CDR_TDS Driver Disappears – “does Not Provide A License Key” On Reload Attempt
The solution is to avoid proprietary software!
Asterisk’s CDRs simply do not need any of the special proprietary crack that comes with MSSQL or Oracle. MariaDB or SQLite is perfectly adequate for its needs (hell, a flat text file will do the job).
If you *really* need your CDRs in an MSSQL database, you could use MariaDB as an intermediate layer with binary logging enabled; and then use a few lines of Perl or Python to translate the binlog from MariaDB’s SQL dialect to Microsoft’s.
You should be able to handle that with CDR via ODBC and use Microsoft’s recently released ODBC drivers. The should bypass all this FreeTDS stuff and just use straight ODBC.