Module: kamailio
Branch: master
Commit: 3f1b5142c45f979b7847b2878ccf3b130baeae65
URL:
https://github.com/kamailio/kamailio/commit/3f1b5142c45f979b7847b2878ccf3b1…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2019-08-26T13:31:29+02:00
tm: lookup on_sl_reply route in mod_init()
- moved from fixup during modparam to store the name of the route block
---
Modified: src/modules/tm/t_reply.c
Modified: src/modules/tm/tm.c
---
Diff:
https://github.com/kamailio/kamailio/commit/3f1b5142c45f979b7847b2878ccf3b1…
Patch:
https://github.com/kamailio/kamailio/commit/3f1b5142c45f979b7847b2878ccf3b1…
---
diff --git a/src/modules/tm/t_reply.c b/src/modules/tm/t_reply.c
index f138e9a2e4..1fa7f9dda8 100644
--- a/src/modules/tm/t_reply.c
+++ b/src/modules/tm/t_reply.c
@@ -96,6 +96,7 @@ static int goto_on_branch_failure=0;
static int goto_on_reply=0;
/* where to go on receipt of reply without transaction context */
int goto_on_sl_reply=0;
+extern str on_sl_reply_name;
/* remap 503 response code to 500 */
extern int tm_remap_503_500;
diff --git a/src/modules/tm/tm.c b/src/modules/tm/tm.c
index 370d477109..105bbaf1f2 100644
--- a/src/modules/tm/tm.c
+++ b/src/modules/tm/tm.c
@@ -96,7 +96,6 @@ static int fixup_on_branch_failure(void** param, int param_no);
static int fixup_on_reply(void** param, int param_no);
static int fixup_on_branch(void** param, int param_no);
static int fixup_t_reply(void** param, int param_no);
-static int fixup_on_sl_reply(modparam_t type, void* val);
static int fixup_t_relay_to(void** param, int param_no);
static int fixup_t_is_set(void** param, int param_no);
@@ -217,7 +216,7 @@ static char *fr_inv_timer_param = 0 /*FR_INV_TIMER_AVP*/;
str contacts_avp = {0, 0};
str contact_flows_avp = {0, 0};
str ulattrs_xavp_name = {NULL, 0};
-
+str on_sl_reply_name = {NULL, 0};
int tm_remap_503_500 = 1;
int tm_failure_exec_mode = 0;
@@ -454,7 +453,7 @@ static param_export_t params[]={
{"cancel_b_method", PARAM_INT, &default_tm_cfg.cancel_b_flags},
{"reparse_on_dns_failover", PARAM_INT,
&default_tm_cfg.reparse_on_dns_failover},
- {"on_sl_reply", PARAM_STRING|PARAM_USE_FUNC, fixup_on_sl_reply },
+ {"on_sl_reply", PARAM_STR, &on_sl_reply_name
},
{"contacts_avp", PARAM_STR, &contacts_avp },
{"contact_flows_avp", PARAM_STR, &contact_flows_avp },
{"disable_6xx_block", PARAM_INT, &default_tm_cfg.disable_6xx
},
@@ -588,21 +587,6 @@ static int fixup_on_branch(void** param, int param_no)
return 0;
}
-static int fixup_on_sl_reply(modparam_t type, void* val)
-{
- if ((type & PARAM_STRING) == 0) {
- LM_ERR("not a string parameter\n");
- return -1;
- }
-
- if (fixup_routes(0, &onreply_rt, &val))
- return -1;
-
- goto_on_sl_reply = (int)(long)val;
- return 0;
-}
-
-
/* (char *hostname, char *port_nr) ==> (struct proxy_l *, -) */
static int fixup_hostport2proxy(void** param, int param_no)
@@ -716,6 +700,13 @@ static int mod_init(void)
return -1;
}
+ if(on_sl_reply_name.s!=NULL && on_sl_reply_name.len>0) {
+ goto_on_sl_reply=route_get(&onreply_rt, on_sl_reply_name.s);
+ if (goto_on_sl_reply==-1){
+ LM_ERR("route get failed for on_sl_reply\n");
+ return -1;
+ }
+ }
if (init_callid() < 0) {
LM_CRIT("Error while initializing Call-ID generator\n");
return -1;