aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-05-18 23:33:06 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-05-18 23:33:06 +0000
commit0c41b8af7dea44e8b0291f6fdd36bb7526441423 (patch)
tree150e9a6ff75a3922c09ae5fe04daa56647b56921 /channels
parent6b3e12117ed9f37b5ec639aeafc7e933dd9fe4c2 (diff)
Actually apply timestamp bug (bug #3961)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5714 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rwxr-xr-xchannels/chan_iax2.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 66d18990a..429814550 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -6527,8 +6527,17 @@ retryowner:
/* Handle the IAX pseudo frame itself */
if (option_debug)
ast_log(LOG_DEBUG, "IAX subclass %d received\n", f.subclass);
- /* Go through the motions of delivering the packet without actually doing so */
- schedule_delivery(&fr, 0, updatehistory, 0);
+
+ /* Update last ts unless the frame's timestamp originated with us. */
+ if (iaxs[fr.callno]->last < fr.ts &&
+ f.subclass != IAX_COMMAND_ACK &&
+ f.subclass != IAX_COMMAND_PONG &&
+ f.subclass != IAX_COMMAND_LAGRP) {
+ iaxs[fr.callno]->last = fr.ts;
+ if (option_debug)
+ ast_log(LOG_DEBUG, "For call=%d, set last=%d\n", fr.callno, fr.ts);
+ }
+
switch(f.subclass) {
case IAX_COMMAND_ACK:
/* Do nothing */