diff options
author | Alexei Gradinari <alex2grad@gmail.com> | 2016-08-08 13:53:32 -0400 |
---|---|---|
committer | Alexei Gradinari <alex2grad@gmail.com> | 2016-08-08 13:57:58 -0500 |
commit | 403b63571c53719bc050f4aded696cd933995d24 (patch) | |
tree | f12ba860945a4259979e2bb1d6497faf185304d7 /res/res_pjsip.c | |
parent | 9042ad40f2a56d6cfd4117897cbc9943253d4e09 (diff) |
res_pjsip_mwi: fix unsolicited mwi blocks PJSIP stack
The PJSIP taskprocessors could be overflowed on startup
if there are many (thousands) realtime endpoints
configured with unsolicited mwi.
The PJSIP stack could be totally unresponsive for a few minutes
after boot completed.
This patch creates a separate PJSIP serializers pool for mwi
and makes unsolicited mwi use serializers from this pool.
This patch also adds 2 new global options to tune taskprocessor
alert levels: 'mwi_tps_queue_high' and 'mwi_tps_queue_low'.
This patch also adds new global option 'mwi_disable_initial_unsolicited'
to disable sending unsolicited mwi to all endpoints on startup.
If disabled then unsolicited mwi will start processing
on next endpoint's contact update.
ASTERISK-26230 #close
Change-Id: I4c8ecb82c249eb887930980a800c9f87f28f861a
Diffstat (limited to 'res/res_pjsip.c')
-rw-r--r-- | res/res_pjsip.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/res/res_pjsip.c b/res/res_pjsip.c index ffbf880b1..8a9a19db8 100644 --- a/res/res_pjsip.c +++ b/res/res_pjsip.c @@ -1499,6 +1499,48 @@ set to this value if there is no better option (such as auth/realm) to be used.</synopsis> </configOption> + <configOption name="mwi_tps_queue_high" default="500"> + <synopsis>MWI taskprocessor high water alert trigger level.</synopsis> + <description> + <para>On a heavily loaded system you may need to adjust the + taskprocessor queue limits. If any taskprocessor queue size + reaches its high water level then pjsip will stop processing + new requests until the alert is cleared. The alert clears + when all alerting taskprocessor queues have dropped to their + low water clear level. + </para> + </description> + </configOption> + <configOption name="mwi_tps_queue_low" default="-1"> + <synopsis>MWI taskprocessor low water clear alert level.</synopsis> + <description> + <para>On a heavily loaded system you may need to adjust the + taskprocessor queue limits. If any taskprocessor queue size + reaches its high water level then pjsip will stop processing + new requests until the alert is cleared. The alert clears + when all alerting taskprocessor queues have dropped to their + low water clear level. + </para> + <note><para>Set to -1 for the low water level to be 90% of + the high water level.</para></note> + </description> + </configOption> + <configOption name="mwi_disable_initial_unsolicited" default="no"> + <synopsis>Enable/Disable sending unsolicited MWI to all endpoints on startup.</synopsis> + <description> + <para>When the initial unsolicited MWI notification are + enabled on startup then the initial notifications + get sent at startup. If you have a lot of endpoints + (thousands) that use unsolicited MWI then you may + want to consider disabling the initial startup + notifications. + </para> + <para>When the initial unsolicited MWI notifications are + disabled on startup then the notifications will start + on the endpoint's next contact update. + </para> + </description> + </configOption> </configObject> </configFile> </configInfo> |