diff options
Diffstat (limited to 'channels/sig_pri.c')
-rw-r--r-- | channels/sig_pri.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 96bb03fab..e40aa9adb 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -190,6 +190,11 @@ static void sig_pri_set_outgoing(struct sig_pri_chan *p, int is_outgoing) void sig_pri_set_alarm(struct sig_pri_chan *p, int in_alarm) { + if (sig_pri_is_alarm_ignored(p->pri)) { + /* Always set not in alarm */ + in_alarm = 0; + } + /* * Clear the channel restart flag when the channel alarm changes * to prevent the flag from getting stuck when the link goes @@ -8834,6 +8839,18 @@ void sig_pri_chan_alarm_notify(struct sig_pri_chan *p, int noalarm) pri_rel(p->pri); } +/*! + * \brief Determine if layer 1 alarms are ignored. + * + * \param p Channel private pointer. + * + * \return TRUE if the alarm is ignored. + */ +int sig_pri_is_alarm_ignored(struct sig_pri_span *pri) +{ + return pri->layer1_ignored; +} + struct sig_pri_chan *sig_pri_chan_new(void *pvt_data, struct sig_pri_callback *callback, struct sig_pri_span *pri, int logicalspan, int channo, int trunkgroup) { struct sig_pri_chan *p; |