[asterisk-commits] branch north/chan_skinny-fixup r29013 - in
/team/north/chan_skinny-fixup: ./ ...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Sat May 20 00:55:42 MST 2006
Author: north
Date: Sat May 20 02:55:41 2006
New Revision: 29013
URL: http://svn.digium.com/view/asterisk?rev=29013&view=rev
Log:
Merged revisions 28745,28747,28771,28789,28791-28792,28795-28796,28832-28834,28863,28894-28895,28897,28903,28934-28936,28967,28970 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r28745 | tilghman | 2006-05-19 11:21:31 -0700 (Fri, 19 May 2006) | 2 lines
As requested by kpfleming, renaming messagecount to inboxcount and messagecount2 to messagecount.
................
r28747 | russell | 2006-05-19 11:54:21 -0700 (Fri, 19 May 2006) | 4 lines
add support for more refined ability to set install paths using the standard
options to configure such as --libdir, --sbindir, etc. All of the default paths
are still the same. (issue #7057, jcollie)
................
r28771 | russell | 2006-05-19 12:04:24 -0700 (Fri, 19 May 2006) | 14 lines
Merged revisions 28754 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r28754 | russell | 2006-05-19 15:01:17 -0400 (Fri, 19 May 2006) | 6 lines
This explicit poll is only needed on mac. In fact, it breaks some systems
such as some versions of Fedora, causing 'asterisk -rx' to never exit. This
has been tested on systems showing the asterisk -rx problem, as well as other
unaffected versions of linux, mac osx 10.4, and FreeBSD 6.
(issue #7071)
........
................
r28789 | russell | 2006-05-19 12:10:06 -0700 (Fri, 19 May 2006) | 3 lines
there is no reason to explicity specify -fomit-frame-pointer when building with
optimization enabled, because it is enabled automatically (issue #7108, casper)
................
r28791 | russell | 2006-05-19 12:19:27 -0700 (Fri, 19 May 2006) | 11 lines
Merged revisions 28790 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r28790 | russell | 2006-05-19 15:18:41 -0400 (Fri, 19 May 2006) | 3 lines
fix the build of smsq with -Werror. I learned something new about format
strings from this patch! (issue #7141, Mithraen)
........
................
r28792 | file | 2006-05-19 12:35:16 -0700 (Fri, 19 May 2006) | 2 lines
Fix tab completion when you just do a plain tab without entering anything, and also fix show application tab completion. (issue #7089 reported by blitzrage)
................
r28795 | kpfleming | 2006-05-19 12:43:33 -0700 (Fri, 19 May 2006) | 10 lines
Merged revisions 28794 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r28794 | kpfleming | 2006-05-19 14:39:55 -0500 (Fri, 19 May 2006) | 2 lines
use the specified 'subscribecontext' for a peer rather than the context found via the target domain (domain contexts are for calls, not for subscriptions) (issue #7122, reported by raarts)
........
................
r28796 | russell | 2006-05-19 12:46:10 -0700 (Fri, 19 May 2006) | 4 lines
we have to build local copies of aelflex.o, aelbison.o, and pbx_ael.o as well
to make sure aelparse doesn't use versions of these objects compiled with astmm
support (issue #7122)
................
r28832 | russell | 2006-05-19 15:51:44 -0700 (Fri, 19 May 2006) | 4 lines
Make the new behavior where the timestamp is checked on the call file before
deleting it optional, defaulting to the old behavior, where it is always
deleted (issue #6750, jcollie)
................
r28833 | kpfleming | 2006-05-19 15:55:02 -0700 (Fri, 19 May 2006) | 2 lines
let's use the proper variable here, instead of segfaulting (don't know how this worked for anyone at all)
................
r28834 | russell | 2006-05-19 15:55:09 -0700 (Fri, 19 May 2006) | 2 lines
allow chan_h323 to build (issue #7006, casper)
................
r28863 | kpfleming | 2006-05-19 16:08:47 -0700 (Fri, 19 May 2006) | 2 lines
attributes need trailing CR-LF
................
r28894 | russell | 2006-05-19 17:36:18 -0700 (Fri, 19 May 2006) | 5 lines
defaults.h must be listed as a dependency after the cleantest because if it
forces a make clean, it has to be regenerated. This fixes the problem that
people have been seeing where the build would fail complaining about defaults.h
not being present.
................
r28895 | russell | 2006-05-19 17:41:36 -0700 (Fri, 19 May 2006) | 3 lines
fix the build of func_realtime and aelparse with MTX_PROFILE enabled
(issue #7187, #7188, casper)
................
r28897 | russell | 2006-05-19 17:57:04 -0700 (Fri, 19 May 2006) | 3 lines
if a hostname is not specified, connect over a unix socket instead of
connecting to localhost (issue #7145, Mithraen)
................
r28903 | kpfleming | 2006-05-19 18:01:20 -0700 (Fri, 19 May 2006) | 10 lines
Merged revisions 28896 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r28896 | kpfleming | 2006-05-19 19:55:31 -0500 (Fri, 19 May 2006) | 2 lines
don't try to predict where the compiler will place things on the stack... put them in the right place explicitly (issues #7029 and #7100, maybe others)
........
................
r28934 | russell | 2006-05-19 18:28:14 -0700 (Fri, 19 May 2006) | 3 lines
fix up another place where the code made assumptions about how space for
variables would be allocatted on the stack
................
r28935 | russell | 2006-05-19 18:29:08 -0700 (Fri, 19 May 2006) | 2 lines
various fixes regarding coding guidelines issues
................
r28936 | russell | 2006-05-19 18:35:12 -0700 (Fri, 19 May 2006) | 3 lines
remove an unused variable, and default the user to asterisk if not specified
in the config file (issue #7153, Mithraen)
................
r28967 | russell | 2006-05-19 19:32:54 -0700 (Fri, 19 May 2006) | 1 line
................
r28970 | kpfleming | 2006-05-19 19:51:53 -0700 (Fri, 19 May 2006) | 10 lines
Merged revisions 28968 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r28968 | kpfleming | 2006-05-19 21:35:53 -0500 (Fri, 19 May 2006) | 2 lines
don't allow queue member devices to ring longer than the total queue timeout (issue #6423, reported and patched by bcnit)
........
................
Modified:
team/north/chan_skinny-fixup/ (props changed)
team/north/chan_skinny-fixup/Makefile
team/north/chan_skinny-fixup/UPGRADE.txt
team/north/chan_skinny-fixup/acinclude.m4
team/north/chan_skinny-fixup/app.c
team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c
team/north/chan_skinny-fixup/apps/app_queue.c
team/north/chan_skinny-fixup/apps/app_sms.c
team/north/chan_skinny-fixup/apps/app_voicemail.c
team/north/chan_skinny-fixup/asterisk.c
team/north/chan_skinny-fixup/cdr/cdr_pgsql.c
team/north/chan_skinny-fixup/channels/chan_iax2.c
team/north/chan_skinny-fixup/channels/chan_sip.c
team/north/chan_skinny-fixup/channels/chan_skinny.c
team/north/chan_skinny-fixup/channels/h323/Makefile
team/north/chan_skinny-fixup/cli.c
team/north/chan_skinny-fixup/configure
team/north/chan_skinny-fixup/configure.ac
team/north/chan_skinny-fixup/funcs/func_realtime.c
team/north/chan_skinny-fixup/include/asterisk/app.h
team/north/chan_skinny-fixup/makeopts.in
team/north/chan_skinny-fixup/manager.c
team/north/chan_skinny-fixup/pbx.c
team/north/chan_skinny-fixup/pbx/pbx_spool.c
team/north/chan_skinny-fixup/sample.call
team/north/chan_skinny-fixup/utils/Makefile
team/north/chan_skinny-fixup/utils/ael_main.c
team/north/chan_skinny-fixup/utils/smsq.c
Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.
Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.
Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Sat May 20 02:55:41 2006
@@ -1,1 +1,1 @@
-/trunk:1-28718
+/trunk:1-28989
Modified: team/north/chan_skinny-fixup/Makefile
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/Makefile?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/Makefile (original)
+++ team/north/chan_skinny-fixup/Makefile Sat May 20 02:55:41 2006
@@ -82,41 +82,27 @@
# Define standard directories for various platforms
# These apply if they are not redefined in asterisk.conf
ifeq ($(OSARCH),SunOS)
- ASTETCDIR=$(INSTALL_PREFIX)/etc/opt/asterisk
- ASTLIBDIR=$(INSTALL_PREFIX)/opt/asterisk/lib
- ASTVARLIBDIR=$(INSTALL_PREFIX)/var/opt/asterisk/lib
- ASTSPOOLDIR=$(INSTALL_PREFIX)/var/opt/asterisk/spool
- ASTLOGDIR=$(INSTALL_PREFIX)/var/opt/asterisk/log
- ASTHEADERDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/include/asterisk
- ASTBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/bin
- ASTSBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/sbin
- ASTVARRUNDIR=$(INSTALL_PREFIX)/var/opt/asterisk/run
- ASTMANDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/share/man
+ ASTETCDIR=/etc/opt/asterisk
+ ASTLIBDIR=/opt/asterisk/lib
+ ASTVARLIBDIR=/var/opt/asterisk/lib
+ ASTSPOOLDIR=/var/opt/asterisk/spool
+ ASTLOGDIR=/var/opt/asterisk/log
+ ASTHEADERDIR=/opt/asterisk/usr/include/asterisk
+ ASTBINDIR=/opt/asterisk/usr/bin
+ ASTSBINDIR=/opt/asterisk/usr/sbin
+ ASTVARRUNDIR=/var/opt/asterisk/run
+ ASTMANDIR=/opt/asterisk/usr/share/man
else
-ifeq ($(OSARCH),FreeBSD)
- PREFIX?=/usr/local
- ASTETCDIR=$(INSTALL_PREFIX)$(PREFIX)/etc/asterisk
- ASTLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/lib/asterisk
- ASTVARLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/share/asterisk
- ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
- ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
- ASTHEADERDIR=$(INSTALL_PREFIX)$(PREFIX)/include/asterisk
- ASTBINDIR=$(INSTALL_PREFIX)$(PREFIX)/bin
- ASTSBINDIR=$(INSTALL_PREFIX)$(PREFIX)/sbin
- ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
- ASTMANDIR=$(INSTALL_PREFIX)$(PREFIX)/man
-else
- ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
- ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk
- ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk
- ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
- ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
- ASTHEADERDIR=$(INSTALL_PREFIX)/usr/include/asterisk
- ASTBINDIR=$(INSTALL_PREFIX)/usr/bin
- ASTSBINDIR=$(INSTALL_PREFIX)/usr/sbin
- ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
- ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man
-endif
+ ASTETCDIR=$(sysconfdir)/asterisk
+ ASTLIBDIR=$(libdir)/asterisk
+ ASTVARLIBDIR=$(localstatedir)/lib/asterisk
+ ASTSPOOLDIR=$(localstatedir)/spool/asterisk
+ ASTLOGDIR=$(localstatedir)/log/asterisk
+ ASTHEADERDIR=$(includedir)/asterisk
+ ASTBINDIR=$(bindir)
+ ASTSBINDIR=$(sbindir)
+ ASTVARRUNDIR=$(localstatedir)/run
+ ASTMANDIR=$(mandir)
endif
ASTDATADIR?=$(ASTVARLIBDIR)
@@ -279,9 +265,6 @@
endif
ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS)
-ifeq ($(findstring dont-optimize,$(MAKECMDGOALS)),)
-ASTCFLAGS+=-fomit-frame-pointer
-endif
MOD_SUBDIRS=res channels pbx apps codecs formats cdr funcs
OTHER_SUBDIRS=utils stdtime agi
@@ -384,7 +367,7 @@
@echo " + make install +"
@echo " +-------------------------------------------+"
-all: cleantest config.status menuselect.makeopts depend asterisk subdirs
+all: cleantest defaults.h config.status menuselect.makeopts depend asterisk subdirs
config.status: configure
@CFLAGS="" ./configure
Modified: team/north/chan_skinny-fixup/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/UPGRADE.txt?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/UPGRADE.txt (original)
+++ team/north/chan_skinny-fixup/UPGRADE.txt Sat May 20 02:55:41 2006
@@ -107,6 +107,12 @@
to specify which DTMF digits can be used to accept a recording and
which digits can be used to cancel a recording.
+* ast_app_messagecount has been renamed to ast_app_inboxcount. There is now a
+ new ast_app_messagecount function which takes a single context/mailbox/folder
+ mailbox specification and returns the message count for that folder only.
+ This addresses the deficiency of not being able to count the number of
+ messages in folders other than INBOX and Old.
+
Manager:
* After executing the 'status' manager action, the "Status" manager events
Modified: team/north/chan_skinny-fixup/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/acinclude.m4?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/acinclude.m4 (original)
+++ team/north/chan_skinny-fixup/acinclude.m4 Sat May 20 02:55:41 2006
@@ -20,17 +20,17 @@
PBX_LIB$1=0
if test "${USE_$1}" != "no"; then
- libdir=""
+ pbxlibdir=""
if test "x${$1_DIR}" != "x"; then
- libdir="-L${$1_DIR}/lib"
+ pbxlibdir="-L${$1_DIR}/lib"
fi
- AC_CHECK_LIB([$1], [$2], [:], [], ${libdir} $6)
+ AC_CHECK_LIB([$1], [$2], [:], [], ${pbxlibdir} $6)
if test "${ac_cv_lib_$1_$2}" = "yes"; then
$1_LIB="-l$1 $6"
$4_HEADER_FOUND="1"
if test "x${$1_DIR}" != "x"; then
- $1_LIB="${libdir} ${$1_LIB}"
+ $1_LIB="${pbxlibdir} ${$1_LIB}"
$1_INCLUDE="-I${$1_DIR}/include"
if test "x$3" != "x" ; then
AC_CHECK_HEADER([${$1_DIR}/include/$3], [$4_HEADER_FOUND=1], [$4_HEADER_FOUND=0] )
Modified: team/north/chan_skinny-fixup/app.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/app.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/app.c (original)
+++ team/north/chan_skinny-fixup/app.c Sat May 20 02:55:41 2006
@@ -145,23 +145,23 @@
}
static int (*ast_has_voicemail_func)(const char *mailbox, const char *folder) = NULL;
-static int (*ast_messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
-static int (*ast_messagecount2_func)(const char *context, const char *mailbox, const char *folder) = NULL;
+static int (*ast_inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
+static int (*ast_messagecount_func)(const char *context, const char *mailbox, const char *folder) = NULL;
void ast_install_vm_functions(int (*has_voicemail_func)(const char *mailbox, const char *folder),
- int (*messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs),
- int (*messagecount2_func)(const char *context, const char *mailbox, const char *folder))
+ int (*inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs),
+ int (*messagecount_func)(const char *context, const char *mailbox, const char *folder))
{
ast_has_voicemail_func = has_voicemail_func;
+ ast_inboxcount_func = inboxcount_func;
ast_messagecount_func = messagecount_func;
- ast_messagecount2_func = messagecount2_func;
}
void ast_uninstall_vm_functions(void)
{
ast_has_voicemail_func = NULL;
+ ast_inboxcount_func = NULL;
ast_messagecount_func = NULL;
- ast_messagecount2_func = NULL;
}
int ast_app_has_voicemail(const char *mailbox, const char *folder)
@@ -178,15 +178,15 @@
}
-int ast_app_messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
+int ast_app_inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
{
static int warned = 0;
if (newmsgs)
*newmsgs = 0;
if (oldmsgs)
*oldmsgs = 0;
- if (ast_messagecount_func)
- return ast_messagecount_func(mailbox, newmsgs, oldmsgs);
+ if (ast_inboxcount_func)
+ return ast_inboxcount_func(mailbox, newmsgs, oldmsgs);
if (!warned && (option_verbose > 2)) {
warned++;
@@ -196,11 +196,11 @@
return 0;
}
-int ast_app_messagecount2(const char *context, const char *mailbox, const char *folder)
+int ast_app_messagecount(const char *context, const char *mailbox, const char *folder)
{
static int warned = 0;
- if (ast_messagecount2_func)
- return ast_messagecount2_func(context, mailbox, folder);
+ if (ast_messagecount_func)
+ return ast_messagecount_func(context, mailbox, folder);
if (!warned && (option_verbose > 2)) {
warned++;
Modified: team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c (original)
+++ team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c Sat May 20 02:55:41 2006
@@ -128,7 +128,7 @@
priority_jump = 1;
}
- vmcount = ast_app_messagecount2(context, vmbox, vmfolder);
+ vmcount = ast_app_messagecount(context, vmbox, vmfolder);
/* Set the count in the channel variable */
if (varname) {
snprintf(tmp, sizeof(tmp), "%d", vmcount);
@@ -177,7 +177,7 @@
args.folder = "INBOX";
}
- snprintf(buf, len, "%d", ast_app_messagecount2(context, args.vmbox, args.folder));
+ snprintf(buf, len, "%d", ast_app_messagecount(context, args.vmbox, args.folder));
LOCAL_USER_REMOVE(u);
Modified: team/north/chan_skinny-fixup/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_queue.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_queue.c (original)
+++ team/north/chan_skinny-fixup/apps/app_queue.c Sat May 20 02:55:41 2006
@@ -2201,7 +2201,10 @@
free(tmp);
}
}
- to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
+ if (qe->expire && (!qe->parent->timeout || (qe->expire - now) <= qe->parent->timeout))
+ to = (qe->expire - now) * 1000;
+ else
+ to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
ring_one(qe, outgoing, &numbusies);
ast_mutex_unlock(&qe->parent->lock);
if (use_weight)
Modified: team/north/chan_skinny-fixup/apps/app_sms.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_sms.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_sms.c (original)
+++ team/north/chan_skinny-fixup/apps/app_sms.c Sat May 20 02:55:41 2006
@@ -1176,14 +1176,13 @@
static int sms_generate (struct ast_channel *chan, void *data, int len, int samples)
{
struct ast_frame f = { 0 };
- unsigned char waste[AST_FRIENDLY_OFFSET];
#define MAXSAMPLES (800)
#ifdef OUTALAW
- unsigned char buf[MAXSAMPLES];
+ unsigned char *buf;
#else
- signed short buf[MAXSAMPLES];
+ short *buf;
#endif
-#define SAMPLE2LEN (sizeof (buf[0]))
+#define SAMPLE2LEN sizeof(*buf)
sms_t *h = data;
int i;
@@ -1192,9 +1191,9 @@
MAXSAMPLES, samples);
samples = MAXSAMPLES;
}
- len = samples * SAMPLE2LEN;
-
- waste[0] = 0; /* make compiler happy */
+ len = samples * SAMPLE2LEN + AST_FRIENDLY_OFFSET;
+ buf = alloca(len);
+
f.frametype = AST_FRAME_VOICE;
#ifdef OUTALAW
f.subclass = AST_FORMAT_ALAW;
@@ -1204,7 +1203,7 @@
f.datalen = len;
f.offset = AST_FRIENDLY_OFFSET;
f.mallocd = 0;
- f.data = buf;
+ f.data = buf + AST_FRIENDLY_OFFSET;
f.samples = samples;
f.src = "app_sms";
/* create a buffer containing the digital sms pattern */
Modified: team/north/chan_skinny-fixup/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_voicemail.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_voicemail.c (original)
+++ team/north/chan_skinny-fixup/apps/app_voicemail.c Sat May 20 02:55:41 2006
@@ -2012,7 +2012,7 @@
}
#ifdef USE_ODBC_STORAGE
-static int messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
+static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
{
int x = -1;
int res;
@@ -2127,7 +2127,7 @@
return x;
}
-static int messagecount2(const char *context, const char *mailbox, const char *folder)
+static int messagecount(const char *context, const char *mailbox, const char *folder)
{
struct odbc_obj *obj = NULL;
int nummsgs = 0;
@@ -2193,7 +2193,7 @@
else
context = "default";
- if (messagecount2(context, tmp, folder))
+ if (messagecount(context, tmp, folder))
return 1;
else
return 0;
@@ -2201,42 +2201,20 @@
#else
-static int __has_voicemail(const char *mailbox, const char *folder, int shortcircuit)
+static int __has_voicemail(const char *context, const char *mailbox, const char *folder, int shortcircuit)
{
DIR *dir;
struct dirent *de;
char fn[256];
- char tmp[256]="";
- char *mb, *cur;
- char *context;
int ret = 0;
if (!folder)
folder = "INBOX";
/* If no mailbox, return immediately */
if (ast_strlen_zero(mailbox))
return 0;
- if (strchr(mailbox, ',')) {
- ast_copy_string(tmp, mailbox, sizeof(tmp));
- mb = tmp;
- ret = 0;
- while((cur = strsep(&mb, ","))) {
- if (!ast_strlen_zero(cur)) {
- if ((ret += __has_voicemail(cur, folder, shortcircuit))) {
- if (shortcircuit)
- return 1;
- }
- }
- }
- return ret;
- }
- ast_copy_string(tmp, mailbox, sizeof(tmp));
- context = strchr(tmp, '@');
- if (context) {
- *context = '\0';
- context++;
- } else
+ if (!context)
context = "default";
- snprintf(fn, sizeof(fn), "%s%s/%s/%s", VM_SPOOL_DIR, context, tmp, folder);
+ snprintf(fn, sizeof(fn), "%s%s/%s/%s", VM_SPOOL_DIR, context, mailbox, folder);
dir = opendir(fn);
if (!dir)
return 0;
@@ -2255,21 +2233,26 @@
static int has_voicemail(const char *mailbox, const char *folder)
{
- return __has_voicemail(mailbox, folder, 1);
-}
-
-static int messagecount2(const char *context, const char *mailbox, const char *folder)
-{
- char tmp[256];
- snprintf(tmp, sizeof(tmp), "%s@%s", mailbox, context);
- return __has_voicemail(tmp, folder, 0);
-}
-
-static int messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
-{
- DIR *dir;
- struct dirent *de;
- char fn[256];
+ char tmp[256], *tmp2 = tmp, *mbox, *context;
+ ast_copy_string(tmp, mailbox, sizeof(tmp));
+ while ((mbox = strsep(&tmp2, ","))) {
+ if ((context = strchr(mbox, '@')))
+ *context++ = '\0';
+ else
+ context = "default";
+ if (__has_voicemail(context, mbox, folder, 1))
+ return 1;
+ }
+ return 0;
+}
+
+static int messagecount(const char *context, const char *mailbox, const char *folder)
+{
+ return __has_voicemail(context, mailbox, folder, 0);
+}
+
+static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
+{
char tmp[256];
char *context;
@@ -2288,7 +2271,7 @@
mb = tmp;
while((cur = strsep(&mb, ", "))) {
if (!ast_strlen_zero(cur)) {
- if (messagecount(cur, newmsgs ? &tmpnew : NULL, oldmsgs ? &tmpold : NULL))
+ if (inboxcount(cur, newmsgs ? &tmpnew : NULL, oldmsgs ? &tmpold : NULL))
return -1;
else {
if (newmsgs)
@@ -2307,32 +2290,10 @@
context++;
} else
context = "default";
- if (newmsgs) {
- snprintf(fn, sizeof(fn), "%s%s/%s/INBOX", VM_SPOOL_DIR, context, tmp);
- dir = opendir(fn);
- if (dir) {
- while ((de = readdir(dir))) {
- if ((strlen(de->d_name) > 3) && !strncasecmp(de->d_name, "msg", 3) &&
- !strcasecmp(de->d_name + strlen(de->d_name) - 3, "txt"))
- (*newmsgs)++;
-
- }
- closedir(dir);
- }
- }
- if (oldmsgs) {
- snprintf(fn, sizeof(fn), "%s%s/%s/Old", VM_SPOOL_DIR, context, tmp);
- dir = opendir(fn);
- if (dir) {
- while ((de = readdir(dir))) {
- if ((strlen(de->d_name) > 3) && !strncasecmp(de->d_name, "msg", 3) &&
- !strcasecmp(de->d_name + strlen(de->d_name) - 3, "txt"))
- (*oldmsgs)++;
-
- }
- closedir(dir);
- }
- }
+ if (newmsgs)
+ *newmsgs = __has_voicemail(context, tmp, "INBOX", 0);
+ if (oldmsgs)
+ *oldmsgs = __has_voicemail(context, tmp, "Old", 0);
return 0;
}
@@ -2410,7 +2371,7 @@
#else
if (!ast_strlen_zero(externnotify)) {
#endif
- if (messagecount(ext_context, &newvoicemails, &oldvoicemails)) {
+ if (inboxcount(ext_context, &newvoicemails, &oldvoicemails)) {
ast_log(LOG_ERROR, "Problem in calculating number of voicemail messages available for extension %s\n", extension);
} else {
snprintf(arguments, sizeof(arguments), "%s %s %s %d&", externnotify, context, extension, newvoicemails);
@@ -3417,7 +3378,7 @@
/* Leave voicemail for someone */
if (ast_app_has_voicemail(ext_context, NULL)) {
- ast_app_messagecount(ext_context, &newmsgs, &oldmsgs);
+ ast_app_inboxcount(ext_context, &newmsgs, &oldmsgs);
}
manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s@%s\r\nWaiting: %d\r\nNew: %d\r\nOld: %d\r\n", vmu->mailbox, vmu->context, ast_app_has_voicemail(ext_context, NULL), newmsgs, oldmsgs);
run_externnotify(vmu->context, vmu->mailbox);
@@ -6654,7 +6615,7 @@
/* compute the location of the voicemail spool directory */
snprintf(VM_SPOOL_DIR, sizeof(VM_SPOOL_DIR), "%s/voicemail/", ast_config_AST_SPOOL_DIR);
- ast_install_vm_functions(has_voicemail, messagecount, messagecount2);
+ ast_install_vm_functions(has_voicemail, inboxcount, messagecount);
#if defined(USE_ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE)
ast_log(LOG_WARNING, "The current ODBC storage table format will be changed soon."
Modified: team/north/chan_skinny-fixup/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/asterisk.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/asterisk.c (original)
+++ team/north/chan_skinny-fixup/asterisk.c Sat May 20 02:55:41 2006
@@ -2027,13 +2027,17 @@
if (ast_opt_exec && data) { /* hack to print output then exit if asterisk -rx is used */
char tempchar;
+#ifdef __Darwin__
struct pollfd fds[0];
fds[0].fd = ast_consock;
fds[0].events = POLLIN;
fds[0].revents = 0;
- while(poll(fds, 1, 100) > 0) {
+ while (poll(fds, 1, 100) > 0) {
ast_el_read_char(el, &tempchar);
}
+#else
+ while (!ast_el_read_char(el, &tempchar));
+#endif
return;
}
for (;;) {
Modified: team/north/chan_skinny-fixup/cdr/cdr_pgsql.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/cdr/cdr_pgsql.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/cdr/cdr_pgsql.c (original)
+++ team/north/chan_skinny-fixup/cdr/cdr_pgsql.c Sat May 20 02:55:41 2006
@@ -63,7 +63,7 @@
static char *desc = "PostgreSQL CDR Backend";
static char *name = "pgsql";
static char *config = "cdr_pgsql.conf";
-static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbsock = NULL, *pgdbport = NULL, *table = NULL;
+static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbport = NULL, *table = NULL;
static int connected = 0;
AST_MUTEX_DEFINE_STATIC(pgsql_lock);
@@ -195,8 +195,6 @@
free(pgdbname);
if (pgdbuser)
free(pgdbuser);
- if (pgdbsock)
- free(pgdbsock);
if (pgpassword)
free(pgpassword);
if (pgdbport)
@@ -209,88 +207,67 @@
static int process_my_load_module(struct ast_config *cfg)
{
- int res;
struct ast_variable *var;
char *pgerror;
char *tmp;
- var = ast_variable_browse(cfg, "global");
- if (!var) {
- /* nothing configured */
+ if (!(var = ast_variable_browse(cfg, "global")))
return 0;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","hostname");
- if (tmp == NULL) {
- ast_log(LOG_WARNING,"PostgreSQL server hostname not specified. Assuming localhost\n");
- tmp = "localhost";
- }
- pghostname = strdup(tmp);
- if (pghostname == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","dbname");
- if (tmp == NULL) {
+
+ if (!(tmp = ast_variable_retrieve(cfg,"global","hostname"))) {
+ ast_log(LOG_WARNING,"PostgreSQL server hostname not specified. Assuming unix socket connection\n");
+ tmp = ""; /* connect via UNIX-socket by default */
+ }
+
+ if (!(pghostname = ast_strdup(tmp)))
+ return -1;
+
+ if (!(tmp = ast_variable_retrieve(cfg, "global", "dbname"))) {
ast_log(LOG_WARNING,"PostgreSQL database not specified. Assuming asterisk\n");
tmp = "asteriskcdrdb";
}
- pgdbname = strdup(tmp);
- if (pgdbname == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","user");
- if (tmp == NULL) {
- ast_log(LOG_WARNING,"PostgreSQL database user not specified. Assuming root\n");
- tmp = "root";
- }
- pgdbuser = strdup(tmp);
- if (pgdbuser == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","password");
- if (tmp == NULL) {
+
+ if (!(pgdbname = ast_strdup(tmp)))
+ return -1;
+
+ if (!(tmp = ast_variable_retrieve(cfg, "global", "user"))) {
+ ast_log(LOG_WARNING,"PostgreSQL database user not specified. Assuming asterisk\n");
+ tmp = "asterisk";
+ }
+
+ if (!(pgdbuser = ast_strdup(tmp)))
+ return -1;
+
+ if (!(tmp = ast_variable_retrieve(cfg, "global", "password"))) {
ast_log(LOG_WARNING,"PostgreSQL database password not specified. Assuming blank\n");
tmp = "";
}
- pgpassword = strdup(tmp);
- if (pgpassword == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","port");
- if (tmp == NULL) {
+
+ if (!(pgpassword = ast_strdup(tmp)))
+ return -1;
+
+ if (!(tmp = ast_variable_retrieve(cfg,"global","port"))) {
ast_log(LOG_WARNING,"PostgreSQL database port not specified. Using default 5432.\n");
tmp = "5432";
}
- pgdbport = strdup(tmp);
- if (pgdbport == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
-
- tmp = ast_variable_retrieve(cfg,"global","table");
- if (tmp == NULL) {
+
+ if (!(pgdbport = ast_strdup(tmp)))
+ return -1;
+
+ if (!(tmp = ast_variable_retrieve(cfg, "global", "table"))) {
ast_log(LOG_WARNING,"CDR table not specified. Assuming cdr\n");
tmp = "cdr";
}
- table = strdup(tmp);
- if (table == NULL) {
- ast_log(LOG_ERROR,"Out of memory error.\n");
- return -1;
- }
+
+ if (!(table = ast_strdup(tmp)))
+ return -1;
if (option_debug) {
- ast_log(LOG_DEBUG, "cdr_pgsql: got hostname of %s\n", pghostname);
+ if (ast_strlen_zero(pghostname))
+ ast_log(LOG_DEBUG, "cdr_pgsql: using default unix socket\n");
+ else
+ ast_log(LOG_DEBUG, "cdr_pgsql: got hostname of %s\n", pghostname);
ast_log(LOG_DEBUG, "cdr_pgsql: got port of %s\n", pgdbport);
- if (pgdbsock)
- ast_log(LOG_DEBUG, "cdr_pgsql: got sock file of %s\n", pgdbsock);
ast_log(LOG_DEBUG, "cdr_pgsql: got user of %s\n", pgdbuser);
ast_log(LOG_DEBUG, "cdr_pgsql: got dbname of %s\n", pgdbname);
ast_log(LOG_DEBUG, "cdr_pgsql: got password of %s\n", pgpassword);
@@ -309,24 +286,22 @@
connected = 0;
}
- res = ast_cdr_register(name, desc, pgsql_log);
- if (res) {
- ast_log(LOG_ERROR, "Unable to register PGSQL CDR handling\n");
- }
- return res;
+ return ast_cdr_register(name, desc, pgsql_log);
}
static int my_load_module(void)
{
struct ast_config *cfg;
int res;
- cfg = ast_config_load(config);
- if (!cfg) {
+
+ if (!(cfg = ast_config_load(config))) {
ast_log(LOG_WARNING, "Unable to load config for PostgreSQL CDR's: %s\n", config);
return 0;
}
+
res = process_my_load_module(cfg);
ast_config_destroy(cfg);
+
return res;
}
Modified: team/north/chan_skinny-fixup/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/channels/chan_iax2.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/channels/chan_iax2.c (original)
+++ team/north/chan_skinny-fixup/channels/chan_iax2.c Sat May 20 02:55:41 2006
@@ -5677,7 +5677,7 @@
iax_ie_append_addr(&ied, IAX_IE_APPARENT_ADDR, &p->addr);
if (!ast_strlen_zero(p->mailbox)) {
int new, old;
- ast_app_messagecount(p->mailbox, &new, &old);
+ ast_app_inboxcount(p->mailbox, &new, &old);
if (new > 255)
new = 255;
if (old > 255)
@@ -6282,8 +6282,7 @@
struct ast_iax2_meta_trunk_hdr *mth;
struct ast_iax2_meta_trunk_entry *mte;
struct ast_iax2_meta_trunk_mini *mtm;
- char dblbuf[4096]; /* Declaration of dblbuf must immediately *preceed* fr on the stack */
- struct iax_frame fr;
+ struct iax_frame *fr;
struct iax_frame *cur;
char iabuf[INET_ADDRSTRLEN];
struct ast_frame f;
@@ -6306,8 +6305,9 @@
struct ast_codec_pref pref;
char *using_prefs = "mine";
- dblbuf[0] = 0; /* Keep GCC from whining */
- fr.callno = 0;
+ /* allocate an iax_frame with 4096 bytes of data buffer */
+ fr = alloca(sizeof(*fr) + 4096);
+ fr->callno = 0;
/* Copy frequently used parameters to the stack */
res = thread->iores;
@@ -6320,7 +6320,7 @@
}
if ((vh->zeros == 0) && (ntohs(vh->callno) & 0x8000)) {
/* This is a video frame, get call number */
- fr.callno = find_callno(ntohs(vh->callno) & ~0x8000, dcallno, &sin, new, 1, fd);
+ fr->callno = find_callno(ntohs(vh->callno) & ~0x8000, dcallno, &sin, new, 1, fd);
minivid = 1;
} else if (meta->zeros == 0) {
unsigned char metatype;
@@ -6371,16 +6371,16 @@
/* Stop if we don't have enough data */
if (len > res)
break;
- fr.callno = find_callno(callno & ~IAX_FLAG_FULL, 0, &sin, NEW_PREVENT, 1, fd);
- if (fr.callno) {
- ast_mutex_lock(&iaxsl[fr.callno]);
+ fr->callno = find_callno(callno & ~IAX_FLAG_FULL, 0, &sin, NEW_PREVENT, 1, fd);
+ if (fr->callno) {
+ ast_mutex_lock(&iaxsl[fr->callno]);
/* If it's a valid call, deliver the contents. If not, we
drop it, since we don't have a scallno to use for an INVAL */
/* Process as a mini frame */
f.frametype = AST_FRAME_VOICE;
- if (iaxs[fr.callno]) {
- if (iaxs[fr.callno]->voiceformat > 0) {
- f.subclass = iaxs[fr.callno]->voiceformat;
+ if (iaxs[fr->callno]) {
+ if (iaxs[fr->callno]->voiceformat > 0) {
+ f.subclass = iaxs[fr->callno]->voiceformat;
f.datalen = len;
if (f.datalen >= 0) {
if (f.datalen)
@@ -6388,11 +6388,11 @@
else
f.data = NULL;
if(trunked_ts) {
- fr.ts = (iaxs[fr.callno]->last & 0xFFFF0000L) | (trunked_ts & 0xffff);
+ fr->ts = (iaxs[fr->callno]->last & 0xFFFF0000L) | (trunked_ts & 0xffff);
} else
- fr.ts = fix_peerts(&rxtrunktime, fr.callno, ts);
+ fr->ts = fix_peerts(&rxtrunktime, fr->callno, ts);
/* Don't pass any packets until we're started */
- if (ast_test_flag(&iaxs[fr.callno]->state, IAX_STATE_STARTED)) {
+ if (ast_test_flag(&iaxs[fr->callno]->state, IAX_STATE_STARTED)) {
/* Common things */
f.src = "IAX2";
f.mallocd = 0;
@@ -6401,28 +6401,28 @@
f.samples = ast_codec_get_samples(&f);
else
f.samples = 0;
- fr.outoforder = 0;
- iax_frame_wrap(&fr, &f);
+ fr->outoforder = 0;
+ iax_frame_wrap(fr, &f);
#ifdef BRIDGE_OPTIMIZATION
- if (iaxs[fr.callno]->bridgecallno) {
+ if (iaxs[fr->callno]->bridgecallno) {
forward_delivery(&fr);
} else {
duped_fr = iaxfrdup2(&fr);
if (duped_fr) {
- schedule_delivery(duped_fr, updatehistory, 1, &fr.ts);
+ schedule_delivery(duped_fr, updatehistory, 1, &fr->ts);
}
}
#else
- duped_fr = iaxfrdup2(&fr);
+ duped_fr = iaxfrdup2(fr);
if (duped_fr) {
- schedule_delivery(duped_fr, updatehistory, 1, &fr.ts);
+ schedule_delivery(duped_fr, updatehistory, 1, &fr->ts);
}
#endif
- if (iaxs[fr.callno]->last < fr.ts) {
- iaxs[fr.callno]->last = fr.ts;
+ if (iaxs[fr->callno]->last < fr->ts) {
+ iaxs[fr->callno]->last = fr->ts;
#if 1
if (option_debug && iaxdebug)
- ast_log(LOG_DEBUG, "For call=%d, set last=%d\n", fr.callno, fr.ts);
+ ast_log(LOG_DEBUG, "For call=%d, set last=%d\n", fr->callno, fr->ts);
#endif
}
}
@@ -6431,10 +6431,10 @@
}
} else {
ast_log(LOG_WARNING, "Received trunked frame before first full voice frame\n ");
- iax2_vnak(fr.callno);
+ iax2_vnak(fr->callno);
}
}
- ast_mutex_unlock(&iaxsl[fr.callno]);
+ ast_mutex_unlock(&iaxsl[fr->callno]);
}
ptr += len;
res -= len;
@@ -6467,13 +6467,13 @@
f.subclass = 0;
}
- if (!fr.callno)
- fr.callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd);
-
- if (fr.callno > 0)
- ast_mutex_lock(&iaxsl[fr.callno]);
-
- if (!fr.callno || !iaxs[fr.callno]) {
+ if (!fr->callno)
+ fr->callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd);
+
+ if (fr->callno > 0)
+ ast_mutex_lock(&iaxsl[fr->callno]);
+
+ if (!fr->callno || !iaxs[fr->callno]) {
/* A call arrived for a nonexistent destination. Unless it's an "inval"
frame, reply with an inval */
if (ntohs(mh->callno) & IAX_FLAG_FULL) {
@@ -6486,14 +6486,14 @@
raw_hangup(&sin, ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS, ntohs(mh->callno) & ~IAX_FLAG_FULL,
fd);
}
- if (fr.callno > 0)
- ast_mutex_unlock(&iaxsl[fr.callno]);
+ if (fr->callno > 0)
+ ast_mutex_unlock(&iaxsl[fr->callno]);
return 1;
}
- if (ast_test_flag(iaxs[fr.callno], IAX_ENCRYPTED)) {
- if (decrypt_frame(fr.callno, fh, &f, &res)) {
+ if (ast_test_flag(iaxs[fr->callno], IAX_ENCRYPTED)) {
+ if (decrypt_frame(fr->callno, fh, &f, &res)) {
ast_log(LOG_NOTICE, "Packet Decrypt Failed!\n");
- ast_mutex_unlock(&iaxsl[fr.callno]);
+ ast_mutex_unlock(&iaxsl[fr->callno]);
return 1;
}
#ifdef DEBUG_SUPPORT
@@ -6503,24 +6503,24 @@
}
/* count this frame */
- iaxs[fr.callno]->frames_received++;
-
- if (!inaddrcmp(&sin, &iaxs[fr.callno]->addr) && !minivid &&
+ iaxs[fr->callno]->frames_received++;
+
+ if (!inaddrcmp(&sin, &iaxs[fr->callno]->addr) && !minivid &&
f.subclass != IAX_COMMAND_TXCNT && /* for attended transfer */
f.subclass != IAX_COMMAND_TXACC) /* for attended transfer */
- iaxs[fr.callno]->peercallno = (unsigned short)(ntohs(mh->callno) & ~IAX_FLAG_FULL);
+ iaxs[fr->callno]->peercallno = (unsigned short)(ntohs(mh->callno) & ~IAX_FLAG_FULL);
if (ntohs(mh->callno) & IAX_FLAG_FULL) {
if (option_debug && iaxdebug)
ast_log(LOG_DEBUG, "Received packet %d, (%d, %d)\n", fh->oseqno, f.frametype, f.subclass);
/* Check if it's out of order (and not an ACK or INVAL) */
- fr.oseqno = fh->oseqno;
- fr.iseqno = fh->iseqno;
- fr.ts = ntohl(fh->ts);
+ fr->oseqno = fh->oseqno;
+ fr->iseqno = fh->iseqno;
+ fr->ts = ntohl(fh->ts);
#ifdef IAXTESTS
if (test_resync) {
if (option_debug)
- ast_log(LOG_DEBUG, "Simulating frame ts resync, was %u now %u\n", fr.ts, fr.ts + test_resync);
- fr.ts += test_resync;
+ ast_log(LOG_DEBUG, "Simulating frame ts resync, was %u now %u\n", fr->ts, fr->ts + test_resync);
+ fr->ts += test_resync;
}
#endif /* IAXTESTS */
#if 0
@@ -6533,8 +6533,8 @@
#endif
if ((ntohs(fh->dcallno) & IAX_FLAG_RETRANS) || (f.frametype != AST_FRAME_VOICE))
updatehistory = 0;
- if ((iaxs[fr.callno]->iseqno != fr.oseqno) &&
- (iaxs[fr.callno]->iseqno ||
+ if ((iaxs[fr->callno]->iseqno != fr->oseqno) &&
+ (iaxs[fr->callno]->iseqno ||
((f.subclass != IAX_COMMAND_TXCNT) &&
(f.subclass != IAX_COMMAND_TXREADY) && /* for attended transfer */
(f.subclass != IAX_COMMAND_TXREL) && /* for attended transfer */
@@ -6554,8 +6554,8 @@
/* If it's not an ACK packet, it's out of order. */
if (option_debug)
[... 2680 lines stripped ...]
More information about the asterisk-commits
mailing list