--- main/channel.c 2008-01-28 19:15:41.000000000 +0200 +++ main/channel.c 2008-05-18 23:00:04.000000000 +0200 @@ -2261,8 +2261,23 @@ } } - if (chan->readtrans && (f = ast_translate(chan->readtrans, f, 1)) == NULL) - f = &ast_null_frame; + { + long __ts = f->ts; + long __len = f->len; // time: could be worked out + int __seqno = f->seqno; + + if (chan->readtrans) { + if ((f = ast_translate(chan->readtrans, f, 1)) == NULL) + f = &ast_null_frame; + else { + /* Copy timestamps from original packet */ + f->ts = __ts; + f->len = __len; + f->seqno = __seqno; + ast_set_flag(f, AST_FRFLAG_HAS_TIMING_INFO); + } + } + } /* Run generator sitting on the line if timing device not available * and synchronous generation of outgoing frames is necessary */