]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Merge branch 'master' into arnaldo.span_event_refactor
authorArnaldo Pereira <arnaldo@sangoma.com>
Wed, 22 Dec 2010 22:08:05 +0000 (20:08 -0200)
committerArnaldo Pereira <arnaldo@sangoma.com>
Wed, 22 Dec 2010 22:08:05 +0000 (20:08 -0200)
Conflicts:

libs/freetdm/src/ftdm_io.c

1  2 
libs/freetdm/src/ftdm_io.c

index a8b60493c16d95ca5b10f07e670957a144031e25,451441ec97086754dfc0c56e625dffb1af7ffe41..b04cf4fbdcacc9fe1156433a485307bc03cb86b7
@@@ -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;
  }