[Freeswitch-users] Call latency in conferences and echo test increases over time
Robert L Mathews
lists at tigertech.com
Tue Nov 17 14:18:42 PST 2009
I'm using FreeSWITCH 1.0.4.
When I make a call from a SIP phone to either a conference or an echo
test on the FreeSWITCH server, the latency ("lag") starts off very low
-- a fraction of a second. But as several minutes of time goes by, the
lag increases. After, say, 15 minutes, the lag will reach a couple of
seconds, making conference calls unusable.
This does not happen on pure SIP-to-SIP calls, even when FreeSWITCH is
handling the RTP media.
If I hang up and immediately call back in (even to the same conference),
the lag is reset to almost zero. If I put the call on "hold" and take it
off hold, the lag is also gone.
During testing, I've found that this may be related to the freeswitch
app on the server not getting all the CPU time it wants.
If I suspend the freeswitch process for two seconds and then resume it,
the sound stops for two seconds, as I'd expect. But the echo/conference
calls that were active are then lagged by two seconds until they hang up
(or get put on hold), even after freeswitch is resumed and getting all
the CPU time it needs.
This is easily reproduced by making a SIP call to the echo test module,
then:
pkill -STOP freeswitch; sleep 2; pkill -CONT freeswitch
Any echo test or conference call that was in progress will then be
permanently lagged by two seconds. However, any SIP-to-SIP calls that
were in progress will not become lagged.
Of course, killing it with -STOP is an artificially nasty thing to do.
But it effectively just prevents it from being scheduled on the CPU for
a short period of time, and I can duplicate the same behavior (more
gradually) by just increasing the load on the machine to the point that
the freeswitch app isn't getting much CPU time.
Just for the record, I get the same results from several different
phones and several different Internet connections, all of which have a
ping latency of under 40 ms to the server. This problem does not happen
using the same phones and network connections to an asterisk server.
Throwing out an even more complicated example that I've encountered: If
I have a SIP-to-SIP call going from party A to party B and I stop the
process for two seconds, it doesn't permanently introduce lag to that
call, as I mentioned. But if a third person (party C) starts
eavesdropping on the call and presses "3" to make it a three way call,
and then I suspend it for two seconds, the call between A and B isn't
lagged, but what party C hears and sends *is* lagged.
Any ideas on how to fix this? Do other people see the same thing
happening? As I said, the gradual increase in lag over a long period of
time makes long conferences unusable, unfortunately.
--
Rob
More information about the FreeSWITCH-users
mailing list