Hello,
i got problem with getting asterisk send queries to db via odbc functions.
this is what i have done:
installed odbc packages(unixODBC,unixODBC-bin,unixODBC-dev,libmyodbc)
recompiled asterisk with these modules cdr_odbc, cdr_adaptive_odbc, func_odbc, func_realtime, pbx_realtime, res_config_odbc and res_odbc
/etc/odbcinst.ini
[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
/etc/odbc.ini
[asterisk-connector]
Description= MySQL connection to asterisk database
Driver=MySQL
Database=asterisk
Server=localhost
UserName=root
Password=passwd123
Port=3306
Socket=/var/run/mysqld/mysqld.sock
/etc/asterisk/res_odbc.conf
[asterisk]
enabled => yes
dsn => asterisk-connector
username => root
password => passwd123
pooling => no
limit => 1
pre-connect => yes
this is my dial plan:
exten=> _XXXXX,1,NoOp()
same=>n,Set(E=${EXTEN})
same=>n,Set(USER=GET_USERDATA(${E}))
same=>n,Dial(SCCP/${E},120)
same=>n,Goto(s-${DIALSTATUS},1)
exten=>s-BUSY,1,NoOp(CALLS_MISSED(${USER},${E},'BUSY'))
same=>n,Hangup()
exten=>s-CANCEL,1,NoOp(CALLS_MISSED(${USER},${E},'CANCEL'))
same=>n,Hangup()
exten=>s-CHANUNAVAIL,1,NoOp(CALLS_MISSED(${USER},${E},'CHANNELUNAVAIL'))
same=>n,Hangup()
exten=>s-NOANSWER,1,NoOp(CALLS_MISSED(${USER},${E},'NOANSWER'))
same=>n,Hangup()
exten=>s-ANSWER,1,NoOp(CALLS_INCOMMING(${USER},${E}))
same=>n,Hangup()
and here are the function:
[MISSED]
prefix=CALLS
dsn=asterisk
writesql=INSERT INTO missedcalls (callername,callednumber,status) VALUES ('${ARG1}','${ARG2}','${ARG3}')
[INCOMMING]
prefix=CALLS
dsn=asterisk
writesql=INSERT INTO incomming (callername,callednumber) VALUES ('${ARG1}','${ARG2}')
Problem is nothing in db changes and i don’t know if i missed something or not.
thanks for help