Index: channels/chan_sip.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v retrieving revision 1.847 diff -u -r1.847 chan_sip.c --- channels/chan_sip.c 13 Sep 2005 01:38:00 -0000 1.847 +++ channels/chan_sip.c 13 Sep 2005 22:11:51 -0000 @@ -534,6 +534,7 @@ struct ast_codec_pref prefs; /* codec prefs */ unsigned int ocseq; /* Current outgoing seqno */ unsigned int icseq; /* Current incoming seqno */ + unsigned int dcseq; /* Dialog seqno */ ast_group_t callgroup; /* Call group */ ast_group_t pickupgroup; /* Pickup group */ int lastinvite; /* Last Cseq of invite */ @@ -4630,6 +4631,7 @@ ast_verbose("%d headers, %d lines\n", p->initreq.headers, p->initreq.lines); } p->lastinvite = p->ocseq; + p->dcseq = p->ocseq; return send_request(p, &req, init ? 2 : 1, p->ocseq); } @@ -10306,7 +10308,8 @@ } else if (p->ocseq && (p->ocseq < seqno)) { ast_log(LOG_DEBUG, "Ignoring out of order response %d (expecting %d)\n", seqno, p->ocseq); return -1; - } else if (p->ocseq && (p->ocseq != seqno)) { + } else if ((p->ocseq && (p->ocseq != seqno)) && + (p->dcseq && (p->dcseq != seqno))) { /* ignore means "don't do anything with it" but still have to respond appropriately */ ignore=1;