From c41c5316a7be9c2c674f82b543f2e5326e62316f Mon Sep 17 00:00:00 2001 From: Riza Sulistyo Date: Thu, 11 Jun 2015 08:39:42 +0000 Subject: 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 --- pjsip/src/pjsip-ua/sip_inv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pjsip/src/pjsip-ua') 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; + } } } } -- cgit v1.2.3