summaryrefslogtreecommitdiff
path: root/pjmedia
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2013-04-24 09:52:25 +0000
committerBenny Prijono <bennylp@teluu.com>2013-04-24 09:52:25 +0000
commit6058aa59435610df09202973440ba02af14ca8df (patch)
tree7a489b1c03314dad4bfab747675405c8672918c5 /pjmedia
parent8144889895f7a8772fe75d664bff91390685a2d3 (diff)
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
Diffstat (limited to 'pjmedia')
-rw-r--r--pjmedia/src/pjmedia/sdp_neg.c14
1 files changed, 11 insertions, 3 deletions
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;
}