> > Andres wrote: > > another? We noticed this problem when we upgraded one of > our servers to > > the latest CVS and left another one with an older version. > Seems that > > the latest changes with rtp.c need to be applied > everywhere. When we > > upgraded all servers then the audio returned to normal but the > > connection with Nufone started sounding horrible. > > > > We had to roll back to the older version of rtp.c to get > back the good > > audio with Nufone. > > > Codec stuff sure does feel like voodoo sometime. I'd love it > if someone > with a handle on this (particularly the "why would a changed > RTP stack > cause some ITSP connections to go down the shi**er" deal) could > enlighten us all. > We, too, have noticed issues with sound quality with recent versions of rtp. I think there is a rounding problem in it. It isn't just something to Nuphone. We can recreate between Asterisk and a Cisco 7940 with G.711.
In the following ethereal extraction, 10.1.6.2 is the Cisco Phone, 10.1.1.12 is Asterisk. Notice that the cisco phone consistently produces sequence differences of 160 (the last column), while asterisk produces sequence differences of 152 and 160. And because the time differences aren't consistent, the phone probably 'stagger-steps' to get back in sequence, and therefore sound quality suffers. This probably happens in time calcs for gsm and other codec types as well. Here is the snippet from rtp.c that does the processing. How do we fix the rounding problem.? static unsigned int calc_txstamp(struct ast_rtp *rtp, struct timeval *delivery) { struct timeval now; unsigned int ms; if (!rtp->txcore.tv_sec && !rtp->txcore.tv_usec) { gettimeofday(&rtp->txcore, NULL); } gettimeofday(&now, NULL); ms = (now.tv_sec - rtp->txcore.tv_sec) * 1000; ms += (now.tv_usec - rtp->txcore.tv_usec) / 1000; /* Use what we just got for next time */ rtp->txcore.tv_sec = now.tv_sec; rtp->txcore.tv_usec = now.tv_usec; return ms; } Here is the ethereal extraction: 114 2.718259 10.1.6.2 -> 10.1.1.12 G.711 Seq 33943, Time 37206320 115 2.731003 10.1.1.12 -> 10.1.6.2 G.711 Seq 11856, Time 9472 116 2.738137 0.019878 10.1.6.2 -> 10.1.1.12 G.711 Seq 33944, Time 37206480 160 117 2.750979 0.019976 10.1.1.12 -> 10.1.6.2 G.711 Seq 11857, Time 9624 152 118 2.757836 0.019699 10.1.6.2 -> 10.1.1.12 G.711 Seq 33945, Time 37206640 160 119 2.771035 0.020056 10.1.1.12 -> 10.1.6.2 G.711 Seq 11858, Time 9784 160 120 2.777749 0.019913 10.1.6.2 -> 10.1.1.12 G.711 Seq 33946, Time 37206800 160 121 2.791071 0.020036 10.1.1.12 -> 10.1.6.2 G.711 Seq 11859, Time 9944 160 122 2.798419 0.02067 10.1.6.2 -> 10.1.1.12 G.711 Seq 33947, Time 37206960 160 123 2.811 0.019929 10.1.1.12 -> 10.1.6.2 G.711 Seq 11860, Time 10096 152 124 2.818484 0.020065 10.1.6.2 -> 10.1.1.12 G.711 Seq 33948, Time 37207120 160 125 2.830993 0.019993 10.1.1.12 -> 10.1.6.2 G.711 Seq 11861, Time 10248 152 126 2.838682 0.020198 10.1.6.2 -> 10.1.1.12 G.711 Seq 33949, Time 37207280 160 -- Scanned for viruses and dangerous content at http://www.oneunified.net and is believed to be clean. _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users