Browse code

rtpengine: add mode 2 for rtpengine_allow_op to return only manually disabled nodes

david authored on 13/07/2021 10:34:09
Showing 2 changed files
... ...
@@ -259,8 +259,9 @@ modparam("rtpengine", "rtpengine_tout_ms", 2000)
259 259
 	<section id="rtpengine.p.rtpengine_allow_op">
260 260
 		<title><varname>rtpengine_allow_op</varname> (integer)</title>
261 261
 		<para>
262
-		Enable this setting to allow finishing the current sessions while denying new sessions for the
263
-		<emphasis>manually deactivated nodes </emphasis> via kamctl command i.e. "disabled(permanent)" nodes.
262
+		Enable this setting to allow finishing the current sessions while denying new sessions for deactivated nodes.
263
+		</para>
264
+		<para>Nodes can be <emphasis>manually deactivated </emphasis> via kamctl command i.e. "disabled(permanent)" nodes.
264 265
 		Probably the manually deactivated machine is still running(did not crash).
265 266
 		</para>
266 267
 		<para>
... ...
@@ -279,6 +280,18 @@ modparam("rtpengine", "rtpengine_tout_ms", 2000)
279 280
 		Default value is <quote>0</quote> to keep the current behaviour.
280 281
 		</emphasis>
281 282
 		</para>
283
+		<para>
284
+		<emphasis>
285
+		If value set to <quote>1</quote> it will send commands to all disabled nodes for the
286
+		existing call.
287
+		</emphasis>
288
+		</para>
289
+		<para>
290
+		<emphasis>
291
+		If value set to <quote>2</quote> it will send commands only to manually disabled
292
+		nodes. (Not when timeout is disabled or node broken)
293
+		</emphasis>
294
+		</para>
282 295
 		<example>
283 296
 		<title>Set <varname>rtpengine_allow_op</varname> parameter</title>
284 297
 		<programlisting format="linespecific">
... ...
@@ -3347,8 +3347,10 @@ select_rtpp_node(str callid, str viabranch, int do_test, struct rtpp_node **quer
3347 3347
 		} else {
3348 3348
 			LM_DBG("node=%.*s for calllen=%d callid=%.*s is disabled, either broke or timeout disabled! Return it\n",
3349 3349
 				node->rn_url.len, node->rn_url.s, callid.len, callid.len, callid.s);
3350
+			if (rtpengine_allow_op == 1) {
3351
+				return node;
3352
+			}
3350 3353
 		}
3351
-		/*return node;*/
3352 3354
 	}
3353 3355
 
3354 3356
 	return NULL;