diff options
-rw-r--r-- | channels/chan_sip.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index db3cab86e..eaaffebae 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; |