Quellcode durchsuchen

tm: added evcb_local_ack_sent parameter

- specify the name of the kemi function to be executed instead of
  event_route[tm:local-ack-sent]
Daniel-Constantin Mierla vor 3 Tagen
Ursprung
Commit
0826590562
2 geänderte Dateien mit 5 neuen und 2 gelöschten Zeilen
  1. 3 0
      src/modules/tm/tm.c
  2. 2 2
      src/modules/tm/uac.c

+ 3 - 0
src/modules/tm/tm.c

@@ -259,6 +259,8 @@ static rpc_export_t tm_rpc[];
 
 str tm_event_callback = STR_NULL;
 
+str tm_evcb_local_ack_sent = STR_NULL;
+
 static int fixup_t_check_status(void **param, int param_no);
 
 /* clang-format off */
@@ -528,6 +530,7 @@ static param_export_t params[] = {
 	{"headers_mode", PARAM_INT, &tm_headers_mode},
 	{"xavp_contact", PARAM_STR, &ulattrs_xavp_name},
 	{"event_callback", PARAM_STR, &tm_event_callback},
+	{"evcb_local_ack_sent", PARAM_STR, &tm_evcb_local_ack_sent},
 	{"relay_100", PARAM_INT, &default_tm_cfg.relay_100},
 	{"rich_redirect", PARAM_INT, &tm_rich_redirect},
 	{"event_callback_lres_sent", PARAM_STR, &_tm_event_callback_lres_sent},

+ 2 - 2
src/modules/tm/uac.c

@@ -73,6 +73,7 @@ int goto_on_local_req = -1; /* default disabled */
 static char from_tag[FROM_TAG_LEN + 1];
 
 extern str tm_event_callback;
+extern str tm_evcb_local_ack_sent;
 /*
  * Initialize UAC
  */
@@ -961,7 +962,6 @@ int uac_evrt_local_ack_sent(sip_msg_t *rpl)
 	int route_no;
 	run_act_ctx_t ctx;
 	int rtb;
-	str tm_evcb_local_ack_sent = str_init("ksr_tm_local_ack_sent");
 	str evname = str_init("tm:local-ack-sent");
 	sr_kemi_eng_t *keng = NULL;
 
@@ -973,7 +973,7 @@ int uac_evrt_local_ack_sent(sip_msg_t *rpl)
 		}
 	} else {
 		keng = sr_kemi_eng_get();
-		if(keng != NULL) {
+		if(keng == NULL || tm_evcb_local_ack_sent.len <= 0) {
 			LM_DBG("event route not defined and no kemi engine\n");
 			return -2;
 		}