[sr-dev] rtpengine_allow_op usage doubt

Richard Fuchs rfuchs at sipwise.com
Fri Feb 5 13:40:35 CET 2021


On 05/02/2021 04.46, David Escartin wrote:
> sorry i edit the previous message
>
> ....
> since version 4.4 we are using this parameter to 1 to allow that 
> ongoing calls process their messages through a particular rtpengine 
> when disabling it manually from database.
> But we see that enabling it also makes all the messages select the 
> rtpengine and attempt to send its own op command **when an rtpengine 
> is disabled because the socket or host is unreachable**. This is 
> causing an impact in cases where the rtpengine crashes (luckily not so 
> often).
>
> We have been doing some tests, and with this change
> ....
>
> El vie, 5 feb 2021 a las 10:43, David Escartin (<descartin at sonoc.io 
> <mailto:descartin at sonoc.io>>) escribió:
>
>     Dear all
>
>     since version 4.4 we are using this parameter to 1 to allow that
>     ongoing calls process their messages through a particular
>     rtpengine when disabling it manually from database.
>     But we see that enabling it also makes all the messages select the
>     rtpengine and attempt to send its own op command. This is
>     causing an impact in cases where the rtpengine crashes (luckily
>     not so often).
>
>     We have been doing some tests, and with this change
>
>          diff --git a/src/modules/rtpengine/rtpengine.c
>         b/src/modules/rtpengine/rtpengine.c
>         index 20df725d2e..2f6130c62a 100644
>         --- a/src/modules/rtpengine/rtpengine.c
>         +++ b/src/modules/rtpengine/rtpengine.c
>         @@ -3138,11 +3138,12 @@ select_rtpp_node(str callid, str
>         viabranch, int do_test, struct rtpp_node **quer
>                         if (node->rn_recheck_ticks ==
>         RTPENGINE_MAX_RECHECK_TICKS) {
>                                 LM_DBG("node=%.*s for calllen=%d
>         callid=%.*s is disabled(permanent) (probably still UP)! Return
>         it\n",
>                                         node->rn_url.len,
>         node->rn_url.s, callid.len, callid.len, callid.s);
>         +                        return node;
>                         } else {
>                                 LM_DBG("node=%.*s for calllen=%d
>         callid=%.*s is disabled, either broke or timeout disabled!
>         Return it\n",
>                                         node->rn_url.len,
>         node->rn_url.s, callid.len, callid.len, callid.s);
>                         }
>         -               return node;
>         +               /*return node;*/
>                 }
>
>                 return NULL;
>
>
>     it would make to only use allow_op for manually disabled rtpengine
>     nodes, and would make to not select the node and not try to send
>     the rtpp command, so we would not have almost any impact in
>     kamailio like timeouts and congestion, expect having messages not
>     doing rtpengine in a call where others did.
>
>     Do you think this change could make sense?
>     Is there any reason for being like it is now?
>
>
Don't have any direct experience with using that option, but it makes 
sense to me. Perhaps having a third value for that option (0/1/2) is the 
best way forward here, to retain compatibility for people who rely on 
the old behaviour. You can open a pull request on Github.

Cheers

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20210205/d43cf8d9/attachment.htm>


More information about the sr-dev mailing list