diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-11-12 02:45:22 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-11-12 02:45:22 +0000 |
commit | 40760c0712d83d7855ba29e255fd8d71e981920b (patch) | |
tree | 5829f006f18cfa313be861b3cf2912996851f25c /channels | |
parent | 316e316013da0f6137592f9eee30bf48a4926d18 (diff) |
Merged revisions 294822 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r294822 | rmudgett | 2010-11-11 20:44:12 -0600 (Thu, 11 Nov 2010) | 18 lines
Merged revisions 294821 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r294821 | rmudgett | 2010-11-11 20:41:13 -0600 (Thu, 11 Nov 2010) | 11 lines
Asterisk is getting a "No D-channels available!" warning message every 4 seconds.
Asterisk is just whining too much with this message: "No D-channels
available! Using Primary channel XXX as D-channel anyway!".
Filtered the message so it only comes out once if there is no D channel
available without an intervening D channel available period.
(closes issue #17270)
Reported by: jmls
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@294823 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/sig_pri.c | 10 | ||||
-rw-r--r-- | channels/sig_pri.h | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 176ab5093..61c075b9e 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -981,9 +981,14 @@ static int pri_find_dchan(struct sig_pri_span *pri) if (newslot < 0) { newslot = 0; /* This is annoying to see on non persistent layer 2 connections. Let's not complain in that case */ - if (pri->sig != SIG_BRI_PTMP) { - ast_log(LOG_WARNING, "No D-channels available! Using Primary channel as D-channel anyway!\n"); + if (pri->sig != SIG_BRI_PTMP && !pri->no_d_channels) { + pri->no_d_channels = 1; + ast_log(LOG_WARNING, + "Span %d: No D-channels available! Using Primary channel as D-channel anyway!\n", + pri->span); } + } else { + pri->no_d_channels = 0; } if (old && (oldslot != newslot)) ast_log(LOG_NOTICE, "Switching from d-channel fd %d to fd %d!\n", @@ -4386,6 +4391,7 @@ static void *pri_dchannel(void *vpri) switch (e->e) { case PRI_EVENT_DCHAN_UP: + pri->no_d_channels = 0; if (!pri->pri) pri_find_dchan(pri); /* Note presense of D-channel */ diff --git a/channels/sig_pri.h b/channels/sig_pri.h index 98b05b9ca..06dad4ea7 100644 --- a/channels/sig_pri.h +++ b/channels/sig_pri.h @@ -395,6 +395,8 @@ struct sig_pri_span { int resetpos; /*!< current position during a reset (-1 if not started) */ int sig; /*!< ISDN signalling type (SIG_PRI, SIG_BRI, SIG_BRI_PTMP, etc...) */ int new_chan_seq; /*!< New struct ast_channel sequence number */ + /*! TRUE if we have already whined about no D channels available. */ + unsigned int no_d_channels:1; /* Everything after here is internally set */ struct pri *dchans[SIG_PRI_NUM_DCHANS]; /*!< Actual d-channels */ |