[Home]

Summary:ASTERISK-16980: ODBC Disconnection if call not briged
Reporter:Antonis Psaras (apsaras)Labels:
Date Opened:2010-11-18 09:16:14.000-0600Date Closed:2011-06-07 14:04:40
Priority:MinorRegression?No
Status:Closed/CompleteComponents:PBX/pbx_realtime
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:We have several versions of Asterisk installed working with realtime via ODBC on PostgreSQL Database.

We found out that if a call hungup during IVR (before call is briged) we get DB Errors, Disconnection and Reconnection.

****** ADDITIONAL INFORMATION ******

-- Executing GoTo("SIP/isdngw01-00006881", "DialIn|s|1")
   -- Goto (DialIn,s,1)
   -- Executing Wait("SIP/isdngw01-00006881", "2")
   -- Executing Answer("SIP/isdngw01-00006881", "")
   -- Executing BackGround("SIP/isdngw01-00006881", "welcome")
   -- <SIP/isdngw01-00006881> Playing 'welcome' (language 'en')
[Nov 18 17:07:14] WARNING[26354]: res_odbc.c:105 ast_odbc_prepare_and_execute: SQL Execute returned an error -1: 01000: [unixODBC]Error while executing the query (non-fatal);
ERROR:  invalid byte sequence for encoding "UTF8": 0xff (110)
[Nov 18 17:07:14] WARNING[26354]: res_odbc.c:113 ast_odbc_prepare_and_execute: SQL Execute error -1! Attempting a reconnect...
[Nov 18 17:07:14] DEBUG[26354]: res_odbc.c:503 odbc_obj_disconnect: Disconnected 0 from CommServer [CommServer]
[Nov 18 17:07:14] DEBUG[26354]: res_odbc.c:510 odbc_obj_disconnect: Database handle deallocated
[Nov 18 17:07:14] NOTICE[26354]: res_odbc.c:537 odbc_obj_connect: Connecting CommServer
[Nov 18 17:07:14] NOTICE[26354]: res_odbc.c:565 odbc_obj_connect: res_odbc: Connected to CommServer [CommServer]
[Nov 18 17:07:14] WARNING[26354]: res_odbc.c:105 ast_odbc_prepare_and_execute: SQL Execute returned an error -1: 01000: [unixODBC]Error while executing the query (non-fatal);
ERROR:  invalid byte sequence for encoding "UTF8": 0xff (110)
[Nov 18 17:07:14] WARNING[26354]: res_odbc.c:113 ast_odbc_prepare_and_execute: SQL Execute error -1! Attempting a reconnect...
[Nov 18 17:07:14] DEBUG[26354]: res_odbc.c:503 odbc_obj_disconnect: Disconnected 0 from CommServer [CommServer]
[Nov 18 17:07:14] DEBUG[26354]: res_odbc.c:510 odbc_obj_disconnect: Database handle deallocated
[Nov 18 17:07:14] NOTICE[26354]: res_odbc.c:537 odbc_obj_connect: Connecting CommServer
[Nov 18 17:07:14] NOTICE[26354]: res_odbc.c:565 odbc_obj_connect: res_odbc: Connected to CommServer [CommServer]
 == Spawn extension (DialIn, s, 3) exited non-zero on 'SIP/isdngw01-00006881'
Comments:By: Leif Madsen (lmadsen) 2010-12-06 13:55:02.000-0600

I think I'd like to see the SQL log from the PostgreSQL side as well to see what Asterisk is sending. It is possible a field or something Asterisk is expecting to write to (perhaps CDRs?) is not configured properly?

By: Antonis Psaras (apsaras) 2010-12-07 17:31:34.000-0600

LOG:  statement: SELECT * FROM sip_users WHERE name = '2111765111'
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '2' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '2' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = '2109769111' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '2' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '2'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '3'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '3'
LOG:  statement: SELECT * FROM extensions WHERE exten = 's' AND context = 'DialIn' AND priority = '3'
ERROR:  invalid byte sequence for encoding "UTF8": 0xff
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
LOG:  statement:
LOG:  statement: set DateStyle to 'ISO'
LOG:  statement:
LOG:  statement: set geqo to 'OFF'
LOG:  statement:
LOG:  statement: select oid from pg_type where typname='lo'
LOG:  statement: select version()
ERROR:  invalid byte sequence for encoding "UTF8": 0xff
HINT:  This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
LOG:  statement:
LOG:  statement: set DateStyle to 'ISO'
LOG:  statement:
LOG:  statement: set geqo to 'OFF'
LOG:  statement:
LOG:  statement: select oid from pg_type where typname='lo'
LOG:  statement: select version()
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: SELECT * FROM extensions WHERE exten = 'h' AND context = 'DialIn' AND priority = '1'
LOG:  statement: SELECT * FROM extensions WHERE exten LIKE '\\_%' AND context = 'DialIn' AND priority = '1' ORDER BY exten
LOG:  statement: INSERT INTO cdr (calldate,clid,src,dst,dcontext,channel,dstchannel,lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield) VALUES ('2010-12-08 01:27:56','2111765111','2111765111','s','DialIn','SIP/commgate-00002326','','BackGround','metromall',5,4,'ANSWERED',3,'','1291764476.9000','')

By: Leif Madsen (lmadsen) 2011-04-06 12:17:01

This looks like a problem with the type of data encoding being used (UTF-8 not supporting what you're passing?).

Is this still an issue?

By: Leif Madsen (lmadsen) 2011-04-06 21:06:02

Closing this per a comment from Tilghman on IRC:

<Corydon76-home> Probably someone put in an extended ASCII character, which conflicts with how the database expects to receive characters.