From: Arnaldo Pereira Date: Wed, 22 Dec 2010 22:08:05 +0000 (-0200) Subject: Merge branch 'master' into arnaldo.span_event_refactor X-Git-Tag: v1.2-rc1~223^2~5^2^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3e32e6ad7b63a16135bf0b2355608e86a46b9795;p=thirdparty%2Ffreeswitch.git Merge branch 'master' into arnaldo.span_event_refactor Conflicts: libs/freetdm/src/ftdm_io.c --- 3e32e6ad7b63a16135bf0b2355608e86a46b9795 diff --cc libs/freetdm/src/ftdm_io.c index a8b60493c1,451441ec97..b04cf4fbdc --- a/libs/freetdm/src/ftdm_io.c +++ b/libs/freetdm/src/ftdm_io.c @@@ -1160,13 -1152,36 +1163,16 @@@ FT_DECLARE(ftdm_status_t) ftdm_channel_ status = span->fio->channel_next_event(ftdmchan, event); if (status != FTDM_SUCCESS) { - return status; + goto done; } - /* before returning the event to the user we do some core operations with certain OOB events */ - memset(&sigmsg, 0, sizeof(sigmsg)); - sigmsg.span_id = span->span_id; - sigmsg.chan_id = (*event)->channel->chan_id; - sigmsg.channel = (*event)->channel; - switch ((*event)->enum_id) { - case FTDM_OOB_ALARM_CLEAR: - { - sigmsg.event_id = FTDM_SIGEVENT_ALARM_CLEAR; - ftdm_clear_flag_locked((*event)->channel, FTDM_CHANNEL_IN_ALARM); - ftdm_span_send_signal(span, &sigmsg); - } - break; - case FTDM_OOB_ALARM_TRAP: - { - sigmsg.event_id = FTDM_SIGEVENT_ALARM_TRAP; - ftdm_set_flag_locked((*event)->channel, FTDM_CHANNEL_IN_ALARM); - ftdm_span_send_signal(span, &sigmsg); - } - break; - default: - /* NOOP */ - break; + status = ftdm_event_handle_oob(*event); + if (status != FTDM_SUCCESS) { + ftdm_log(FTDM_LOG_ERROR, "failed to send SIGEVENT signal to user\n"); } + + done: + ftdm_channel_unlock(ftdmchan); return status; }