Skip to content
Snippets Groups Projects
Commit 8ba2d706 authored by Terry Wilson's avatar Terry Wilson
Browse files

Fix multiple SIP realtime issues

1. Set lastms to 0 when clearing instead of ""
2. Don't set ipaddr or port to the string "(null)" when they are empty
3. Add missing required fields, set default for lastms to 0, and modify
   the length of the ipaddr field to 45 in the Postgresql realtime.sql
   file.

(closes issue ASTERISK-19172)
Review: https://reviewboard.asterisk.org/r/1703/
........

Merged revisions 354348 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........

Merged revisions 354349 from http://svn.asterisk.org/svn/asterisk/branches/10


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@354360 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 994d4d01
No related branches found
No related tags found
No related merge requests found
......@@ -4550,8 +4550,8 @@ static void realtime_update_peer(const char *peername, struct ast_sockaddr *addr
 
snprintf(str_lastms, sizeof(str_lastms), "%d", lastms);
snprintf(regseconds, sizeof(regseconds), "%d", (int)nowtime); /* Expiration time */
ast_copy_string(ipaddr, ast_sockaddr_stringify_addr(addr), sizeof(ipaddr));
ast_copy_string(port, ast_sockaddr_stringify_port(addr), sizeof(port));
ast_copy_string(ipaddr, ast_sockaddr_isnull(addr) ? "" : ast_sockaddr_stringify_addr(addr), sizeof(ipaddr));
ast_copy_string(port, ast_sockaddr_port(addr) ? ast_sockaddr_stringify_port(addr) : "", sizeof(port));
 
if (ast_strlen_zero(sysname)) /* No system name, disable this */
sysname = NULL;
......@@ -14081,7 +14081,7 @@ static void destroy_association(struct sip_peer *peer)
 
if (!sip_cfg.ignore_regexpire) {
if (peer->rt_fromcontact && sip_cfg.peer_rtupdate) {
ast_update_realtime(tablename, "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "", "regseconds", "0", "regserver", "", "useragent", "", "lastms", "", SENTINEL);
ast_update_realtime(tablename, "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "", "regseconds", "0", "regserver", "", "useragent", "", "lastms", "0", SENTINEL);
} else {
ast_db_del("SIP/Registry", peer->name);
ast_db_del("SIP/PeerMethods", peer->name);
......@@ -64,10 +64,14 @@ username character varying(80) DEFAULT '' NOT NULL,
allow character varying(200) DEFAULT '!all,g729,ilbc,gsm,ulaw,alaw',
musiconhold character varying(100),
regseconds bigint DEFAULT 0::bigint NOT NULL,
ipaddr character varying(40) DEFAULT '' NOT NULL,
ipaddr character varying(45) DEFAULT '' NOT NULL,
regexten character varying(80) DEFAULT '' NOT NULL,
cancallforward character varying(3) DEFAULT 'yes',
lastms integer DEFAULT -1 NOT NULL
lastms integer DEFAULT 0 NOT NULL,
defaultuser character varying(80),
fullcontact character varying(80),
regserver character varying(30),
useragent character varying(40)
);
drop table voicemail_users;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment