Module: kamailio Branch: master Commit: 16c2fcb34d315963c153e9a5f2961563567d19f0 URL: https://github.com/kamailio/kamailio/commit/16c2fcb34d315963c153e9a5f2961563...
Author: Victor Seva linuxmaniac@torreviejawireless.org Committer: Victor Seva linuxmaniac@torreviejawireless.org Date: 2015-10-05T15:26:38+02:00
acc: add acc_prepare_always parameter
This will force the preparation of the request no matter if the acc_prepare_flag is set at the moment of the transaction creation
---
Modified: modules/acc/acc_logic.c Modified: modules/acc/acc_mod.c Modified: modules/acc/acc_mod.h Modified: modules/acc/doc/acc_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/16c2fcb34d315963c153e9a5f2961563... Patch: https://github.com/kamailio/kamailio/commit/16c2fcb34d315963c153e9a5f2961563...
---
diff --git a/modules/acc/acc_logic.c b/modules/acc/acc_logic.c index 16a97e5..0d453a7 100644 --- a/modules/acc/acc_logic.c +++ b/modules/acc/acc_logic.c @@ -102,7 +102,7 @@ struct acc_enviroment acc_env; (((_rq)->REQ_METHOD==METHOD_CANCEL) && report_cancels==0)
#define is_acc_prepare_on(_rq) \ - (is_acc_flag_set(_rq,acc_prepare_flag)) + (acc_prepare_always || is_acc_flag_set(_rq,acc_prepare_flag))
static void tmcb_func( struct cell* t, int type, struct tmcb_params *ps );
diff --git a/modules/acc/acc_mod.c b/modules/acc/acc_mod.c index 91b47d0..d412dbf 100644 --- a/modules/acc/acc_mod.c +++ b/modules/acc/acc_mod.c @@ -108,6 +108,7 @@ static char *failed_filter_str = 0; /* by default, do not filter logging of unsigned short failed_filter[MAX_FAILED_FILTER_COUNT + 1]; static char* leg_info_str = 0; /*!< multi call-leg support */ struct acc_extra *leg_info = 0; +int acc_prepare_always = 0; /* prepare the request always for later acc */ int acc_prepare_flag = -1; /*!< should the request be prepared for later acc */ char *acc_time_format = "%Y-%m-%d %H:%M:%S"; int reason_from_hf = 0; /*!< assign reason from reason hf if present */ @@ -262,6 +263,7 @@ static param_export_t params[] = { {"multi_leg_info", PARAM_STRING, &leg_info_str }, {"detect_direction", INT_PARAM, &detect_direction }, {"acc_prepare_flag", INT_PARAM, &acc_prepare_flag }, + {"acc_prepare_always", INT_PARAM, &acc_prepare_always }, {"reason_from_hf", INT_PARAM, &reason_from_hf }, /* syslog specific */ {"log_flag", INT_PARAM, &log_flag }, diff --git a/modules/acc/acc_mod.h b/modules/acc/acc_mod.h index c746ffb..055ac61 100644 --- a/modules/acc/acc_mod.h +++ b/modules/acc/acc_mod.h @@ -103,5 +103,6 @@ extern int acc_time_mode; extern str acc_time_attr; extern str acc_time_exten;
+extern int acc_prepare_always;
#endif diff --git a/modules/acc/doc/acc_admin.xml b/modules/acc/doc/acc_admin.xml index fbe7dc3..c047873 100644 --- a/modules/acc/doc/acc_admin.xml +++ b/modules/acc/doc/acc_admin.xml @@ -624,7 +624,7 @@ modparam("acc", "detect_direction", 1) later, with flags set in TM module specific routes (e.g., like failure_route). If this flag is not set and acc or missed_call flag are not set either in request route block, there is no way to mark the - request for transaction later. If either acc or missed_call flags are + request for transaction later unless you set acc_prepare_always. If either acc or missed_call flags are set in request route block, there is no need to set this flag. </para> <para> @@ -639,6 +639,23 @@ modparam("acc", "acc_prepare_flag", 5) </programlisting> </example> </section> + <section id="acc.p.acc_prepare_always"> + <title><varname>acc_prepare_always</varname> (integer)</title> + <para> + Prepare all request even if acc_prepare_flag is not set to mark the request for transaction later. + </para> + <para> + Default value is not-set (previous behaviour). + </para> + <example> + <title>acc_prepare_flag example</title> + <programlisting format="linespecific"> +... +modparam("acc", "acc_prepare_always", 1) +... +</programlisting> + </example> + </section> <section id="acc.p.multi_leg_info"> <title><varname>multi_leg_info</varname> (string)</title> <para>