[asterisk-commits] branch oej/test-this-branch r27347 - in
/team/oej/test-this-branch: ./ apps/ ...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Tue May 16 07:43:43 MST 2006
Author: oej
Date: Tue May 16 09:43:42 2006
New Revision: 27347
URL: http://svn.digium.com/view/asterisk?rev=27347&view=rev
Log:
Fixed so compilation actually works again :-)
Added:
team/oej/test-this-branch/build_tools/make_buildopts_h
- copied unchanged from r27306, trunk/build_tools/make_buildopts_h
Modified:
team/oej/test-this-branch/ (props changed)
team/oej/test-this-branch/.cleancount
team/oej/test-this-branch/Makefile
team/oej/test-this-branch/apps/Makefile
team/oej/test-this-branch/apps/app_chanspy.c
team/oej/test-this-branch/apps/app_externalivr.c
team/oej/test-this-branch/apps/app_meetme.c
team/oej/test-this-branch/apps/app_playback.c
team/oej/test-this-branch/apps/app_sendtext.c
team/oej/test-this-branch/apps/app_speech_utils.c
team/oej/test-this-branch/apps/app_voicemail.c
team/oej/test-this-branch/asterisk.c
team/oej/test-this-branch/build_tools/Makefile
team/oej/test-this-branch/build_tools/cflags.xml
team/oej/test-this-branch/channel.c
team/oej/test-this-branch/channels/Makefile
team/oej/test-this-branch/channels/chan_agent.c
team/oej/test-this-branch/channels/chan_h323.c
team/oej/test-this-branch/channels/chan_iax2.c
team/oej/test-this-branch/channels/chan_sip.c
team/oej/test-this-branch/channels/chan_zap.c
team/oej/test-this-branch/configs/iax.conf.sample
team/oej/test-this-branch/configs/manager.conf.sample
team/oej/test-this-branch/configs/say.conf.sample
team/oej/test-this-branch/configs/sip.conf.sample
team/oej/test-this-branch/configure.ac
team/oej/test-this-branch/dnsmgr.c
team/oej/test-this-branch/doc/cliprompt.txt
team/oej/test-this-branch/enum.c
team/oej/test-this-branch/funcs/func_cdr.c
team/oej/test-this-branch/funcs/func_channel.c
team/oej/test-this-branch/funcs/func_logic.c
team/oej/test-this-branch/image.c
team/oej/test-this-branch/include/asterisk/ (props changed)
team/oej/test-this-branch/include/asterisk/linkedlists.h
team/oej/test-this-branch/include/asterisk/lock.h
team/oej/test-this-branch/include/asterisk/manager.h
team/oej/test-this-branch/include/asterisk/rtp.h
team/oej/test-this-branch/loader.c
team/oej/test-this-branch/manager.c
team/oej/test-this-branch/netsock.c
team/oej/test-this-branch/pbx.c
team/oej/test-this-branch/pbx/pbx_realtime.c
team/oej/test-this-branch/res/res_features.c
team/oej/test-this-branch/res/res_monitor.c
team/oej/test-this-branch/rtp.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 16 09:43:42 2006
@@ -1,1 +1,1 @@
-/trunk:1-26454
+/trunk:1-27345
Modified: team/oej/test-this-branch/.cleancount
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/.cleancount?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/.cleancount (original)
+++ team/oej/test-this-branch/.cleancount Tue May 16 09:43:42 2006
@@ -1,1 +1,1 @@
-15
+16
Modified: team/oej/test-this-branch/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/Makefile?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/Makefile (original)
+++ team/oej/test-this-branch/Makefile Tue May 16 09:43:42 2006
@@ -24,18 +24,6 @@
#CROSS_PROC=arm
#SUB_PROC=xscale # or maverick
-# Pentium Pro Optimize
-#PROC=i686
-
-# Pentium & VIA processors optimize
-#PROC=i586
-
-#PROC=k6
-#PROC=ppc
-
-CC=$(CROSS_COMPILE)gcc
-HOST_CC=gcc
-
ifeq ($(CROSS_COMPILE),)
OSARCH=$(shell uname -s)
PROC?=$(shell uname -m)
@@ -69,40 +57,10 @@
OVERWRITE=y
# Include debug and macro symbols in the executables (-g) and profiling info (-pg)
-DEBUG=-g3 #-pg
-
-# Set NOCRYPTO to yes if you do not want to have crypto support or dependencies
-#NOCRYPTO=yes
-
-# If you are running a radio application, define RADIO_RELAX so that the DTMF
-# will be received more reliably
-#OPTIONS += -DRADIO_RELAX
-
-# If you don't have a lot of memory (e.g. embedded Asterisk), define LOW_MEMORY
-# to reduce the size of certain static buffers
-#ifneq ($(CROSS_COMPILE),)
-#OPTIONS += -DLOW_MEMORY
-#endif
-
-# Asterisk SMDI integration
-WITH_SMDI = 1
-
-# Optional debugging parameters
-DEBUG_THREADS = #-DDUMP_SCHEDULER #-DDEBUG_SCHEDULER #-DDEBUG_THREADS #-DDO_CRASH #-DDETECT_DEADLOCKS
-
-# If you want to debug channel locking, try this (depends on code using
-# ast_channel_lock and companions to work)
-DEBUG_THREADS += #-DDEBUG_CHANNEL_LOCKS
-
-# Uncomment next one to enable ast_frame tracing (for debugging)
-TRACE_FRAMES = #-DTRACE_FRAMES
+DEBUG=-g3
# Uncomment next one to enable the asterisk generic jitterbuffer
GENERIC_JB = #-DAST_JB
-
-# Where to install asterisk after compiling
-# Default -> leave empty
-INSTALL_PREFIX?=
# Staging directory
# Files are copied here temporarily during the install process
@@ -113,16 +71,16 @@
#DESTDIR?=/tmp/asterisk
# Original busydetect routine
-BUSYDETECT = #-DBUSYDETECT
+#BUSYDETECT = -DBUSYDETECT
# Improved busydetect routine, comment the previous one if you use this one
-BUSYDETECT+= #-DBUSYDETECT_MARTIN
+#BUSYDETECT+= -DBUSYDETECT_MARTIN
# Detect the busy signal looking only at tone lengths
# For example if you have 3 beeps 100ms tone, 100ms silence separated by 500 ms of silence
-BUSYDETECT+= #-DBUSYDETECT_TONEONLY
+#BUSYDETECT+= -DBUSYDETECT_TONEONLY
# Enforce the detection of busy signal (get rid of false hangups)
# Don't use together with -DBUSYDETECT_TONEONLY
-BUSYDETECT+= #-DBUSYDETECT_COMPARE_TONE_AND_SILENCE
+#BUSYDETECT+= -DBUSYDETECT_COMPARE_TONE_AND_SILENCE
# Define standard directories for various platforms
# These apply if they are not redefined in asterisk.conf
@@ -198,14 +156,13 @@
include makeopts
endif
-ASTCFLAGS+=$(MENUSELECT_CFLAGS)
TOPDIR_CFLAGS=-include include/autoconfig.h -Iinclude
MOD_SUBDIR_CFLAGS=-include ../include/autoconfig.h -I../include -I..
OTHER_SUBDIR_CFLAGS=-include ../include/autoconfig.h -I../include -I..
# *CLI> show memory allocations [filename]
# *CLI> show memory summary [filename]
-ifneq ($(findstring -DMALLOC_DEBUG,$(ASTCFLAGS)),)
+ifneq ($(findstring MALLOC_DEBUG,$(MENUSELECT_CFLAGS)),)
TOPDIR_CFLAGS+=-include include/asterisk/astmm.h
MOD_SUBDIR_CFLAGS+=-include ../include/asterisk/astmm.h
endif
@@ -255,7 +212,7 @@
ID=/usr/xpg4/bin/id
endif
-ASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG) $(INCLUDE) #-DMAKE_VALGRIND_HAPPY
+ASTCFLAGS+=-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG)
ASTCFLAGS+=$(OPTIMIZE)
ifeq ($(AST_DEVMODE),yes)
@@ -263,7 +220,7 @@
endif
ifeq ($(shell gcc -v 2>&1 | grep 'gcc version' | cut -f3 -d' ' | cut -f1 -d.),4)
-ASTCFLAGS+= -Wno-pointer-sign
+ASTCFLAGS+=-Wno-pointer-sign
endif
ASTOBJ=-o asterisk
@@ -290,8 +247,7 @@
endif # FreeBSD
ifeq ($(OSARCH),NetBSD)
- ASTCFLAGS+=-pthread
- INCLUDE+=-I$(CROSS_COMPILE_TARGET)/usr/pkg/include
+ AST_CFLAGS+=-pthread -I$(CROSS_COMPILE_TARGET)/usr/pkg/include
MPG123TARG=netbsd
endif
@@ -300,8 +256,7 @@
endif
ifeq ($(OSARCH),SunOS)
- ASTCFLAGS+=-Wcast-align -DSOLARIS
- INCLUDE+=-Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)/usr/local/ssl/include
+ ASTCFLAGS+=-Wcast-align -DSOLARIS -Iinclude/solaris-compat -I$(CROSS_COMPILE_TARGET)/usr/local/ssl/include
endif
LIBEDIT=editline/libedit.a
@@ -326,14 +281,10 @@
endif
endif
-ASTCFLAGS+= $(DEBUG_THREADS)
-ASTCFLAGS+= $(TRACE_FRAMES)
ASTCFLAGS+= $(GENERIC_JB)
-ASTCFLAGS+= $(MALLOC_DEBUG)
-ASTCFLAGS+= $(BUSYDETECT)
-ASTCFLAGS+= $(OPTIONS)
+ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS)
ifeq ($(findstring dont-optimize,$(MAKECMDGOALS)),)
-ASTCFLAGS+= -fomit-frame-pointer
+ASTCFLAGS+=-fomit-frame-pointer
endif
MOD_SUBDIRS=res channels pbx apps codecs formats cdr funcs
@@ -352,11 +303,11 @@
# we need to link in the objects statically, not as a library, because
# otherwise modules will not have them available if none of the static
# objects use it.
-OBJS+= stdtime/localtime.o
+OBJS+=stdtime/localtime.o
# At the moment say.o is an optional component which can be overridden
# by a module.
-OBJS+= say.o
+OBJS+=say.o
ifeq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/sys/poll.h),)
OBJS+= poll.o
@@ -415,7 +366,7 @@
endif
ifeq ($(MAKETOPLEVEL),$(MAKELEVEL))
- CFLAGS+=$(TOPDIR_CFLAGS) $(ASTCFLAGS)
+ CFLAGS+=$(TOPDIR_CFLAGS)$(ASTCFLAGS)
endif
# This is used when generating the doxygen documentation
@@ -436,7 +387,7 @@
@echo " + make install +"
@echo " +-------------------------------------------+"
-all: config.status menuselect.makeopts cleantest depend asterisk subdirs
+all: cleantest config.status menuselect.makeopts depend asterisk subdirs
config.status: configure
@CFLAGS="" ./configure
@@ -516,23 +467,30 @@
docbook2txt asterisk.sgml
defaults.h: makeopts
- build_tools/make_defaults_h > $@.tmp
- if cmp -s $@.tmp $@ ; then echo ; else \
+ @build_tools/make_defaults_h > $@.tmp
+ @if cmp -s $@.tmp $@ ; then echo ; else \
mv $@.tmp $@ ; \
fi
- rm -f $@.tmp
+ @rm -f $@.tmp
include/asterisk/version.h:
- build_tools/make_version_h > $@.tmp
- if cmp -s $@.tmp $@ ; then echo; else \
+ @build_tools/make_version_h > $@.tmp
+ @if cmp -s $@.tmp $@ ; then echo; else \
mv $@.tmp $@ ; \
fi
- rm -f $@.tmp
+ @rm -f $@.tmp
+
+include/asterisk/buildopts.h: menuselect.makeopts
+ @build_tools/make_buildopts_h > $@.tmp
+ @if cmp -s $@.tmp $@ ; then echo; else \
+ mv $@.tmp $@ ; \
+ fi
+ @rm -f $@.tmp
stdtime/libtime.a:
- CFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" $(MAKE) -C stdtime libtime.a
-
-asterisk: editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
+ CFLAGS="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C stdtime libtime.a
+
+asterisk: include/asterisk/buildopts.h editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
build_tools/make_build_h > include/asterisk/build.h.tmp
if cmp -s include/asterisk/build.h.tmp include/asterisk/build.h ; then echo ; else \
mv include/asterisk/build.h.tmp include/asterisk/build.h ; \
@@ -545,9 +503,9 @@
$(CC) $(AUDIO_LIBS) -o muted muted.o
subdirs:
- @for x in $(MOD_SUBDIRS); do CFLAGS="$(MOD_SUBDIR_CFLAGS) $(ASTCFLAGS)" $(MAKE) -C $$x || exit 1 ; done
- @CFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" $(MAKE) -C utils
- @CFLAGS="$(OTHER_SUBDIR_CFLAGS) $(ASTCFLAGS)" $(MAKE) -C agi
+ @for x in $(MOD_SUBDIRS); do CFLAGS="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C $$x || exit 1 ; done
+ @CFLAGS="$(OTHER_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C utils
+ @CFLAGS="$(OTHER_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C agi
clean-depend:
@for x in $(SUBDIRS); do $(MAKE) -C $$x clean-depend || exit 1 ; done
@@ -571,6 +529,7 @@
rm -f menuselect.makeopts makeopts makeopts.xml
rm -f config.log config.status
rm -f include/autoconfig.h
+ rm -f include/asterisk/buildopts.h
$(MAKE) -C mxml clean
$(MAKE) -C build_tools dist-clean
@@ -679,7 +638,7 @@
if [ -f asterisk.dll ]; then $(INSTALL) -m 755 asterisk.dll $(DESTDIR)$(ASTSBINDIR)/; fi
ln -sf asterisk $(DESTDIR)$(ASTSBINDIR)/rasterisk
$(INSTALL) -m 755 contrib/scripts/astgenkey $(DESTDIR)$(ASTSBINDIR)/
- $(INSTALL) -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
+ $(INSTALL) -m 755 contrib/scripts/autosupport $(DESTDIR)$(ASTSBINDIR)/
if [ ! -f $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ]; then \
cat contrib/scripts/safe_asterisk | sed 's|__ASTERISK_SBIN_DIR__|$(ASTSBINDIR)|;' > $(DESTDIR)$(ASTSBINDIR)/safe_asterisk ;\
chmod 755 $(DESTDIR)$(ASTSBINDIR)/safe_asterisk;\
@@ -866,7 +825,7 @@
rpm: __rpm
-__rpm: include/asterisk/version.h spec
+__rpm: include/asterisk/version.h include/asterisk/buildopts.h spec
rm -rf /tmp/asterisk ; \
mkdir -p /tmp/asterisk/redhat/RPMS/i386 ; \
$(MAKE) DESTDIR=/tmp/asterisk install ; \
@@ -915,10 +874,10 @@
valgrind: dont-optimize
-depend: include/asterisk/version.h .depend defaults.h
+depend: include/asterisk/version.h include/asterisk/buildopts.h .depend defaults.h
@for x in $(SUBDIRS); do $(MAKE) -C $$x depend || exit 1 ; done
-.depend: include/asterisk/version.h defaults.h
+.depend: include/asterisk/version.h include/asterisk/buildopts.h defaults.h
build_tools/mkdep $(CFLAGS) $(wildcard *.c)
.tags-depend:
@@ -961,7 +920,7 @@
# last clean count we had
cleantest:
- if cmp -s .cleancount .lastclean ; then echo ; else \
+ @if cmp -s .cleancount .lastclean ; then echo ; else \
$(MAKE) clean; cp -f .cleancount .lastclean;\
fi
@@ -1001,7 +960,7 @@
menuselect: build_tools/menuselect makeopts.xml
- at build_tools/menuselect ${GLOBAL_MAKEOPTS} ${USER_MAKEOPTS} menuselect.makeopts && echo "menuselect changes saved!" || echo "menuselect changes NOT saved!"
-build_tools/menuselect: build_tools/menuselect.c build_tools/menuselect_curses.c build_tools/menuselect.h include/autoconfig.h mxml/libmxml.a $(MENUSELECT_OBJS)
+build_tools/menuselect: build_tools/menuselect.c build_tools/menuselect_curses.c build_tools/menuselect.h config.status mxml/libmxml.a $(MENUSELECT_OBJS)
$(MAKE) -C build_tools menuselect
mxml/libmxml.a:
Modified: team/oej/test-this-branch/apps/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/Makefile?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/Makefile (original)
+++ team/oej/test-this-branch/apps/Makefile Tue May 16 09:43:42 2006
@@ -12,10 +12,6 @@
#
MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.c,%.so,$(wildcard app_*.c)))
-
-ifneq ($(WITH_SMDI),)
- CFLAGS+=-DWITH_SMDI
-endif
# If you have UnixODBC you can use ODBC voicemail
# storage
Modified: team/oej/test-this-branch/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_chanspy.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_chanspy.c (original)
+++ team/oej/test-this-branch/apps/app_chanspy.c Tue May 16 09:43:42 2006
@@ -198,9 +198,9 @@
ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan->name, chan->name);
- ast_mutex_lock(&chan->lock);
+ ast_channel_lock(chan);
res = ast_channel_spy_add(chan, spy);
- ast_mutex_unlock(&chan->lock);
+ ast_channel_unlock(chan);
if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan))) {
ast_softhangup(peer, AST_SOFTHANGUP_UNBRIDGE);
@@ -219,9 +219,9 @@
if (!chan)
return;
- ast_mutex_lock(&chan->lock);
+ ast_channel_lock(chan);
ast_channel_spy_remove(chan, spy);
- ast_mutex_unlock(&chan->lock);
+ ast_channel_unlock(chan);
};
/* Map 'volume' levels from -4 through +4 into
Modified: team/oej/test-this-branch/apps/app_externalivr.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_externalivr.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_externalivr.c (original)
+++ team/oej/test-this-branch/apps/app_externalivr.c Tue May 16 09:43:42 2006
@@ -258,14 +258,14 @@
FILE *child_commands = NULL;
FILE *child_errors = NULL;
FILE *child_events = NULL;
- struct ivr_localuser foo, *u = &foo;
-
- bzero(u, sizeof(*u));
+ struct ivr_localuser foo = {
+ .playlist = AST_LIST_HEAD_INIT_VALUE,
+ .finishlist = AST_LIST_HEAD_INIT_VALUE,
+ };
+ struct ivr_localuser *u = &foo;
LOCAL_USER_ADD(lu);
- AST_LIST_HEAD_INIT(&u->playlist);
- AST_LIST_HEAD_INIT(&u->finishlist);
u->abort_current_sound = 0;
u->chan = chan;
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=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_meetme.c (original)
+++ team/oej/test-this-branch/apps/app_meetme.c Tue May 16 09:43:42 2006
@@ -152,8 +152,6 @@
int zapconf; /* Zaptel Conf # */
int users; /* Number of active users */
int markedusers; /* Number of marked users */
- struct ast_conf_user *firstuser; /* Pointer to the first user struct */
- struct ast_conf_user *lastuser; /* Pointer to the last user struct */
time_t start; /* Start time (s) */
int refcount; /* reference count of usage */
unsigned int recording:2; /* recording status */
@@ -168,6 +166,7 @@
struct ast_frame *transframe[32];
struct ast_frame *origframe;
struct ast_trans_pvt *transpath[32];
+ AST_LIST_HEAD_NOLOCK(, ast_conf_user) userlist;
AST_LIST_ENTRY(ast_conference) list;
};
@@ -180,8 +179,6 @@
struct ast_conf_user {
int user_no; /* User Number */
- struct ast_conf_user *prevuser; /* Pointer to the previous user */
- struct ast_conf_user *nextuser; /* Pointer to the next user */
int userflags; /* Flags as set in the conference */
int adminflags; /* Flags set by the Admin */
struct ast_channel *chan; /* Connected channel */
@@ -192,6 +189,7 @@
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
@@ -532,9 +530,6 @@
cnf->start = time(NULL);
cnf->zapconf = ztc.confno;
cnf->isdynamic = dynamic ? 1 : 0;
- cnf->firstuser = NULL;
- cnf->lastuser = NULL;
- cnf->locked = 0;
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Created MeetMe conference %d for conference '%s'\n", cnf->zapconf, cnf->confno);
AST_LIST_INSERT_HEAD(&confs, cnf, list);
@@ -666,7 +661,7 @@
return RESULT_SUCCESS;
}
/* Show all the users */
- for (user = cnf->firstuser; user; user = user->nextuser) {
+ AST_LIST_TRAVERSE(&cnf->userlist, user, list) {
now = time(NULL);
hr = (now - user->jointime) / 3600;
min = ((now - user->jointime) % 3600) / 60;
@@ -752,7 +747,7 @@
if (cnf) {
/* Search for the user */
- for (usr = cnf->firstuser; usr; usr = usr->nextuser) {
+ AST_LIST_TRAVERSE(&cnf->userlist, usr, list) {
snprintf(usrno, sizeof(usrno), "%d", usr->user_no);
if (!strncasecmp(word, usrno, len) && ++which > state)
break;
@@ -929,24 +924,13 @@
conf->markedusers++;
ast_mutex_lock(&conf->playlock);
- if (!conf->firstuser) {
- /* Fill the first new User struct */
+
+ if (AST_LIST_EMPTY(&conf->userlist))
user->user_no = 1;
- conf->firstuser = user;
- conf->lastuser = user;
- } else {
- /* Fill the new user struct */
- user->user_no = conf->lastuser->user_no + 1;
- user->prevuser = conf->lastuser;
- if (conf->lastuser->nextuser) {
- ast_log(LOG_WARNING, "Error in User Management!\n");
- ast_mutex_unlock(&conf->playlock);
- goto outrun;
- } else {
- conf->lastuser->nextuser = user;
- conf->lastuser = user;
- }
- }
+ else
+ user->user_no = AST_LIST_LAST(&conf->userlist)->user_no + 1;
+
+ AST_LIST_INSERT_TAIL(&conf->userlist, user, list);
user->chan = chan;
user->userflags = confflags;
@@ -1481,7 +1465,7 @@
break;
case '3': /* Eject last user */
menu_active = 0;
- usr = conf->lastuser;
+ usr = AST_LIST_LAST(&conf->userlist);
if ((usr->chan->name == chan->name)||(usr->userflags & CONFFLAG_ADMIN)) {
if(!ast_streamfile(chan, "conf-errormenu", chan->language))
ast_waitstream(chan, "");
@@ -1712,39 +1696,12 @@
ast_update_realtime("meetme", "confno", conf->confno, "members", members, NULL);
if (confflags & CONFFLAG_MARKEDUSER)
conf->markedusers--;
- if (!conf->users) {
+ if (AST_LIST_EMPTY(&conf->userlist)) {
/* close this one when no more users and no references*/
- if (!conf->refcount){
+ if (!conf->refcount)
conf_free(conf);
- }
} else {
- /* Remove the user struct */
- if (user == conf->firstuser) {
- if (user->nextuser) {
- /* There is another entry */
- user->nextuser->prevuser = NULL;
- } else {
- /* We are the only entry */
- conf->lastuser = NULL;
- }
- /* In either case */
- conf->firstuser = user->nextuser;
- } else if (user == conf->lastuser){
- if (user->prevuser)
- user->prevuser->nextuser = NULL;
- else
- ast_log(LOG_ERROR, "Bad bad bad! We're the last, not the first, but nobody before us??\n");
- conf->lastuser = user->prevuser;
- } else {
- if (user->nextuser)
- user->nextuser->prevuser = user->prevuser;
- else
- ast_log(LOG_ERROR, "Bad! Bad! Bad! user->nextuser is NULL but we're not the end!\n");
- if (user->prevuser)
- user->prevuser->nextuser = user->nextuser;
- else
- ast_log(LOG_ERROR, "Bad! Bad! Bad! user->prevuser is NULL but we're not the beginning!\n");
- }
+ AST_LIST_REMOVE(&conf->userlist, user, list);
}
/* Return the number of seconds the user was in the conf */
snprintf(meetmesecs, sizeof(meetmesecs), "%d", (int) (time(NULL) - user->jointime));
@@ -2222,18 +2179,16 @@
return res;
}
-static struct ast_conf_user* find_user(struct ast_conference *conf, char *callerident)
+static struct ast_conf_user *find_user(struct ast_conference *conf, char *callerident)
{
struct ast_conf_user *user = NULL;
int cid;
sscanf(callerident, "%i", &cid);
if (conf && callerident) {
- user = conf->firstuser;
- while (user) {
+ AST_LIST_TRAVERSE(&conf->userlist, user, list) {
if (cid == user->user_no)
return user;
- user = user->nextuser;
}
}
return NULL;
@@ -2283,23 +2238,15 @@
case 108: /* l: Unlock */
cnf->locked = 0;
break;
- case 75: /* K: kick all users*/
- user = cnf->firstuser;
- while(user) {
+ case 75: /* K: kick all users */
+ AST_LIST_TRAVERSE(&cnf->userlist, user, list)
user->adminflags |= ADMINFLAG_KICKME;
- if (user->nextuser) {
- user = user->nextuser;
- } else {
- break;
- }
- }
break;
case 101: /* e: Eject last user*/
- user = cnf->lastuser;
- if (!(user->userflags & CONFFLAG_ADMIN)) {
+ user = AST_LIST_LAST(&cnf->userlist);
+ if (!(user->userflags & CONFFLAG_ADMIN))
user->adminflags |= ADMINFLAG_KICKME;
- break;
- } else
+ else
ast_log(LOG_NOTICE, "Not kicking last user, is an Admin!\n");
break;
case 77: /* M: Mute */
@@ -2315,15 +2262,9 @@
}
break;
case 78: /* N: Mute all users */
- user = cnf->firstuser;
- while(user) {
- if (user && !(user->userflags & CONFFLAG_ADMIN))
+ AST_LIST_TRAVERSE(&cnf->userlist, user, list) {
+ if (!(user->userflags & CONFFLAG_ADMIN))
user->adminflags |= ADMINFLAG_MUTED;
- if (user->nextuser) {
- user = user->nextuser;
- } else {
- break;
- }
}
break;
case 109: /* m: Unmute */
@@ -2338,25 +2279,15 @@
ast_log(LOG_NOTICE, "Specified User not found or he muted himself!\n");
}
break;
- case 110: /* n: Unmute all users */
- user = cnf->firstuser;
- while(user) {
- if (user && (user-> adminflags & ADMINFLAG_MUTED)) {
- user->adminflags ^= ADMINFLAG_MUTED;
- }
- if (user->nextuser) {
- user = user->nextuser;
- } else {
- break;
- }
- }
+ case 110: /* n: Unmute all users */
+ AST_LIST_TRAVERSE(&cnf->userlist, user, list)
+ user->adminflags &= ~ADMINFLAG_MUTED;
break;
case 107: /* k: Kick user */
- if (user) {
+ if (user)
user->adminflags |= ADMINFLAG_KICKME;
- } else {
+ else
ast_log(LOG_NOTICE, "Specified User not found!");
- }
break;
}
} else {
Modified: team/oej/test-this-branch/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_playback.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_playback.c (original)
+++ team/oej/test-this-branch/apps/app_playback.c Tue May 16 09:43:42 2006
@@ -451,6 +451,16 @@
return res;
}
+static int reload(void *mod)
+{
+ if (say_cfg) {
+ ast_config_destroy(say_cfg);
+ ast_log(LOG_NOTICE, "Reloading say.conf\n");
+ }
+ say_cfg = ast_config_load("say.conf");
+ return 0;
+}
+
static int unload_module(void *mod)
{
int res;
@@ -464,6 +474,7 @@
static int load_module(void *mod)
{
+ reload(mod);
ast_cli_register_multiple(myclis, sizeof(myclis)/sizeof(struct ast_cli_entry));
return ast_register_application(app, playback_exec, synopsis, descrip);
}
@@ -478,4 +489,4 @@
return ASTERISK_GPL_KEY;
}
-STD_MOD1;
+STD_MOD(MOD_1,reload,NULL,NULL);
Modified: team/oej/test-this-branch/apps/app_sendtext.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_sendtext.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_sendtext.c (original)
+++ team/oej/test-this-branch/apps/app_sendtext.c Tue May 16 09:43:42 2006
@@ -93,9 +93,9 @@
priority_jump = 1;
}
- ast_mutex_lock(&chan->lock);
+ ast_channel_lock(chan);
if (!chan->tech->send_text) {
- ast_mutex_unlock(&chan->lock);
+ ast_channel_unlock(chan);
/* Does not support transport */
if (priority_jump || ast_opt_priority_jumping)
ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 101);
@@ -103,7 +103,7 @@
return 0;
}
status = "FAILURE";
- ast_mutex_unlock(&chan->lock);
+ ast_channel_unlock(chan);
res = ast_sendtext(chan, args.text);
if (!res)
status = "SUCCESS";
Modified: team/oej/test-this-branch/apps/app_speech_utils.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_speech_utils.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_speech_utils.c (original)
+++ team/oej/test-this-branch/apps/app_speech_utils.c Tue May 16 09:43:42 2006
@@ -511,6 +511,12 @@
LOCAL_USER_REMOVE(u);
return -1;
}
+
+ /* If channel is not already answered, then answer it */
+ if (chan->_state != AST_STATE_UP && ast_answer(chan)) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
/* Record old read format */
oldreadformat = chan->readformat;
Modified: team/oej/test-this-branch/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/apps/app_voicemail.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/apps/app_voicemail.c (original)
+++ team/oej/test-this-branch/apps/app_voicemail.c Tue May 16 09:43:42 2006
@@ -920,7 +920,7 @@
odbc_release_obj(obj);
goto yuck;
}
- fd = open(full_fn, O_RDWR | O_CREAT | O_TRUNC);
+ fd = open(full_fn, O_RDWR | O_CREAT | O_TRUNC, 0770);
if (fd < 0) {
ast_log(LOG_WARNING, "Failed to write '%s': %s\n", full_fn, strerror(errno));
SQLFreeHandle (SQL_HANDLE_STMT, stmt);
@@ -950,13 +950,13 @@
if (!strcasecmp(coltitle, "recording")) {
res = SQLGetData(stmt, x + 1, SQL_BINARY, NULL, 0, &colsize);
fdlen = colsize;
- fd = open(full_fn, O_RDWR | O_TRUNC | O_CREAT, 0770);
if (fd > -1) {
char tmp[1]="";
lseek(fd, fdlen - 1, SEEK_SET);
if (write(fd, tmp, 1) != 1) {
close(fd);
fd = -1;
+ continue;
}
if (fd > -1)
fdm = mmap(NULL, fdlen, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
Modified: team/oej/test-this-branch/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/asterisk.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/asterisk.c (original)
+++ team/oej/test-this-branch/asterisk.c Tue May 16 09:43:42 2006
@@ -1693,6 +1693,9 @@
}
break;
#endif
+ case 's': /* Asterisk system name (from asterisk.conf) */
+ strncat(p, ast_config_AST_SYSTEM_NAME, sizeof(prompt) - strlen(prompt) - 1);
+ break;
case 't': /* time */
memset(&tm, 0, sizeof(tm));
time(&ts);
Modified: team/oej/test-this-branch/build_tools/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/build_tools/Makefile?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/build_tools/Makefile (original)
+++ team/oej/test-this-branch/build_tools/Makefile Tue May 16 09:43:42 2006
@@ -1,5 +1,5 @@
MENUSELECT_OBJS=menuselect.o menuselect_curses.o
-MENUSELECT_CFLAGS=-g -c -D_GNU_SOURCE -I../ -I../include/
+MENUSELECT_CFLAGS=-g -c -D_GNU_SOURCE -DMENUSELECT -I../ -I../include/
MENUSELECT_LIBS=../mxml/libmxml.a
ifeq ($(OSARCH),SunOS)
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=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/build_tools/cflags.xml (original)
+++ team/oej/test-this-branch/build_tools/cflags.xml Tue May 16 09:43:42 2006
@@ -1,20 +1,23 @@
<category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" force_clean_on_change="yes">
- <member name="-DDEBUG_SCHEDULER">
+ <member name="DEBUG_SCHEDULER" displayname="Enable Scheduler Debugging Output">
</member>
- <member name="-DDEBUG_THREADS">
+ <member name="DEBUG_THREADS" displayname="Enable Thread Debugging">
</member>
- <member name="-DDETECT_DEADLOCKS">
+ <member name="DETECT_DEADLOCKS" displayname="Detect Deadlocks">
</member>
- <member name="-DDUMP_SCHEDULER">
+ <member name="DUMP_SCHEDULER" displayname="Dump Scheduler Contents for Debugging">
</member>
- <member name="-DLOW_MEMORY">
+ <member name="LOW_MEMORY" displayname="Optimize for Low Memory Usage">
</member>
- <member name="-DMALLOC_DEBUG">
+ <member name="MALLOC_DEBUG" displayname="Keep Track of Memory Allocations">
</member>
- <member name="-DRADIO_RELAX">
+ <member name="MTX_PROFILE" displayname="Enable Code Profiling Using TSC Counters">
</member>
- <member name="-DTRACE_FRAMES">
+ <member name="RADIO_RELAX" displayname="Relax DTMF for Radio Applications">
</member>
- <member name="-DMTX_PROFILE">
+ <member name="TRACE_FRAMES" displayname="Trace Frame Allocations">
+ </member>
+ <member name="WITH_SMDI" displayname="Include SMDI Support">
+ <defaultenabled>yes</defaultenabled>
</member>
</category>
Modified: team/oej/test-this-branch/channel.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channel.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/channel.c (original)
+++ team/oej/test-this-branch/channel.c Tue May 16 09:43:42 2006
@@ -3359,7 +3359,6 @@
if (!f) {
*fo = NULL;
*rc = who;
- res = AST_BRIDGE_COMPLETE;
ast_log(LOG_DEBUG, "Didn't get a frame from channel: %s\n",who->name);
break;
}
@@ -3372,6 +3371,8 @@
other = (who == c0) ? c1 : c0; /* the 'other' channel */
if ((f->frametype == AST_FRAME_CONTROL) && !(config->flags & AST_BRIDGE_IGNORE_SIGS)) {
+ int bridge_exit = 0;
+
switch (f->subclass) {
case AST_CONTROL_HOLD:
case AST_CONTROL_UNHOLD:
@@ -3381,11 +3382,11 @@
default:
*fo = f;
*rc = who;
- res = AST_BRIDGE_COMPLETE;
+ bridge_exit = 1;
ast_log(LOG_DEBUG, "Got a FRAME_CONTROL (%d) frame on channel %s\n", f->subclass, who->name);
break;
}
- if (res == AST_BRIDGE_COMPLETE)
+ if (bridge_exit)
break;
}
if ((f->frametype == AST_FRAME_VOICE) ||
@@ -3401,7 +3402,6 @@
if (f->frametype == AST_FRAME_DTMF && monitored_source) {
*fo = f;
*rc = who;
- res = AST_BRIDGE_COMPLETE;
ast_log(LOG_DEBUG, "Got DTMF on channel (%s)\n", who->name);
break;
}
Modified: team/oej/test-this-branch/channels/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/Makefile?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/Makefile (original)
+++ team/oej/test-this-branch/channels/Makefile Tue May 16 09:43:42 2006
@@ -42,10 +42,6 @@
ifeq ($(OSARCH),SunOS)
SOLINK+=-lrt
-endif
-
-ifeq ($(WITH_SMDI),1)
- CFLAGS+=-DWITH_SMDI
endif
ifeq ($(wildcard h323/libchanh323.a),)
Modified: team/oej/test-this-branch/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/chan_agent.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/chan_agent.c (original)
+++ team/oej/test-this-branch/channels/chan_agent.c Tue May 16 09:43:42 2006
@@ -2597,19 +2597,16 @@
ast_manager_unregister("AgentLogoff");
ast_manager_unregister("AgentCallbackLogin");
/* Unregister channel */
- ast_channel_unregister(&agent_tech);
- if (!AST_LIST_LOCK(&agents)) {
- /* Hangup all interfaces if they have an owner */
- AST_LIST_TRAVERSE(&agents, p, list) {
- if (p->owner)
- ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD);
- }
- AST_LIST_UNLOCK(&agents);
- AST_LIST_HEAD_INIT(&agents);
- } else {
- ast_log(LOG_WARNING, "Unable to lock the monitor\n");
- return -1;
- }
+ AST_LIST_LOCK(&agents);
+ /* Hangup all interfaces if they have an owner */
+ while ((p = AST_LIST_REMOVE_HEAD(&agents, list))) {
+ if (p->owner)
+ ast_softhangup(p->owner, AST_SOFTHANGUP_APPUNLOAD);
+ free(p);
+ }
+ AST_LIST_UNLOCK(&agents);
+ AST_LIST_HEAD_DESTROY(&agents);
+
return 0;
}
Modified: team/oej/test-this-branch/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/chan_h323.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/chan_h323.c (original)
+++ team/oej/test-this-branch/channels/chan_h323.c Tue May 16 09:43:42 2006
@@ -204,7 +204,7 @@
static int oh323_answer(struct ast_channel *c);
static struct ast_frame *oh323_read(struct ast_channel *c);
static int oh323_write(struct ast_channel *c, struct ast_frame *frame);
-static int oh323_indicate(struct ast_channel *c, int condition);
+static int oh323_indicate(struct ast_channel *c, int condition, const void *data, size_t datalen);
static int oh323_fixup(struct ast_channel *oldchan, struct ast_channel *newchan);
static const struct ast_channel_tech oh323_tech = {
@@ -625,7 +625,7 @@
return res;
}
-static int oh323_indicate(struct ast_channel *c, int condition)
+static int oh323_indicate(struct ast_channel *c, int condition, const void *data, size_t datalen)
{
struct oh323_pvt *pvt = (struct oh323_pvt *) c->tech_pvt;
Modified: team/oej/test-this-branch/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/oej/test-this-branch/channels/chan_iax2.c?rev=27347&r1=27346&r2=27347&view=diff
==============================================================================
--- team/oej/test-this-branch/channels/chan_iax2.c (original)
+++ team/oej/test-this-branch/channels/chan_iax2.c Tue May 16 09:43:42 2006
@@ -100,10 +100,7 @@
#include "iax2.h"
#include "iax2-parser.h"
#include "iax2-provision.h"
-
-/* Define NEWJB to use the new channel independent jitterbuffer,
- * otherwise, use the old jitterbuffer */
-#define NEWJB
+#include "../jitterbuf.h"
/* Define SCHED_MULTITHREADED to run the scheduler in a special
multithreaded mode. */
@@ -112,10 +109,6 @@
/* Define DEBUG_SCHED_MULTITHREADED to keep track of where each
thread is actually doing. */
#define DEBUG_SCHED_MULTITHREAD
-
-#ifdef NEWJB
-#include "../jitterbuf.h"
-#endif
#ifndef IPTOS_MINCOST
#define IPTOS_MINCOST 0x02
@@ -169,11 +162,8 @@
static int maxtrunkcall = TRUNK_CALL_START;
static int maxnontrunkcall = 1;
static int maxjitterbuffer=1000;
-#ifdef NEWJB
static int resyncthreshold=1000;
static int maxjitterinterps=10;
-#endif
-static int jittershrinkrate=2;
static int trunkfreq = 20;
static int authdebug = 1;
static int autokill = 0;
@@ -223,8 +213,6 @@
static struct sched_context *sched;
static int iax2_capability = IAX_CAPABILITY_FULLBANDWIDTH;
-
-static int iax2_dropcount = DEFAULT_DROP;
static int iaxdebug = 0;
@@ -452,11 +440,6 @@
/* If consecutive voice frame timestamps jump by more than this many milliseconds, then jitter buffer will resync */
#define TS_GAP_FOR_JB_RESYNC 5000
-
-/* If we have more than this much excess real jitter buffer, shrink it. */
-static int max_jitter_buffer = MAX_JITTER_BUFFER;
-/* If we have less than this much excess real jitter buffer, enlarge it. */
-static int min_jitter_buffer = MIN_JITTER_BUFFER;
static int iaxthreadcount = DEFAULT_THREAD_COUNT;
static int iaxmaxthreadcount = DEFAULT_MAX_THREAD_COUNT;
@@ -512,21 +495,10 @@
struct timeval offset;
/*! timeval that we base our delivery on */
struct timeval rxcore;
-#ifdef NEWJB
/*! The jitterbuffer */
jitterbuf *jb;
/*! active jb read scheduler id */
int jbid;
-#else
- /*! Historical delivery time */
- int history[MEMORY_SIZE];
- /*! Current base jitterbuffer */
- int jitterbuffer;
- /*! Current jitter measure */
- int jitter;
- /*! Historic jitter value */
- int historicjitter;
-#endif
/*! LAG */
int lag;
/*! Error, as discovered by the manager */
@@ -745,7 +717,6 @@
ast_log(LOG_WARNING, "%s", data);
}
-#ifdef NEWJB
static void jb_error_output(const char *fmt, ...)
{
va_list args;
@@ -781,8 +752,6 @@
ast_verbose(buf);
}
-#endif
-
/* XXX We probably should use a mutex when working with this XXX */
static struct chan_iax2_pvt *iaxs[IAX_MAX_CALLS];
@@ -1065,6 +1034,7 @@
static struct chan_iax2_pvt *new_iax(struct sockaddr_in *sin, int lockpeer, const char *host)
{
struct chan_iax2_pvt *tmp;
+ jb_conf jbconf;
if (!(tmp = ast_calloc(1, sizeof(*tmp))))
return NULL;
@@ -1082,18 +1052,14 @@
/* ast_copy_string(tmp->context, context, sizeof(tmp->context)); */
ast_copy_string(tmp->exten, "s", sizeof(tmp->exten));
ast_copy_string(tmp->host, host, sizeof(tmp->host));
-#ifdef NEWJB
- {
- jb_conf jbconf;
-
- tmp->jb = jb_new();
- tmp->jbid = -1;
- jbconf.max_jitterbuf = maxjitterbuffer;
- jbconf.resync_threshold = resyncthreshold;
- jbconf.max_contig_interp = maxjitterinterps;
- jb_setconf(tmp->jb,&jbconf);
- }
-#endif
+
+ tmp->jb = jb_new();
+ tmp->jbid = -1;
+ jbconf.max_jitterbuf = maxjitterbuffer;
+ jbconf.resync_threshold = resyncthreshold;
+ jbconf.max_contig_interp = maxjitterinterps;
+ jb_setconf(tmp->jb,&jbconf);
+
return tmp;
}
@@ -1593,28 +1559,6 @@
return 0;
}
-#ifndef NEWJB
-static int __real_do_deliver(void *data)
-{
- /* Locking version of __do_deliver */
- struct iax_frame *fr = data;
[... 3143 lines stripped ...]
More information about the asterisk-commits
mailing list