summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
Diffstat (limited to 'pjsip')
-rw-r--r--pjsip/src/pjsip-ua/sip_inv.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/pjsip/src/pjsip-ua/sip_inv.c b/pjsip/src/pjsip-ua/sip_inv.c
index 3afdeb68..eb2c20f3 100644
--- a/pjsip/src/pjsip-ua/sip_inv.c
+++ b/pjsip/src/pjsip-ua/sip_inv.c
@@ -351,9 +351,12 @@ static pj_status_t inv_send_ack(pjsip_inv_session *inv, pjsip_event *e)
PJ_LOG(5,(inv->obj_name, "Received %s, sending ACK",
pjsip_rx_data_get_info(rdata)));
- /* Check if we have cached ACK request */
- if (inv->last_ack && rdata->msg_info.cseq->cseq == inv->last_ack_cseq) {
-
+ /* Check if we have cached ACK request. Must not use the cached ACK
+ * if it's still marked as pending by transport (#1011)
+ */
+ if (inv->last_ack && rdata->msg_info.cseq->cseq == inv->last_ack_cseq &&
+ !inv->last_ack->is_pending)
+ {
pjsip_tx_data_add_ref(inv->last_ack);
} else if (mod_inv.cb.on_send_ack) {