mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
ensure that after a channel is created, if it happened to be in 'channel alarm' state, when that alarm clears we won't generate a spurious 'alarm cleared' message
(closes issue #12160) Reported by: tzafrir git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@132942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -7586,12 +7586,25 @@ static struct dahdi_pvt *mkintf(int channel, const struct dahdi_chan_conf *conf,
|
||||
ioctl(tmp->subs[SUB_REAL].dfd,DAHDI_SETTONEZONE,&tmp->tonezone);
|
||||
#ifdef HAVE_PRI
|
||||
/* the dchannel is down so put the channel in alarm */
|
||||
if (tmp->pri && !pri_is_up(tmp->pri))
|
||||
if (tmp->pri && !pri_is_up(tmp->pri)) {
|
||||
tmp->inalarm = 1;
|
||||
}
|
||||
#endif
|
||||
if ((res = get_alarms(tmp)) != DAHDI_ALARM_NONE) {
|
||||
tmp->inalarm = 1;
|
||||
handle_alarms(tmp, res);
|
||||
} else {
|
||||
/* yes, this looks strange... the unknown_alarm flag is only used to
|
||||
control whether an 'alarm cleared' message gets generated when we
|
||||
get an indication that the channel is no longer in alarm status.
|
||||
however, the channel *could* be in an alarm status that we aren't
|
||||
aware of (since get_alarms() only reports span alarms, not channel
|
||||
alarms). setting this flag will cause any potential 'alarm cleared'
|
||||
message to be suppressed, but if a real alarm occurs before that
|
||||
happens, this flag will get cleared by it and the situation will
|
||||
be normal.
|
||||
*/
|
||||
tmp->unknown_alarm = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user