<div dir="ltr"><div>Guess:</div><div><br></div>Did you try using it with the jitter buffer enabled?<div>The raw recording cannot pre-buffer the audio so its more likely jitter may be rendered into the file.</div><div>Sometimes the gaps that are experienced are just from late packets.</div><div><br></div><div>The WAV recordings have a more complicated process for buffering and mixing the file.</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, May 8, 2015 at 5:12 PM, Stanislav Sinyagin <span dir="ltr"><<a href="mailto:ssinyagin@gmail.com" target="_blank">ssinyagin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm observing an effect which needs explanation. Comments from the<br>
core developers will be appreciated. The effect was tested with<br>
versions 1.4.18 and today's master, on 64-bit Debian 7 and Ubuntu<br>
14.04. All test calls were in PCMU or PCMA.<br>
<br>
My customer requested me to build a server for call quality assurance<br>
for their telephony system. I installed FreeSWITCH and set the<br>
following in the public dialplan to record the incoming audio:<br>
<br>
<extension name="record"><br>
<condition field="destination_number" expression="^record_(.+)$"><br>
<action application="jitterbuffer" data="60:200:20"/><br>
<action application="set" data="RECORD_READ_ONLY=true"/><br>
<action application="set" data="send_silence_when_idle=400"/><br>
<action application="set" data="record_waste_resources=true"/><br>
<action application="answer"/><br>
<action application="record_session" data="/var/tmp/record_$1"/><br>
<action application="playback" data="silence_stream://-1"/><br>
</condition><br>
</extension><br>
<br>
The first try was with a DigitalOcean (KVM) virtual machine. I started<br>
recording *.wav files, and sometimes there were skipped frames: 1-2<br>
skipped frames in a 2-minute call, one in every 10-15 calls.<br>
<br>
Then I changed the configuration to write raw audio files (removed the<br>
.wav extension from the record_session argument). As a result, the<br>
recorded input audio was quite bad: lost frames every few seconds in<br>
every call.<br>
<br>
Then I made test calls within the server itself, by originating a call<br>
to its public profile and playing the test WAV audio:<br>
<br>
fs_cli -x 'originate sofia/external/<a href="http://record_03@111.222.222.111:5080" target="_blank">record_03@111.222.222.111:5080</a><br>
&playback(/var/tmp/ITU-T_P_50_BRITISH_ENGLISH.wav)'<br>
<br>
The resulting input raw audio was also choppy. The same result was on<br>
another VM on a different physical server at DigitalOcean.<br>
<br>
Then I made the same self-call tests on a Xen VM and on a baremetal<br>
ARM server, and there the recorded audio was of perfect quality.<br>
<br>
Self-calls with recording into WAV files produced audio of perfect quality.<br>
<br>
Setting RECORD_USE_THREAD=false did not change the effect.<br>
<br>
Example of choppy received audio, converted from PCMU to WAV for convenience:<br>
<a href="http://www.k-open.com/s/record_04-in.wav" target="_blank">http://www.k-open.com/s/record_04-in.wav</a><br>
The source audio:<br>
<a href="http://murmur.voxserv.ch/media/ITU-T_P_50_BRITISH_ENGLISH.wav" target="_blank">http://murmur.voxserv.ch/media/ITU-T_P_50_BRITISH_ENGLISH.wav</a><br>
<br>
So, it looks like the clock that is available at KVM is not precise<br>
enough, but that's not my question.<br>
<br>
QUESTION: why is raw recording so much more sensitive to the clock precision?<br>
<br>
thanks,<br>
stanislav<br>
<br>
_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Anthony Minessale II ♬ @anthmfs ♬ @FreeSWITCH ♬<div><br><div>☞ <a href="http://freeswitch.org/" target="_blank">http://freeswitch.org/</a> ☞ <a href="http://cluecon.com/" target="_blank">http://cluecon.com/</a> ☞ <a href="http://twitter.com/FreeSWITCH" target="_blank">http://twitter.com/FreeSWITCH</a></div><div><div>☞ <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch ☞ <u><a href="http://freeswitch.org/g+" target="_blank">http://freeswitch.org/g+</a></u><br><br></div><div>ClueCon Weekly Development Call <br></div><div>☎ <a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a> ☎ +19193869900 </div><div><br></div></div></div><div><a href="https://www.youtube.com/watch?v=9XXgW34t40s" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">https://www.youtube.com/watch?v=9XXgW34t40s</a></div><div><a href="https://www.youtube.com/watch?v=NLaDpGQuZDA" target="_blank">https://www.youtube.com/watch?v=NLaDpGQuZDA</a><br></div></div></div></div></div></div></div>
</div>