CDR ODBC Error
I am trying to get cdr via odbc to work on Asterisk 13.7.2 but I
keep getting this error:
[Feb 9 16:21:43] WARNING[2088]: cdr_odbc.c:160 execute_cb: cdr_odbc:
Error in ExecDirect: -1, query is: INSERT IGNORE INTO cdr
(calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield,peeraccount,linkedid,sequence)
VALUES ({ts ‘2016-02-09 16:21:28’},?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?)
[Feb 9 16:21:43] WARNING[2088]: res_odbc.c:612 ast_odbc_direct_execute:
SQL Execute error! Verifying connection to asterisk [asterisk]…
[Feb 9 16:21:43] WARNING[2088]: cdr_odbc.c:160 execute_cb: cdr_odbc:
Error in ExecDirect: -1, query is: INSERT IGNORE INTO cdr
(calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield,peeraccount,linkedid,sequence)
VALUES ({ts ‘2016-02-09 16:21:28′},?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?,?,?)
[Feb 9 16:21:43] ERROR[2088]: cdr_odbc.c:189 odbc_log: CDR direct execute failed
First thing I do not get is that calldate does not exist in the CDR
database (I am using the table structure that comes with the asterisk source). If I add that column then start, answer and end do not get populated when the call ends. Next question is which odbc cdr module I
should use, cdr_odbc or cdr_adaptive_odbc?
Also Asterisk has crashed at least three times with this message:
asterisk:
/builddir/build/BUILD/mysql-connector-odbc-5.2.5-src/driver/desc.c:110:
desc_free_paramdata: Assertion `aprec’ failed.
[Feb 9 16:28:48] WARNING[3781]: res_odbc.c:1405 _ast_odbc_request_obj2:
SetConnectAttr (Txn isolation) returned an error: HY000: [MySQL][ODBC
5.2(w) Driver]Lost connection to MySQL server during query
[Feb 9 16:28:48] WARNING[3781]: res_config_odbc.c:117 custom_prepare:
SQL Prepare failed![SELECT * FROM ps_domain_aliases WHERE id = ?]
[Feb 9 16:28:48] WARNING[3781]: res_odbc.c:765 ast_odbc_sanity_check:
Connection is down attempting to reconnect… Aborted (core dumped)
—
Telecomunicaciones Abiertas de México S.A. de C.V. Carlos Chávez
+52 (55)9116-91161
—
2 thoughts on - CDR ODBC Error
You should use cdr_adaptive_odbc. It is far more flexible than cdr_odbc, and is essentially a replacement for it. cdr_odbc doesn’t receive much attention as a result.
Frankly, we should probably just remove cdr_odbc.
Hello,
I am trying to get CDR work for my asterisk installation.
My OS is Ubuntu 15 with asterisk 13.8 compiled locally on the machine.
MYSQL Server version is 5.6.28-0ubuntu0.15.04.1 (Ubuntu)
Would appreciate if someone can help solving this issue
The error that I am getting:
[2016-04-15 19:24:34] WARNING[1709]: res_odbc.c:503 load_odbc_config: The ‘pooling’, ‘shared_connections’, ‘limit’, and ‘idlecheck’ options are deprecated. Please see UPGRADE.txt for information
[2016-04-15 19:24:34] WARNING[1709]: res_odbc.c:503 load_odbc_config: The ‘pooling’, ‘shared_connections’, ‘limit’, and ‘idlecheck’ options are deprecated. Please see UPGRADE.txt for information
[2016-04-15 19:24:34] WARNING[1709]: res_odbc.c:821 odbc_obj_connect: res_odbc: Error SQLConnect=-1 errno=1045 [unixODBC]
[2016-04-15 19:24:34] NOTICE[1709]: res_odbc.c:585 load_odbc_config: Registered ODBC class ‘asteriskcdrdb’ dsn->[MySQL-asteriskcdrdb]
.
The command isql MySQL-asteriskcdrdb is working fine.
isql MySQL-asteriskcdrdb
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+
Note that could help . once on the sql command line I have to issue :
1. use asteriskcdrdb
then
2. select * from cdr
I cannot issue first : select * from cdr it does not work. Could be that my connection MySQL-asteriskcdrdb is not sending the database name along ?
The following command returns errors : module reload cdr_adaptive_odbc.so
Module ‘cdr_adaptive_odbc.so’ reloaded successfully.
— Reloading module ‘cdr_adaptive_odbc.so’ (Adaptive ODBC CDR backend)
== Parsing ‘/etc/asterisk/cdr_adaptive_odbc.conf’: Found
[2016-04-15 19:31:41] WARNING[1758]: cdr_adaptive_odbc.c:135 load_config: No such connection ‘MySQL-asteriskcdrdb’ in the ‘asteriskcdrdb’ section of cdr_adaptive_odbc.conf. Check res_odbc.conf.
odbc show, returns the following
ODBC DSN Settings
—————