summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsip-ua
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2013-04-09 10:12:54 +0000
committerNanang Izzuddin <nanang@teluu.com>2013-04-09 10:12:54 +0000
commitfe092940ca4106c14c235f5763424ffe763a22d0 (patch)
treeba53b41c772614ce09287647f2bb45d97652f504 /pjsip/src/pjsip-ua
parent3c8d3b370e33627a0a08a3bcfceaf9709e4a3991 (diff)
Fix #1654: do not cancel SDP offer when transaction state changes from 'completed' to 'terminated', as it have been cancelled before (when tsx state is 'completed').
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4462 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua')
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index d0fab9c9..a0f9c913 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -4478,7 +4478,13 @@ static void inv_on_state_confirmed( pjsip_inv_session *inv, pjsip_event *e)
/* Handle response that terminates dialog */
/* Nothing to do (already handled) */
- } else if (tsx->status_code >= 300 && tsx->status_code < 700) {
+ } else if (tsx->status_code >= 300 && tsx->status_code < 700 &&
+ e->body.tsx_state.prev_state != PJSIP_TSX_STATE_COMPLETED)
+ {
+ /* Ticket #1654: do not cancel SDP offer when tsx state changing
+ * from 'completed' to 'terminated', as it should have already
+ * been cancelled when tsx state is 'completed'.
+ */
pjmedia_sdp_neg_state neg_state;
struct tsx_inv_data *tsx_inv_data;