diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-05-18 23:33:06 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-05-18 23:33:06 +0000 |
commit | 0c41b8af7dea44e8b0291f6fdd36bb7526441423 (patch) | |
tree | 150e9a6ff75a3922c09ae5fe04daa56647b56921 /channels/chan_iax2.c | |
parent | 6b3e12117ed9f37b5ec639aeafc7e933dd9fe4c2 (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/chan_iax2.c')
-rwxr-xr-x | channels/chan_iax2.c | 13 |
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 */ |