From: Tilghman Lesher Date: Thu, 16 Apr 2009 21:41:13 +0000 (+0000) Subject: Only update realtime, if global option rtupdate != false X-Git-Tag: 1.4.25-rc1~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=611cf94f9071cb3835b328a317a5400389e7e01f;p=thirdparty%2Fasterisk.git Only update realtime, if global option rtupdate != false (closes issue #14885) Reported by: deepesh Patches: 20090413__bug14885.diff.txt uploaded by tilghman (license 14) Tested by: deepesh git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@188835 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index ca79608919..0361bab96c 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -8082,7 +8082,7 @@ static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqn static void destroy_association(struct sip_peer *peer) { if (!ast_test_flag(&global_flags[1], SIP_PAGE2_IGNOREREGEXPIRE)) { - if (ast_test_flag(&peer->flags[1], SIP_PAGE2_RT_FROMCONTACT)) { + if (ast_test_flag(&peer->flags[1], SIP_PAGE2_RT_FROMCONTACT) && ast_test_flag(&global_flags[1], SIP_PAGE2_RTUPDATE)) { ast_update_realtime("sippeers", "name", peer->name, "fullcontact", "", "ipaddr", "", "port", "", "regseconds", "0", "username", "", "regserver", "", NULL); ast_update_realtime("sippeers", "name", peer->name, "lastms", "", NULL); } else @@ -12983,7 +12983,9 @@ static void handle_response_peerpoke(struct sip_pvt *p, int resp, struct sip_req ast_log(LOG_NOTICE, "Peer '%s' is now %s. (%dms / %dms)\n", peer->name, s, pingtime, peer->maxms); ast_device_state_changed("SIP/%s", peer->name); - ast_update_realtime("sippeers", "name", peer->name, "lastms", str_lastms, NULL); + if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTUPDATE)) { + ast_update_realtime("sippeers", "name", peer->name, "lastms", str_lastms, NULL); + } manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "Peer: SIP/%s\r\nPeerStatus: %s\r\nTime: %d\r\n", peer->name, s, pingtime); @@ -16607,7 +16609,9 @@ static int sip_poke_noanswer(const void *data) peer->pokeexpire = -1; if (peer->lastms > -1) { ast_log(LOG_NOTICE, "Peer '%s' is now UNREACHABLE! Last qualify: %d\n", peer->name, peer->lastms); - ast_update_realtime("sippeers", "name", peer->name, "lastms", "-1", NULL); + if (ast_test_flag(&global_flags[1], SIP_PAGE2_RTUPDATE)) { + ast_update_realtime("sippeers", "name", peer->name, "lastms", "-1", NULL); + } manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "Peer: SIP/%s\r\nPeerStatus: Unreachable\r\nTime: %d\r\n", peer->name, -1); } if (peer->call)