[Home]

Summary:ASTERISK-16956: asterisk cannot find columns in pgsql realtime database
Reporter:Eugene M. Zheganin (drookie)Labels:
Date Opened:2010-11-14 22:59:09.000-0600Date Closed:2017-02-28 12:25:17.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_config_pgsql
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Due to memory leak in chan_sip.c I restart asterisk once in a week.
Sometimes (not always) asterisk cannot find columns in the pgsql realtime database.
It complains in it's log like this:

Nov 14 04:00:31 asterisk-omega asterisk[52970]: NOTICE[52970]: config.c:1961 in ast_config_engine_register: Registered Config Engine pgsql
Nov 14 04:00:31 asterisk-omega asterisk[52970]: NOTICE[52970]: cdr.c:1484 in do_reload: CDR simple logging enabled.
Nov 14 04:00:31 asterisk-omega asterisk[52970]: NOTICE[52970]: loader.c:1060 in load_modules: 177 modules will be loaded.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: NOTICE[52970]: res_smdi.c:1360 in load_module: No SMDI interfaces are available to listen on, not starting SMDI listener.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: rc_read_config: can't open /etc/radiusclient-ng/radiusclient.conf: No such file or directory
Nov 14 04:00:32 asterisk-omega asterisk[52970]: NOTICE[52970]: cdr_radius.c:252 in load_module: Cannot load radiusclient-ng configuration file /etc/radiusclient-ng/radiusclient.conf.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: NOTICE[52970]: config.c:1961 in ast_config_engine_register: Registered Config Engine curl
Nov 14 04:00:32 asterisk-omega asterisk[52970]: NOTICE[52970]: chan_sip.c:24104 in build_peer: The 'username' field for sip peers has been deprecated in favor of the term 'defaultuser'
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'name' of size '10', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'ipaddr' of size '15', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'port' of size '5', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'regseconds' of size '11', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'defaultuser' of size '10', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'fullcontact' of size '35', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'regserver' of size '20', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'useragent' of size '20', but no such column exists.
Nov 14 04:00:32 asterisk-omega asterisk[52970]: WARNING[52970]: res_config_pgsql.c:1207 in require_pgsql: Table sip requires a column 'lastms' of size '11', but no such column exists.

All these columns do exist in my sip realtime table (however, some of them are longer than asterisk expects), and after reload asterisk always can find 'em.

The 'defaultuser' column also exists, and no column 'usernem' exists, but asterisk keeps complaining about it.

My realtime sip table:

     Column      |          Type          |                    Modifiers
------------------+------------------------+--------------------------------------------------
name             | character varying(80)  |
host             | character varying(31)  |
nat              | character varying(5)   |
type             | character varying(255) |
accountcode      | character varying(20)  |
amaflags         | character varying(13)  |
callgroup        | character varying(10)  |
callerid         | character varying(80)  |
cancallforward   | character(3)           |
canreinvite      | character(3)           |
context          | character varying(80)  |
defaultip        | character varying(15)  |
dtmfmode         | character varying(7)   |
fromuser         | character varying(80)  |
fromdomain       | character varying(80)  |
insecure         | character varying(4)   |
language         | character(2)           |
mailbox          | character varying(50)  |
md5secret        | character varying(80)  |
deny             | character varying(95)  |
permit           | character varying(95)  |
mask             | character varying(95)  |
musiconhold      | character varying(100) |
pickupgroup      | character varying(10)  |
qualify          | character(3)           |
regexten         | character varying(80)  |
restrictcid      | character(3)           |
rtptimeout       | character(3)           |
rtpholdtimeout   | character(3)           |
secret           | character varying(80)  |
setvar           | character varying(100) |
disallow         | character varying(100) |
allow            | character varying(100) |
fullcontact      | character varying(80)  |
ipaddr           | character varying(15)  |
port             | integer                |
regserver        | character varying(100) |
regseconds       | integer                |
defaultuser      | character varying(80)  | not null
id               | integer                | not null default nextval('sip_id_seq'::regclass)
lastms           | character varying(20)  | default NULL::character varying
useragent        | character varying(256) |
ignoresdpversion | character varying(3)   | default 'no'::character varying
Comments:By: Leif Madsen (lmadsen) 2010-12-06 13:10:24.000-0600

I'm going to acknowledge this, but I believe it is going to be a quicker resolution for you to move to res_odbc and use the unixODBC integration for postgresql instead of the res_pgsql driver, which is not as well supported.

By: Matt Jordan (mjordan) 2013-01-15 11:02:43.036-0600

Please note that {{res_config_pgsql}} is an extended support module, and as such development support for it comes from the open source community. Response times may reflect that.

By: Sean Bright (seanbright) 2017-02-28 12:25:17.333-0600

The best I can determine from the age of this bug is that reporter was running 1.6.2.13. The code in {{res_config_pgsql}} has changed significantly in the intervening 7 years. If you are able to reproduce on Asterisk 13 GIT or Asterisk 13.15 once released, please re-open.