summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip-simple/evsub.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/pjsip/src/pjsip-simple/evsub.c b/pjsip/src/pjsip-simple/evsub.c
index 372c5151..c393470c 100644
--- a/pjsip/src/pjsip-simple/evsub.c
+++ b/pjsip/src/pjsip-simple/evsub.c
@@ -1425,8 +1425,18 @@ static pjsip_evsub *on_new_transaction( pjsip_transaction *tsx,
if (pj_strcmp(&dlgsub->sub->event->id_param,
&event_hdr->id_param)==0)
{
-
- break;
+ /* Skip this subscription if it has no event ID and has been
+ * terminated (see ticket #1647).
+ */
+ if ((dlgsub->sub->option & PJSIP_EVSUB_NO_EVENT_ID) &&
+ (pjsip_evsub_get_state(dlgsub->sub)==
+ PJSIP_EVSUB_STATE_TERMINATED))
+ {
+ dlgsub = dlgsub->next;
+ continue;
+ } else {
+ break;
+ }
}
/*