send signaling alarm notification from the IO modules
git-svn-id: http://svn.openzap.org/svn/openzap/trunk@1049 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
46175f6f11
commit
18d3477131
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue