From 6058aa59435610df09202973440ba02af14ca8df Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 24 Apr 2013 09:52:25 +0000 Subject: Fixed #1659: SDP offer version number is not incremented if previous re-INVITE offer was rejected git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4498 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/sdp_neg.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'pjmedia') diff --git a/pjmedia/src/pjmedia/sdp_neg.c b/pjmedia/src/pjmedia/sdp_neg.c index 217bd176..8162fef5 100644 --- a/pjmedia/src/pjmedia/sdp_neg.c +++ b/pjmedia/src/pjmedia/sdp_neg.c @@ -1349,13 +1349,21 @@ PJ_DEF(pj_status_t) pjmedia_sdp_neg_cancel_offer(pjmedia_sdp_neg *neg) neg->state == PJMEDIA_SDP_NEG_STATE_REMOTE_OFFER, PJMEDIA_SDPNEG_EINSTATE); - /* Reset state to done */ - neg->state = PJMEDIA_SDP_NEG_STATE_DONE; - /* Clear temporary SDP */ neg->neg_local_sdp = neg->neg_remote_sdp = NULL; neg->has_remote_answer = PJ_FALSE; + if (neg->state == PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER) { + /* Increment next version number. This happens if for example + * the reinvite offer is rejected by 488. If we don't increment + * the version here, the next offer will have the same version. + */ + neg->active_local_sdp->origin.version++; + } + + /* Reset state to done */ + neg->state = PJMEDIA_SDP_NEG_STATE_DONE; + return PJ_SUCCESS; } -- cgit v1.2.3