[Asterisk-Dev] IAX Calls close after 140 seconds

Derek Smithies derek at indranet.co.nz
Wed Jun 22 15:46:49 MST 2005

 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.
> >

>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...


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