Module: kamailio Branch: master Commit: 3fde5ddcd8ae583b8d3fa6be43589bba2e07b984 URL: https://github.com/kamailio/kamailio/commit/3fde5ddcd8ae583b8d3fa6be43589bba2e07b984
Author: Kamailio Dev <[email protected]> Committer: Kamailio Dev <[email protected]> Date: 2020-11-26T13:46:28+01:00 modules: readme files regenerated - sworker ... [skip ci] --- Modified: src/modules/sworker/README --- Diff: https://github.com/kamailio/kamailio/commit/3fde5ddcd8ae583b8d3fa6be43589bba2e07b984.diff Patch: https://github.com/kamailio/kamailio/commit/3fde5ddcd8ae583b8d3fa6be43589bba2e07b984.patch --- diff --git a/src/modules/sworker/README b/src/modules/sworker/README index e01307b175..241b077ab6 100644 --- a/src/modules/sworker/README +++ b/src/modules/sworker/README @@ -10,7 +10,7 @@ Daniel-Constantin Mierla <[email protected]> - Copyright © 2020 asipto.com + Copyright © 2020 asipto.com __________________________________________________________________ Table of Contents @@ -51,10 +51,19 @@ Chapter 1. Admin Guide 1. Overview This module can delegate processing of SIP requests to a group of - workers in the configuration file. The async workers have to defined - with the global parameter. + workers in the configuration file by using + event_route[core:pre-routing]. The async workers have to defined with + the global parameter. The worker process that received the message + internally does the usual execution of the config script, running + request_route or reply_route. - It does not create the transaction and nor suspend it. + Note: the behaviour is different than the async module, because it does + not create the transaction (obviously also not performing suspend). + + Note: it does not propagate anything set in the event_route, therefore + any set flag, or avp, etc. are lost. The SIP message is processed by + the delegated worker as it was fresh received from the network + (including parsing). 2. Dependencies @@ -77,7 +86,7 @@ Chapter 1. Admin Guide 3.1. sworker_active() 3.2. swork_task(gname) -3.1. sworker_active() +3.1. sworker_active() Return 1 (true) if the processing happens in an asyn process, or -1 (false) if the processing is happening in a SIP receiving process. @@ -94,24 +103,28 @@ request_route { } ... -3.2. swork_task(gname) +3.2. swork_task(gname) - Delegate the processing of SIP message to a group of async workers. + Delegate the processing of SIP message to a group of async workers. The + function is restricted to be used inside event_route[core:pre-routing]. The parameter gname provides the name of the group workers, it can contain pseudo-variables. - The function returns 0 (exit) in case the task is delegated. + The function returns 1 (true) in case the task is delegated. After + that, 'drop' must be used so processing of the message does not + continue to request_route or reply_route in the same process, it is + going to be done by the delegated group of workers. It returns -1 + (false) in case there was a proble delegating the processing. This function can be used from REQUEST_ROUTE|CORE_REPLY_ROUTE. Example 1.2. sworker_task() usage ... -request_route { - if(!sworker_active()) { +event_route[core:pre-routing] { + if(sworker_task("default")) { xinfo("===== delegate processing [$Tf] [$si:$sp]\n"); - sworker_task("default"); - exit; + drop; } xinfo("===== processing continues [$Tf] [$si:$sp]\n"); ...
_______________________________________________ Kamailio (SER) - Development Mailing List [email protected] https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev
