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 <varname>ping_enabled</varname> 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 */