diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index e6d68edf24..7e102047f3 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -4177,10 +4177,23 @@ SWITCH_STANDARD_API(sofia_function) stream->write_function(stream, "Flushing recovery database.\n"); } else { int x = sofia_glue_recover(SWITCH_FALSE); + switch_event_t *event = NULL; if (x) { + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, + MY_EVENT_RECOVERY_RECOVERED) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "recovered_calls", "%d", x); + switch_event_fire(&event); + } + stream->write_function(stream, "Recovered %d call(s)\n", x); } else { + if (switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, + MY_EVENT_RECOVERY_RECOVERED) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "recovered_calls", "0"); + switch_event_fire(&event); + } + stream->write_function(stream, "No calls to recover.\n"); } } diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index a95aa9d1cb..b289ffb703 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -87,6 +87,7 @@ typedef struct private_object private_object_t; #define MY_EVENT_GATEWAY_DEL "sofia::gateway_delete" #define MY_EVENT_RECOVERY "sofia::recovery_recv" #define MY_EVENT_RECOVERY_SEND "sofia::recovery_send" +#define MY_EVENT_RECOVERY_RECOVERED "sofia::recovery_recovered" #define MULTICAST_EVENT "multicast::event" #define SOFIA_REPLACES_HEADER "_sofia_replaces_"