[Freeswitch-users] Call latency in conferences and echo test increases over time
Robert L Mathews
lists at tigertech.com
Wed Nov 18 23:09:22 PST 2009
Anthony Minessale wrote:
> I can promise you that much of your problems will be solved with
> latest SVN.
Okay, thanks!
And in fact, I tried today's SVN, and it has fixed the problem with the
conference, even without setting "rtp-autoflush". Conferences now
discard packets and "catch up" when they gets behind, even with only the
default "rtp-autoflush-during-bridge" set.
The echo test still suffers from the same problem unless "rtp-autoflush"
is used, which I assume is simply because it's not considered a bridged
call.
Eavesdropping on an existing bridged call, then pressing "3" to turn it
into a conference call, also requires "rtp-autoflush" to avoid
persistent lag on the third leg.
> Did you answer the question about what phones? I'm going to guess Cisco
> based on the symptoms.
It happens with all phones, as far as I can tell. I've tried at least
Grandstream GXP2000, Grandstream BT102, SJPhone, Twinkle, and Express
Talk (none of them Cisco). I'm fairly positive the problem is unrelated
to phones; it's caused by delays in CPU scheduling of the server process.
> non bridge calls use a timer to make sure the audio is coming in at a
> steady rate to ensure bursting RTP
> is played at the correct rate. Stopping it and restarting 2 seconds
> later will cause a delay by design because you have suspended the
> process but not the UDP stack.
Ummm.... well, a copy of FreeSWITCH running on any non-realtime
operating system will occasionally not get scheduled for all the CPU
time it wants. For example, it wouldn't be unusual for a thread to ask
to sleep for 20 milliseconds but actually not wake up for 21, 25, or
even 40 milliseconds because the server is busy with other things.
Each time that happens, it's a smaller version of my artificial suspend
test: the operating system has, of course "suspended the process but not
the UDP stack". It doesn't necessarily mean there's bursty network
traffic or phone timing issues.
Should FreeSWITCH really lag by that much for the rest of the call? 20
milliseconds here, 20 milliseconds there, and pretty soon you're talking
about real seconds.
I'm assuming the reason for making it catch up on bridged calls, but not
non-bridged calls, is that people talking to each other can't tolerate
high latency, but people listening to an IVR or something can. But is
that still true if it gets seconds behind? And should the third leg of
an eavesdrop-converted-to-three-way-call be considered non-bridged for
this purpose?
Anyway, given that current svn trunk fixes the problem by default in
conferences and any other bridged call, I'm satisfied. And if anyone
complains about this problem for non-bridged calls, I suppose they can
enable "rtp-autoflush" to get the same "catch-up" behavior there.
I took a shot at documenting these parameters in the wiki on:
http://wiki.freeswitch.org/wiki/Sofia.conf.xml#rtp-autoflush-during-bridge
Thanks for the help!
--
Robert L Mathews, Tiger Technologies
More information about the FreeSWITCH-users
mailing list