[SR-Users] rtpengine force-relay

Richard Fuchs rfuchs at sipwise.com
Fri Mar 15 14:49:43 CET 2019

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.


More information about the sr-users mailing list