[svn-commits] branch oej/res_config_pgsql r17282 - in /team/oej/res_config_pgsql: ./ apps/ ...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Tue Apr 4 08:23:24 MST 2006


Author: oej
Date: Tue Apr  4 10:22:26 2006
New Revision: 17282

URL: http://svn.digium.com/view/asterisk?rev=17282&view=rev
Log:
Update to trunk since automerge failed

Added:
    team/oej/res_config_pgsql/doc/ajam.txt
      - copied unchanged from r17265, trunk/doc/ajam.txt
    team/oej/res_config_pgsql/static-http/
      - copied from r17265, trunk/static-http/
    team/oej/res_config_pgsql/static-http/ajamdemo.html
      - copied unchanged from r17265, trunk/static-http/ajamdemo.html
    team/oej/res_config_pgsql/static-http/astman.css
      - copied unchanged from r17265, trunk/static-http/astman.css
    team/oej/res_config_pgsql/static-http/astman.js
      - copied unchanged from r17265, trunk/static-http/astman.js
    team/oej/res_config_pgsql/static-http/prototype.js
      - copied unchanged from r17265, trunk/static-http/prototype.js
Modified:
    team/oej/res_config_pgsql/   (props changed)
    team/oej/res_config_pgsql/.cleancount
    team/oej/res_config_pgsql/CREDITS
    team/oej/res_config_pgsql/Makefile
    team/oej/res_config_pgsql/README
    team/oej/res_config_pgsql/apps/app_dial.c
    team/oej/res_config_pgsql/apps/app_echo.c
    team/oej/res_config_pgsql/apps/app_exec.c
    team/oej/res_config_pgsql/apps/app_macro.c
    team/oej/res_config_pgsql/apps/app_meetme.c
    team/oej/res_config_pgsql/apps/app_milliwatt.c
    team/oej/res_config_pgsql/apps/app_page.c
    team/oej/res_config_pgsql/apps/app_rpt.c
    team/oej/res_config_pgsql/apps/app_sms.c
    team/oej/res_config_pgsql/apps/app_voicemail.c
    team/oej/res_config_pgsql/apps/app_while.c
    team/oej/res_config_pgsql/asterisk.8
    team/oej/res_config_pgsql/asterisk.c
    team/oej/res_config_pgsql/asterisk.sgml
    team/oej/res_config_pgsql/channel.c
    team/oej/res_config_pgsql/channels/chan_h323.c
    team/oej/res_config_pgsql/channels/chan_iax2.c
    team/oej/res_config_pgsql/channels/chan_local.c
    team/oej/res_config_pgsql/channels/chan_misdn.c
    team/oej/res_config_pgsql/channels/chan_oss.c
    team/oej/res_config_pgsql/channels/chan_sip.c
    team/oej/res_config_pgsql/channels/h323/ast_h323.cpp
    team/oej/res_config_pgsql/channels/iax2-provision.h
    team/oej/res_config_pgsql/channels/misdn/isdn_lib.c
    team/oej/res_config_pgsql/channels/misdn/isdn_lib.h
    team/oej/res_config_pgsql/cli.c
    team/oej/res_config_pgsql/codecs/gsm/Makefile
    team/oej/res_config_pgsql/configs/features.conf.sample
    team/oej/res_config_pgsql/configs/http.conf.sample
    team/oej/res_config_pgsql/configs/manager.conf.sample
    team/oej/res_config_pgsql/configs/queues.conf.sample
    team/oej/res_config_pgsql/configs/sip.conf.sample
    team/oej/res_config_pgsql/doc/00README.1st
    team/oej/res_config_pgsql/doc/CODING-GUIDELINES
    team/oej/res_config_pgsql/doc/asterisk-conf.txt
    team/oej/res_config_pgsql/doc/manager.txt
    team/oej/res_config_pgsql/file.c
    team/oej/res_config_pgsql/formats/Makefile
    team/oej/res_config_pgsql/formats/format_au.c
    team/oej/res_config_pgsql/formats/format_g723.c
    team/oej/res_config_pgsql/formats/format_g726.c
    team/oej/res_config_pgsql/formats/format_g729.c
    team/oej/res_config_pgsql/formats/format_gsm.c
    team/oej/res_config_pgsql/formats/format_h263.c
    team/oej/res_config_pgsql/formats/format_h264.c
    team/oej/res_config_pgsql/formats/format_ilbc.c
    team/oej/res_config_pgsql/formats/format_ogg_vorbis.c
    team/oej/res_config_pgsql/formats/format_pcm.c
    team/oej/res_config_pgsql/formats/format_pcm_alaw.c
    team/oej/res_config_pgsql/formats/format_sln.c
    team/oej/res_config_pgsql/formats/format_vox.c
    team/oej/res_config_pgsql/formats/format_wav.c
    team/oej/res_config_pgsql/formats/format_wav_gsm.c
    team/oej/res_config_pgsql/http.c
    team/oej/res_config_pgsql/include/asterisk/adsi.h
    team/oej/res_config_pgsql/include/asterisk/app.h
    team/oej/res_config_pgsql/include/asterisk/callerid.h
    team/oej/res_config_pgsql/include/asterisk/channel.h
    team/oej/res_config_pgsql/include/asterisk/cli.h
    team/oej/res_config_pgsql/include/asterisk/crypto.h
    team/oej/res_config_pgsql/include/asterisk/dns.h
    team/oej/res_config_pgsql/include/asterisk/doxyref.h
    team/oej/res_config_pgsql/include/asterisk/enum.h
    team/oej/res_config_pgsql/include/asterisk/features.h
    team/oej/res_config_pgsql/include/asterisk/file.h
    team/oej/res_config_pgsql/include/asterisk/fskmodem.h
    team/oej/res_config_pgsql/include/asterisk/http.h
    team/oej/res_config_pgsql/include/asterisk/image.h
    team/oej/res_config_pgsql/include/asterisk/indications.h
    team/oej/res_config_pgsql/include/asterisk/io.h
    team/oej/res_config_pgsql/include/asterisk/linkedlists.h
    team/oej/res_config_pgsql/include/asterisk/localtime.h
    team/oej/res_config_pgsql/include/asterisk/lock.h
    team/oej/res_config_pgsql/include/asterisk/logger.h
    team/oej/res_config_pgsql/include/asterisk/manager.h
    team/oej/res_config_pgsql/include/asterisk/musiconhold.h
    team/oej/res_config_pgsql/include/asterisk/options.h
    team/oej/res_config_pgsql/include/asterisk/pbx.h
    team/oej/res_config_pgsql/include/asterisk/rtp.h
    team/oej/res_config_pgsql/include/asterisk/sched.h
    team/oej/res_config_pgsql/include/asterisk/tdd.h
    team/oej/res_config_pgsql/include/asterisk/term.h
    team/oej/res_config_pgsql/indications.c
    team/oej/res_config_pgsql/loader.c
    team/oej/res_config_pgsql/manager.c
    team/oej/res_config_pgsql/pbx.c
    team/oej/res_config_pgsql/pbx/pbx_dundi.c
    team/oej/res_config_pgsql/pbx/pbx_loopback.c
    team/oej/res_config_pgsql/pbx/pbx_realtime.c
    team/oej/res_config_pgsql/res/res_agi.c
    team/oej/res_config_pgsql/res/res_features.c
    team/oej/res_config_pgsql/res/res_indications.c
    team/oej/res_config_pgsql/res/res_musiconhold.c
    team/oej/res_config_pgsql/res/snmp/agent.c
    team/oej/res_config_pgsql/rtp.c
    team/oej/res_config_pgsql/utils.c

Propchange: team/oej/res_config_pgsql/
------------------------------------------------------------------------------
    automerge = http://edvina.net/training/

Propchange: team/oej/res_config_pgsql/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.

Propchange: team/oej/res_config_pgsql/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/oej/res_config_pgsql/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Apr  4 10:22:26 2006
@@ -1,1 +1,1 @@
-/trunk:1-16448
+/trunk:1-17266

Modified: team/oej/res_config_pgsql/.cleancount
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/.cleancount?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/.cleancount (original)
+++ team/oej/res_config_pgsql/.cleancount Tue Apr  4 10:22:26 2006
@@ -1,1 +1,1 @@
-12
+13

Modified: team/oej/res_config_pgsql/CREDITS
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/CREDITS?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/CREDITS (original)
+++ team/oej/res_config_pgsql/CREDITS Tue Apr  4 10:22:26 2006
@@ -90,6 +90,11 @@
 Music provided by www.freeplaymusic.com
 
 === OTHER SOURCE CODE IN ASTERISK ===
+Asterisk uses libedit, the lightweight readline replacement from
+NetBSD. It is BSD-licensed and requires the following statement:
+
+      This product includes software developed by the NetBSD
+      Foundation, Inc. and its contributors.
 
 Digium did not implement the codecs in Asterisk.  Here is the copyright on the
 GSM source:

Modified: team/oej/res_config_pgsql/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/Makefile?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/Makefile (original)
+++ team/oej/res_config_pgsql/Makefile Tue Apr  4 10:22:26 2006
@@ -566,6 +566,13 @@
 
 datafiles: all
 	if [ x`$(ID) -un` = xroot ]; then sh build_tools/mkpkgconfig $(DESTDIR)/usr/lib/pkgconfig; fi
+	# Should static HTTP be installed during make samples or even with its own target ala
+	# webvoicemail?  There are portions here that *could* be customized but might also be
+	# improved a lot.  I'll put it here for now.
+	mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/static-http
+	for x in static-http/*; do \
+		install -m 644 $$x $(DESTDIR)$(ASTVARLIBDIR)/static-http ; \
+	done
 	mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/digits
 	mkdir -p $(DESTDIR)$(ASTVARLIBDIR)/sounds/priv-callerintros
 	for x in sounds/digits/*.gsm; do \
@@ -788,6 +795,8 @@
 		echo ";astctlowner = root" ; \
 		echo ";astctlgroup = apache" ; \
 		echo ";astctl = asterisk.ctl" ; \
+		echo ";[options]" ; \
+		echo ";internal_timing = yes" ; \
 		) > $(DESTDIR)$(ASTCONFPATH) ; \
 	else \
 		echo "Skipping asterisk.conf creation"; \

Modified: team/oej/res_config_pgsql/README
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/README?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/README (original)
+++ team/oej/res_config_pgsql/README Tue Apr  4 10:22:26 2006
@@ -2,14 +2,14 @@
 by Mark Spencer <markster at digium.com>
 and the Asterisk.org developer community
 
-Copyright (C) 2001-2005 Digium, Inc.
+Copyright (C) 2001-2006 Digium, Inc.
 and other copyright holders.
 ================================================================
 
 * SECURITY
   It is imperative that you read and fully understand the contents of
-the SECURITY file before you attempt to configure and run an Asterisk
-server.
+the security information file (doc/security.txt) before you attempt 
+to configure and run an Asterisk server.
 
 * WHAT IS ASTERISK ?
   Asterisk is an Open Source PBX and telephony toolkit.  It is, in a
@@ -84,11 +84,18 @@
 
   So let's proceed:
 
-1) Run "make"
+1) Read the README files.
+   There are more README files than this one in the doc/ directory.
+   Start with doc/00README.1st
+   You may also want to check the configuration files that contain
+   examples and reference guides. They are all in the configs/
+   directory.
+
+2) Run "make"
 
   Assuming the build completes successfully:
 
-2) Run "make install"
+3) Run "make install"
 
   Each time you update or checkout from the repository, you are strongly
 encouraged to ensure all previous object files are removed to avoid internal 
@@ -99,7 +106,7 @@
   If this is your first time working with Asterisk, you may wish to install
 the sample PBX, with demonstration extensions, etc.  If so, run:
 
-3) "make samples"
+4) "make samples"
 
   Doing so will overwrite any existing config files you have.
 

Modified: team/oej/res_config_pgsql/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_dial.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_dial.c (original)
+++ team/oej/res_config_pgsql/apps/app_dial.c Tue Apr  4 10:22:26 2006
@@ -1449,7 +1449,7 @@
 					if (*ch == '^')
 						*ch = '|';
 				}
-				res = pbx_exec(peer, app, opt_args[OPT_ARG_CALLEE_MACRO], 1);
+				res = pbx_exec(peer, app, opt_args[OPT_ARG_CALLEE_MACRO]);
 				ast_log(LOG_DEBUG, "Macro exited with status %d\n", res);
 				res = 0;
 			} else {

Modified: team/oej/res_config_pgsql/apps/app_echo.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_echo.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_echo.c (original)
+++ team/oej/res_config_pgsql/apps/app_echo.c Tue Apr  4 10:22:26 2006
@@ -59,7 +59,6 @@
 	int res = -1;
 	int format;
 	struct localuser *u;
-	struct ast_frame *f;
 
 	LOCAL_USER_ADD(u);
 
@@ -68,7 +67,7 @@
 	ast_set_read_format(chan, format);
 
 	while (ast_waitfor(chan, -1) > -1) {
-		f = ast_read(chan);
+		struct ast_frame *f = ast_read(chan);
 		if (!f)
 			break;
 		f->delivery.tv_sec = 0;

Modified: team/oej/res_config_pgsql/apps/app_exec.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_exec.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_exec.c (original)
+++ team/oej/res_config_pgsql/apps/app_exec.c Tue Apr  4 10:22:26 2006
@@ -82,7 +82,7 @@
 			if (appname) {
 				app = pbx_findapp(appname);
 				if (app) {
-					res = pbx_exec(chan, app, args, 1);
+					res = pbx_exec(chan, app, args);
 				} else {
 					ast_log(LOG_WARNING, "Could not find application (%s)\n", appname);
 					res = -1;

Modified: team/oej/res_config_pgsql/apps/app_macro.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_macro.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_macro.c (original)
+++ team/oej/res_config_pgsql/apps/app_macro.c Tue Apr  4 10:22:26 2006
@@ -188,7 +188,7 @@
   		snprintf(varname, sizeof(varname), "ARG%d", argc);
 		s = pbx_builtin_getvar_helper(chan, varname);
 		if (s)
-			oldargs[argc] = strdup(s);
+			oldargs[argc] = ast_strdup(s);
 		pbx_builtin_setvar_helper(chan, varname, cur);
 		argc++;
 	}

Modified: team/oej/res_config_pgsql/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_meetme.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_meetme.c (original)
+++ team/oej/res_config_pgsql/apps/app_meetme.c Tue Apr  4 10:22:26 2006
@@ -1143,7 +1143,7 @@
 		app = pbx_findapp("agi");
 		if (app) {
 			char *s = ast_strdupa(agifile);
-			ret = pbx_exec(chan, app, s, 1);
+			ret = pbx_exec(chan, app, s);
 		} else {
 			ast_log(LOG_WARNING, "Could not find application (agi)\n");
 			ret = -2;

Modified: team/oej/res_config_pgsql/apps/app_milliwatt.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_milliwatt.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_milliwatt.c (original)
+++ team/oej/res_config_pgsql/apps/app_milliwatt.c Tue Apr  4 10:22:26 2006
@@ -71,20 +71,27 @@
 {
 	struct ast_frame wf;
 	unsigned char buf[AST_FRIENDLY_OFFSET + 640];
-	int i,*indexp = (int *) data;
+	const int maxsamples = sizeof (buf) / sizeof (buf[0]);
+	int i, *indexp = (int *) data;
 
-	if (len + AST_FRIENDLY_OFFSET > sizeof(buf))
-	{
-		ast_log(LOG_WARNING,"Only doing %d bytes (%d bytes requested)\n",(int)(sizeof(buf) - AST_FRIENDLY_OFFSET),len);
-		len = sizeof(buf) - AST_FRIENDLY_OFFSET;
+	/* Instead of len, use samples, because channel.c generator_force
+	* generate(chan, tmp, 0, 160) ignores len. In any case, len is
+	* a multiple of samples, given by number of samples times bytes per
+	* sample. In the case of ulaw, len = samples. for signed linear
+	* len = 2 * samples */
+
+	if (samples > maxsamples) {
+		ast_log(LOG_WARNING, "Only doing %d samples (%d requested)\n", maxsamples, samples);
+		samples = maxsamples;
 	}
+	len = samples * sizeof (buf[0]);
 	wf.frametype = AST_FRAME_VOICE;
 	wf.subclass = AST_FORMAT_ULAW;
 	wf.offset = AST_FRIENDLY_OFFSET;
 	wf.mallocd = 0;
 	wf.data = buf + AST_FRIENDLY_OFFSET;
 	wf.datalen = len;
-	wf.samples = wf.datalen;
+	wf.samples = samples;
 	wf.src = "app_milliwatt";
 	wf.delivery.tv_sec = 0;
 	wf.delivery.tv_usec = 0;

Modified: team/oej/res_config_pgsql/apps/app_page.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_page.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_page.c (original)
+++ team/oej/res_config_pgsql/apps/app_page.c Tue Apr  4 10:22:26 2006
@@ -186,7 +186,7 @@
 	}
 	if (!res) {
 		snprintf(meetmeopts, sizeof(meetmeopts), "%ud|A%sqxd", confid, ast_test_flag(&flags, PAGE_DUPLEX) ? "" : "t");
-		pbx_exec(chan, app, meetmeopts, 1);
+		pbx_exec(chan, app, meetmeopts);
 	}
 
 	LOCAL_USER_REMOVE(u);

Modified: team/oej/res_config_pgsql/apps/app_rpt.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_rpt.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_rpt.c (original)
+++ team/oej/res_config_pgsql/apps/app_rpt.c Tue Apr  4 10:22:26 2006
@@ -608,7 +608,6 @@
 /* Debug mode */
 static int rpt_do_debug(int fd, int argc, char *argv[]);
 static int rpt_do_dump(int fd, int argc, char *argv[]);
-static int rpt_do_frog(int fd, int argc, char *argv[]);
 
 static char debug_usage[] =
 "Usage: rpt debug level {0-7}\n"
@@ -618,10 +617,6 @@
 "Usage: rpt dump <nodename>\n"
 "       Dumps struct debug info to log\n";
 
-static char frog_usage[] =
-"Usage: frog [warp_factor]\n"
-"       Performs frog-in-a-blender calculations (Jacobsen Corollary)\n";
-
 static struct ast_cli_entry  cli_debug =
         { { "rpt", "debug", "level" }, rpt_do_debug, 
 		"Enable app_rpt debugging", debug_usage };
@@ -629,10 +624,6 @@
 static struct ast_cli_entry  cli_dump =
         { { "rpt", "dump" }, rpt_do_dump,
 		"Dump app_rpt structs for debugging", dump_usage };
-
-static struct ast_cli_entry  cli_frog =
-        { { "frog" }, rpt_do_frog,
-		"Perform frog-in-a-blender calculations", frog_usage };
 
 /*
 * Telemetry defaults
@@ -777,26 +768,6 @@
 		        return RESULT_SUCCESS;
 		}
 	}
-	return RESULT_FAILURE;
-}
-
-/*
-* Perform frong-in-a-blender calculations (Jacobsen Corollary) 
-*/
-                                                                                                                                 
-static int rpt_do_frog(int fd, int argc, char *argv[])
-{
-	double warpone = 75139293848.398696166028333356763;
-	double warpfactor = 1.0;
-
-        if (argc > 2) return RESULT_SHOWUSAGE;
-	if ((argc > 1) && (sscanf(argv[1],"%lf",&warpfactor) != 1))
-                return RESULT_SHOWUSAGE;
-
-        ast_cli(fd, "A frog in a blender with a base diameter of 3 inches going\n");
-        ast_cli(fd, "%lf RPM will be travelling at warp factor %lf,\n",
-		warpfactor * warpfactor * warpfactor * warpone,warpfactor);
-	ast_cli(fd,"based upon the Jacobsen Frog Corollary.\n");
 	return RESULT_FAILURE;
 }
 
@@ -7066,7 +7037,6 @@
 	/* Unregister cli extensions */
 	ast_cli_unregister(&cli_debug);
 	ast_cli_unregister(&cli_dump);
-	ast_cli_unregister(&cli_frog);
 
 	return i;
 }
@@ -7078,7 +7048,6 @@
 	/* Register cli extensions */
 	ast_cli_register(&cli_debug);
 	ast_cli_register(&cli_dump);
-	ast_cli_register(&cli_frog);
 
 	return ast_register_application(app, rpt_exec, synopsis, descrip);
 }

Modified: team/oej/res_config_pgsql/apps/app_sms.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_sms.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_sms.c (original)
+++ team/oej/res_config_pgsql/apps/app_sms.c Tue Apr  4 10:22:26 2006
@@ -1177,32 +1177,31 @@
 {
 	struct ast_frame f = { 0 };
 	unsigned char waste[AST_FRIENDLY_OFFSET];
+#define MAXSAMPLES (800)
 #ifdef OUTALAW
-	unsigned char buf[800];
+	unsigned char buf[MAXSAMPLES];
 #else
-	signed short buf[800];
+	signed short buf[MAXSAMPLES];
 #endif
+#define SAMPLE2LEN (sizeof (buf[0]))
 	sms_t *h = data;
 	int i;
 
-	if (len > sizeof (buf)) {
-		ast_log (LOG_WARNING, "Only doing %d bytes (%d bytes requested)\n", (int)(sizeof (buf) / sizeof (signed short)), len);
-		len = sizeof (buf);
-#ifdef OUTALAW
-		samples = len;
-#else
-		samples = len / 2;
-#endif
-	}
-	waste[0] = 0;					 /* make compiler happy */
+	if (samples > MAXSAMPLES) {
+		ast_log (LOG_WARNING, "Only doing %d samples (%d requested)\n",
+			 MAXSAMPLES, samples);
+		samples = MAXSAMPLES;
+	}
+	len = samples * SAMPLE2LEN;
+
+	waste[0] = 0;				 /* make compiler happy */
 	f.frametype = AST_FRAME_VOICE;
 #ifdef OUTALAW
 	f.subclass = AST_FORMAT_ALAW;
-	f.datalen = samples;
 #else
 	f.subclass = AST_FORMAT_SLINEAR;
-	f.datalen = samples * 2;
 #endif
+	f.datalen = len;
 	f.offset = AST_FRIENDLY_OFFSET;
 	f.mallocd = 0;
 	f.data = buf;
@@ -1254,6 +1253,8 @@
 		return -1;
 	}
 	return 0;
+#undef SAMPLE2LEN
+#undef MAXSAMPLES
 }
 
 static void sms_process (sms_t * h, int samples, signed short *data)

Modified: team/oej/res_config_pgsql/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_voicemail.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_voicemail.c (original)
+++ team/oej/res_config_pgsql/apps/app_voicemail.c Tue Apr  4 10:22:26 2006
@@ -3422,7 +3422,7 @@
 				old_priority = chan->priority;
 				
 				/* call the the Directory, changes the channel */
-				res = pbx_exec(chan, app, context ? context : "default", 1);
+				res = pbx_exec(chan, app, context ? context : "default");
 				
 				ast_copy_string(username, chan->exten, sizeof(username));
 				

Modified: team/oej/res_config_pgsql/apps/app_while.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/apps/app_while.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/apps/app_while.c (original)
+++ team/oej/res_config_pgsql/apps/app_while.c Tue Apr  4 10:22:26 2006
@@ -101,7 +101,7 @@
 
 		if (ast_true(expr)) { 
 			if ((app = pbx_findapp(myapp))) {
-				res = pbx_exec(chan, app, mydata, 1);
+				res = pbx_exec(chan, app, mydata);
 			} else {
 				ast_log(LOG_WARNING, "Count not find application! (%s)\n", myapp);
 				res = -1;

Modified: team/oej/res_config_pgsql/asterisk.8
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/asterisk.8?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/asterisk.8 (original)
+++ team/oej/res_config_pgsql/asterisk.8 Tue Apr  4 10:22:26 2006
@@ -9,7 +9,7 @@
 asterisk \- All-purpose telephony server.
 .SH SYNOPSIS
 
-\fBasterisk\fR [ \fB-tThfdvVqpRgcin\fR ] [ \fB-C \fIfile\fB\fR ] [ \fB-U \fIuser\fB\fR ] [ \fB-G \fIgroup\fB\fR ] [ \fB-x \fIcommand\fB\fR ] [ \fB-M \fIvalue\fB\fR ]
+\fBasterisk\fR [ \fB-tThfdvVqpRgciIn\fR ] [ \fB-C \fIfile\fB\fR ] [ \fB-U \fIuser\fB\fR ] [ \fB-G \fIgroup\fB\fR ] [ \fB-x \fIcommand\fB\fR ] [ \fB-M \fIvalue\fB\fR ]
 
 
 \fBasterisk -r\fR [ \fB-v\fR ] [ \fB-x \fIcommand\fB\fR ]
@@ -114,6 +114,12 @@
 for controlling it. Additionally, if connection to the Asterisk 
 process is lost, attempt to reconnect for as long as 30 seconds.
 .TP
+\fB-I\fR
+Enable internal timing if Zaptel timer is available
+The default behaviour is that outbound packets are phase locked
+to inbound packets. Enabling this switch causes them to be
+locked to the internal Zaptel timer instead.
+.TP
 \fB-t\fR
 When recording files, write them first into a temporary holding directory, 
 then move them into the final location when done.

Modified: team/oej/res_config_pgsql/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/oej/res_config_pgsql/asterisk.c?rev=17282&r1=17281&r2=17282&view=diff
==============================================================================
--- team/oej/res_config_pgsql/asterisk.c (original)
+++ team/oej/res_config_pgsql/asterisk.c Tue Apr  4 10:22:26 2006
@@ -30,7 +30,7 @@
  *
  * \section copyright Copyright and author
  *
- * Copyright (C) 1999 - 2005, Digium, Inc.
+ * Copyright (C) 1999 - 2006, Digium, Inc.
  * Asterisk is a trade mark registered by Digium, Inc.
  *
  * \author Mark Spencer <markster at digium.com>
@@ -216,7 +216,7 @@
 char ast_config_AST_CTL_OWNER[AST_CONFIG_MAX_PATH] = "\0";
 char ast_config_AST_CTL_GROUP[AST_CONFIG_MAX_PATH] = "\0";
 char ast_config_AST_CTL[AST_CONFIG_MAX_PATH] = "asterisk.ctl";
-char ast_config_AST_SYSTEM_NAME[20]="";
+char ast_config_AST_SYSTEM_NAME[20] = "";
 
 static char *_argv[256];
 static int shuttingdown = 0;
@@ -462,7 +462,7 @@
 static void ast_network_puts(const char *string)
 {
 	int x;
-	for (x=0;x<AST_MAX_CONNECTS; x++) {
+	for (x=0; x < AST_MAX_CONNECTS; x++) {
 		if (consoles[x].fd > -1) 
 			fdprint(consoles[x].p[1], string);
 	}
@@ -503,7 +503,7 @@
 static void *netconsole(void *vconsole)
 {
 	struct console *con = vconsole;
-	char hostname[MAXHOSTNAMELEN]="";
+	char hostname[MAXHOSTNAMELEN] = "";
 	char tmp[512];
 	int res;
 	struct pollfd fds[2];
@@ -566,11 +566,11 @@
 	pthread_attr_t attr;
 	pthread_attr_init(&attr);
 	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-	for(;;) {
+	for (;;) {
 		if (ast_socket < 0)
 			return NULL;
 		fds[0].fd = ast_socket;
-		fds[0].events= POLLIN;
+		fds[0].events = POLLIN;
 		s = poll(fds, 1, -1);
 		if (s < 0) {
 			if (errno != EINTR)
@@ -583,7 +583,7 @@
 			if (errno != EINTR)
 				ast_log(LOG_WARNING, "Accept returned %d: %s\n", s, strerror(errno));
 		} else {
-			for (x=0;x<AST_MAX_CONNECTS;x++) {
+			for (x = 0; x < AST_MAX_CONNECTS; x++) {
 				if (consoles[x].fd < 0) {
 					if (socketpair(AF_LOCAL, SOCK_STREAM, 0, consoles[x].p)) {
 						ast_log(LOG_ERROR, "Unable to create pipe: %s\n", strerror(errno));
@@ -829,7 +829,7 @@
 			if (option_verbose && ast_opt_console)
 				ast_verbose("Beginning asterisk %s....\n", restart ? "restart" : "shutdown");
 			time(&s);
-			for(;;) {
+			for (;;) {
 				time(&e);
 				/* Wait up to 15 seconds for all channels to go away */
 				if ((e - s) > 15)
@@ -846,7 +846,7 @@
 				ast_begin_shutdown(0);
 			if (option_verbose && ast_opt_console)
 				ast_verbose("Waiting for inactivity to perform %s...\n", restart ? "restart" : "halt");
-			for(;;) {
+			for (;;) {
 				if (!ast_active_channels())
 					break;
 				if (!shuttingdown)
@@ -895,7 +895,7 @@
 		if (option_verbose || ast_opt_console)
 			ast_verbose("Preparing for Asterisk restart...\n");
 		/* Mark all FD's for closing on exec */
-		for (x=3;x<32768;x++) {
+		for (x=3; x < 32768; x++) {
 			fcntl(x, F_SETFD, FD_CLOEXEC);
 		}
 		if (option_verbose || ast_opt_console)
@@ -940,7 +940,7 @@
 static void console_verboser(const char *s, int pos, int replace, int complete)
 {
 	char tmp[80];
-	const char *c=NULL;
+	const char *c = NULL;
 	/* Return to the beginning of the line */
 	if (!pos) {
 		fprintf(stdout, "\r");
@@ -964,7 +964,7 @@
 
 static int ast_all_zeros(char *s)
 {
-	while(*s) {
+	while (*s) {
 		if (*s > 32)
 			return 0;
 		s++;  
@@ -1234,8 +1234,8 @@
 
 static int ast_el_read_char(EditLine *el, char *cp)
 {
-	int num_read=0;
-	int lastpos=0;
+	int num_read = 0;
+	int lastpos = 0;
 	struct pollfd fds[2];
 	int res;
 	int max;
@@ -1276,7 +1276,7 @@
 					int tries;
 					int reconnects_per_second = 20;
 					fprintf(stderr, "Attempting to reconnect for 30 seconds\n");
-					for (tries=0;tries<30 * reconnects_per_second;tries++) {
+					for (tries=0; tries < 30 * reconnects_per_second; tries++) {
 						if (ast_tryconnect()) {
 							fprintf(stderr, "Reconnect succeeded after %.3f seconds\n", 1.0 / reconnects_per_second * tries);
 							printf(term_quit());
@@ -1315,7 +1315,7 @@
 {
 	static char prompt[200];
 	char *pfmt;
-	int color_used=0;
+	int color_used = 0;
 	char term_code[20];
 
 	if ((pfmt = getenv("ASTERISK_PROMPT"))) {
@@ -1334,100 +1334,100 @@
 
 				t++;
 				switch (*t) {
-					case 'C': /* color */
-						t++;
-						if (sscanf(t, "%d;%d%n", &fgcolor, &bgcolor, &i) == 2) {
-							strncat(p, term_color_code(term_code, fgcolor, bgcolor, sizeof(term_code)),sizeof(prompt) - strlen(prompt) - 1);
-							t += i - 1;
-						} else if (sscanf(t, "%d%n", &fgcolor, &i) == 1) {
-							strncat(p, term_color_code(term_code, fgcolor, 0, sizeof(term_code)),sizeof(prompt) - strlen(prompt) - 1);
-							t += i - 1;
-						}
-
-						/* If the color has been reset correctly, then there's no need to reset it later */
-						if ((fgcolor == COLOR_WHITE) && (bgcolor == COLOR_BLACK)) {
-							color_used = 0;
-						} else {
-							color_used = 1;
-						}
-						break;
-					case 'd': /* date */
-						memset(&tm, 0, sizeof(tm));
-						time(&ts);
-						if (localtime_r(&ts, &tm)) {
-							strftime(p, sizeof(prompt) - strlen(prompt), "%Y-%m-%d", &tm);
-						}
-						break;
-					case 'h': /* hostname */
-						if (!gethostname(hostname, sizeof(hostname) - 1)) {
-							strncat(p, hostname, sizeof(prompt) - strlen(prompt) - 1);
-						} else {
-							strncat(p, "localhost", sizeof(prompt) - strlen(prompt) - 1);
-						}
-						break;
-					case 'H': /* short hostname */
-						if (!gethostname(hostname, sizeof(hostname) - 1)) {
-							for (i=0;i<sizeof(hostname);i++) {
-								if (hostname[i] == '.') {
-									hostname[i] = '\0';
-									break;
-								}
-							}
-							strncat(p, hostname, sizeof(prompt) - strlen(prompt) - 1);
-						} else {
-							strncat(p, "localhost", sizeof(prompt) - strlen(prompt) - 1);
-						}
-						break;
-#ifdef linux
-					case 'l': /* load avg */
-						t++;
-						if ((LOADAVG = fopen("/proc/loadavg", "r"))) {
-							float avg1, avg2, avg3;
-							int actproc, totproc, npid, which;
-							fscanf(LOADAVG, "%f %f %f %d/%d %d",
-								&avg1, &avg2, &avg3, &actproc, &totproc, &npid);
-							if (sscanf(t, "%d", &which) == 1) {
-								switch (which) {
-									case 1:
-										snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg1);
-										break;
-									case 2:
-										snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg2);
-										break;
-									case 3:
-										snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg3);
-										break;
-									case 4:
-										snprintf(p, sizeof(prompt) - strlen(prompt), "%d/%d", actproc, totproc);
-										break;
-									case 5:
-										snprintf(p, sizeof(prompt) - strlen(prompt), "%d", npid);
-										break;
-								}
+				case 'C': /* color */
+					t++;
+					if (sscanf(t, "%d;%d%n", &fgcolor, &bgcolor, &i) == 2) {
+						strncat(p, term_color_code(term_code, fgcolor, bgcolor, sizeof(term_code)),sizeof(prompt) - strlen(prompt) - 1);
+						t += i - 1;
+					} else if (sscanf(t, "%d%n", &fgcolor, &i) == 1) {
+						strncat(p, term_color_code(term_code, fgcolor, 0, sizeof(term_code)),sizeof(prompt) - strlen(prompt) - 1);
+						t += i - 1;
+					}
+
+					/* If the color has been reset correctly, then there's no need to reset it later */
+					if ((fgcolor == COLOR_WHITE) && (bgcolor == COLOR_BLACK)) {
+						color_used = 0;
+					} else {
+						color_used = 1;
+					}
+					break;
+				case 'd': /* date */
+					memset(&tm, 0, sizeof(tm));
+					time(&ts);
+					if (localtime_r(&ts, &tm)) {
+						strftime(p, sizeof(prompt) - strlen(prompt), "%Y-%m-%d", &tm);
+					}
+					break;
+				case 'h': /* hostname */
+					if (!gethostname(hostname, sizeof(hostname) - 1)) {
+						strncat(p, hostname, sizeof(prompt) - strlen(prompt) - 1);
+					} else {
+						strncat(p, "localhost", sizeof(prompt) - strlen(prompt) - 1);
+					}
+					break;
+				case 'H': /* short hostname */
+					if (!gethostname(hostname, sizeof(hostname) - 1)) {
+						for (i = 0; i < sizeof(hostname); i++) {
+							if (hostname[i] == '.') {
+								hostname[i] = '\0';
+								break;
 							}
 						}
-						break;
+						strncat(p, hostname, sizeof(prompt) - strlen(prompt) - 1);
+					} else {
+						strncat(p, "localhost", sizeof(prompt) - strlen(prompt) - 1);
+					}
+					break;
+#ifdef linux
+				case 'l': /* load avg */
+					t++;
+					if ((LOADAVG = fopen("/proc/loadavg", "r"))) {
+						float avg1, avg2, avg3;
+						int actproc, totproc, npid, which;
+						fscanf(LOADAVG, "%f %f %f %d/%d %d",
+							&avg1, &avg2, &avg3, &actproc, &totproc, &npid);
+						if (sscanf(t, "%d", &which) == 1) {
+							switch (which) {
+							case 1:
+								snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg1);
+								break;
+							case 2:
+								snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg2);
+								break;
+							case 3:
+								snprintf(p, sizeof(prompt) - strlen(prompt), "%.2f", avg3);
+								break;
+							case 4:
+								snprintf(p, sizeof(prompt) - strlen(prompt), "%d/%d", actproc, totproc);
+								break;
+							case 5:
+								snprintf(p, sizeof(prompt) - strlen(prompt), "%d", npid);
+								break;
+							}
+						}
+					}
+					break;
 #endif
-					case 't': /* time */
-						memset(&tm, 0, sizeof(tm));
-						time(&ts);
-						if (localtime_r(&ts, &tm)) {
-							strftime(p, sizeof(prompt) - strlen(prompt), "%H:%M:%S", &tm);
-						}
-						break;
-					case '#': /* process console or remote? */
-						if (!ast_opt_remote) {
-							strncat(p, "#", sizeof(prompt) - strlen(prompt) - 1);
-						} else {
-							strncat(p, ">", sizeof(prompt) - strlen(prompt) - 1);
-						}
-						break;
-					case '%': /* literal % */
-						strncat(p, "%", sizeof(prompt) - strlen(prompt) - 1);
-						break;
-					case '\0': /* % is last character - prevent bug */
-						t--;
-						break;
+				case 't': /* time */
+					memset(&tm, 0, sizeof(tm));
+					time(&ts);
+					if (localtime_r(&ts, &tm)) {
+						strftime(p, sizeof(prompt) - strlen(prompt), "%H:%M:%S", &tm);
+					}
+					break;
+				case '#': /* process console or remote? */
+					if (!ast_opt_remote) {
+						strncat(p, "#", sizeof(prompt) - strlen(prompt) - 1);
+					} else {
+						strncat(p, ">", sizeof(prompt) - strlen(prompt) - 1);
+					}
+					break;
+				case '%': /* literal % */
+					strncat(p, "%", sizeof(prompt) - strlen(prompt) - 1);
+					break;
+				case '\0': /* % is last character - prevent bug */
+					t--;
+					break;
 				}
 				while (*p != '\0') {
 					p++;
@@ -1551,7 +1551,7 @@
 
 static char *cli_complete(EditLine *el, int ch)
 {
-	int len=0;
+	int len = 0;
 	char *ptr;
 	int nummatches = 0;
 	char **matches;
@@ -1750,7 +1750,7 @@
 	char *version;
 	int pid;
 	char tmp[80];
-	char *stringp=NULL;
+	char *stringp = NULL;
 
 	char *ebuf;
 	int num = 0;
@@ -1758,13 +1758,13 @@
 	read(ast_consock, buf, sizeof(buf));
 	if (data)
 		write(ast_consock, data, strlen(data) + 1);
-	stringp=buf;
+	stringp = buf;
 	hostname = strsep(&stringp, "/");
 	cpid = strsep(&stringp, "/");
 	version = strsep(&stringp, "\n");
 	if (!version)
 		version = "<Version Unknown>";
-	stringp=hostname;
+	stringp = hostname;
 	strsep(&stringp, ".");
 	if (cpid)
 		pid = atoi(cpid);
@@ -1797,7 +1797,7 @@
 		}
 		return;
 	}
-	for(;;) {
+	for (;;) {
 		ebuf = (char *)el_gets(el, &num);
 
 		if (!ast_strlen_zero(ebuf)) {
@@ -1822,7 +1822,7 @@
 }
 
 static int show_cli_help(void) {
-	printf("Asterisk " ASTERISK_VERSION ", Copyright (C) 1999 - 2005, Digium, Inc. and others.\n");
+	printf("Asterisk " ASTERISK_VERSION ", Copyright (C) 1999 - 2006, Digium, Inc. and others.\n");
 	printf("Usage: asterisk [OPTIONS]\n");
 	printf("Valid Options:\n");
 	printf("   -V              Display version number and exit\n");
@@ -1835,6 +1835,9 @@
 	printf("   -g              Dump core in case of a crash\n");
 	printf("   -h              This help screen\n");
 	printf("   -i              Initialize crypto keys at startup\n");
+	printf("   -I              Enable internal timing if Zaptel timer is available\n");
+	printf("   -L <load>       Limit the maximum load average before rejecting new calls\n");
+	printf("   -M <value>      Limit the maximum number of calls to the specified value\n");
 	printf("   -n              Disable console colorization\n");
 	printf("   -p              Run as pseudo-realtime thread\n");
 	printf("   -q              Quiet mode (suppress output)\n");
@@ -1865,7 +1868,7 @@
 	/* init with buildtime config */
 	ast_copy_string(ast_config_AST_CONFIG_DIR, AST_CONFIG_DIR, sizeof(ast_config_AST_CONFIG_DIR));
 	ast_copy_string(ast_config_AST_SPOOL_DIR, AST_SPOOL_DIR, sizeof(ast_config_AST_SPOOL_DIR));
-	ast_copy_string(ast_config_AST_MODULE_DIR, AST_MODULE_DIR, sizeof(ast_config_AST_VAR_DIR));
+	ast_copy_string(ast_config_AST_MODULE_DIR, AST_MODULE_DIR, sizeof(ast_config_AST_MODULE_DIR));
  	snprintf(ast_config_AST_MONITOR_DIR, sizeof(ast_config_AST_MONITOR_DIR) - 1, "%s/monitor", ast_config_AST_SPOOL_DIR);
 	ast_copy_string(ast_config_AST_VAR_DIR, AST_VAR_DIR, sizeof(ast_config_AST_VAR_DIR));
 	ast_copy_string(ast_config_AST_LOG_DIR, AST_LOG_DIR, sizeof(ast_config_AST_LOG_DIR));
@@ -1970,6 +1973,9 @@
 		/* Transmit SLINEAR silence while a channel is being recorded */
 		} else if (!strcasecmp(v->name, "transmit_silence_during_record")) {
 			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_TRANSMIT_SILENCE);
+		/* Enable internal timing */
+		} else if (!strcasecmp(v->name, "internal_timing")) {
+			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_INTERNAL_TIMING);
 		} else if (!strcasecmp(v->name, "maxcalls")) {
 			if ((sscanf(v->value, "%d", &option_maxcalls) != 1) || (option_maxcalls < 0)) {
 				option_maxcalls = 0;
@@ -2001,23 +2007,23 @@
 {
 	int c;
 	char filename[80] = "";
-	char hostname[MAXHOSTNAMELEN]="";
+	char hostname[MAXHOSTNAMELEN] = "";
 	char tmp[80];
 	char * xarg = NULL;
 	int x;
 	FILE *f;
 	sigset_t sigs;
 	int num;
-	int is_child_of_nonroot=0;
+	int is_child_of_nonroot = 0;
 	char *buf;
-	char *runuser=NULL, *rungroup=NULL;
+	char *runuser = NULL, *rungroup = NULL;
 
 	/* Remember original args for restart */
 	if (argc > sizeof(_argv) / sizeof(_argv[0]) - 1) {
 		fprintf(stderr, "Truncating argument size to %d\n", (int)(sizeof(_argv) / sizeof(_argv[0])) - 1);
 		argc = sizeof(_argv) / sizeof(_argv[0]) - 1;
 	}
-	for (x=0;x<argc;x++)
+	for (x=0; x<argc; x++)
 		_argv[x] = argv[x];
 	_argv[x] = NULL;
 
@@ -2036,21 +2042,14 @@
 	tdd_init();
 	/* When Asterisk restarts after it has dropped the root privileges,
 	 * it can't issue setuid(), setgid(), setgroups() or set_priority() 
-	 * */
+	 */
 	if (getenv("ASTERISK_ALREADY_NONROOT"))
 		is_child_of_nonroot=1;
 	if (getenv("HOME")) 
 		snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
-	/* Check if we're root */
-	/*
-	if (geteuid()) {
-		ast_log(LOG_ERROR, "Must be run as root\n");
-		exit(1);
-	}
-	*/
 	/* Check for options */
-	while((c=getopt(argc, argv, "tThfdvVqprRgcinx:U:G:C:L:M:")) != -1) {
-		switch(c) {
+	while ((c = getopt(argc, argv, "tThfdvVqprRgciInx:U:G:C:L:M:")) != -1) {
+		switch (c) {
 		case 'd':
 			option_debug++;
 			ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
@@ -2102,10 +2101,13 @@
 			ast_copy_string(ast_config_AST_CONFIG_FILE, optarg, sizeof(ast_config_AST_CONFIG_FILE));
 			ast_set_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG);
 			break;
+		case 'I':
+			ast_set_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING);
+			break;
 		case 'i':
 			ast_set_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS);
 			break;
-		case'g':
+		case 'g':
 			ast_set_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE);
 			break;
 		case 'h':
@@ -2153,6 +2155,7 @@
 		rungroup = ast_config_AST_RUN_GROUP;
 	if ((!runuser) && !ast_strlen_zero(ast_config_AST_RUN_USER))
 		runuser = ast_config_AST_RUN_USER;
+
 #ifndef __CYGWIN__
 
 	if (!is_child_of_nonroot) 
@@ -2198,7 +2201,7 @@
 			ast_log(LOG_WARNING, "Unable to setuid to %d (%s)\n", (int)pw->pw_uid, runuser);
 			exit(1);
 		}
-		setenv("ASTERISK_ALREADY_NONROOT","yes",1);
+		setenv("ASTERISK_ALREADY_NONROOT", "yes", 1);
 		if (option_verbose)
 			ast_verbose("Running as user '%s'\n", runuser);
 	}
@@ -2223,7 +2226,6 @@

[... 12720 lines stripped ...]


More information about the svn-commits mailing list