Documentation based on repostory git version commit 2.1.0-alpha-185-g9bf71c35 

Module MediaRelay

The MediaRelay module masquerades SDP message so that all RTP and RTCP streams go through the proxy. When the client has set ICE candidates in the SDP offer, then the MediaRelay module will automatically add ICE relay candidates. The RTP and RTCP streams are then routed so that each client receives the stream of the other. MediaRelay makes sure that RTP is ALWAYS established, even with uncooperative firewalls.
----

Configuration options:

NameDescriptionDefault ValueType
enabled

Indicate whether the module is activated.

 trueBoolean
filter

A request/response enters module if the boolean filter evaluates to true. Ex: from.uri.domain contains 'sip.linphone.org', from.uri.domain in 'a.org b.org c.org', (to.uri.domain in 'a.org b.org c.org') && (user-agent == 'Linphone v2'). You can consult the full filter documentation here : https://wiki.linphone.org/xwiki/wiki/public/view/Flexisip/Configuration/Filter%20syntax/

 BooleanExpr
nortpproxy

The name of the SDP attribute to set by the first proxy to forbid subsequent proxies to provide relay. Use 'disable' to disable.

 nortpproxyString
sdp-port-range-min

The minimal value of SDP port range

 1024Integer
sdp-port-range-max

The maximal value of SDP port range

 65535Integer
bye-orphan-dialogs

Sends a ACK and BYE to 200Ok for INVITEs not belonging to any established call. This is to solve the race condition that happens when two callees answer the same call at the same time. According to RFC3261, the caller is expected to send an ACK followed by a BYE to the loser callee. This is not the case in RFC2543, where the proxy was supposed to do this. When set to true, the MediaRelay module will implement the RFC2543 behavior. Note that it may sound inappropriate to bundle this property with the media relay feature. However the MediaRelay module is the only one in Flexisip that has the visibility of SIP dialogs, which is necessary to implement this feature.

 falseBoolean
max-calls

Maximum concurrent calls processed by the media-relay. Calls arriving when the limit is exceed will be rejected. A value of 0 means no limit.

 0Integer
force-relay-for-non-ice-targets

When true, the 'c=' line and port number are set to the relay ip/port even if ICE candidates are present in the request, while the standard behavior is to leave the c= line and port number as they are in the original offer sent by the client. This variation allows callees that do not support ICE at all to benefit from the media relay service.

 trueBoolean
prevent-loops

Prevent media-relay ports to loop between them, which can cause 100% cpu on the media relay thread. You need to set this property to false if you are running test calls from clients running on the same IP address as the flexisip server

 trueBoolean
early-media-relay-single

In case multiples '183 Early media' responses are received for a call, only the first one will have RTP streams forwarded back to caller. This feature prevents the caller to receive 'mixed' streams, but it breaks scenarios where multiple servers play early media announcement in sequence.

 trueBoolean
max-early-media-per-call

Maximum number of relayed early media streams per call. This is useful to limit the cpu usage due to early media relaying on embedded systems. A value of 0 stands for unlimited.

 0Integer
inactivity-period

Period of time in seconds, after which a relayed call without any activity is considered as no longer running. Activity counts RTP/RTCP packets exchanged through the relay and SIP messages.

 3600Integer
force-public-ip-for-sdp-masquerading

Force the media relay to use the public address of Flexisip to relay calls. It not enabled, Flexisip will deduce a suitable IP address by basing on data from SIP messages, which could fail in tricky situations e.g. when Flexisip is behind a TCP proxy.

 falseBoolean
Tags:
Created by Buildbot on 2020/05/25 11:41