[Asterisk-Dev] IAX Calls close after 140 seconds
Derek Smithies
derek at indranet.co.nz
Wed Jun 22 15:46:49 MST 2005
Tim,
thanks for your reply..
> > Note that The iseqno and timestamp of a full packet form a unique
> > identifying pair. An iax2 device will keep a record of timestamp and
> > iseqno of packets sent. On receipt of an ack packet, the iax2 device
> > will be able to determine which packet has been acknowledged.
>
> Not exactly. iseqno on it's own is unique it is an ack of all the
> full frames sent upto but not including iseq.
> The timestamp is useful in packet traces and filtering
> because iseq wraps after a few mins in a typical call, so
> the timestamp can be used to differentiate.
>
> >
True.
>From the calc_timestamp routine, there are the lines:
/* On a dataframe, use last value + 3 (to accomodate jitter
buffer shrinking) if appropriate unless
it's a genuine frame */
if (genuine) {
/* genuine (IAX LAGRQ etc) must keep their clock-based stamps */
if (ms <= p->lastsent)
ms = p->lastsent + 3;
} else if (abs(ms - p->lastsent) <= MAX_TIMESTAMP_SKEW) {
/* non-genuine frames (!?) (DTMF, CONTROL) should be
pulled into the predicted stream stamps */
ms = p->lastsent + 3;
}
which ensure that time stamp is given a 3ms gap.. This does not make sense
to me, but someone else might be able to shed light on these lines...
Thanks,
Derek...
=================
Derek Smithies Ph.D.
IndraNet Technologies Ltd.
Email: derek at indranet.co.nz
ph +64 3 365 6485
Web: http://www.indranet-technologies.com/
More information about the asterisk-dev
mailing list