diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 998303ac7c..f57a103319 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -2512,6 +2512,7 @@ static switch_status_t cmd_profile(char **argv, int argc, switch_stream_handle_t char *profile_name = argv[0]; const char *err; switch_xml_t xml_root; + switch_event_t *event; if (argc < 2) { stream->write_function(stream, "Invalid Args!\n"); @@ -2554,6 +2555,10 @@ static switch_status_t cmd_profile(char **argv, int argc, switch_stream_handle_t sofia_glue_del_gateway(gateway_ptr); sofia_reg_release_gateway(gateway_ptr); stream->write_function(stream, "+OK gateway marked for deletion.\n"); + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_DEL) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Gateway", argv[2]); + switch_event_fire(&event); + } } else { stream->write_function(stream, "-ERR no such gateway.\n"); } diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index 22e6b795d4..1c743db4d7 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -81,6 +81,8 @@ typedef struct private_object private_object_t; #define MY_EVENT_GATEWAY_STATE "sofia::gateway_state" #define MY_EVENT_NOTIFY_REFER "sofia::notify_refer" #define MY_EVENT_REINVITE "sofia::reinvite" +#define MY_EVENT_GATEWAY_ADD "sofia::gateway_add" +#define MY_EVENT_GATEWAY_DEL "sofia::gateway_delete" #define MULTICAST_EVENT "multicast::event" #define SOFIA_REPLACES_HEADER "_sofia_replaces_" diff --git a/src/mod/endpoints/mod_sofia/sofia_reg.c b/src/mod/endpoints/mod_sofia/sofia_reg.c index 0a19606fb3..424c0a0495 100644 --- a/src/mod/endpoints/mod_sofia/sofia_reg.c +++ b/src/mod/endpoints/mod_sofia/sofia_reg.c @@ -2355,7 +2355,12 @@ switch_status_t sofia_reg_add_gateway(char *key, sofia_gateway_t *gateway) switch_mutex_unlock(mod_sofia_globals.hash_mutex); if (status == SWITCH_STATUS_SUCCESS) { + switch_event_t *s_event; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Added gateway '%s' to profile '%s'\n", gateway->name, gateway->profile->name); + if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_ADD) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(s_event, SWITCH_STACK_BOTTOM, "Gateway", gateway->name); + switch_event_fire(&s_event); + } } return status;