On 15/03/2019 06.37, Vitalii Aleksandrov wrote:
On Thu, Mar 14, 2019 at 06:01:41PM +0200, Vitalii Aleksandrov wrote:
What is wrong with the default behavior? That adds ICE records and rewrites SDP c=.
When a call goes through multiple proxies and every proxy inserts itself SDP becomes really huge. What I like in "force-relay" is that it removes previously inserted "relay" candidates and inserts itself. Hope rtpengine will still talk to those relay candidates on incoming leg if "host" are not reachable. So I'm satisfied with "force-relay" when call to ICE supported phone, but when callee can't do ICE I'm in trouble.
ICE is end to end. rtpengine does nothing with other ICE candidates (AFAIK). So removing those other candidates defeats the purpose IMHO. You might as well remove any ICE and simply rewrite DSP
Oh, it actually does. If you use ICE=force, rtpengine removes all ICE candidates and inserts its own and both call participant can't to talk to each other directly but still can use ICE to establish media streams to rtpengine. ICE=force-relay does another cool thing. Using it call participants try to talk directly and if they can't (both behind NAT) they can still use "relay" candidate inserted by rtpengine and exchange media via it. I just need a mixed behavior like default + force-relay and don't want to hack rtpengine sources and then maintain my patches when need to update it.
You can always submit a pull request as long as it doesn't break existing functionality, e.g. by making it a new optional feature.
Cheers