Index: chan_iax2.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_iax2.c,v retrieving revision 1.143 diff -u -r1.143 chan_iax2.c --- chan_iax2.c 25 May 2004 00:23:02 -0000 1.143 +++ chan_iax2.c 25 May 2004 08:45:48 -0000 @@ -2551,12 +2551,12 @@ static unsigned int calc_txpeerstamp(struct iax2_trunk_peer *tpeer, int sampms, struct timeval *tv) { - long int mssincetx; + unsigned long int mssincetx; /* unsigned to handle overflows */ long int ms, pred; tpeer->trunkact = *tv; mssincetx = (tv->tv_sec - tpeer->lasttxtime.tv_sec) * 1000 + (tv->tv_usec - tpeer->lasttxtime.tv_usec) / 1000; - if (mssincetx > 5000) { + if (mssincetx > 5000 || (!tpeer->txtrunktime.tv_sec && !tpeer->txtrunktime.tv_usec)) { /* If it's been at least 5 seconds since the last time we transmitted on this trunk, reset our timers */ tpeer->txtrunktime.tv_sec = tv->tv_sec; tpeer->txtrunktime.tv_usec = tv->tv_usec;