[asterisk-commits] file: branch file/bridging r92303 - in /team/file/bridging: ./ apps/ build_to...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Dec 11 09:49:55 CST 2007
Author: file
Date: Tue Dec 11 09:49:54 2007
New Revision: 92303
URL: http://svn.digium.com/view/asterisk?view=rev&rev=92303
Log:
Merged revisions 92082-92084,92103-92104,92122,92140,92159-92160,92199,92201,92203,92205-92206,92243,92267,92285 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r92082 | rizzo | 2007-12-09 23:50:38 -0400 (Sun, 09 Dec 2007) | 23 lines
Put into Makefile.moddir_rules the common instructions used to
generate loadable and embedded module lists.
Individual Makefiles now are a lot simpler, possibly as simple as this:
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
MODULE_PREFIX=cdr_
all: _all
include $(ASTTOPDIR)/Makefile.moddir_rules
and also more flexible because in a single directory we can combine
various types of modules (app_, cdr_, func_, ... ) by simply
listing them in the MODULE_PREFIX variable.
The individual Makefiles can also create list of modules to be
excluded by listing them in the variablel MODULE_EXCLUDE (see an
example in channels/Makefile).
With this change it becomes trivial to integrate a directory with
locally created/modified sources into the main build.
................
r92083 | rizzo | 2007-12-10 00:18:07 -0400 (Mon, 10 Dec 2007) | 7 lines
Fix the detection of modules installed from this build.
You can now add the path of local module subdirs from the command line with
make LOCAL_MOD_SUBDIRS= ....
................
r92084 | rizzo | 2007-12-10 00:38:49 -0400 (Mon, 10 Dec 2007) | 3 lines
add a bit of info on the build infrastructure
................
r92103 | rizzo | 2007-12-10 04:35:35 -0400 (Mon, 10 Dec 2007) | 2 lines
simplify this file
................
r92104 | rizzo | 2007-12-10 04:40:59 -0400 (Mon, 10 Dec 2007) | 12 lines
remove relative paths and use ASTTOPDIR instead.
Give a default value to ASTTOPDIR if unset so we can at least
do a 'make clean' without too much trouble.
The proper fix, however, is to partition the top level
Makefile in a 'setup' and a 'main' part, in a way that the
'setup' part can be included from subdirs' Makefiles and
allow targets to be built without going through the
top level Makefile.
................
r92122 | rizzo | 2007-12-10 05:00:44 -0400 (Mon, 10 Dec 2007) | 2 lines
simplify/cleanup the scripts
................
r92140 | oej | 2007-12-10 09:29:57 -0400 (Mon, 10 Dec 2007) | 8 lines
Add a few extra headers in the voicemail users listing in
manager 1.1. Update documentation too.
(closes issue #11495)
Reported by: caio1982
Patches:
extra_vm_manager_info1.diff uploaded by caio1982 (license 22)
................
r92159 | oej | 2007-12-10 10:10:24 -0400 (Mon, 10 Dec 2007) | 24 lines
Merged revisions 92158 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r92158 | oej | 2007-12-10 15:04:44 +0100 (MÃ¥n, 10 Dec 2007) | 16 lines
Avoid reinvite race situations with two Asterisks trying
to reinvite each other in 1.4 and trunk.
This patch implements support for the 491 error code that
Asterisk 1.4 generates on situations where we get an
incoming INVITE and already has one in progress.
Thanks to mavetju for reporting and to Raj Jain for an
excellent explanation of the problem.
Patch by myself. Tested with 8 Asterisk servers connected
to each other in a training network.
Closes issue #10481
........
................
r92160 | oej | 2007-12-10 10:18:21 -0400 (Mon, 10 Dec 2007) | 2 lines
Removing some LOG_DEBUG items
................
r92199 | file | 2007-12-10 12:07:33 -0400 (Mon, 10 Dec 2007) | 4 lines
Only send a SIGHUP if the pid is greater than -1, otherwise all PIDs greater than -1 will get the SIGHUP... and that is bad.
(closes issue #11453)
Reported by: alanmcmillan
................
r92201 | file | 2007-12-10 12:15:06 -0400 (Mon, 10 Dec 2007) | 11 lines
Blocked revisions 92200 via svnmerge
........
r92200 | file | 2007-12-10 12:13:43 -0400 (Mon, 10 Dec 2007) | 4 lines
It is possible for nativeformats to contain more then one codec, so print out multiple ones.
(closes issue #11366)
Reported by: ovi
........
................
r92203 | mmichelson | 2007-12-10 12:30:46 -0400 (Mon, 10 Dec 2007) | 15 lines
Merged revisions 92202 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r92202 | mmichelson | 2007-12-10 10:29:44 -0600 (Mon, 10 Dec 2007) | 7 lines
If there are no members in a queue, then the loop where the datastore for detecting
duplicate dialed numbers will be skipped, meaning the datastore isn't created. This means
that when we try to free it, there's a crash. This stops that crash from occurring.
(closes issue #11499, reported by slavon, patched by eliel)
........
................
r92205 | file | 2007-12-10 12:37:35 -0400 (Mon, 10 Dec 2007) | 14 lines
Merged revisions 92204 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r92204 | file | 2007-12-10 12:36:15 -0400 (Mon, 10 Dec 2007) | 6 lines
Add G729A as another possible payload name for G729. Some devices use this instead of G729, which is perfectly normal since the payload number itself is defined and can't be used by anything else so the name doesn't matter that much.
(closes issue #11483)
Reported by: revolution
Patches:
rtp.diff uploaded by revolution (license 346)
........
................
r92206 | file | 2007-12-10 12:48:18 -0400 (Mon, 10 Dec 2007) | 4 lines
Add ast_atomic_fetchadd_int_slow to check_expr for platforms that need it.
(closes issue #11484)
Reported by: snuffy
................
r92243 | dbailey | 2007-12-10 16:18:25 -0400 (Mon, 10 Dec 2007) | 2 lines
Add CLI commands to dynamically set hw and sw gains
................
r92267 | oej | 2007-12-11 05:26:25 -0400 (Tue, 11 Dec 2007) | 2 lines
Doxygen updates
................
r92285 | oej | 2007-12-11 10:17:29 -0400 (Tue, 11 Dec 2007) | 2 lines
A lot of doxygen updates
................
Modified:
team/file/bridging/ (props changed)
team/file/bridging/Makefile
team/file/bridging/Makefile.moddir_rules
team/file/bridging/apps/Makefile
team/file/bridging/apps/app_queue.c
team/file/bridging/apps/app_voicemail.c
team/file/bridging/build_tools/make_version
team/file/bridging/build_tools/make_version_h
team/file/bridging/cdr/Makefile
team/file/bridging/channels/Makefile
team/file/bridging/channels/chan_sip.c
team/file/bridging/channels/chan_zap.c
team/file/bridging/codecs/Makefile
team/file/bridging/doc/CODING-GUIDELINES
team/file/bridging/doc/manager_1_1.txt
team/file/bridging/formats/Makefile
team/file/bridging/funcs/Makefile
team/file/bridging/include/asterisk/_private.h
team/file/bridging/include/asterisk/adsi.h
team/file/bridging/include/asterisk/ael_structs.h
team/file/bridging/include/asterisk/aes.h
team/file/bridging/include/asterisk/agi.h
team/file/bridging/include/asterisk/alaw.h
team/file/bridging/include/asterisk/app.h
team/file/bridging/include/asterisk/ast_expr.h
team/file/bridging/include/asterisk/astdb.h
team/file/bridging/include/asterisk/astobj2.h
team/file/bridging/include/asterisk/callerid.h
team/file/bridging/include/asterisk/causes.h
team/file/bridging/include/asterisk/cdr.h
team/file/bridging/include/asterisk/devicestate.h
team/file/bridging/include/asterisk/doxyref.h
team/file/bridging/include/asterisk/dsp.h
team/file/bridging/include/asterisk/event.h
team/file/bridging/include/asterisk/extconf.h
team/file/bridging/include/asterisk/frame.h
team/file/bridging/include/asterisk/hashtab.h
team/file/bridging/include/asterisk/io.h
team/file/bridging/include/asterisk/localtime.h
team/file/bridging/include/asterisk/logger.h
team/file/bridging/include/asterisk/mod_format.h
team/file/bridging/main/rtp.c
team/file/bridging/pbx/Makefile
team/file/bridging/res/Makefile
team/file/bridging/res/res_agi.c
team/file/bridging/utils/Makefile
team/file/bridging/utils/check_expr.c
team/file/bridging/utils/clicompat.c
Propchange: team/file/bridging/
------------------------------------------------------------------------------
automerge = *
Propchange: team/file/bridging/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.
Propchange: team/file/bridging/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Propchange: team/file/bridging/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Dec 11 09:49:54 2007
@@ -1,1 +1,1 @@
-/trunk:1-92063
+/trunk:1-92302
Modified: team/file/bridging/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/Makefile (original)
+++ team/file/bridging/Makefile Tue Dec 11 09:49:54 2007
@@ -24,6 +24,9 @@
# environment when running make, as follows:
#
# $ ASTCFLAGS="-Werror" make
+
+# You can add the path of local module subdirs from the command line with
+# make LOCAL_MOD_SUBDIRS= ....
export ASTTOPDIR # Top level dir, used in subdirs' Makefiles
export ASTERISKVERSION
@@ -266,7 +269,7 @@
# #ifdef BUSYDETECT in main/dsp.c
ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS)
-MOD_SUBDIRS:=channels pbx apps codecs formats cdr bridges funcs main res
+MOD_SUBDIRS:=channels pbx apps codecs formats cdr bridges funcs main res $(LOCAL_MOD_SUBDIRS)
OTHER_SUBDIRS:=utils agi
SUBDIRS:=$(OTHER_SUBDIRS) $(MOD_SUBDIRS)
SUBDIRS_INSTALL:=$(SUBDIRS:%=%-install)
@@ -506,7 +509,7 @@
$(SUBDIRS_INSTALL):
@DESTDIR="$(DESTDIR)" ASTSBINDIR="$(ASTSBINDIR)" $(MAKE) --quiet $(PRINT_DIR) -C $(@:-install=) install
-NEWMODS=$(notdir $(wildcard */*.so))
+NEWMODS:=$(foreach d,$(MOD_SUBDIRS),$(notdir $(wildcard $(d)/*.so)))
OLDMODS=$(filter-out $(NEWMODS),$(notdir $(wildcard $(DESTDIR)$(MODULES_DIR)/*.so)))
oldmodcheck:
Modified: team/file/bridging/Makefile.moddir_rules
URL: http://svn.digium.com/view/asterisk/team/file/bridging/Makefile.moddir_rules?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/Makefile.moddir_rules (original)
+++ team/file/bridging/Makefile.moddir_rules Tue Dec 11 09:49:54 2007
@@ -33,6 +33,41 @@
endif
include $(ASTTOPDIR)/Makefile.rules
+
+# If MODULE_PREFIX is defined, use it to run the standard functions to set
+# C_MODS, CC_MODS, LOADABLE_MODS and EMBEDDED_MODS.
+# Each word of MODULE_PREFIX is a prefix for filenames that we consider
+# valid C or CC modules (eg. app_, func_ ...).
+# Use MODULE_EXCLUDE to specify additional modules to exclude.
+
+ifneq ($(MODULE_PREFIX),)
+ # Compute the lowercase and uppercase directory name. The former
+ # is used as a key in MENUSELECT_EMBED, the latter is part of
+ # the name of the MENUSELECT_* variable containing the exclude list
+ # generated by menuselect.
+ A:=$(notdir $(CURDIR))
+ B:=$(shell echo $A | tr "[a-z]" "[A-Z]")
+ # MENUSELECT_$(L) contains the list of modules excluded by menuselect.
+ # MODULE_EXCLUDE contains the locally generated exclude list
+ L:=$(MENUSELECT_$(B)) $(MODULE_EXCLUDE)
+ # construct the list of C and CC modules from the content of the directory
+ C_MODS:=
+ CC_MODS:=
+ C_MODS+=$(foreach pre,$(MODULE_PREFIX),$(filter-out $(L),$(patsubst %.c,%,$(wildcard $(pre)*.c))))
+ CC_MODS+=$(foreach pre,$(MODULE_PREFIX),$(filter-out $(L),$(patsubst %.cc,%,$(wildcard $(pre)*.cc))))
+
+ # and store in the list of embedded or loadable modules
+ ifneq ($(findstring $(A),$(MENUSELECT_EMBED)),)
+ EMBEDDED_MODS:=$(C_MODS) $(CC_MODS)
+ else
+ LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
+ endif
+endif
+# debugging
+# x:=$(shell echo 'in $(B)' >&2)
+# x:=$(shell echo 'filtered out $(L)' >&2)
+# x:=$(shell echo 'C_MODS= $(C_MODS)' >&2)
+# x:=$(shell sleep 2)
# Both C++ and C++ sources need their module name in AST_MODULE
# We also pass whatever _INCLUDE list is generated by menuselect
Modified: team/file/bridging/apps/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/apps/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/apps/Makefile (original)
+++ team/file/bridging/apps/Makefile Tue Dec 11 09:49:54 2007
@@ -11,16 +11,10 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.c,%,$(wildcard app_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.cc,%,$(wildcard app_*.cc)))
+#interesting files in this directory start with app_
+MODULE_PREFIX=app_
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring apps,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
-endif
-
+# create extra MENUSELECT_DEPENDS entries.
MENUSELECT_OPTS_app_directory:=$(MENUSELECT_OPTS_app_voicemail)
ifneq ($(findstring ODBC_STORAGE,$(MENUSELECT_OPTS_app_voicemail)),)
MENUSELECT_DEPENDS_app_voicemail+=$(MENUSELECT_DEPENDS_ODBC_STORAGE)
Modified: team/file/bridging/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/file/bridging/apps/app_queue.c?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/apps/app_queue.c (original)
+++ team/file/bridging/apps/app_queue.c Tue Dec 11 09:49:54 2007
@@ -2912,8 +2912,10 @@
if (use_weight)
ao2_unlock(queues);
lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies, ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT), forwardsallowed);
- ast_channel_datastore_remove(qe->chan, datastore);
- ast_channel_datastore_free(datastore);
+ if (datastore) {
+ ast_channel_datastore_remove(qe->chan, datastore);
+ ast_channel_datastore_free(datastore);
+ }
ao2_lock(qe->parent);
if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY) {
store_next_rr(qe, outgoing);
Modified: team/file/bridging/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/file/bridging/apps/app_voicemail.c?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/apps/app_voicemail.c (original)
+++ team/file/bridging/apps/app_voicemail.c Tue Dec 11 09:49:54 2007
@@ -7960,8 +7960,14 @@
"UniqueID: %s\r\n"
"ExitContext: %s\r\n"
"SayDurationMinimum: %d\r\n"
+ "SayEnvelope: %s\r\n"
+ "SayCID: %s\r\n"
+ "AttachMessage: %s\r\n"
"AttachmentFormat: %s\r\n"
+ "DeleteMessage: %s\r\n"
"VolumeGain: %.2f\r\n"
+ "CanReview: %s\r\n"
+ "CallOperator: %s\r\n"
"MaxMessageCount: %d\r\n"
"MaxMessageLength: %d\r\n"
"NewMessageCount: %d\r\n"
@@ -7970,11 +7976,31 @@
"IMAPUser: %s\r\n"
#endif
"\r\n",
- actionid, vmu->context, vmu->mailbox, vmu->fullname, vmu->email,
- vmu->pager, vmu->serveremail, vmu->mailcmd, vmu->language,
- vmu->zonetag, vmu->callback, vmu->dialout, vmu->uniqueid,
- vmu->exit, vmu->saydurationm, vmu->attachfmt, vmu->volgain,
- vmu->maxmsg, vmu->maxsecs,
+ actionid,
+ vmu->context,
+ vmu->mailbox,
+ vmu->fullname,
+ vmu->email,
+ vmu->pager,
+ vmu->serveremail,
+ vmu->mailcmd,
+ vmu->language,
+ vmu->zonetag,
+ vmu->callback,
+ vmu->dialout,
+ vmu->uniqueid,
+ vmu->exit,
+ vmu->saydurationm,
+ ast_test_flag(vmu, VM_ENVELOPE) ? "Yes" : "No",
+ ast_test_flag(vmu, VM_SAYCID) ? "Yes" : "No",
+ ast_test_flag(vmu, VM_ATTACH) ? "Yes" : "No",
+ vmu->attachfmt,
+ ast_test_flag(vmu, VM_DELETE) ? "Yes" : "No",
+ vmu->volgain,
+ ast_test_flag(vmu, VM_REVIEW) ? "Yes" : "No",
+ ast_test_flag(vmu, VM_OPERATOR) ? "Yes" : "No",
+ vmu->maxmsg,
+ vmu->maxsecs,
#ifdef IMAP_STORAGE
new, old, vmu->imapuser
#else
Modified: team/file/bridging/build_tools/make_version
URL: http://svn.digium.com/view/asterisk/team/file/bridging/build_tools/make_version?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/build_tools/make_version (original)
+++ team/file/bridging/build_tools/make_version Tue Dec 11 09:49:54 2007
@@ -7,71 +7,60 @@
BRANCH=0
TEAM=0
TAG=0
-
+
REV=`svnversion -c ${1} | cut -d: -f2`
BASE=`LANG=C svn pg svnmerge-integrated ${1} | cut -d: -f1`
-
- if [ "${PARTS}" = "trunk" ]
- then
+
+ if [ "${PARTS}" = "trunk" ] ; then
echo SVN-trunk-r${REV}
exit 0
fi
-
- for PART in $PARTS
- do
- if [ ${TAG} != 0 ]
- then
+
+ for PART in $PARTS ; do
+ if [ ${TAG} != 0 ] ; then
RESULT="${PART}"
break
fi
-
- if [ ${BRANCH} != 0 ]
- then
- if [ -z ${RESULT} ]
- then
+
+ if [ ${BRANCH} != 0 ] ; then
+ if [ -z ${RESULT} ] ; then
RESULT="${PART}"
else
RESULT="${RESULT}-${PART}"
fi
break
fi
-
- if [ ${TEAM} != 0 ]
- then
- if [ -z ${RESULT} ]
- then
+
+ if [ ${TEAM} != 0 ] ; then
+ if [ -z ${RESULT} ] ; then
RESULT="${PART}"
else
RESULT="${RESULT}-${PART}"
fi
continue
fi
-
- if [ "${PART}" = "branches" ]
- then
+
+ if [ "${PART}" = "branches" ] ; then
BRANCH=1
RESULT="branch"
continue
fi
-
- if [ "${PART}" = "tags" ]
- then
+
+ if [ "${PART}" = "tags" ] ; then
TAG=1
continue
fi
-
- if [ "${PART}" = "team" ]
- then
+
+ if [ "${PART}" = "team" ] ; then
TEAM=1
continue
fi
done
-
- if [ ${TAG} != 0 ]
- then
+
+ if [ ${TAG} != 0 ] ; then
echo ${RESULT}
- else
+ else
echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}}
fi
fi
Modified: team/file/bridging/build_tools/make_version_h
URL: http://svn.digium.com/view/asterisk/team/file/bridging/build_tools/make_version_h?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/build_tools/make_version_h (original)
+++ team/file/bridging/build_tools/make_version_h Tue Dec 11 09:49:54 2007
@@ -1,25 +1,17 @@
#!/bin/sh
if [ ! -f ../.flavor ]; then
- cat << END
+ EXTRA=""
+else
+ aadkver=`cat ../.version`
+ aadkflavor=`cat ../.flavor`
+ EXTRA=" (${aadkflavor} ${aadkver})"
+fi
+cat << END
/*
* version.h
* Automatically generated
*/
-#define ASTERISK_VERSION "${ASTERISKVERSION}"
+#define ASTERISK_VERSION "${ASTERISKVERSION}${EXTRA}"
#define ASTERISK_VERSION_NUM ${ASTERISKVERSIONNUM}
END
-else
- aadkver=`cat ../.version`
- aadkflavor=`cat ../.flavor`
- cat << END
-/*
- * version.h
- * Automatically generated
- */
-#define ASTERISK_VERSION "${ASTERISKVERSION} (${aadkflavor} ${aadkver})"
-#define ASTERISK_VERSION_NUM ${ASTERISKVERSIONNUM}
-
-END
-fi
-
Modified: team/file/bridging/cdr/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/cdr/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/cdr/Makefile (original)
+++ team/file/bridging/cdr/Makefile Tue Dec 11 09:49:54 2007
@@ -11,15 +11,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_CDR),$(patsubst %.c,%,$(wildcard cdr_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_CDR),$(patsubst %.cc,%,$(wildcard cdr_*.cc)))
-
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring cdr,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
-endif
+MODULE_PREFIX=cdr_
all: _all
Modified: team/file/bridging/channels/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/channels/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/channels/Makefile (original)
+++ team/file/bridging/channels/Makefile Tue Dec 11 09:49:54 2007
@@ -11,8 +11,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.c,%,$(wildcard chan_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.cc,%,$(wildcard chan_*.cc)))
+MODULE_PREFIX=chan_
ifeq ($(OSARCH),OpenBSD)
PTLIB=-lpt_OpenBSD_x86_r
@@ -36,13 +35,13 @@
H323LIB=-lh323_NetBSD_x86_r
endif
+MODULE_EXCLUDE:=
ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
- C_MODS:=$(filter-out chan_oss,$(C_MODS))
- C_MODS:=$(filter-out chan_unistim,$(C_MODS))
+ MODULE_EXCLUDE+= chan_oss chan_unistim
endif
ifeq ($(wildcard h323/libchanh323.a),)
- CC_MODS:=$(filter-out chan_h323,$(CC_MODS))
+ MODULE_EXCLUDE += chan_h323
endif
ifndef OPENH323DIR
@@ -51,13 +50,6 @@
ifndef PWLIBDIR
PWLIBDIR=$(HOME)/pwlib
-endif
-
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring channels,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
endif
all: _all
Modified: team/file/bridging/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/file/bridging/channels/chan_sip.c?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/channels/chan_sip.c (original)
+++ team/file/bridging/channels/chan_sip.c Tue Dec 11 09:49:54 2007
@@ -1132,6 +1132,7 @@
*/
int initid; /*!< Auto-congest ID if appropriate (scheduler) */
+ int waitid; /*!< Wait ID for scheduler after 491 or other delays */
int autokillid; /*!< Auto-kill ID (scheduler) */
enum transfermodes allowtransfer; /*!< REFER: restriction scheme */
struct sip_refer *refer; /*!< REFER: SIP transfer data structure */
@@ -1691,7 +1692,7 @@
Functions for enabling debug per IP or fully, or enabling history logging for
a SIP dialog
*/
-static void sip_dump_history(struct sip_pvt *dialog); /* Dump history to LOG_DEBUG at end of dialog, before destroying data */
+static void sip_dump_history(struct sip_pvt *dialog); /* Dump history to debuglog at end of dialog, before destroying data */
static inline int sip_debug_test_addr(const struct sockaddr_in *addr);
static inline int sip_debug_test_pvt(struct sip_pvt *p);
static void append_history_full(struct sip_pvt *p, const char *fmt, ...);
@@ -2464,8 +2465,7 @@
/* If there are packets still waiting for delivery, delay the destruction */
if (p->packets) {
- if (option_debug > 2)
- ast_log(LOG_DEBUG, "Re-scheduled destruction of SIP call %s\n", p->callid ? p->callid : "<unknown>");
+ ast_debug(3, "Re-scheduled destruction of SIP call %s\n", p->callid ? p->callid : "<unknown>");
append_history(p, "ReliableXmit", "timeout");
return 10000;
}
@@ -3690,6 +3690,8 @@
ast_extension_state_del(p->stateid, NULL);
if (p->initid > -1)
ast_sched_del(sched, p->initid);
+ if (p->waitid > -1)
+ ast_sched_del(sched, p->waitid);
if (p->autokillid > -1)
ast_sched_del(sched, p->autokillid);
@@ -4070,8 +4072,7 @@
return 0;
}
if (ast_test_flag(ast, AST_FLAG_ANSWERED_ELSEWHERE)) {
- if (option_debug)
- ast_log(LOG_DEBUG, "This call was answered elsewhere");
+ ast_debug(1, "This call was answered elsewhere");
append_history(p, "Cancel", "Call answered elsewhere");
p->answered_elsewhere = TRUE;
}
@@ -4214,6 +4215,9 @@
but we can't send one while we have "INVITE" outstanding. */
ast_set_flag(&p->flags[0], SIP_PENDINGBYE);
ast_clear_flag(&p->flags[0], SIP_NEEDREINVITE);
+ if (p->waitid)
+ ast_sched_del(sched, p->waitid);
+ p->waitid = -1;
sip_cancel_destroy(p);
}
}
@@ -5055,6 +5059,7 @@
p->method = intended_method;
p->initid = -1;
+ p->waitid = -1;
p->autokillid = -1;
p->subscribed = NONE;
p->stateid = -1;
@@ -8474,8 +8479,7 @@
}
r->regstate = auth ? REG_STATE_AUTHSENT : REG_STATE_REGSENT;
r->regattempts++; /* Another attempt */
- if (option_debug > 3)
- ast_verbose("REGISTER attempt %d to %s@%s\n", r->regattempts, r->username, r->hostname);
+ ast_debug(4, "REGISTER attempt %d to %s@%s\n", r->regattempts, r->username, r->hostname);
return send_request(p, &req, XMIT_CRITICAL, p->ocseq);
}
@@ -13338,7 +13342,7 @@
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
} else if (ast_test_flag(&p->flags[0], SIP_NEEDREINVITE)) {
/* if we can't REINVITE, hold it for later */
- if (p->pendinginvite || p->invitestate == INV_CALLING || p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA) {
+ if (p->pendinginvite || p->invitestate == INV_CALLING || p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA || p->waitid > 0) {
ast_debug(2, "NOT Sending pending reinvite (yet) on '%s'\n", p->callid);
} else {
ast_debug(2, "Sending pending reinvite on '%s'\n", p->callid);
@@ -13348,6 +13352,20 @@
}
}
}
+
+/*! \brief Reset the NEEDREINVITE flag after waiting when we get 491 on a Re-invite
+ to avoid race conditions between asterisk servers.
+ Called from the scheduler.
+*/
+static int sip_reinvite_retry(const void *data)
+{
+ struct sip_pvt *p = (struct sip_pvt *) data;
+
+ ast_set_flag(&p->flags[0], SIP_NEEDREINVITE);
+ p->waitid = -1;
+ return 0;
+}
+
/*! \brief Handle SIP response to INVITE dialogue */
static void handle_response_invite(struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int seqno)
@@ -13639,13 +13657,20 @@
}
break;
case 491: /* Pending */
- /* we really should have to wait a while, then retransmit */
- /* We should support the retry-after at some point */
- /* At this point, we treat this as a congestion */
xmitres = transmit_request(p, SIP_ACK, seqno, XMIT_UNRELIABLE, FALSE);
- if (p->owner && !req->ignore)
- ast_queue_control(p->owner, AST_CONTROL_CONGESTION);
- p->needdestroy = 1;
+ if (p->owner && !req->ignore) {
+ if (p->owner->_state != AST_STATE_UP) {
+ ast_queue_control(p->owner, AST_CONTROL_CONGESTION);
+ p->needdestroy = 1;
+ } else {
+ /* This is a re-invite that failed. */
+ /* Reset the flag after a while
+ */
+ int wait = 3 + ast_random() % 5;
+ p->waitid = ast_sched_add(sched, wait, sip_reinvite_retry, p);
+ ast_debug(2, "Reinvite race. Waiting %d secs before retry\n", wait);
+ }
+ }
break;
case 501: /* Not implemented */
Modified: team/file/bridging/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/file/bridging/channels/chan_zap.c?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/channels/chan_zap.c (original)
+++ team/file/bridging/channels/chan_zap.c Tue Dec 11 09:49:54 2007
@@ -11683,6 +11683,151 @@
return CLI_SUCCESS;
}
+static char *zap_set_hwgain(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+ int channel;
+ int gain;
+ int tx;
+ struct zt_hwgain hwgain;
+ ast_mutex_t *lock;
+ struct zt_pvt *tmp = NULL;
+
+
+ switch (cmd) {
+ case CLI_INIT:
+ e->command = "zap set hwgain";
+ e->usage =
+ "Usage: zap set hwgain <rx|tx> <chan#> <gain>\n"
+ " Sets the hardware gain on a a given channel, overriding the\n"
+ " value provided at module loadtime, whether the channel is in\n"
+ " use or not. Changes take effect immediately.\n"
+ " <rx|tx> which direction do you want to change (relative to our module)\n"
+ " <chan num> is the channel number relative to the device\n"
+ " <gain> is the gain in dB (e.g. -3.5 for -3.5dB)\n";
+ return NULL;
+ case CLI_GENERATE:
+ return NULL;
+ }
+
+ lock = &iflock;
+
+ if (a->argc != 6)
+ return CLI_SHOWUSAGE;
+
+ if (!strcasecmp("rx", a->argv[3]))
+ tx = 0; /* rx */
+ else if (!strcasecmp("tx", a->argv[3]))
+ tx = 1; /* tx */
+ else
+ return CLI_SHOWUSAGE;
+
+ channel = atoi(a->argv[4]);
+ gain = atof(a->argv[5])*10.0;
+
+ ast_mutex_lock(lock);
+ for (tmp = iflist; tmp; tmp = tmp->next) {
+
+ if (tmp->channel != channel)
+ continue;
+
+ if (tmp->subs[SUB_REAL].zfd == -1)
+ break;
+
+ hwgain.newgain = gain;
+ hwgain.tx = tx;
+ if (ioctl(tmp->subs[SUB_REAL].zfd, ZT_SET_HWGAIN, &hwgain) < 0) {
+ ast_cli(a->fd, "Unable to set the hardware gain for channel %d\n", channel);
+ ast_mutex_unlock(lock);
+ return CLI_FAILURE;
+ }
+ ast_cli(a->fd, "hardware %s gain set to %d (%.1f dB) on channel %d\n",
+ tx ? "tx" : "rx", gain, (float)gain/10.0, channel);
+ break;
+ }
+ ast_mutex_unlock(lock);
+
+ if (tmp)
+ return CLI_SUCCESS;
+
+ ast_cli(a->fd, "Unable to find given channel %d\n", channel);
+ return CLI_FAILURE;
+
+}
+
+static char *zap_set_swgain(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
+{
+ int channel;
+ float gain;
+ int tx;
+ int res;
+ ast_mutex_t *lock;
+ struct zt_pvt *tmp = NULL;
+
+ switch (cmd) {
+ case CLI_INIT:
+ e->command = "zap set swgain";
+ e->usage =
+ "Usage: zap set swgain <rx|tx> <chan#> <gain>\n"
+ " Sets the software gain on a a given channel, overriding the\n"
+ " value provided at module loadtime, whether the channel is in\n"
+ " use or not. Changes take effect immediately.\n"
+ " <rx|tx> which direction do you want to change (relative to our module)\n"
+ " <chan num> is the channel number relative to the device\n"
+ " <gain> is the gain in dB (e.g. -3.5 for -3.5dB)\n";
+ return NULL;
+ case CLI_GENERATE:
+ return NULL;
+ }
+
+ lock = &iflock;
+
+ if (a->argc != 6)
+ return CLI_SHOWUSAGE;
+
+ if (!strcasecmp("rx", a->argv[3]))
+ tx = 0; /* rx */
+ else if (!strcasecmp("tx", a->argv[3]))
+ tx = 1; /* tx */
+ else
+ return CLI_SHOWUSAGE;
+
+ channel = atoi(a->argv[4]);
+ gain = atof(a->argv[5]);
+
+ ast_mutex_lock(lock);
+ for (tmp = iflist; tmp; tmp = tmp->next) {
+
+ if (tmp->channel != channel)
+ continue;
+
+ if (tmp->subs[SUB_REAL].zfd == -1)
+ break;
+
+ if (tx)
+ res = set_actual_txgain(tmp->subs[SUB_REAL].zfd, channel, gain, tmp->law);
+ else
+ res = set_actual_rxgain(tmp->subs[SUB_REAL].zfd, channel, gain, tmp->law);
+
+ if (res) {
+ ast_cli(a->fd, "Unable to set the software gain for channel %d\n", channel);
+ ast_mutex_unlock(lock);
+ return CLI_FAILURE;
+ }
+
+ ast_cli(a->fd, "software %s gain set to %.1f on channel %d\n",
+ tx ? "tx" : "rx", gain, channel);
+ break;
+ }
+ ast_mutex_unlock(lock);
+
+ if (tmp)
+ return CLI_SUCCESS;
+
+ ast_cli(a->fd, "Unable to find given channel %d\n", channel);
+ return CLI_FAILURE;
+
+}
+
static struct ast_cli_entry zap_cli[] = {
AST_CLI_DEFINE(handle_zap_show_cadences, "List cadences"),
AST_CLI_DEFINE(zap_show_channels, "Show active zapata channels"),
@@ -11691,6 +11836,8 @@
AST_CLI_DEFINE(zap_restart_cmd, "Fully restart zaptel channels"),
AST_CLI_DEFINE(zap_show_status, "Show all Zaptel cards status"),
AST_CLI_DEFINE(zap_show_version, "Show the Zaptel version in use"),
+ AST_CLI_DEFINE(zap_set_hwgain, "Set hardware gains at the port driver"),
+ AST_CLI_DEFINE(zap_set_swgain, "Set software gain table values"),
};
#define TRANSFER 0
Modified: team/file/bridging/codecs/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/codecs/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/codecs/Makefile (original)
+++ team/file/bridging/codecs/Makefile Tue Dec 11 09:49:54 2007
@@ -13,15 +13,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_CODECS),$(patsubst %.c,%,$(wildcard codec_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_CODECS),$(patsubst %.cc,%,$(wildcard codec_*.cc)))
-
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring codecs,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
-endif
+MODULE_PREFIX=codec_
LIBILBC:=ilbc/libilbc.a
LIBLPC10:=lpc10/liblpc10.a
Modified: team/file/bridging/doc/CODING-GUIDELINES
URL: http://svn.digium.com/view/asterisk/team/file/bridging/doc/CODING-GUIDELINES?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/doc/CODING-GUIDELINES (original)
+++ team/file/bridging/doc/CODING-GUIDELINES Tue Dec 11 09:49:54 2007
@@ -628,7 +628,48 @@
== PART TWO: BUILD ARCHITECTURE ==
------------------------------------
+The asterisk build architecture relies on 'autoconf' to detect the
+system configuration, and on a locally developed tool (menuselect) to
+select build options and modules list, and on gmake to do the build.
+
+autoconf will store its findings in two files:
+
+ + include/asterisk/autoconfig.h
+ contains C macros, normally #define HAVE_FOO or HAVE_FOO_H ,
+ for all functions and headers that have been detected at build time.
+ These are meant to be used by C or C++ source files.
+
+ + makeopts
+ contains variables that can be used by Makefiles.
+ In addition to the usual CC, LD, ... variables pointing to
+ the various build tools, and prefix, includedir ... which are
+ useful for generic compiler flags, there are variables
+ for each package detected.
+ These are normally of the form FOO_INCLUDE=... FOO_LIB=...
+ FOO_DIR=... indicating, for each package, the useful libraries
+ and header files.
+
+menuselect produces two files, both to be read by the Makefile:
+ + menuselect.makeopts
+ contains for each subdirectory a list of modules that must be
+ excluded from the build, plus some additional informatiom.
+ + menuselect.makedeps
+ contains, for each module, a list of packages it depends on.
+ For each of these packages, we can collect the relevant INCLUDE
+ and LIB files from makeopts
+
+The top level Makefile is in charge of setting up the build environment,
+creating header files with build options, and recursively invoking the
+subdir Makefiles to produce modules and the main executable.
+
+The sources are split in multiple directories, more or less divided by
+module type (apps/ channels/ funcs/ res/ ...) or by function, for the main
+binary (main/ pbx/).
+
+
TO BE COMPLETED
+
+
-----------------------------------------------
Modified: team/file/bridging/doc/manager_1_1.txt
URL: http://svn.digium.com/view/asterisk/team/file/bridging/doc/manager_1_1.txt?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/doc/manager_1_1.txt (original)
+++ team/file/bridging/doc/manager_1_1.txt Tue Dec 11 09:49:54 2007
@@ -107,6 +107,10 @@
New header
- (new) -> Items: Reports number of channels reported
+- Action VoicemailUsersList
+ Added new headers for SayEnvelope, SayCID, AttachMessage, CanReview
+ and CallOperator voicemail configuration settings.
+
* NEW ACTIONS
-------------
- Action: ModuleLoad
Modified: team/file/bridging/formats/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/formats/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/formats/Makefile (original)
+++ team/file/bridging/formats/Makefile Tue Dec 11 09:49:54 2007
@@ -11,15 +11,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_FORMATS),$(patsubst %.c,%,$(wildcard format_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_FORMATS),$(patsubst %.cc,%,$(wildcard format_*.cc)))
-
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring formats,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
-endif
+MODULE_PREFIX=format_
all: _all
Modified: team/file/bridging/funcs/Makefile
URL: http://svn.digium.com/view/asterisk/team/file/bridging/funcs/Makefile?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/funcs/Makefile (original)
+++ team/file/bridging/funcs/Makefile Tue Dec 11 09:49:54 2007
@@ -11,15 +11,7 @@
-include $(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedeps
-C_MODS:=$(filter-out $(MENUSELECT_FUNCS),$(patsubst %.c,%,$(wildcard func_*.c)))
-CC_MODS:=$(filter-out $(MENUSELECT_FUNCS),$(patsubst %.cc,%,$(wildcard func_*.cc)))
-
-LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
-
-ifneq ($(findstring funcs,$(MENUSELECT_EMBED)),)
- EMBEDDED_MODS:=$(LOADABLE_MODS)
- LOADABLE_MODS:=
-endif
+MODULE_PREFIX=func_
all: _all
Modified: team/file/bridging/include/asterisk/_private.h
URL: http://svn.digium.com/view/asterisk/team/file/bridging/include/asterisk/_private.h?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/include/asterisk/_private.h (original)
+++ team/file/bridging/include/asterisk/_private.h Tue Dec 11 09:49:54 2007
@@ -3,6 +3,14 @@
* normally not used by modules.
* What goes here are typically *_init() routines.
*/
+
+/*! \file
+ *
+ * \brief
+ * Prototypes for public functions only of internal interest,
+ *
+ */
+
#ifndef _ASTERISK__PRIVATE_H
#define _ASTERISK__PRIVATE_H
Modified: team/file/bridging/include/asterisk/adsi.h
URL: http://svn.digium.com/view/asterisk/team/file/bridging/include/asterisk/adsi.h?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/include/asterisk/adsi.h (original)
+++ team/file/bridging/include/asterisk/adsi.h Tue Dec 11 09:49:54 2007
@@ -24,6 +24,8 @@
#define _ASTERISK_ADSI_H
#include "asterisk/callerid.h"
+/*! \name ADSI parameters */
+/*@{ */
/* ADSI Message types */
#define ADSI_MSG_DISPLAY 132
@@ -117,6 +119,8 @@
#define ADSI_DIR_FROM_LEFT (0)
#define ADSI_DIR_FROM_RIGHT (1)
+/*@} */
+
/*! Perform Asterisk ADSI initialization (for channel drivers that want
* to support ADSI when the handset is first lifted)
* \param chan Channel to initialize for ADSI (if supported)
Modified: team/file/bridging/include/asterisk/ael_structs.h
URL: http://svn.digium.com/view/asterisk/team/file/bridging/include/asterisk/ael_structs.h?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/include/asterisk/ael_structs.h (original)
+++ team/file/bridging/include/asterisk/ael_structs.h Tue Dec 11 09:49:54 2007
@@ -20,6 +20,7 @@
* \brief Structures for AEL - the Asterisk extension language
*
* \ref pbx_ael.c
+ * \todo document this file (ael.h)
*/
#ifndef _ASTERISK_AEL_STRUCTS_H
@@ -113,8 +114,8 @@
struct ael_priority *plist_last;
struct ael_extension *next_exten;
- struct ael_priority *loop_break; /* set by latest loop for breaks */
- struct ael_priority *loop_continue; /* set by lastest loop for continuing */
+ struct ael_priority *loop_break; /*!< set by latest loop for breaks */
+ struct ael_priority *loop_continue; /*!< set by lastest loop for continuing */
struct ael_priority *return_target;
int return_needed;
};
Modified: team/file/bridging/include/asterisk/aes.h
URL: http://svn.digium.com/view/asterisk/team/file/bridging/include/asterisk/aes.h?view=diff&rev=92303&r1=92302&r2=92303
==============================================================================
--- team/file/bridging/include/asterisk/aes.h (original)
+++ team/file/bridging/include/asterisk/aes.h Tue Dec 11 09:49:54 2007
@@ -17,7 +17,9 @@
*/
/*! \file
[... 1278 lines stripped ...]
More information about the asterisk-commits
mailing list