diff options
author | Riza Sulistyo <riza@teluu.com> | 2015-06-11 08:39:42 +0000 |
---|---|---|
committer | Riza Sulistyo <riza@teluu.com> | 2015-06-11 08:39:42 +0000 |
commit | c41c5316a7be9c2c674f82b543f2e5326e62316f (patch) | |
tree | 9827a2031c48ebcdfca213f2aa4be469dac70b30 /pjsip/src/pjsip-ua | |
parent | aaa478efe114f6a1d4e12432be9808ac1b7090c2 (diff) |
Re #1857: (Fix) BYE is not sent when 200/OK is not ACK-ed
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5104 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip/src/pjsip-ua')
-rw-r--r-- | pjsip/src/pjsip-ua/sip_inv.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c index 8fdde222..3993c255 100644 --- a/pjsip/src/pjsip-ua/sip_inv.c +++ b/pjsip/src/pjsip-ua/sip_inv.c @@ -291,7 +291,7 @@ static void inv_set_state(pjsip_inv_session *inv, pjsip_inv_state state, static void inv_set_cause(pjsip_inv_session *inv, int cause_code, const pj_str_t *cause_text) { - if (cause_code > inv->cause) { + if ((cause_code > inv->cause) || inv->pending_bye) { inv->cause = (pjsip_status_code) cause_code; if (cause_text) pj_strdup(inv->pool, &inv->cause_text, cause_text); @@ -4506,6 +4506,11 @@ static void inv_on_state_connecting( pjsip_inv_session *inv, pjsip_event *e) -1, &bye); if (status == PJ_SUCCESS) { pjsip_inv_send_msg(inv, bye); + + if (inv->pending_bye) { + pjsip_tx_data_dec_ref(inv->pending_bye); + inv->pending_bye = NULL; + } } } } |