OPUS: Jitter Buffer for bridged calls to use FEC?
Hi, I try to find out the best practice to use the OPUS features. The scenario is: Client A -------> (JitterBuffer) FreeSwitch -----------------------> Client B <---------------------- FreeSwitch (JitterBuffer) <-------- Is this the correct way? In the documentation for OPUS the message is, JitterBuffer is needed to use FEC. But in the documentation for the JitterBuffer is written: If both sides of a bridge are RTP and both sides have a jb, its fairly useless. In fact if anything, it can worsen call quality. You should only run jitterbuffers at points of termination change of protocol. Examples, if FS was hosting a conference or IVR, if you are bridging the call to a phone for instance, you want to not use a jitterbuffer because you want to preserve the original timestamps so your phone can use its own jitterbuffer. I think, package lost is the start indicator for FEC and normally the RTP sequence number is the indicator for package lost, but the sequence number is valid for the own SSRC space only. That means, if I have lost packages from Client A to Freeswitch is this information on the other side to client B missing, correct? Now the question, what is the best practice handle this scenario? Thanks a lot! Alex
That snip of documentation for JB is pretty old and obsolete I'd say, it does not mention transcoding + FEC . But where transcoding is used/needed is like a "point of termination". Relevant docs (and best practices) about OPUS + JB + FEC here: https://freeswitch.org/confluence/display/FREESWITCH/FreeSWITCH+And+The+Opus... If there's no JB then it can't be any FEC decoding. If you just do OPUS->FS(bridge)->OPUS then no point of enabling the JB, it only adds delay. Cheers, Dragos On Tue, May 12, 2020 at 10:23 AM Alexander Haugg <Alexander.Haugg@c4b.de> wrote:
Hi,
I try to find out the best practice to use the OPUS features.
The scenario is:
Client A -------> (JitterBuffer) FreeSwitch -----------------------> Client B
<---------------------- FreeSwitch (JitterBuffer) <--------
Is this the correct way?
In the documentation for OPUS the message is, JitterBuffer is needed to use FEC.
But in the documentation for the JitterBuffer is written:
If both sides of a bridge are RTP and both sides have a jb, its fairly
useless. In fact if anything, it can worsen call quality.
You should only run jitterbuffers at points of termination change of
protocol. Examples, if FS was hosting a conference or IVR, if you are
bridging the call to a phone for instance, you want to not use a
jitterbuffer because you want to preserve the original timestamps so
your phone can use its own jitterbuffer.
I think, package lost is the start indicator for FEC and normally the RTP sequence number is the indicator for package lost, but the sequence number is valid for the own SSRC space only.
That means, if I have lost packages from Client A to Freeswitch is this information on the other side to client B missing, correct?
Now the question, what is the best practice handle this scenario?
Thanks a lot!
Alex _________________________________________________________________________
The FreeSWITCH project is sponsored by SignalWire https://signalwire.com Enhance your FreeSWITCH install with disruptive priced SMS and PSTN services. Build your next product on our scalable cloud platform.
Join our online community to chat in real time https://signalwire.community
Professional FreeSWITCH Services sales@freeswitch.com https://freeswitch.com
Official FreeSWITCH Sites https://freeswitch.com/oss https://freeswitch.org/confluence https://cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users https://freeswitch.com
participants (2)
-
Alexander Haugg
-
Dragos Oancea