From: Mark Michelson Date: Fri, 10 Aug 2012 17:56:05 +0000 (+0000) Subject: Fix a comparison that was causing presence tests to fail. X-Git-Tag: 11.0.0-beta1~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ff199d99a64c32385eb340a48980400c45234cb;p=thirdparty%2Fasterisk.git Fix a comparison that was causing presence tests to fail. A recent change made it so that device state changes that were not actual "changes" would not get reported to subscribers. The problem was that this inadvertently blocked presence updates as well. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@371113 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index db3cab86e4..eaaffebae0 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -15830,7 +15830,10 @@ static int extensionstate_update(const char *context, const char *exten, struct default: /* Tell user */ if (force) { /* we must skip the next two checks for a queued state change or resubscribe */ - } else if (p->laststate == data->state && (~data->state & AST_EXTENSION_RINGING)) { + } else if ((p->laststate == data->state && (~data->state & AST_EXTENSION_RINGING)) && + (p->last_presence_state == data->presence_state && + !strcmp(p->last_presence_subtype, data->presence_subtype) && + !strcmp(p->last_presence_message, data->presence_message))) { /* don't notify unchanged state or unchanged early-state causing parties again */ sip_pvt_unlock(p); return 0;