From 2b3c98b0699819d09559ee55c40ef9da0216e0d9 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Sun, 6 Oct 2013 20:51:31 -0400 Subject: [PATCH] ftmod_analog_em: Block/unblock signaling when a span is stopped/started --- libs/freetdm/src/ftmod/ftmod_analog_em/ftmod_analog_em.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/freetdm/src/ftmod/ftmod_analog_em/ftmod_analog_em.c b/libs/freetdm/src/ftmod/ftmod_analog_em/ftmod_analog_em.c index 9d5dd60be7..78f4bb38a1 100644 --- a/libs/freetdm/src/ftmod/ftmod_analog_em/ftmod_analog_em.c +++ b/libs/freetdm/src/ftmod/ftmod_analog_em/ftmod_analog_em.c @@ -44,6 +44,8 @@ struct tm * localtime_r(const time_t *clock, struct tm *result); #endif +static FIO_SPAN_SET_SIG_STATUS_FUNCTION(analog_em_set_span_sig_status); + /* check if the given file is a wave file and skip the header if it is */ #define WAVE_CHUNK_ID "RIFF" #define WAVE_FMT "WAVEfmt " @@ -223,6 +225,7 @@ static ftdm_status_t ftdm_analog_em_stop(ftdm_span_t *span) ftdm_analog_em_data_t *analog_data = span->signal_data; ftdm_clear_flag(analog_data, FTDM_ANALOG_EM_RUNNING); ftdm_sleep(100); + analog_em_set_span_sig_status(span, FTDM_SIG_STATE_SUSPENDED); return FTDM_SUCCESS; } @@ -1016,6 +1019,7 @@ static void *ftdm_analog_em_run(ftdm_thread_t *me, void *obj) ftdm_unused_arg(me); ftdm_log(FTDM_LOG_DEBUG, "ANALOG EM thread starting.\n"); + analog_em_set_span_sig_status(span, FTDM_SIG_STATE_UP); while(ftdm_running() && ftdm_test_flag(analog_data, FTDM_ANALOG_EM_RUNNING)) { int waitms = 10;