[asterisk-users] [cdr_odbc] error: Cannot insert the value NULL into column 'calldate'
Rajkumar S
rajkumars at gmail.com
Thu Feb 26 09:35:27 CST 2009
Hi,
I am trying to get * log to mssql server. I have odbc and freetds
configured, but my insert query is missing calldate which is a NOT
NULL field in database schema.
cdr_adaptive_odbc: Insert failed on 'sqlserver:cdr'. CDR failed:
INSERT INTO cdr
(clid,src,dst,dcontext,channel,lastapp,lastdata,duration,billsec,disposition,amaflags,uniqueid)
VALUES ('1000','1000','100','sip','SIP/1000-09388800','AddQueueMember','test,Local/1000 at sip,5,,Agent/1000,Local/1000 at sip',9,9,'ANSWERED',3,'1235681438.1')
Schema is:
My table structure is:
CREATE TABLE cdr (
[calldate] [datetime] NOT NULL ,
[clid] [varchar] (80) NOT NULL ,
[src] [varchar] (80) NOT NULL ,
[dst] [varchar] (80) NOT NULL ,
[dcontext] [varchar] (80) NOT NULL ,
[channel] [varchar] (80) NOT NULL ,
[dstchannel] [varchar] (80) NOT NULL ,
[lastapp] [varchar] (80) NOT NULL ,
[lastdata] [varchar] (80) NOT NULL ,
[duration] [int] NOT NULL ,
[billsec] [int] NOT NULL ,
[disposition] [varchar] (45) NOT NULL ,
[amaflags] [int] NOT NULL ,
[accountcode] [varchar] (20) NOT NULL ,
[uniqueid] [varchar] (32) NOT NULL ,
[userfield] [varchar] (255) NOT NULL
)
How can I make sure that my insert commands reflects my database schema?
I have attached details of all my config files below.
I can connect using isql.
isql -v DSN_NAME sa password
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
When I make a call I get the following error in console:
Unable to retrieve database handle. CDR failed.
SQL Execute returned an error -1: 23000: [FreeTDS][SQL Server]Cannot
insert the value NULL into column 'calldate', table
'production.dbo.cdr'; column does not allow nulls. INSERT fails. (153)
SQL Execute returned an error -1: 01000: [FreeTDS][SQL Server]The
statement has been terminated. (55)
SQL Execute error -1! Attempting a reconnect...
Connection is down attempting to reconnect...
Disconnected 0 from sqlserver [DSN_NAME]
Database handle deallocated
Connecting sqlserver
res_odbc: Connected to sqlserver [DSN_NAME]
SQL Execute returned an error -1: 23000: [FreeTDS][SQL Server]Cannot
insert the value NULL into column 'calldate', table
'production.dbo.cdr'; column does not allow nulls. INSERT fails. (153)
SQL Execute returned an error -1: 01000: [FreeTDS][SQL Server]The
statement has been terminated. (55)
SQL Execute error -1! Attempting a reconnect...
Connection is down attempting to reconnect...
Disconnected 0 from sqlserver [DSN_NAME]
Database handle deallocated
Connecting sqlserver
res_odbc: Connected to sqlserver [DSN_NAME]
cdr_adaptive_odbc: Insert failed on 'sqlserver:cdr'. CDR failed:
INSERT INTO cdr
(clid,src,dst,dcontext,channel,lastapp,lastdata,duration,billsec,disposition,amaflags,uniqueid)
VALUES ('1000','1000','100','sip','SIP/1000-09388800','AddQueueMember','test,Local/1000 at sip,5,,Agent/1000,Local/1000 at sip',9,9,'ANSWERED',3,'1235681438.1')
a16-q1:/etc/asterisk# cat cdr.conf
[general]
enable=yes
;unanswered = no
;batch=no
;size=100
;time=300
;scheduleronly=no
;safeshutdown=yes
;endbeforehexten=no
[csv]
usegmtime=yes ; log date/time in GMT. Default is "no"
loguniqueid=yes ; log uniqueid. Default is "no"
loguserfield=yes ; log user field. Default is "no"
[odbc]
usegmtime=yes ; log date/time in GMT. Default is "no"
loguniqueid=yes ; log uniqueid. Default is "no"
loguserfield=yes ; log user field. Default is "no"
;
; cdr_odbc.conf
;
[global]
username => sa
password => password
dsn => DSN_NAME
loguniqueid=yes
dispositionstring=yes
table=cdr
usegmtime=yes
a16-q1:/etc/asterisk# cat cdr_adaptive_odbc.conf
[first]
connection=sqlserver
table=cdr
alias calldate => start
a16-q1:/etc/asterisk# cat res_odbc.conf
[ENV]
[sqlserver]
enabled => yes
dsn => DSN_NAME
share_connections => no
limit => 5
username => sa
password => password
pre-connect => yes
sanitysql => select count(*) from systables
backslash_is_escape => no
a16-q1:/etc/asterisk# ls
asterisk.conf cdr.conf chan_dahdi.conf
extensions.conf iax.conf modules.conf queuerules.conf
res_odbc.conf
cdr_adaptive_odbc.conf cdr_odbc.conf dialplan func_odbc.conf
manager.conf musiconhold.conf queues.conf sip.conf
Thanks for reading and with much regards,
raj
More information about the asterisk-users
mailing list