Phil Frost
2012-Mar-28 20:31 UTC
[asterisk-users] Realtime mapping for 'queue_log' found to engine 'odbc', but the engine is not available - why not?
I'm attempting to direct my queue logs at a PostgreSQL table, and seeing this error in the asterisk console: config.c:2256 find_engine: Realtime mapping for 'queue_log' found to engine 'odbc', but the engine is not available However, everything I know how to check indicates the odbc engine is available. I can't find any more verbose description of the error from Asterisk, so I'm unsure how to proceed. extconfig.conf is simple enough:> root at asterisk02:/etc/asterisk# cat extconfig.conf > [settings] > #include /etc/asterisk/extconfig.conf.d/settings.conf.d/*.conf > root at asterisk02:/etc/asterisk# cat /etc/asterisk/extconfig.conf.d/settings.conf.d/*.conf > queue_log => odbc,asterisk,kellyreports.asterisk_queue_logand res_odbc.conf also pretty simple:> root at asterisk02:/etc/asterisk# cat res_odbc.conf > #include /etc/asterisk/res_odbc.conf.d/*.conf > root at asterisk02:/etc/asterisk# cat /etc/asterisk/res_odbc.conf.d/*.conf > [asterisk] > dsn => asterisk > pre-connect => yesThe underlying ODBC configuration checks out:> root at asterisk02:/etc/asterisk# isql asterisk > SQL> insert into kellyreports.asterisk_queue_log default values > SQLRowCount returns 1and res_odbc also seems to be aware that "asterisk" is a valid ODBC resource:> asterisk02*CLI> odbc show > ODBC DSN Settings > ----------------- > Name: asterisk > DSN: asterisk > Last connection attempt: 1969-12-31 19:00:00 > Pooled: No > Connected: YesI'm not sure what I can infer from the last connection attempt being forever ago. Is this the last connection attempt by asterisk to the odbc module? Or the ODBC module's last connection attempt to Postgres? I'm confused, because it says "Connected: Yes". Also, ODBC is writing a logfile in /tmp:> root at asterisk02:/tmp# cat psqlodbc_asterisk14211.log > CONN ERROR: func=PGAPI_SetConnectAttr, desc='', errnum=216, errmsg='Couldn't set unsupported connect attribute 113' > ------------------------------------------------------------ > henv=0x2087430, conn=0x2089780, status=0, num_stmts=16 > sock=0x2084c60, stmts=0x2084d40, lobj_type=-999 > ---------------- Socket Info ------------------------------- > socket=-1, reverse=0, errornumber=0, errormsg='(NULL)' > buffer_in=34103648, buffer_out=34108576 > buffer_filled_in=0, buffer_filled_out=0, buffer_read_in=0 > DSN info: DSN='asterisk',server='helpdesk.macprofessionals.lan',port='5432',dbase='whd',user='asterisk',passwd='xxxxx' > onlyread='No',protocol='8.4',showoid='No',fakeoidindex='No',showsystable='No' > conn_settings='',conn_encoding='(null)' > translation_dll='',translation_option='' > conn = 0x2089780, PGAPI_Connect(DSN='asterisk', UID='asterisk', PWD='xxxxx') > Driver Version='08.03.0200,200805030001' > Global Options: fetch=100, socket=4096, unknown_sizes=0, max_varchar_size=255, max_longvarchar_size=8190 > disable_optimizer=1, ksqo=1, unique_index=1, use_declarefetch=0 > text_as_longvarchar=1, unknowns_as_longvarchar=0, bools_as_char=1 NAMEDATALEN=64 > extra_systable_prefixes='dd_;', conn_settings='' conn_encoding='' > conn=0x2089780, query=' ' > conn=0x2089780, query='select version()' > [ fetched 1 rows ] > [ PostgreSQL version string = 'PostgreSQL 8.4.3 on i386-apple-darwin, compiled by GCC i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 537' ] > [ PostgreSQL version number = '8.4' ] > conn=0x2089780, query='set DateStyle to 'ISO'' > conn=0x2089780, query='set geqo to 'OFF'' > conn=0x2089780, query='set extra_float_digits to 2' > conn=0x2089780, query='select oid, typbasetype from pg_type where typname = 'lo'' > [ fetched 0 rows ] > [ Large Object oid = -999 ] > conn=0x2089780, query='select pg_client_encoding()' > [ fetched 1 rows ] > [ Client encoding = 'UTF8' (code = 6) ] > conn=0x2089780, query='select 1' > [ fetched 1 rows ]Not really sure what attribute 113 is or why it couldn't be set, but since I see a successful "select 1" at the end, I'm thinking it's benign. Am I missing something obvious? Any ideas on where to look next? -- Phil Frost Macprofessionals office 248-893-0738 direct 248-662-0809
Phillip Frost
2012-Mar-29 10:31 UTC
[asterisk-users] Realtime mapping for 'queue_log' found to engine 'odbc', but the engine is not available - why not?
On Mar 28, 2012, at 4:31 PM, Phil Frost wrote:> I'm attempting to direct my queue logs at a PostgreSQL table, and seeing this error in the asterisk console: > > config.c:2256 find_engine: Realtime mapping for 'queue_log' found to engine 'odbc', but the engine is not available > > However, everything I know how to check indicates the odbc engine is available. I can't find any more verbose description of the error from Asterisk, so I'm unsure how to proceed.Well, after making a debug build and stepping through the source I solved it. It wasn't apparent to this neophyte that there's res_odbc.so, and then there's res_*config*_odbc.so, which is set to noload in the default modules.conf.