diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 299795ab7992afd92a8f30d9f9b2528510f9229e..e2546b49114400807bb2408ad168e6105d054006 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -4391,7 +4391,7 @@ int __sip_ack(struct sip_pvt *p, uint32_t seqno, int resp, int sipmethod) If obforcing is set, we will keep the outbound proxy during the whole dialog, regardless of what the SIP rfc says */ - if (p->outboundproxy && !p->outboundproxy->force){ + if (p->outboundproxy && !p->outboundproxy->force) { ref_proxy(p, NULL); } @@ -6460,6 +6460,10 @@ void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist) p->options = NULL; } + if (p->outboundproxy) { + ref_proxy(p, NULL); + } + if (p->notify) { ast_variables_destroy(p->notify->headers); ast_free(p->notify->content);