[asterisk-commits] branch oej/test-this-branch r29664 - in /team/oej/test-this-branch: ./ apps/ ...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Tue May 23 05:12:49 MST 2006


Author: oej
Date: Tue May 23 07:12:48 2006
New Revision: 29664

URL: http://svn.digium.com/view/asterisk?rev=29664&view=rev
Log:
Resolve, reset, go

Added:
    team/oej/test-this-branch/channels/chan_jingle.c
      - copied unchanged from r29641, trunk/channels/chan_jingle.c
    team/oej/test-this-branch/configs/jabber.conf.sample
      - copied unchanged from r29641, trunk/configs/jabber.conf.sample
    team/oej/test-this-branch/configs/jingle.conf.sample
      - copied unchanged from r29641, trunk/configs/jingle.conf.sample
    team/oej/test-this-branch/contrib/dictionary.digium
      - copied unchanged from r29641, trunk/contrib/dictionary.digium
    team/oej/test-this-branch/doc/jabber.txt
      - copied unchanged from r29641, trunk/doc/jabber.txt
    team/oej/test-this-branch/doc/jingle.txt
      - copied unchanged from r29641, trunk/doc/jingle.txt
    team/oej/test-this-branch/doc/radius.txt
      - copied unchanged from r29641, trunk/doc/radius.txt
    team/oej/test-this-branch/include/asterisk/jabber.h
      - copied unchanged from r29641, trunk/include/asterisk/jabber.h
    team/oej/test-this-branch/include/asterisk/jingle.h
      - copied unchanged from r29641, trunk/include/asterisk/jingle.h
    team/oej/test-this-branch/res/res_jabber.c
      - copied unchanged from r29641, trunk/res/res_jabber.c
Modified:
    team/oej/test-this-branch/   (props changed)
    team/oej/test-this-branch/CREDITS
    team/oej/test-this-branch/acinclude.m4
    team/oej/test-this-branch/app.c
    team/oej/test-this-branch/apps/app_dial.c
    team/oej/test-this-branch/apps/app_directed_pickup.c
    team/oej/test-this-branch/apps/app_meetme.c
    team/oej/test-this-branch/apps/app_queue.c
    team/oej/test-this-branch/apps/app_record.c
    team/oej/test-this-branch/apps/app_waitforsilence.c
    team/oej/test-this-branch/build_tools/cflags.xml
    team/oej/test-this-branch/build_tools/menuselect-deps.in
    team/oej/test-this-branch/cdr/Makefile
    team/oej/test-this-branch/cdr/cdr_radius.c
    team/oej/test-this-branch/channels/Makefile
    team/oej/test-this-branch/channels/chan_local.c
    team/oej/test-this-branch/channels/chan_misdn.c
    team/oej/test-this-branch/channels/chan_sip.c
    team/oej/test-this-branch/channels/misdn/chan_misdn_config.h
    team/oej/test-this-branch/channels/misdn_config.c
    team/oej/test-this-branch/codecs/codec_alaw.c
    team/oej/test-this-branch/codecs/codec_ulaw.c
    team/oej/test-this-branch/configs/extensions.conf.sample
    team/oej/test-this-branch/configs/features.conf.sample
    team/oej/test-this-branch/configs/func_odbc.conf.sample
    team/oej/test-this-branch/configs/misdn.conf.sample
    team/oej/test-this-branch/configure
    team/oej/test-this-branch/configure.ac
    team/oej/test-this-branch/doc/cdrdriver.txt
    team/oej/test-this-branch/funcs/func_odbc.c
    team/oej/test-this-branch/include/asterisk/channel.h
    team/oej/test-this-branch/include/asterisk/devicestate.h
    team/oej/test-this-branch/include/autoconfig.h.in
    team/oej/test-this-branch/makeopts.in
    team/oej/test-this-branch/pbx.c
    team/oej/test-this-branch/res/Makefile
    team/oej/test-this-branch/res/res_features.c

Propchange: team/oej/test-this-branch/
------------------------------------------------------------------------------
    automerge = http://edvina.net/training/

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

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

Propchange: team/oej/test-this-branch/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue May 23 07:12:48 2006
@@ -1,1 +1,1 @@
-/trunk:1-29084
+/trunk:1-29643

Modified: team/oej/test-this-branch/CREDITS
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/CREDITS?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/CREDITS (original)
+++ team/oej/test-this-branch/CREDITS Tue May 23 07:12:48 2006
@@ -92,8 +92,9 @@
 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:
+Asterisk uses libedit, the lightweight readline replacement from NetBSD.
+The cdr_radius module uses libradiusclient-ng, which is also from NetBSD.
+They are BSD-licensed and require the following statement:
 
       This product includes software developed by the NetBSD
       Foundation, Inc. and its contributors.

Modified: team/oej/test-this-branch/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/acinclude.m4?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/acinclude.m4 (original)
+++ team/oej/test-this-branch/acinclude.m4 Tue May 23 07:12:48 2006
@@ -5,35 +5,35 @@
 AC_ARG_WITH([$1], AC_HELP_STRING([--with-$1=PATH],[use $5 files in PATH]),[
 case ${withval} in
      n|no)
-     USE_$1=no
+     USE_$4=no
      ;;
      y|ye|yes)
-     $1_MANDATORY="yes"
+     $4_MANDATORY="yes"
      ;;
      *)
-     $1_DIR="${withval}"
-     $1_MANDATORY="yes"
+     $4_DIR="${withval}"
+     $4_MANDATORY="yes"
      ;;
 esac
 ])
 
-PBX_LIB$1=0
+PBX_LIB$4=0
 
-if test "${USE_$1}" != "no"; then
+if test "${USE_$4}" != "no"; then
    pbxlibdir=""
-   if test "x${$1_DIR}" != "x"; then
+   if test "x${$4_DIR}" != "x"; then
       pbxlibdir="-L${$1_DIR}/lib"
    fi
-   AC_CHECK_LIB([$1], [$2], [:], [], ${pbxlibdir} $6)
+   AC_CHECK_LIB([$1], [$2], [AST_$4_FOUND=yes], [AST_$4_FOUND=no], ${pbxlibdir} $6)
 
-   if test "${ac_cv_lib_$1_$2}" = "yes"; then
-      $1_LIB="-l$1 $6"
+   if test "${AST_$4_FOUND}" = "yes"; then
+      $4_LIB="-l$1 $6"
       $4_HEADER_FOUND="1"
-      if test "x${$1_DIR}" != "x"; then
-         $1_LIB="${pbxlibdir} ${$1_LIB}"
-	 $1_INCLUDE="-I${$1_DIR}/include"
+      if test "x${$4_DIR}" != "x"; then
+         $4_LIB="${pbxlibdir} ${$4_LIB}"
+	 $4_INCLUDE="-I${$4_DIR}/include"
 	 if test "x$3" != "x" ; then
-	    AC_CHECK_HEADER([${$1_DIR}/include/$3], [$4_HEADER_FOUND=1], [$4_HEADER_FOUND=0] )
+	    AC_CHECK_HEADER([${$4_DIR}/include/$3], [$4_HEADER_FOUND=1], [$4_HEADER_FOUND=0] )
 	 fi
       else
 	 if test "x$3" != "x" ; then
@@ -41,7 +41,7 @@
 	 fi
       fi
       if test "x${$4_HEADER_FOUND}" = "x0" ; then
-         if test ! -z "${$1_MANDATORY}" ;
+         if test ! -z "${$4_MANDATORY}" ;
          then
             echo " ***"
             echo " *** It appears that you do not have the $1 development package installed."
@@ -49,14 +49,14 @@
             echo " *** without explicitly specifying --with-$1"
             exit 1
          fi
-         $1_LIB=""
-         $1_INCLUDE=""
-         PBX_LIB$1=0
+         $4_LIB=""
+         $4_INCLUDE=""
+         PBX_LIB$4=0
       else
-         PBX_LIB$1=1
+         PBX_LIB$4=1
          AC_DEFINE_UNQUOTED([HAVE_$4], 1, [Define to indicate the $5 library])
       fi
-   elif test ! -z "${$1_MANDATORY}";
+   elif test ! -z "${$4_MANDATORY}";
    then
       echo "***"
       echo "*** The $5 installation on this system appears to be broken."
@@ -65,9 +65,9 @@
       exit 1
    fi
 fi
-AC_SUBST([$1_LIB])
-AC_SUBST([$1_INCLUDE])
-AC_SUBST([PBX_LIB$1])
+AC_SUBST([$4_LIB])
+AC_SUBST([$4_INCLUDE])
+AC_SUBST([PBX_LIB$4])
 ])
 
 

Modified: team/oej/test-this-branch/app.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/app.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/app.c (original)
+++ team/oej/test-this-branch/app.c Tue May 23 07:12:48 2006
@@ -549,8 +549,7 @@
 		sfmt[fmtcnt++] = ast_strdupa(fmt);
 	}
 
-	time(&start);
-	end = start;  /* pre-initialize end to be same as start in case we never get into loop */
+	end = start = time(NULL);  /* pre-initialize end to be same as start in case we never get into loop */
 	for (x = 0; x < fmtcnt; x++) {
 		others[x] = ast_writefile(prepend ? prependfile : recordfile, sfmt[x], comment, O_TRUNC, 0, 0700);
 		if (option_verbose > 2)
@@ -670,7 +669,7 @@
 				}
 			}
 			if (maxtime) {
-				time(&end);
+				end = time(NULL);
 				if (maxtime < (end - start)) {
 					if (option_verbose > 2)
 						ast_verbose(VERBOSE_PREFIX_3 "Took too long, cutting it short...\n");
@@ -689,7 +688,8 @@
 		} else {
 			ast_frfree(f);
 		}
-		if (end == start) time(&end);
+		if (end == start)
+			end = time(NULL);
 	} else {
 		ast_log(LOG_WARNING, "Error creating writestream '%s', format '%s'\n", recordfile, sfmt[x]);
 	}
@@ -931,7 +931,7 @@
 	close(fd);
 
 	snprintf(s, strlen(path) + 9, "%s/.lock", path);
-	time(&start);
+	start = time(NULL);
 	while (((res = link(fs, s)) < 0) && (errno == EEXIST) && (time(NULL) - start < 5))
 		usleep(1);
 	if (res) {

Modified: team/oej/test-this-branch/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_dial.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_dial.c (original)
+++ team/oej/test-this-branch/apps/app_dial.c Tue May 23 07:12:48 2006
@@ -183,7 +183,11 @@
 "    w    - Allow the called party to enable recording of the call by sending\n"
 "           the DTMF sequence defined for one-touch recording in features.conf.\n"
 "    W    - Allow the calling party to enable recording of the call by sending\n"
-"           the DTMF sequence defined for one-touch recording in features.conf.\n";
+"           the DTMF sequence defined for one-touch recording in features.conf.\n"
+"    k    - Allow the called party to enable parking of the call by sending\n"
+"           the DTMF sequence defined for call parking in features.conf.\n"
+"    K    - Allow the calling party to enable parking of the call by sending\n"
+"           the DTMF sequence defined for call parking in features.conf.\n";
 
 /* RetryDial App by Anthony Minessale II <anthmct at yahoo.com> Jan/2005 */
 static char *rapp = "RetryDial";
@@ -227,6 +231,8 @@
 	OPT_CALLER_MONITOR =	(1 << 22),
 	OPT_GOTO =		(1 << 23),
 	OPT_OPERMODE = 		(1 << 24),
+	OPT_CALLEE_PARK =	(1 << 25),
+	OPT_CALLER_PARK =	(1 << 26),
 } dial_exec_option_flags;
 
 #define DIAL_STILLGOING			(1 << 30)
@@ -272,6 +278,8 @@
 	AST_APP_OPTION('T', OPT_CALLER_TRANSFER),
 	AST_APP_OPTION('w', OPT_CALLEE_MONITOR),
 	AST_APP_OPTION('W', OPT_CALLER_MONITOR),
+	AST_APP_OPTION('k', OPT_CALLEE_PARK),
+	AST_APP_OPTION('K', OPT_CALLER_PARK),
 });
 
 /* We define a custom "local user" structure because we
@@ -441,6 +449,7 @@
 						       OPT_CALLEE_TRANSFER | OPT_CALLER_TRANSFER |
 						       OPT_CALLEE_HANGUP | OPT_CALLER_HANGUP |
 						       OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
+						       OPT_CALLEE_PARK | OPT_CALLER_PARK |
 						       DIAL_NOFORWARDHTML);
 				}
 				continue;
@@ -551,6 +560,7 @@
 							       OPT_CALLEE_TRANSFER | OPT_CALLER_TRANSFER |
 							       OPT_CALLEE_HANGUP | OPT_CALLER_HANGUP |
 							       OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
+							       OPT_CALLEE_PARK | OPT_CALLER_PARK |
 							       DIAL_NOFORWARDHTML);
 						/* Setup early media if appropriate */
 						ast_rtp_early_media(in, peer);
@@ -1016,6 +1026,7 @@
 				       OPT_CALLEE_TRANSFER | OPT_CALLER_TRANSFER |
 				       OPT_CALLEE_HANGUP | OPT_CALLER_HANGUP |
 				       OPT_CALLEE_MONITOR | OPT_CALLER_MONITOR |
+				       OPT_CALLEE_PARK | OPT_CALLER_PARK |
 				       OPT_RINGBACK | OPT_MUSICBACK | OPT_FORCECLID);
 			ast_set2_flag(tmp, args.url, DIAL_NOFORWARDHTML);	
 		}
@@ -1497,6 +1508,10 @@
 				ast_set_flag(&(config.features_callee), AST_FEATURE_AUTOMON);
 			if (ast_test_flag(peerflags, OPT_CALLER_MONITOR)) 
 				ast_set_flag(&(config.features_caller), AST_FEATURE_AUTOMON);
+			if (ast_test_flag(peerflags, OPT_CALLEE_PARK))
+				ast_set_flag(&(config.features_callee), AST_FEATURE_PARKCALL);
+			if (ast_test_flag(peerflags, OPT_CALLER_PARK))
+				ast_set_flag(&(config.features_caller), AST_FEATURE_PARKCALL);
 
 			config.timelimit = timelimit;
 			config.play_warning = play_warning;

Modified: team/oej/test-this-branch/apps/app_directed_pickup.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_directed_pickup.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_directed_pickup.c (original)
+++ team/oej/test-this-branch/apps/app_directed_pickup.c Tue May 23 07:12:48 2006
@@ -20,7 +20,7 @@
  *
  * \brief Directed Call Pickup Support
  *
- * \author Joshua Colp <jcolp at asterlink.com>
+ * \author Joshua Colp <jcolp at digium.com>
  *
  * \ingroup applications
  */
@@ -42,12 +42,16 @@
 #include "asterisk/lock.h"
 #include "asterisk/app.h"
 
+#define PICKUPMARK "PICKUPMARK"
+
 static const char *app = "Pickup";
 static const char *synopsis = "Directed Call Pickup";
 static const char *descrip =
 "  Pickup(extension[@context][&extension2 at context...]): This application can pickup any ringing channel\n"
 "that is calling the specified extension. If no context is specified, the current\n"
-"context will be used.\n";
+"context will be used. If you use the special string \"PICKUPMARK\" for the context parameter, for example\n"
+"10 at PICKUPMARK, this application tries to find a channel which has defined a channel variable with the same context\n"
+"as \"extension\".";
 
 LOCAL_USER_DECL;
 
@@ -58,6 +62,7 @@
 	struct ast_channel *origin = NULL, *target = NULL;
 	char *tmp = NULL, *exten = NULL, *context = NULL, *rest=data;
 	char workspace[256] = "";
+	const char *tmp2 = NULL;
 
 	if (ast_strlen_zero(data)) {
 		ast_log(LOG_WARNING, "Pickup requires an argument (extension) !\n");
@@ -77,8 +82,21 @@
 		if (context)
 			*context++ = '\0';
 
-		/* Find a channel to pickup */
-		origin = ast_get_channel_by_exten_locked(exten, context);
+		/* If the context is the pickup mark, iterate through all channels finding the right origin one */
+		if (!strcmp(context, PICKUPMARK)) {
+			while ((origin = ast_channel_walk_locked(origin))) {
+				if (origin) {
+					tmp2 = pbx_builtin_getvar_helper(origin, PICKUPMARK);
+					if (tmp2 && !strcmp(tmp2, exten))
+						break;
+					ast_mutex_unlock(&origin->lock);
+				}
+			}
+		} else {
+			/* Use the classic mode of searching */
+			origin = ast_get_channel_by_exten_locked(exten, context);
+		}
+
 		if (origin) {
 			ast_cdr_getvar(origin->cdr, "dstchannel", &tmp, workspace,
 					sizeof(workspace), 0, 0);

Modified: team/oej/test-this-branch/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_meetme.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_meetme.c (original)
+++ team/oej/test-this-branch/apps/app_meetme.c Tue May 23 07:12:48 2006
@@ -63,6 +63,120 @@
 #include "asterisk/translate.h"
 #include "asterisk/ulaw.h"
 
+#include "enter.h"
+#include "leave.h"
+
+LOCAL_USER_DECL;
+
+#define CONFIG_FILE_NAME "meetme.conf"
+
+/*! each buffer is 20ms, so this is 640ms total */
+#define DEFAULT_AUDIO_BUFFERS  32
+
+enum {
+	ADMINFLAG_MUTED =  (1 << 1), /*!< User is muted */
+	ADMINFLAG_KICKME = (1 << 2)  /*!< User has been kicked */
+};
+
+#define MEETME_DELAYDETECTTALK     300
+#define MEETME_DELAYDETECTENDTALK  1000
+
+#define AST_FRAME_BITS  32
+
+enum volume_action {
+	VOL_UP,
+	VOL_DOWN
+};
+
+enum entrance_sound {
+	ENTER,
+	LEAVE
+};
+
+enum recording_state {
+	MEETME_RECORD_OFF,
+	MEETME_RECORD_STARTED,
+	MEETME_RECORD_ACTIVE,
+	MEETME_RECORD_TERMINATE
+};
+
+#define CONF_SIZE  320
+
+enum {
+	/*! user has admin access on the conference */
+	CONFFLAG_ADMIN = (1 << 0),
+	/*! If set the user can only receive audio from the conference */
+	CONFFLAG_MONITOR = (1 << 1),
+	/*! If set asterisk will exit conference when '#' is pressed */
+	CONFFLAG_POUNDEXIT = (1 << 2),
+	/*! If set asterisk will provide a menu to the user when '*' is pressed */
+	CONFFLAG_STARMENU = (1 << 3),
+	/*! If set the use can only send audio to the conference */
+	CONFFLAG_TALKER = (1 << 4),
+	/*! If set there will be no enter or leave sounds */
+	CONFFLAG_QUIET = (1 << 5),
+	/*! If set, when user joins the conference, they will be told the number 
+	 *  of users that are already in */
+	CONFFLAG_ANNOUNCEUSERCOUNT = (1 << 6),
+	/*! Set to run AGI Script in Background */
+	CONFFLAG_AGI = (1 << 7),
+	/*! Set to have music on hold when user is alone in conference */
+	CONFFLAG_MOH = (1 << 8),
+	/*! If set the MeetMe will return if all marked with this flag left */
+	CONFFLAG_MARKEDEXIT = (1 << 9),
+	/*! If set, the MeetMe will wait until a marked user enters */
+	CONFFLAG_WAITMARKED = (1 << 10),
+	/*! If set, the MeetMe will exit to the specified context */
+	CONFFLAG_EXIT_CONTEXT = (1 << 11),
+	/*! If set, the user will be marked */
+	CONFFLAG_MARKEDUSER = (1 << 12),
+	/*! If set, user will be ask record name on entry of conference */
+	CONFFLAG_INTROUSER = (1 << 13),
+	/*! If set, the MeetMe will be recorded */
+	CONFFLAG_RECORDCONF = (1<< 14),
+	/*! If set, the user will be monitored if the user is talking or not */
+	CONFFLAG_MONITORTALKER = (1 << 15),
+	CONFFLAG_DYNAMIC = (1 << 16),
+	CONFFLAG_DYNAMICPIN = (1 << 17),
+	CONFFLAG_EMPTY = (1 << 18),
+	CONFFLAG_EMPTYNOPIN = (1 << 19),
+	CONFFLAG_ALWAYSPROMPT = (1 << 20),
+	/*! If set, treats talking users as muted users */
+	CONFFLAG_OPTIMIZETALKER = (1 << 21),
+	/*! If set, won't speak the extra prompt when the first person 
+	 *  enters the conference */
+	CONFFLAG_NOONLYPERSON = (1 << 22),
+	CONFFLAG_INTROUSERNOREVIEW = (1 << 23)
+	/*! If set, user will be asked to record name on entry of conference 
+	 *  without review */
+};
+
+AST_APP_OPTIONS(meetme_opts, {
+	AST_APP_OPTION('A', CONFFLAG_MARKEDUSER ),
+	AST_APP_OPTION('a', CONFFLAG_ADMIN ),
+	AST_APP_OPTION('b', CONFFLAG_AGI ),
+	AST_APP_OPTION('c', CONFFLAG_ANNOUNCEUSERCOUNT ),
+	AST_APP_OPTION('D', CONFFLAG_DYNAMICPIN ),
+	AST_APP_OPTION('d', CONFFLAG_DYNAMIC ),
+	AST_APP_OPTION('E', CONFFLAG_EMPTYNOPIN ),
+	AST_APP_OPTION('e', CONFFLAG_EMPTY ),
+	AST_APP_OPTION('i', CONFFLAG_INTROUSER ),
+	AST_APP_OPTION('I', CONFFLAG_INTROUSERNOREVIEW ),
+	AST_APP_OPTION('M', CONFFLAG_MOH ),
+	AST_APP_OPTION('m', CONFFLAG_MONITOR ),
+	AST_APP_OPTION('o', CONFFLAG_OPTIMIZETALKER ),
+	AST_APP_OPTION('P', CONFFLAG_ALWAYSPROMPT ),
+	AST_APP_OPTION('p', CONFFLAG_POUNDEXIT ),
+	AST_APP_OPTION('q', CONFFLAG_QUIET ),
+	AST_APP_OPTION('r', CONFFLAG_RECORDCONF ),
+	AST_APP_OPTION('s', CONFFLAG_STARMENU ),
+	AST_APP_OPTION('T', CONFFLAG_MONITORTALKER ),
+	AST_APP_OPTION('t', CONFFLAG_TALKER ),
+	AST_APP_OPTION('w', CONFFLAG_WAITMARKED ),
+	AST_APP_OPTION('X', CONFFLAG_EXIT_CONTEXT ),
+	AST_APP_OPTION('x', CONFFLAG_MARKEDEXIT ),
+	AST_APP_OPTION('1', CONFFLAG_NOONLYPERSON ),
+});
 
 static const char *app = "MeetMe";
 static const char *app2 = "MeetMeCount";
@@ -137,31 +251,27 @@
 "      'N' -- Mute entire conference (except admin)\n"
 "";
 
-#define CONFIG_FILE_NAME "meetme.conf"
-
-LOCAL_USER_DECL;
-
 struct ast_conference {
-	ast_mutex_t playlock;				/* Conference specific lock (players) */
-	ast_mutex_t listenlock;				/* Conference specific lock (listeners) */
-	char confno[AST_MAX_EXTENSION];		/* Conference */
-	struct ast_channel *chan;		/* Announcements channel */
-	struct ast_channel *lchan;		/* Listen/Record channel */
-	int fd;					/* Announcements fd */
-	int zapconf;				/* Zaptel Conf # */
-	int users;				/* Number of active users */
-	int markedusers;			/* Number of marked users */
-	time_t start;				/* Start time (s) */
-	int refcount;				/* reference count of usage */
-	unsigned int recording:2;				/* recording status */
-	unsigned int isdynamic:1;				/* Created on the fly? */
-	unsigned int locked:1;				/* Is the conference locked? */
-	pthread_t recordthread;			/* thread for recording */
-	pthread_attr_t attr;			/* thread attribute */
-	const char *recordingfilename;		/* Filename to record the Conference into */
-	const char *recordingformat;			/* Format to record the Conference in */
-	char pin[AST_MAX_EXTENSION];		/* If protected by a PIN */
-	char pinadmin[AST_MAX_EXTENSION];	/* If protected by a admin PIN */
+	ast_mutex_t playlock;                   /*!< Conference specific lock (players) */
+	ast_mutex_t listenlock;                 /*!< Conference specific lock (listeners) */
+	char confno[AST_MAX_EXTENSION];         /*!< Conference */
+	struct ast_channel *chan;               /*!< Announcements channel */
+	struct ast_channel *lchan;              /*!< Listen/Record channel */
+	int fd;                                 /*!< Announcements fd */
+	int zapconf;                            /*!< Zaptel Conf # */
+	int users;                              /*!< Number of active users */
+	int markedusers;                        /*!< Number of marked users */
+	time_t start;                           /*!< Start time (s) */
+	int refcount;                           /*!< reference count of usage */
+	enum recording_state recording:2;               /*!< recording status */
+	unsigned int isdynamic:1;               /*!< Created on the fly? */
+	unsigned int locked:1;                  /*!< Is the conference locked? */
+	pthread_t recordthread;                 /*!< thread for recording */
+	pthread_attr_t attr;                    /*!< thread attribute */
+	const char *recordingfilename;          /*!< Filename to record the Conference into */
+	const char *recordingformat;            /*!< Format to record the Conference in */
+	char pin[AST_MAX_EXTENSION];            /*!< If protected by a PIN */
+	char pinadmin[AST_MAX_EXTENSION];       /*!< If protected by a admin PIN */
 	struct ast_frame *transframe[32];
 	struct ast_frame *origframe;
 	struct ast_trans_pvt *transpath[32];
@@ -172,111 +282,52 @@
 static AST_LIST_HEAD_STATIC(confs, ast_conference);
 
 struct volume {
-	int desired;				/* Desired volume adjustment */
-	int actual;				/* Actual volume adjustment (for channels that can't adjust) */
+	int desired;                            /*!< Desired volume adjustment */
+	int actual;                             /*!< Actual volume adjustment (for channels that can't adjust) */
 };
 
 struct ast_conf_user {
-	int user_no;				/* User Number */
-	int userflags;				/* Flags as set in the conference */
-	int adminflags;				/* Flags set by the Admin */
-	struct ast_channel *chan;		/* Connected channel */
-	int talking;				/* Is user talking */
-	int zapchannel;				/* Is a Zaptel channel */
-	char usrvalue[50];			/* Custom User Value */
-	char namerecloc[AST_MAX_EXTENSION];	/* Name Recorded file Location */
-	time_t jointime;			/* Time the user joined the conference */
+	int user_no;                            /*!< User Number */
+	int userflags;                          /*!< Flags as set in the conference */
+	int adminflags;                         /*!< Flags set by the Admin */
+	struct ast_channel *chan;               /*!< Connected channel */
+	int talking;                            /*!< Is user talking */
+	int zapchannel;                         /*!< Is a Zaptel channel */
+	char usrvalue[50];                      /*!< Custom User Value */
+	char namerecloc[AST_MAX_EXTENSION];     /*!< Name Recorded file Location */
+	time_t jointime;                        /*!< Time the user joined the conference */
 	struct volume talk;
 	struct volume listen;
 	AST_LIST_ENTRY(ast_conf_user) list;
 };
 
-static int audio_buffers;			/* The number of audio buffers to be allocated on pseudo channels
-						   when in a conference
-						*/
-
-#define DEFAULT_AUDIO_BUFFERS 32		/* each buffer is 20ms, so this is 640ms total */
-
-#define ADMINFLAG_MUTED (1 << 1)		/* User is muted */
-#define ADMINFLAG_KICKME (1 << 2)		/* User is kicked */
-#define MEETME_DELAYDETECTTALK 		300
-#define MEETME_DELAYDETECTENDTALK 	1000
-
-#define AST_FRAME_BITS 32
-
-enum volume_action {
-	VOL_UP,
-	VOL_DOWN,
+/*! The number of audio buffers to be allocated on pseudo channels
+ *  when in a conference */
+static int audio_buffers;
+
+/*! Map 'volume' levels from -5 through +5 into
+ *  decibel (dB) settings for channel drivers
+ *  Note: these are not a straight linear-to-dB
+ *  conversion... the numbers have been modified
+ *  to give the user a better level of adjustability
+ */
+static signed char gain_map[] = {
+	-15,
+	-13,
+	-10,
+	-6,
+	0,
+	0,
+	0,
+	6,
+	10,
+	13,
+	15,
 };
 
+
 static int admin_exec(struct ast_channel *chan, void *data);
-
 static void *recordthread(void *args);
-
-#include "enter.h"
-#include "leave.h"
-
-#define ENTER	0
-#define LEAVE	1
-
-#define MEETME_RECORD_OFF	0
-#define MEETME_RECORD_STARTED	1
-#define MEETME_RECORD_ACTIVE	2
-#define MEETME_RECORD_TERMINATE	3
-
-#define CONF_SIZE 320
-
-#define CONFFLAG_ADMIN	(1 << 1)		/* If set the user has admin access on the conference */
-#define CONFFLAG_MONITOR (1 << 2)		/* If set the user can only receive audio from the conference */
-#define CONFFLAG_POUNDEXIT (1 << 3)		/* If set asterisk will exit conference when '#' is pressed */
-#define CONFFLAG_STARMENU (1 << 4)		/* If set asterisk will provide a menu to the user when '*' is pressed */
-#define CONFFLAG_TALKER (1 << 5)		/* If set the use can only send audio to the conference */
-#define CONFFLAG_QUIET (1 << 6)			/* If set there will be no enter or leave sounds */
-#define CONFFLAG_ANNOUNCEUSERCOUNT (1 << 7)	/* If set, when user joins the conference, they will be told the number of users that are already in */
-#define CONFFLAG_AGI (1 << 8)			/* Set to run AGI Script in Background */
-#define CONFFLAG_MOH (1 << 9)			/* Set to have music on hold when user is alone in conference */
-#define CONFFLAG_MARKEDEXIT (1 << 10)		/* If set the MeetMe will return if all marked with this flag left */
-#define CONFFLAG_WAITMARKED (1 << 11)		/* If set, the MeetMe will wait until a marked user enters */
-#define CONFFLAG_EXIT_CONTEXT (1 << 12)		/* If set, the MeetMe will exit to the specified context */
-#define CONFFLAG_MARKEDUSER (1 << 13)		/* If set, the user will be marked */
-#define CONFFLAG_INTROUSER (1 << 14)		/* If set, user will be ask record name on entry of conference */
-#define CONFFLAG_RECORDCONF (1<< 15)		/* If set, the MeetMe will be recorded */
-#define CONFFLAG_MONITORTALKER (1 << 16)	/* If set, the user will be monitored if the user is talking or not */
-#define CONFFLAG_DYNAMIC (1 << 17)
-#define CONFFLAG_DYNAMICPIN (1 << 18)
-#define CONFFLAG_EMPTY (1 << 19)
-#define CONFFLAG_EMPTYNOPIN (1 << 20)
-#define CONFFLAG_ALWAYSPROMPT (1 << 21)
-#define CONFFLAG_OPTIMIZETALKER (1 << 22)	/* If set, treats talking users as muted users */
-#define CONFFLAG_NOONLYPERSON (1 << 23)		/* If set, won't speak the extra prompt when the first person enters the conference */
-#define CONFFLAG_INTROUSERNOREVIEW (1 << 24)	/* If set, user will be asked to record name on entry of conference without review */
-
-AST_APP_OPTIONS(meetme_opts, {
-	AST_APP_OPTION('A', CONFFLAG_MARKEDUSER ),
-	AST_APP_OPTION('a', CONFFLAG_ADMIN ),
-	AST_APP_OPTION('b', CONFFLAG_AGI ),
-	AST_APP_OPTION('c', CONFFLAG_ANNOUNCEUSERCOUNT ),
-	AST_APP_OPTION('D', CONFFLAG_DYNAMICPIN ),
-	AST_APP_OPTION('d', CONFFLAG_DYNAMIC ),
-	AST_APP_OPTION('E', CONFFLAG_EMPTYNOPIN ),
-	AST_APP_OPTION('e', CONFFLAG_EMPTY ),
-	AST_APP_OPTION('i', CONFFLAG_INTROUSER ),
-	AST_APP_OPTION('I', CONFFLAG_INTROUSERNOREVIEW ),
-	AST_APP_OPTION('M', CONFFLAG_MOH ),
-	AST_APP_OPTION('m', CONFFLAG_MONITOR ),
-	AST_APP_OPTION('o', CONFFLAG_OPTIMIZETALKER ),
-	AST_APP_OPTION('P', CONFFLAG_ALWAYSPROMPT ),
-	AST_APP_OPTION('p', CONFFLAG_POUNDEXIT ),
-	AST_APP_OPTION('q', CONFFLAG_QUIET ),
-	AST_APP_OPTION('r', CONFFLAG_RECORDCONF ),
-	AST_APP_OPTION('s', CONFFLAG_STARMENU ),
-	AST_APP_OPTION('T', CONFFLAG_MONITORTALKER ),
-	AST_APP_OPTION('t', CONFFLAG_TALKER ),
-	AST_APP_OPTION('w', CONFFLAG_WAITMARKED ),
-	AST_APP_OPTION('X', CONFFLAG_EXIT_CONTEXT ),
-	AST_APP_OPTION('x', CONFFLAG_MARKEDEXIT ),
-	AST_APP_OPTION('1', CONFFLAG_NOONLYPERSON ),
-});
 
 static char *istalking(int x)
 {
@@ -315,26 +366,6 @@
 	return 0;
 }
 
-/* Map 'volume' levels from -5 through +5 into
-   decibel (dB) settings for channel drivers
-   Note: these are not a straight linear-to-dB
-   conversion... the numbers have been modified
-   to give the user a better level of adjustability
-*/
-static signed char gain_map[] = {
-	-15,
-	-13,
-	-10,
-	-6,
-	0,
-	0,
-	0,
-	6,
-	10,
-	13,
-	15,
-};
-
 static int set_talk_volume(struct ast_conf_user *user, int volume)
 {
 	signed char gain_adjust;
@@ -426,7 +457,7 @@
 	ast_channel_setoption(user->chan, AST_OPTION_RXGAIN, &zero_volume, sizeof(zero_volume), 0);
 }
 
-static void conf_play(struct ast_channel *chan, struct ast_conference *conf, int sound)
+static void conf_play(struct ast_channel *chan, struct ast_conference *conf, enum entrance_sound sound)
 {
 	unsigned char *data;
 	int len;
@@ -541,20 +572,6 @@
 	return cnf;
 }
 
-static int confs_show(int fd, int argc, char **argv)
-{
-	ast_cli(fd, "Deprecated! Please use 'meetme' instead.\n");
-
-	return RESULT_SUCCESS;
-}
-
-static char show_confs_usage[] =
-"Deprecated! Please use 'meetme' instead.\n";
-
-static struct ast_cli_entry cli_show_confs = {
-	{ "show", "conferences", NULL }, confs_show,
-	"Show status of conferences", show_confs_usage, NULL };
-	
 static int conf_cmd(int fd, int argc, char **argv) {
 	/* Process the command */
 	struct ast_conference *cnf;
@@ -672,7 +689,7 @@
 					user->chan->name,
 					user->userflags & CONFFLAG_ADMIN ? "(Admin)" : "",
 					user->userflags & CONFFLAG_MONITOR ? "(Listen only)" : "",
-					user->adminflags & ADMINFLAG_MUTED ? "(Admn Muted)" : "",
+					user->adminflags & ADMINFLAG_MUTED ? "(Admin Muted)" : "",
 					istalking(user->talking), hr, min, sec);
 			else 
 				ast_cli(fd, "%d!%s!%s!%s!%s!%s!%s!%d!%02d:%02d:%02d\n",
@@ -1678,14 +1695,14 @@
 			"Uniqueid: %s\r\n"
 			"Meetme: %s\r\n"
 			"Usernum: %d\r\n"
-		        "CIDnum: %s\r\n"
-			"CIDname: %s\r\n"
-		        "Duration: %02d:%02d:%02d\r\n",
+		        "CallerIDnum: %s\r\n"
+			"CallerIDname: %s\r\n"
+		        "Duration: %ld\r\n",
 			chan->name, chan->uniqueid, conf->confno, 
 			user->user_no,
 			S_OR(user->chan->cid.cid_num, "<unknown>"),
-		        S_OR(user->chan->cid.cid_name, "<no name>"),
-			hr, min, sec);
+			S_OR(user->chan->cid.cid_name, "<unknown>"),
+			(now - user->jointime));
 
 		conf->users--;
 		conf->refcount--;
@@ -2393,8 +2410,7 @@
 {
 	int res;
 	
-	res = ast_cli_unregister(&cli_show_confs);
-	res |= ast_cli_unregister(&cli_conf);
+	res = ast_cli_unregister(&cli_conf);
 	res |= ast_unregister_application(app3);
 	res |= ast_unregister_application(app2);
 	res |= ast_unregister_application(app);
@@ -2410,8 +2426,7 @@
 
 	load_config();
 
-	res = ast_cli_register(&cli_show_confs);
-	res |= ast_cli_register(&cli_conf);
+	res = ast_cli_register(&cli_conf);
 	res |= ast_register_application(app3, admin_exec, synopsis3, descrip3);
 	res |= ast_register_application(app2, count_exec, synopsis2, descrip2);
 	res |= ast_register_application(app, conf_exec, synopsis, descrip);

Modified: team/oej/test-this-branch/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_queue.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_queue.c (original)
+++ team/oej/test-this-branch/apps/app_queue.c Tue May 23 07:12:48 2006
@@ -1263,8 +1263,8 @@
 
 			/* Take us out of the queue */
 			manager_event(EVENT_FLAG_CALL, "Leave",
-				"Channel: %s\r\nQueue: %s\r\nCount: %d\r\n",
-				qe->chan->name, q->name,  q->count);
+				"Channel: %s\r\nQueue: %s\r\nCount: %d\r\nUniqueid: %s\r\n",
+				qe->chan->name, q->name,  q->count, qe->chan->uniqueid);
 			if (option_debug)
 				ast_log(LOG_DEBUG, "Queue '%s' Leave, Channel '%s'\n", q->name, qe->chan->name );
 			/* Take us out of the queue */

Modified: team/oej/test-this-branch/apps/app_record.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_record.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_record.c (original)
+++ team/oej/test-this-branch/apps/app_record.c Tue May 23 07:12:48 2006
@@ -62,7 +62,8 @@
 "     'n' : do not answer, but record anyway if line not yet answered\n"
 "     'q' : quiet (do not play a beep tone)\n"
 "     's' : skip recording if the line is not yet answered\n"
-"     't' : use alternate '*' terminator key instead of default '#'\n"
+"     't' : use alternate '*' terminator key (DTMF) instead of default '#'\n"
+"     'x' : ignore all terminator keys (DTMF) and keep recording until hangup\n"
 "\n"
 "If filename contains '%d', these characters will be replaced with a number\n"
 "incremented by one each time the file is recorded. \n\n"
@@ -167,6 +168,8 @@
 				option_append = 1;
 			if (strchr(options, 't'))
 				terminator = '*';
+			if (strchr(options, 'x'))
+				terminator = 0;
 			if (strchr(options, 'q'))
 				option_quiet = 1;
 		}

Modified: team/oej/test-this-branch/apps/app_waitforsilence.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_waitforsilence.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_waitforsilence.c (original)
+++ team/oej/test-this-branch/apps/app_waitforsilence.c Tue May 23 07:12:48 2006
@@ -69,7 +69,7 @@
 	int totalsilence = 0;
 	int dspsilence = 0;
 	int gotsilence = 0; 
-	static int silencethreshold = 64;
+	static int silencethreshold = 128;
 	int rfmt = 0;
 	int res = 0;
 	struct ast_dsp *sildet;	 /* silence detector dsp */

Modified: team/oej/test-this-branch/build_tools/cflags.xml
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/build_tools/cflags.xml?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/build_tools/cflags.xml (original)
+++ team/oej/test-this-branch/build_tools/cflags.xml Tue May 23 07:12:48 2006
@@ -1,4 +1,6 @@
 	<category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" force_clean_on_change="yes">
+		<member name="DEBUG_CHANNEL_LOCKS" displayname="Debug Channel Locking">
+		</member>
 		<member name="DEBUG_SCHEDULER" displayname="Enable Scheduler Debugging Output">
 		</member>
 		<member name="DEBUG_THREADS" displayname="Enable Thread Debugging">

Modified: team/oej/test-this-branch/build_tools/menuselect-deps.in
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/build_tools/menuselect-deps.in?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/build_tools/menuselect-deps.in (original)
+++ team/oej/test-this-branch/build_tools/menuselect-deps.in Tue May 23 07:12:48 2006
@@ -1,26 +1,28 @@
-ASOUND=@PBX_LIBasound@
+ASOUND=@PBX_LIBALSA@
 CURL=@PBX_CURL@
-FREETDS=@PBX_LIBtds@
+FREETDS=@PBX_LIBFREETDS@
 GTK=@PBX_GTK@
 H323=@PBX_H323@
 KDE=@PBX_KDE@
-LIBNEWT=@PBX_LIBnewt@
-LIBOSPTK=@PBX_LIBosptk@
-LIBPOPT=@PBX_LIBpopt@
-LIBPRI=@PBX_LIBpri@
-LIBSPEEX=@PBX_LIBspeex@
-LIBVORBIS=@PBX_LIBvorbis@
-NBS=@PBX_LIBnbs@
-OGG=@PBX_LIBogg@
-OSSAUDIO=@PBX_LIBossaudio@
+LIBNEWT=@PBX_LIBNEWT@
+LIBOSPTK=@PBX_LIBOSPTK@
+LIBPOPT=@PBX_LIBPOPT@
+LIBPRI=@PBX_LIBLIBPRI@
+LIBSPEEX=@PBX_LIBSPEEX@
+LIBVORBIS=@PBX_LIBVORBIS@
+NBS=@PBX_LIBNBS@
+OGG=@PBX_LIBOGG@
+OSSAUDIO=@PBX_LIBOSS@
 PGSQL=@PBX_LIBpq@
 QT=@PBX_QT@
-SQLITE=@PBX_LIBsqlite@
-SSL=@PBX_LIBssl@
-UNIXODBC=@PBX_LIBodbc@
+RADIUSCLIENT=@PBX_LIBRADIUSCLIENT@
+SQLITE=@PBX_LIBSQLITE@
+SSL=@PBX_LIBOPENSSL@
+UNIXODBC=@PBX_LIBUNIXODBC@
 VPBAPI=@PBX_LIBvpb@
 WIN32=@OSISWIN32@
-ZLIB=@PBX_LIBz@
-ZAPTEL=@PBX_LIBtonezone@
+ZLIB=@PBX_LIBZLIB@
+ZAPTEL=@PBX_LIBZAPTEL@
 LIBGSM=@PBX_LIBgsm@
+IKSEMEL=@PBX_LIBIKSEMEL@
 IXJUSER=@PBX_IXJUSER@

Modified: team/oej/test-this-branch/cdr/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/cdr/Makefile?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/cdr/Makefile (original)
+++ team/oej/test-this-branch/cdr/Makefile Tue May 23 07:12:48 2006
@@ -89,6 +89,13 @@
 cdr_sqlite.o: cdr_sqlite.c
 	$(CC) -c -o $@ $(CFLAGS) $(SQLITE_INCLUDE) $<
 
+cdr_radius.so: cdr_radius.o
+	$(CC) $(SOLINK) -o $@ $< $(RADIUSCLIENT_LIB)
+
+cdr_radius.o: cdr_radius.c
+	$(CC) -c -o $@ $(CFLAGS) $(RADIUSCLIENT_INCLUDE) $<
+
+
 ifneq ($(wildcard .depend),)
   include .depend
 endif

Modified: team/oej/test-this-branch/cdr/cdr_radius.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/cdr/cdr_radius.c?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/cdr/cdr_radius.c (original)
+++ team/oej/test-this-branch/cdr/cdr_radius.c Tue May 23 07:12:48 2006
@@ -4,8 +4,6 @@
  * Copyright (C) 1999 - 2005, Digium, Inc.
  *
  * Mark Spencer <markster at digium.com>
- *
- * Includes code and algorithms from the Zapata library.
  *
  * See http://www.asterisk.org for more information about
  * the Asterisk project. Please do not directly contact
@@ -209,14 +207,14 @@
 
 	/* Disposition */
 	tmp = ast_cdr_disp2str(cdr->disposition);
-	if (!rc_avpair_add(rh, send, PW_AST_DISPOSITION, &tmp, strlen(tmp), VENDOR_CODE)) {
+	if (!rc_avpair_add(rh, send, PW_AST_DISPOSITION, tmp, strlen(tmp), VENDOR_CODE)) {
 		ast_log(LOG_WARNING, "Failed to add VALUE PAIR. RADIUS CDR not recorded!\n");
 		return -1;
 	}
 
 	/* AMA Flags */
 	tmp = ast_cdr_flags2str(cdr->amaflags);
-	if (!rc_avpair_add(rh, send, PW_AST_AMA_FLAGS, &tmp, strlen(tmp), VENDOR_CODE)) {
+	if (!rc_avpair_add(rh, send, PW_AST_AMA_FLAGS, tmp, strlen(tmp), VENDOR_CODE)) {
 		ast_log(LOG_WARNING, "Failed to add VALUE PAIR. RADIUS CDR not recorded!\n");
 		return -1;
 	}
@@ -237,6 +235,18 @@
 		}
 	}
 
+	/* Setting Acct-Session-Id & User-Name attributes for proper generation
+	   of Acct-Unique-Session-Id on server side */ 
+	/* Channel */
+	if (!rc_avpair_add(rh, send, PW_USER_NAME, &cdr->channel, strlen(cdr->channel), 0)) {
+		ast_log(LOG_WARNING, "Failed to add VALUE PAIR. RADIUS CDR not recorded!\n");
+		return -1;
+	}
+	/* Unique ID */
+	if (!rc_avpair_add(rh, send, PW_ACCT_SESSION_ID, &cdr->uniqueid, strlen(cdr->uniqueid), 0)) {
+		ast_log(LOG_WARNING, "Failed to add VALUE PAIR. RADIUS CDR not recorded!\n");
+		return -1;
+	}
 	return 0;
 }
 

Modified: team/oej/test-this-branch/channels/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/Makefile?rev=29664&r1=29663&r2=29664&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/Makefile (original)
+++ team/oej/test-this-branch/channels/Makefile Tue May 23 07:12:48 2006
@@ -131,6 +131,12 @@
 chan_vpb.so: chan_vpb.o
 	 $(CXX) $(SOLINK) -o $@ $< -lvpb -lpthread -lm -ldl
 
+chan_jingle.o: chan_jingle.c
+	$(CC) -c -o $@ $(CFLAGS) $(IKSEMEL_INCLUDE) $<
+
+chan_jingle.so: chan_jingle.o
+	$(CC) $(SOLINK) -o $@ $< $(IKSEMEL_LIB)
+
 ifeq ($(OSARCH),Linux)
 chan_h323.so: chan_h323.o h323/libchanh323.a h323/Makefile.ast
 	$(CC) $(SOLINK) $(H323LDFLAGS) -o $@ $< h323/libchanh323.a $(H323LDLIBS) -lstdc++

Modified: team/oej/test-this-branch/channels/chan_local.c

[... 23900 lines stripped ...]


More information about the asterisk-commits mailing list