diff --git a/modules/rtpengine/doc/rtpengine_admin.xml b/modules/rtpengine/doc/rtpengine_admin.xml
index 8db1eca801..72fa0e8c41 100644
--- a/modules/rtpengine/doc/rtpengine_admin.xml
+++ b/modules/rtpengine/doc/rtpengine_admin.xml
@@ -408,7 +408,7 @@ modparam("rtpengine", "set_column", "set_new")
Set ping_enabled parameter
...
-modparam("rtpengine", "ping_enables", yes)
+modparam("rtpengine", "ping_enabled", yes)
...
@@ -1673,6 +1673,10 @@ $ opensips-cli -x mi teardown Y2IwYjQ2YmE2ZDg5MWVkNDNkZGIwZjAzNGM1ZDY0ZDQ
the RTPEngine instance responds to probing or
inactive if the instance was deactivated.
+
+ set - the numeric id of the set
+ this RTPEngine instance is part of.
+
diff --git a/modules/rtpengine/rtpengine.c b/modules/rtpengine/rtpengine.c
index 96c94c922c..824542441d 100644
--- a/modules/rtpengine/rtpengine.c
+++ b/modules/rtpengine/rtpengine.c
@@ -395,8 +395,10 @@ static event_id_t rtpengine_status_event = EVI_ERROR;
static evi_params_p rtpengine_status_event_params;
static str rtpengine_status_event_socket_s = str_init("socket");
static str rtpengine_status_event_status_s = str_init("status");
+static str rtpengine_status_event_set_s = str_init("set");
static evi_param_p rtpengine_status_event_socket;
static evi_param_p rtpengine_status_event_status;
+static evi_param_p rtpengine_status_event_set;
static inline void raise_rtpengine_status_event(struct rtpe_node *node);
/* array with the sockets used by rtpengine (per process)*/
@@ -1016,6 +1018,7 @@ static int add_rtpengine_socks(struct rtpe_set * rtpe_list,
return -1;
}
memset(pnode, 0, sizeof(*pnode));
+ pnode->set = rtpe_list->id_set;
pnode->rn_recheck_ticks = 0;
pnode->rn_weight = weight;
pnode->rn_umode = 0;
@@ -1594,6 +1597,11 @@ mod_init(void)
LM_ERR("could not create RTPEngine Status status param\n");
return -1;
}
+ if ((rtpengine_status_event_set = evi_param_create(rtpengine_status_event_params,
+ &rtpengine_status_event_set_s)) == NULL) {
+ LM_ERR("could not create RTPEngine Status set param\n");
+ return -1;
+ }
if(db_url.s == NULL) {
/* storing the list of rtp proxy sets in shared memory*/
@@ -4766,6 +4774,10 @@ static inline void raise_rtpengine_status_event(struct rtpe_node *node)
LM_ERR("cannot set rtpengine status parameter\n");
return;
}
+ if (evi_param_set_int(rtpengine_status_event_set, &node->set) < 0) {
+ LM_ERR("cannot set rtpengine status parameter\n");
+ return;
+ }
if (evi_raise_event(rtpengine_status_event, rtpengine_status_event_params))
LM_ERR("unable to send event\n");
}
diff --git a/modules/rtpengine/rtpengine.h b/modules/rtpengine/rtpengine.h
index e137a311a8..a8c2bdd747 100644
--- a/modules/rtpengine/rtpengine.h
+++ b/modules/rtpengine/rtpengine.h
@@ -36,6 +36,7 @@
struct rtpe_node {
unsigned int idx; /* overall index */
+ unsigned int set; /* id of the set index */
str rn_url; /* unparsed, deletable, NULL-term */
int rn_umode;
char *rn_address; /* substring of rn_url */