diff --git a/libs/openzap/src/ozmod/ozmod_isdn/ozmod_isdn.c b/libs/openzap/src/ozmod/ozmod_isdn/ozmod_isdn.c index 3c061960a1..fc998b126f 100644 --- a/libs/openzap/src/ozmod/ozmod_isdn/ozmod_isdn.c +++ b/libs/openzap/src/ozmod/ozmod_isdn/ozmod_isdn.c @@ -1512,20 +1512,12 @@ static __inline__ void check_state(zap_span_t *span) */ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *event) { - zap_sigmsg_t sig; - - memset(&sig, 0, sizeof(sig)); - sig.chan_id = event->channel->chan_id; - sig.span_id = event->channel->span_id; - sig.channel = event->channel; - zap_log(ZAP_LOG_DEBUG, "EVENT [%s][%d:%d] STATE [%s]\n", zap_oob_event2str(event->enum_id), event->channel->span_id, event->channel->chan_id, zap_channel_state2str(event->channel->state)); switch(event->enum_id) { case ZAP_OOB_ALARM_TRAP: { - sig.event_id = ZAP_OOB_ALARM_TRAP; if (event->channel->state != ZAP_CHANNEL_STATE_DOWN) { if (event->channel->type == ZAP_CHAN_TYPE_B) { zap_set_state_locked(event->channel, ZAP_CHANNEL_STATE_RESTART); @@ -1537,7 +1529,6 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even zap_channel_get_alarms(event->channel); - zap_span_send_signal(span, &sig); zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) has alarms! [%s]\n", event->channel->span_id, event->channel->chan_id, event->channel->physical_span_id, event->channel->physical_chan_id, @@ -1550,10 +1541,8 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) alarms Cleared!\n", event->channel->span_id, event->channel->chan_id, event->channel->physical_span_id, event->channel->physical_chan_id); - sig.event_id = ZAP_OOB_ALARM_CLEAR; zap_clear_flag(event->channel, ZAP_CHANNEL_SUSPENDED); zap_channel_get_alarms(event->channel); - zap_span_send_signal(span, &sig); } break; } diff --git a/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c b/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c index 0c8aadede3..f18aa1fc54 100644 --- a/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c +++ b/libs/openzap/src/ozmod/ozmod_libpri/ozmod_libpri.c @@ -806,20 +806,12 @@ static int on_ring(lpwrap_pri_t *spri, lpwrap_pri_event_t event_type, pri_event */ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *event) { - zap_sigmsg_t sig; - - memset(&sig, 0, sizeof(sig)); - sig.chan_id = event->channel->chan_id; - sig.span_id = event->channel->span_id; - sig.channel = event->channel; - zap_log(ZAP_LOG_DEBUG, "EVENT [%s][%d][%d:%d] STATE [%s]\n", zap_oob_event2str(event->enum_id), event->enum_id, event->channel->span_id, event->channel->chan_id, zap_channel_state2str(event->channel->state)); switch(event->enum_id) { case ZAP_OOB_ALARM_TRAP: { - sig.event_id = ZAP_OOB_ALARM_TRAP; if (event->channel->state != ZAP_CHANNEL_STATE_DOWN) { if (event->channel->type == ZAP_CHAN_TYPE_B) { zap_set_state_locked(event->channel, ZAP_CHANNEL_STATE_RESTART); @@ -831,7 +823,6 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even zap_channel_get_alarms(event->channel); - zap_span_send_signal(span, &sig); zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) has alarms! [%s]\n", event->channel->span_id, event->channel->chan_id, event->channel->physical_span_id, event->channel->physical_chan_id, @@ -840,14 +831,11 @@ static __inline__ zap_status_t process_event(zap_span_t *span, zap_event_t *even break; case ZAP_OOB_ALARM_CLEAR: { - zap_log(ZAP_LOG_WARNING, "channel %d:%d (%d:%d) alarms Cleared!\n", event->channel->span_id, event->channel->chan_id, event->channel->physical_span_id, event->channel->physical_chan_id); - sig.event_id = ZAP_OOB_ALARM_CLEAR; zap_clear_flag(event->channel, ZAP_CHANNEL_SUSPENDED); zap_channel_get_alarms(event->channel); - zap_span_send_signal(span, &sig); } break; } diff --git a/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c b/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c index 59d4155d33..ea9d58a43d 100644 --- a/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c +++ b/libs/openzap/src/ozmod/ozmod_wanpipe/ozmod_wanpipe.c @@ -962,6 +962,8 @@ ZIO_SPAN_NEXT_EVENT_FUNCTION(wanpipe_next_event) case WP_TDMAPI_EVENT_LINK_STATUS: { + zap_sigmsg_t sigmsg; + memset(&sigmsg, 0, sizeof(sigmsg)); switch(tdm_api.wp_tdm_cmd.event.wp_tdm_api_event_link_status) { case WP_TDMAPI_EVENT_LINK_STATUS_CONNECTED: event_id = ZAP_OOB_ALARM_CLEAR; @@ -970,6 +972,11 @@ ZIO_SPAN_NEXT_EVENT_FUNCTION(wanpipe_next_event) event_id = ZAP_OOB_ALARM_TRAP; break; }; + sigmsg.chan_id = zchan->chan_id; + sigmsg.span_id = zchan->span_id; + sigmsg.channel = zchan; + sigmsg.event_id = (event_id == ZAP_OOB_ALARM_CLEAR) ? ZAP_SIGEVENT_ALARM_CLEAR : ZAP_SIGEVENT_ALARM_TRAP; + zap_span_send_signal(zchan->span, &sigmsg); } break; diff --git a/libs/openzap/src/ozmod/ozmod_zt/ozmod_zt.c b/libs/openzap/src/ozmod/ozmod_zt/ozmod_zt.c index 3b383d89a4..111e5a26ab 100644 --- a/libs/openzap/src/ozmod/ozmod_zt/ozmod_zt.c +++ b/libs/openzap/src/ozmod/ozmod_zt/ozmod_zt.c @@ -1027,12 +1027,28 @@ ZIO_SPAN_NEXT_EVENT_FUNCTION(zt_next_event) break; case ZT_EVENT_ALARM: { + zap_sigmsg_t sigmsg; + zap_channel_t *zchan = span->channels[i]; event_id = ZAP_OOB_ALARM_TRAP; + memset(&sigmsg, 0, sizeof(sigmsg)); + sigmsg.chan_id = zchan->chan_id; + sigmsg.span_id = zchan->span_id; + sigmsg.channel = zchan; + sigmsg.event_id = ZAP_SIGEVENT_ALARM_TRAP; + zap_span_send_signal(zchan->span, &sigmsg); } break; case ZT_EVENT_NOALARM: { + zap_sigmsg_t sigmsg; + zap_channel_t *zchan = span->channels[i]; event_id = ZAP_OOB_ALARM_CLEAR; + memset(&sigmsg, 0, sizeof(sigmsg)); + sigmsg.chan_id = zchan->chan_id; + sigmsg.span_id = zchan->span_id; + sigmsg.channel = zchan; + sigmsg.event_id = ZAP_SIGEVENT_ALARM_CLEAR; + zap_span_send_signal(zchan->span, &sigmsg); } break; case ZT_EVENT_BITSCHANGED: