aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authoroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-14 11:14:01 +0000
committeroej <oej@f38db490-d61c-443f-a65b-d21fe96a405b>2006-11-14 11:14:01 +0000
commitee9bdb740ac513306292a47145507706d0a647e5 (patch)
treec8300bfc940272fb0b53cfc29489458ecb6d5f64 /channels
parent462786b07d55014f1f0fd16cfa6a310183427a58 (diff)
Issue #8272 - Don't destroy dialog in retransmission system if it's an OPTION packet from peerpoke
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@47597 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 2aa779367..12aa99754 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1877,7 +1877,10 @@ static int retrans_pkt(void *data)
ast_channel_unlock(pkt->owner->owner);
} else {
/* If no channel owner, destroy now */
- ast_set_flag(&pkt->owner->flags[0], SIP_NEEDDESTROY);
+
+ /* Let the peerpoke system expire packets when the timer expires for poke_noanswer */
+ if (pkt->method != SIP_OPTIONS)
+ ast_set_flag(&pkt->owner->flags[0], SIP_NEEDDESTROY);
}
}
/* In any case, go ahead and remove the packet */
@@ -14840,7 +14843,7 @@ static int sip_poke_peer(struct sip_peer *peer)
peer->call = NULL;
return 0;
}
- if (peer->call > 0) {
+ if (peer->call) {
if (sipdebug)
ast_log(LOG_NOTICE, "Still have a QUALIFY dialog active, deleting\n");
sip_destroy(peer->call);