Module: kamailio Branch: master Commit: f653ea8c05e6916ff14e7da491bcd68f928b97af URL: https://github.com/kamailio/kamailio/commit/f653ea8c05e6916ff14e7da491bcd68f...
Author: david you@example.com Committer: Henning Westerholt hw@skalatan.de Date: 2021-07-13T15:01:15+02:00
rtpengine: add mode 2 for rtpengine_allow_op to return only manually disabled nodes
---
Modified: src/modules/rtpengine/doc/rtpengine_admin.xml Modified: src/modules/rtpengine/rtpengine.c
---
Diff: https://github.com/kamailio/kamailio/commit/f653ea8c05e6916ff14e7da491bcd68f... Patch: https://github.com/kamailio/kamailio/commit/f653ea8c05e6916ff14e7da491bcd68f...
---
diff --git a/src/modules/rtpengine/doc/rtpengine_admin.xml b/src/modules/rtpengine/doc/rtpengine_admin.xml index ef7d5a4fd7..731e4c6d56 100644 --- a/src/modules/rtpengine/doc/rtpengine_admin.xml +++ b/src/modules/rtpengine/doc/rtpengine_admin.xml @@ -259,8 +259,9 @@ modparam("rtpengine", "rtpengine_tout_ms", 2000) <section id="rtpengine.p.rtpengine_allow_op"> <title><varname>rtpengine_allow_op</varname> (integer)</title> <para> - Enable this setting to allow finishing the current sessions while denying new sessions for the - <emphasis>manually deactivated nodes </emphasis> via kamctl command i.e. "disabled(permanent)" nodes. + Enable this setting to allow finishing the current sessions while denying new sessions for deactivated nodes. + </para> + <para>Nodes can be <emphasis>manually deactivated </emphasis> via kamctl command i.e. "disabled(permanent)" nodes. Probably the manually deactivated machine is still running(did not crash). </para> <para> @@ -279,6 +280,18 @@ modparam("rtpengine", "rtpengine_tout_ms", 2000) Default value is <quote>0</quote> to keep the current behaviour. </emphasis> </para> + <para> + <emphasis> + If value set to <quote>1</quote> it will send commands to all disabled nodes for the + existing call. + </emphasis> + </para> + <para> + <emphasis> + If value set to <quote>2</quote> it will send commands only to manually disabled + nodes. (Not when timeout is disabled or node broken) + </emphasis> + </para> <example> <title>Set <varname>rtpengine_allow_op</varname> parameter</title> <programlisting format="linespecific"> diff --git a/src/modules/rtpengine/rtpengine.c b/src/modules/rtpengine/rtpengine.c index 1777ebc98f..28c058c2ee 100644 --- a/src/modules/rtpengine/rtpengine.c +++ b/src/modules/rtpengine/rtpengine.c @@ -3347,8 +3347,10 @@ select_rtpp_node(str callid, str viabranch, int do_test, struct rtpp_node **quer } 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); + if (rtpengine_allow_op == 1) { + return node; + } } - /*return node;*/ }
return NULL;