I am trying to analyze the quality of audio that is streamed (using
G.711) to another computer across a router. The router emulates network
conditions (using NIST Net) such as a certain percentage of dropped
packets, a certain packet delay, etc.
In order to analyze the received audio, we are capturing the audio
stream with Ethereal and saving the RTP payload as an audio file (in .au
format), using the built-in feature in Ethereal 0.10.6. This works fine
when the network conditions are perfect. However, when I introduce
packet loss, the Save Payload command simply skips over the dropped
packets, resulting in audio files that are shorter and shorter as the
percentage of packet loss increases.
What we would like to do, instead, is for the Save Payload command to
leave gaps in the saved audio where a packet is not received, rather
than to simply ignore the missed packet. I believe this is referred to
as "zero-buffering" the audio.
Is there an Ethereal plug-in or a separate application written that does
this? How difficult would it be to modify the existing Save RTP Payload
feature in Ethereal to handle this, and how would we go about that? I
am very new to Ethereal/RTP and have not worked with any of its source
(and if something else is already written that does this, that would be
much preferred).
Thanks.