From 5d1cd7863a9e6aaf6eec11c7c1749bba4b03e3ec Mon Sep 17 00:00:00 2001 From: Richard Mudgett Date: Fri, 12 Nov 2010 02:46:03 +0000 Subject: Merged revisions 294823 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r294823 | rmudgett | 2010-11-11 20:45:22 -0600 (Thu, 11 Nov 2010) | 25 lines 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: https://origsvn.digium.com/svn/asterisk/trunk@294824 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/sig_pri.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'channels/sig_pri.c') 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 */ -- cgit v1.2.3