[asterisk-commits] oej: branch oej/adb-appleraision-1.8-mark-2 r414991 - in /team/oej/adb-appler...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Jun 2 08:41:39 CDT 2014
Author: oej
Date: Mon Jun 2 08:41:30 2014
New Revision: 414991
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=414991
Log:
Let's see what happens while File is in the orange workspace.
Modified:
team/oej/adb-appleraision-1.8-mark-2/ (props changed)
team/oej/adb-appleraision-1.8-mark-2/CHANGES
team/oej/adb-appleraision-1.8-mark-2/Makefile
team/oej/adb-appleraision-1.8-mark-2/README-SERIOUSLY.bestpractices.txt
team/oej/adb-appleraision-1.8-mark-2/UPGRADE.txt
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/memheap.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCalls.h
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCapability.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooSocket.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooTimer.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooh245.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooq931.c
team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/perutil.c
team/oej/adb-appleraision-1.8-mark-2/apps/app_meetme.c
team/oej/adb-appleraision-1.8-mark-2/apps/app_sms.c
team/oej/adb-appleraision-1.8-mark-2/autoconf/ast_ext_lib.m4
team/oej/adb-appleraision-1.8-mark-2/build_tools/cflags.xml
team/oej/adb-appleraision-1.8-mark-2/build_tools/prep_tarball
team/oej/adb-appleraision-1.8-mark-2/build_tools/sha1sum-sh (props changed)
team/oej/adb-appleraision-1.8-mark-2/channels/chan_alsa.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_dahdi.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_gtalk.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_iax2.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_jingle.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_local.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_mgcp.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_misdn.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_multicast_rtp.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_oss.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_phone.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_sip.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_skinny.c
team/oej/adb-appleraision-1.8-mark-2/channels/chan_unistim.c
team/oej/adb-appleraision-1.8-mark-2/channels/iax2-parser.c
team/oej/adb-appleraision-1.8-mark-2/channels/misdn/isdn_msg_parser.c
team/oej/adb-appleraision-1.8-mark-2/channels/sig_analog.c
team/oej/adb-appleraision-1.8-mark-2/channels/sig_pri.c
team/oej/adb-appleraision-1.8-mark-2/channels/sig_pri.h
team/oej/adb-appleraision-1.8-mark-2/channels/sig_ss7.c
team/oej/adb-appleraision-1.8-mark-2/channels/sig_ss7.h (props changed)
team/oej/adb-appleraision-1.8-mark-2/configure
team/oej/adb-appleraision-1.8-mark-2/configure.ac
team/oej/adb-appleraision-1.8-mark-2/default.exports
team/oej/adb-appleraision-1.8-mark-2/doc/Makefile (props changed)
team/oej/adb-appleraision-1.8-mark-2/doc/asterisk.8
team/oej/adb-appleraision-1.8-mark-2/funcs/func_audiohookinherit.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_blacklist.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_callcompletion.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_callerid.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_channel.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_config.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_curl.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_db.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_dialgroup.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_dialplan.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_enum.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_env.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_frame_trace.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_global.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_groupcount.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_iconv.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_lock.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_math.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_odbc.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_pitchshift.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_realtime.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_shell.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_speex.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_srv.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_strings.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_sysinfo.c
team/oej/adb-appleraision-1.8-mark-2/funcs/func_volume.c
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/astmm.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/astobj.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/astobj2.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/autoconfig.h.in
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/bridging_features.h (props changed)
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/bridging_technology.h (props changed)
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/channel.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/devicestate.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/frame.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/lock.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/logger.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/options.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/pbx.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/res_odbc.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/rtp_engine.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/select.h (props changed)
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/test.h
team/oej/adb-appleraision-1.8-mark-2/include/asterisk/utils.h
team/oej/adb-appleraision-1.8-mark-2/sounds/Makefile
team/oej/adb-appleraision-1.8-mark-2/sounds/sounds.xml
Propchange: team/oej/adb-appleraision-1.8-mark-2/
------------------------------------------------------------------------------
automerge = Is-there-life-off-net?
Propchange: team/oej/adb-appleraision-1.8-mark-2/
('svnmerge-integrated' removed)
Modified: team/oej/adb-appleraision-1.8-mark-2/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/CHANGES?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/CHANGES (original)
+++ team/oej/adb-appleraision-1.8-mark-2/CHANGES Mon Jun 2 08:41:30 2014
@@ -7,6 +7,38 @@
=== and the other UPGRADE files for older releases.
===
======================================================================
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.26.1 ----------------------------
+------------------------------------------------------------------------------
+
+chan_sip
+-----------
+ * SIP peers can now specify 'trust_id_outbound' which affects RPID/PAI
+ fields for prohibited callingpres information. Values are legacy, no, and
+ yes. By default, legacy is used.
+ trust_id_outbound=legacy - behavior remains the same as 1.8.26.1. When
+ dealing with prohibited callingpres and sendrpid=pai/rpid, RPID/PAI
+ headers are appended to outbound SIP messages just as they are with
+ allowed callingpres values, but data about the remote party's identity is
+ anonymized.
+ When sendrpid=rpid, only the remote party's domain is anonymized.
+ trust_id_outbound=no - when dealing with prohibited callingpres, RPID/PAI
+ headers are not sent.
+ trust_id_outbound=yes - RPID/PAI headers are applied with the full remote
+ party information in tact even for prohibited callingpres information.
+ In the case of PAI, a Privacy: id header will be appended for prohibited
+ calling information to communicate that the private information should
+ not be relayed to untrusted parties.
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.19.1 ----------------------------
+------------------------------------------------------------------------------
+
+App_queue
+---------
+ * App_queue will now play periodic announcements for the caller that
+ holds the first position in the queue while waiting for answer.
------------------------------------------------------------------------------
--- Functionality changes since Asterisk 1.8.12.0 ----------------------------
Modified: team/oej/adb-appleraision-1.8-mark-2/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/Makefile?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/Makefile (original)
+++ team/oej/adb-appleraision-1.8-mark-2/Makefile Mon Jun 2 08:41:30 2014
@@ -170,7 +170,7 @@
_ASTCFLAGS+=-Wall
endif
-_ASTCFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(DEBUG)
+_ASTCFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations $(AST_NESTED_FUNCTIONS) $(DEBUG)
ifeq ($(AST_DEVMODE),yes)
_ASTCFLAGS+=-Werror
@@ -289,7 +289,7 @@
@echo " + $(mK) install +"
@echo " +-------------------------------------------+"
-_all: cleantest makeopts $(SUBDIRS) doc/core-en_US.xml
+_all: .lastclean makeopts $(SUBDIRS) doc/core-en_US.xml
makeopts: configure
@echo "****"
@@ -327,12 +327,16 @@
$(SUBDIRS): main/version.c include/asterisk/version.h include/asterisk/build.h include/asterisk/buildopts.h defaults.h makeopts.embed_rules
ifeq ($(findstring $(OSARCH), mingw32 cygwin ),)
+ ifeq ($(shell grep ^MENUSELECT_EMBED=$$ menuselect.makeopts 2>/dev/null),)
# Non-windows:
# ensure that all module subdirectories are processed before 'main' during
# a parallel build, since if there are modules selected to be embedded the
# directories containing them must be completed before the main Asterisk
- # binary can be built
+ # binary can be built.
+ # If MENUSELECT_EMBED is empty, we don't need this and allow 'main' to be
+ # be built without building all dependencies first.
main: $(filter-out main,$(MOD_SUBDIRS))
+ endif
else
# Windows: we need to build main (i.e. the asterisk dll) first,
# followed by res, followed by the other directories, because
@@ -350,30 +354,30 @@
$(OTHER_SUBDIRS):
+ at _ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(_ASTCFLAGS)" ASTCFLAGS="$(ASTCFLAGS)" _ASTLDFLAGS="$(_ASTLDFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
-defaults.h: makeopts
+defaults.h: makeopts .lastclean
@build_tools/make_defaults_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-main/version.c: FORCE
+main/version.c: FORCE .lastclean
@build_tools/make_version_c > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/version.h: FORCE
+include/asterisk/version.h: FORCE .lastclean
@build_tools/make_version_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/buildopts.h: menuselect.makeopts
+include/asterisk/buildopts.h: menuselect.makeopts .lastclean
@build_tools/make_buildopts_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/build.h:
- @build_tools/make_build_h > $@.tmp
- @cmp -s $@.tmp $@ || mv $@.tmp $@
- @rm -f $@.tmp
+# build.h must depend on .lastclean, or parallel make may wipe it out after it's
+# been created.
+include/asterisk/build.h: .lastclean
+ @build_tools/make_build_h > $@
$(SUBDIRS_CLEAN):
+@$(SUBMAKE) -C $(@:-clean=) clean
@@ -420,7 +424,7 @@
done
$(MAKE) -C sounds install
-doc/core-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
+doc/core-en_US.xml: .lastclean $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
@printf "Building Documentation For: "
@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
@@ -761,8 +765,8 @@
# .cleancount is the global clean count, and .lastclean is the
# last clean count we had
-cleantest:
- @cmp -s .cleancount .lastclean || $(MAKE) clean
+.lastclean: .cleancount
+ @$(MAKE) clean
$(SUBDIRS_UNINSTALL):
+@$(SUBMAKE) -C $(@:-uninstall=) uninstall
@@ -875,7 +879,6 @@
.PHONY: distclean
.PHONY: all
.PHONY: prereqs
-.PHONY: cleantest
.PHONY: uninstall
.PHONY: _uninstall
.PHONY: uninstall-all
Modified: team/oej/adb-appleraision-1.8-mark-2/README-SERIOUSLY.bestpractices.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/README-SERIOUSLY.bestpractices.txt?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/README-SERIOUSLY.bestpractices.txt (original)
+++ team/oej/adb-appleraision-1.8-mark-2/README-SERIOUSLY.bestpractices.txt Mon Jun 2 08:41:30 2014
@@ -25,6 +25,9 @@
* Manager Class Authorizations:
Recognizing potential issues with certain classes of authorization
+
+* Avoid Privilege Escalations:
+ Disable the ability to execute functions that may escalate privileges
----------------
Additional Links
@@ -344,3 +347,24 @@
not running Asterisk as root, can prevent serious problems from arising when
allowing external connections to originate calls into Asterisk.
+===========================
+Avoid Privilege Escalations
+===========================
+
+External control protocols, such as Manager, often have the ability to get and
+set channel variables; which allows the execution of dialplan functions.
+
+Dialplan functions within Asterisk are incredibly powerful, which is wonderful
+for building applications using Asterisk. But during the read or write
+execution, certain diaplan functions do much more. For example, reading the
+SHELL() function can execute arbitrary commands on the system Asterisk is
+running on. Writing to the FILE() function can change any file that Asterisk has
+write access to.
+
+When these functions are executed from an external protocol, that execution
+could result in a privilege escalation. Asterisk can inhibit the execution of
+these functions, if live_dangerously in the [options] section of asterisk.conf
+is set to no.
+
+For backwards compatibility, live_dangerously defaults to yes, and must be
+explicitly set to no to enable this privilege escalation protection.
Modified: team/oej/adb-appleraision-1.8-mark-2/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/UPGRADE.txt?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/UPGRADE.txt (original)
+++ team/oej/adb-appleraision-1.8-mark-2/UPGRADE.txt Mon Jun 2 08:41:30 2014
@@ -18,6 +18,7 @@
===
===========================================================
+<<<<<<< .working
from 1.8.21.0 to 1.8.22.0:
* Added the 'n' option to MeetMe to prevent application of the DENOISE function
to a channel joining a conference. Some channel drivers that vary the number
@@ -58,6 +59,114 @@
the makefile in favor of using native optimization suppport when available.
BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
+=======
+from 1.8.27.0 to 1.8.28.0:
+* The asterisk command line -I option and the asterisk.conf internal_timing
+ option are removed and always enabled if any timing module is loaded.
+* SIP (chan_sip) accounts dialed through a Local channel will now properly
+ hide the "1 missed call" if one of the other dialed accounts picks up the
+ call.
+
+* Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
+ objects will emit additional debug information to the refs log file located
+ in the standard Asterisk log file directory. This log file is useful in
+ tracking down object leaks and other reference counting issues. Prior to
+ this version, this option was only available by modifying the source code
+ directly. This change also includes a new script, refcounter.py, in the
+ contrib folder that will process the refs log file.
+
+from 1.8.26.0 to 1.8.27.0:
+* res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
+ Because of this the default settings would not load, so the minrate (minimum
+ transmission rate) option was changed to default to 4800 since that is the
+ minimum rate for v.27 which is included in the default modem options.
+
+* When communicating with a peer on an Asterisk 1.4 or earlier system, the
+ chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
+ prevents an incompatible connected line frame from an Astersik 1.8 or later
+ system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
+ this particular incompatibility has always existed between 1.4 and 1.8 and
+ later versions; this upgrade note is simply informing users of its existance.
+
+* A compatibility setting, allow_empty_string_in_nontext, has been added to
+ res_odbc.conf. When enabled (default behavior), empty column values are
+ stored as empty strings during realtime updates. Disabling this option
+ causes empty column values to be stored as NULLs for non-text columns.
+
+ Disable it for PostgreSQL backends in order to avoid errors caused by
+ updating integer columns with an empty string instead of NULL
+ (sipppeers,sipregs)
+
+from 1.8.23.0 to 1.8.24.0:
+* res_agi will now properly indicate if there was an error in streaming an
+ audio file. The result code will be -1 and the result returned from the
+ the function will be RESULT_FAILURE instead of the prior behavior of always
+ returning RESULT_SUCCESS even if there was an error.
+
+* The option "register_retry_403" has been added to chan_sip to work around
+ servers that are known to erroneously send 403 in response to valid
+ REGISTER requests and allows Asterisk to continue attepmting to connect.
+ Due to a failed merge, this option is present, but non-functional until 1.8.26.0.
+
+* Certain dialplan functions have been marked as 'dangerous', and may only be
+ executed from the dialplan. Execution from extenal sources (AMI's GetVar and
+ SetVar actions; etc.) may be inhibited by setting live_dangerously in the
+ [options] section of asterisk.conf to no. SHELL(), channel locking, and direct
+ file read/write functions are marked as dangerous. DB_DELETE() and
+ REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
+ accept writes (which ignore the provided value).
+
+from 1.8.22.0 to 1.8.23.0:
+* The default settings for chan_sip are now overriden properly by the general
+ settings in sip.conf. Please look over your settings upon upgrading.
+
+* It is now possible to play the Queue prompts to the first user waiting in a call queue.
+ Note that this may impact the ability for agents to talk with users, as a prompt may
+ still be playing when an agent connects to the user. This ability is disabled by
+ default but can be enabled on an individual queue using the 'announce-to-first-user'
+ option.
+
+from 1.8.21.0 to 1.8.22.0:
+* Added the 'n' option to MeetMe to prevent application of the DENOISE function
+ to a channel joining a conference. Some channel drivers that vary the number
+ of audio samples in a voice frame will experience significant quality problems
+ if a denoiser is attached to the channel; this option gives them the ability
+ to remove the denoiser without having to unload func_speex.
+
+* The Registry AMI event for SIP registrations will now always include the
+ Username field. A previous bug fix missed an instance where it was not
+ included; that has been corrected in this release.
+
+from 1.8.20.0 to 1.8.20.1:
+* Asterisk would previously not output certain error messages when a remote
+ console attempted to connect to Asterisk and no instance of Asterisk was
+ running. This error message is displayed on stderr; as a result, some
+ initialization scripts that used remote consoles to test for the presence
+ of a running Asterisk instance started to display erroneous error messages.
+ The init.d scripts and the safe_asterisk have been updated in the contrib
+ folder to account for this.
+
+from 1.8.19 to 1.8.20:
+* Asterisk has always had code to ignore dash '-' characters that are not
+ part of a character set in the dialplan extensions. The code now
+ consistently ignores these characters when matching dialplan extensions.
+
+from 1.8.18 to 1.8.19:
+* Queue strategy rrmemory now has a predictable order similar to strategy
+ rrordered. Members will be called in the order that they are added to the
+ queue.
+
+From 1.8.13 to 1.8.14:
+* permitdirectmedia/denydirectmedia now controls whether peers can be
+ bridged via directmedia by comparing the ACL to the bridging peer's
+ address rather than its own address.
+
+From 1.8.12 to 1.8.13:
+* The complex processor detection and optimization has been removed from
+ the makefile in favor of using native optimization suppport when available.
+ BUILD_NATIVE can be disabled via menuselect under "Compiler Flags".
+
+>>>>>>> .merge-right.r414880
From 1.8.11 to 1.8.12:
* In AEL dialplans, the "h" extension will now be inherited from prior
calling contexts, just as it had in 1.4. If you have created an AEL
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/memheap.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/memheap.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/memheap.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/memheap.c Mon Jun 2 08:41:30 2014
@@ -726,7 +726,7 @@
OSMemLink** ppMemLink;
OSMemBlk* pMemBlk;
OSMemElemDescr* pElem;
- OSMemLink* pMemLink, *pPrevMemLink = 0;
+ OSMemLink* pMemLink;
void *newMem_p;
unsigned nbytes, nunits;
@@ -758,7 +758,6 @@
*(int*)(((char*)pMemLink) + sizeof (OSMemLink)) = nbytes_;
return pMemLink->pMemBlk;
}
- pPrevMemLink = pMemLink;
}
/* Round number of bytes to nearest 8-byte boundary */
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCalls.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCalls.h?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCalls.h (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCalls.h Mon Jun 2 08:41:30 2014
@@ -224,7 +224,7 @@
char lastDTMF;
ASN1UINT nextDTMFstamp;
int rtdrInterval, rtdrCount; /* roundTripDelay interval and unreplied count */
- ASN1UINT rtdrSend, rtdrRecv; /* last sended/replied RTD request */
+ ASN1UINT8 rtdrSend, rtdrRecv; /* last sended/replied RTD request */
void *usrData; /*!<User can set this to user specific data*/
struct OOH323CallData* next;
struct OOH323CallData* prev;
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCapability.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCapability.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCapability.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooCapability.c Mon Jun 2 08:41:30 2014
@@ -1104,14 +1104,12 @@
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir)
{
H245AudioCapability *pAudio=NULL;
- OOCapParams *params;
if(!epCap || !epCap->params)
{
OOTRACEERR1("Error:Invalid capability parameters to "
"ooCapabilityCreateSimpleCapability.\n");
return NULL;
}
- params =(OOCapParams*)epCap->params;
pAudio = (H245AudioCapability*)memAlloc(pctxt,
sizeof(H245AudioCapability));
if(!pAudio)
@@ -1228,7 +1226,6 @@
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir)
{
H245DataApplicationCapability *pT38=NULL;
- OOCapParams *params;
H245DataMode_application *pT38app;
if(!epCap || !epCap->params)
{
@@ -1236,7 +1233,6 @@
"ooCapabilityCreateSimpleCapability.\n");
return NULL;
}
- params =(OOCapParams*)epCap->params;
pT38 = (H245DataApplicationCapability*)memAlloc(pctxt,
sizeof(H245DataApplicationCapability));
if(!pT38)
@@ -2940,6 +2936,22 @@
break;
+ case T_H245Capability_receiveAndTransmitUserInputCapability:
+ if((cap->u.receiveAndTransmitUserInputCapability->t ==
+ T_H245UserInputCapability_basicString) &&
+ (call->dtmfmode & OO_CAP_DTMF_H245_alphanumeric))
+ {
+ call->jointDtmfMode |= OO_CAP_DTMF_H245_alphanumeric;
+ return OO_OK;
+ }
+ else if((cap->u.receiveAndTransmitUserInputCapability->t ==
+ T_H245UserInputCapability_dtmf) &&
+ (call->dtmfmode & OO_CAP_DTMF_H245_signal))
+ {
+ call->jointDtmfMode |= OO_CAP_DTMF_H245_signal;
+ return OO_OK;
+ }
+
case T_H245Capability_receiveUserInputCapability:
if((cap->u.receiveUserInputCapability->t ==
T_H245UserInputCapability_basicString) &&
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooSocket.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooSocket.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooSocket.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooSocket.c Mon Jun 2 08:41:30 2014
@@ -234,7 +234,7 @@
int ooSocketCreateUDP (OOSOCKET* psocket)
{
int on;
- struct linger linger;
+ /*struct linger linger;*/
OOSOCKET sock = socket (AF_INET,
SOCK_DGRAM,
@@ -252,9 +252,9 @@
OOTRACEERR1("Error:Failed to set socket option SO_REUSEADDR\n");
return ASN_E_INVSOCKET;
}
- linger.l_onoff = 1;
+ /*linger.l_onoff = 1;
linger.l_linger = 0;
- /*if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
+ if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
(const char* ) &linger, sizeof (linger)) == -1)
return ASN_E_INVSOCKET;
*/
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooTimer.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooTimer.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooTimer.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooTimer.c Mon Jun 2 08:41:30 2014
@@ -101,7 +101,6 @@
void ooTimerFireExpired (OOCTXT* pctxt, DList *pList)
{
OOTimer* pTimer;
- int stat;
while (pList->count > 0) {
pTimer = (OOTimer*) pList->head->data;
@@ -113,7 +112,7 @@
*/
if (pTimer->reRegister) ooTimerReset (pctxt, pList, pTimer);
- stat = (*pTimer->timeoutCB)(pTimer->cbData);
+ (*pTimer->timeoutCB)(pTimer->cbData);
if (!pTimer->reRegister) {
ooTimerDelete (pctxt, pList, pTimer);
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooh245.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooh245.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooh245.c Mon Jun 2 08:41:30 2014
@@ -713,8 +713,8 @@
memset(entry, 0, sizeof(H245CapabilityTableEntry));
entry->m.capabilityPresent = 1;
- entry->capability.t = T_H245Capability_receiveUserInputCapability;
- entry->capability.u.receiveUserInputCapability = userInputCap;
+ entry->capability.t = T_H245Capability_receiveAndTransmitUserInputCapability;
+ entry->capability.u.receiveAndTransmitUserInputCapability = userInputCap;
entry->capabilityTableEntryNumber = i+1;
dListAppend(pctxt , &(termCap->capabilityTable), entry);
@@ -749,8 +749,8 @@
memset(entry, 0, sizeof(H245CapabilityTableEntry));
entry->m.capabilityPresent = 1;
- entry->capability.t = T_H245Capability_receiveUserInputCapability;
- entry->capability.u.receiveUserInputCapability = userInputCap;
+ entry->capability.t = T_H245Capability_receiveAndTransmitUserInputCapability;
+ entry->capability.u.receiveAndTransmitUserInputCapability = userInputCap;
entry->capabilityTableEntryNumber = i+1;
dListAppend(pctxt , &(termCap->capabilityTable), entry);
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooq931.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooq931.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/ooq931.c Mon Jun 2 08:41:30 2014
@@ -2183,7 +2183,7 @@
ooAliases *pNewAlias=NULL, *alias=NULL;
struct timespec ts;
struct timeval tv;
- int i=0, irand=0, ret = OO_OK;
+ int i=0, irand=0;
/* Note: We keep same callToken, for new call which is going
to replace an existing call, thus treating it as a single call.*/
@@ -2235,7 +2235,7 @@
{
/* No need to check registration status here as it is already checked for
MakeCall command */
- ret = ooGkClientSendAdmissionRequest(gH323ep.gkClient, fwdedCall, FALSE);
+ ooGkClientSendAdmissionRequest(gH323ep.gkClient, fwdedCall, FALSE);
fwdedCall->callState = OO_CALL_WAITING_ADMISSION;
ast_mutex_lock(&fwdedCall->Lock);
tv = ast_tvnow();
@@ -2249,7 +2249,7 @@
}
if (fwdedCall->callState < OO_CALL_CLEAR) {
ast_mutex_lock(&fwdedCall->Lock);
- ret = ooH323CallAdmitted (fwdedCall);
+ ooH323CallAdmitted (fwdedCall);
ast_mutex_unlock(&fwdedCall->Lock);
}
@@ -2276,7 +2276,6 @@
int ooH323MakeCall(char *dest, char *callToken, ooCallOptions *opts)
{
- OOCTXT *pctxt;
OOH323CallData *call;
int ret=OO_OK, i=0, irand=0;
char tmp[30]="\0";
@@ -2303,7 +2302,6 @@
return OO_FAILED;
}
- pctxt = call->pctxt;
if(opts)
{
if(opts->fastStart)
Modified: team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/perutil.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/perutil.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/perutil.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/addons/ooh323c/src/perutil.c Mon Jun 2 08:41:30 2014
@@ -168,7 +168,7 @@
int checkSizeConstraint(OOCTXT* pctxt, int size)
{
Asn1SizeCnst* pSize;
- ASN1UINT lower, upper;
+ ASN1UINT upper;
ASN1BOOL extbit;
int stat;
@@ -186,7 +186,6 @@
pSize = getSizeConstraint (pctxt, extbit);
- lower = (pSize) ? pSize->lower : 0;
upper = (pSize) ? pSize->upper : ASN1UINT_MAX;
if (upper < (ASN1UINT)size) {
Modified: team/oej/adb-appleraision-1.8-mark-2/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/adb-appleraision-1.8-mark-2/apps/app_meetme.c?view=diff&rev=414991&r1=414990&r2=414991
==============================================================================
--- team/oej/adb-appleraision-1.8-mark-2/apps/app_meetme.c (original)
+++ team/oej/adb-appleraision-1.8-mark-2/apps/app_meetme.c Mon Jun 2 08:41:30 2014
@@ -832,17 +832,26 @@
/*! This option uses the values in the sla_hold_access enum and sets the
* access control type for hold on this station. */
unsigned int hold_access:1;
- /*! Use count for inside sla_station_exec */
- unsigned int ref_count;
+ /*! Mark used during reload processing */
+ unsigned int mark:1;
};
+/*!
+ * \brief A reference to a station
+ *
+ * This struct looks near useless at first glance. However, its existence
+ * in the list of stations in sla_trunk means that this station references
+ * that trunk. We use the mark to keep track of whether it needs to be
+ * removed from the sla_trunk's list of stations during a reload.
+ */
struct sla_station_ref {
AST_LIST_ENTRY(sla_station_ref) entry;
struct sla_station *station;
+ /*! Mark used during reload processing */
+ unsigned int mark:1;
};
struct sla_trunk {
- AST_RWLIST_ENTRY(sla_trunk) entry;
AST_DECLARE_STRING_FIELDS(
AST_STRING_FIELD(name);
AST_STRING_FIELD(device);
@@ -866,10 +875,16 @@
/*! Whether this trunk is currently on hold, meaning that once a station
* connects to it, the trunk channel needs to have UNHOLD indicated to it. */
unsigned int on_hold:1;
- /*! Use count for inside sla_trunk_exec */
- unsigned int ref_count;
+ /*! Mark used during reload processing */
+ unsigned int mark:1;
};
+/*!
+ * \brief A station's reference to a trunk
+ *
+ * An sla_station keeps a list of trunk_refs. This holds metadata about the
+ * stations usage of the trunk.
+ */
struct sla_trunk_ref {
AST_LIST_ENTRY(sla_trunk_ref) entry;
struct sla_trunk *trunk;
@@ -883,10 +898,12 @@
* station. This takes higher priority than a ring delay set at
* the station level. */
unsigned int ring_delay;
+ /*! Mark used during reload processing */
+ unsigned int mark:1;
};
-static AST_RWLIST_HEAD_STATIC(sla_stations, sla_station);
-static AST_RWLIST_HEAD_STATIC(sla_trunks, sla_trunk);
+static struct ao2_container *sla_stations;
+static struct ao2_container *sla_trunks;
static const char sla_registrar[] = "SLA";
@@ -898,10 +915,6 @@
SLA_EVENT_DIAL_STATE,
/*! The state of a ringing trunk has changed */
SLA_EVENT_RINGING_TRUNK,
- /*! A reload of configuration has been requested */
- SLA_EVENT_RELOAD,
- /*! Poke the SLA thread so it can check if it can perform a reload */
- SLA_EVENT_CHECK_RELOAD,
};
struct sla_event {
@@ -957,8 +970,6 @@
/*! Attempt to handle CallerID, even though it is known not to work
* properly in some situations. */
unsigned int attempt_callerid:1;
- /*! A reload has been requested */
- unsigned int reload:1;
} sla = {
.thread = AST_PTHREADT_NULL,
};
@@ -1719,7 +1730,8 @@
static char *sla_show_trunks(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
- const struct sla_trunk *trunk;
+ struct ao2_iterator i;
+ struct sla_trunk *trunk;
switch (cmd) {
case CLI_INIT:
@@ -1737,12 +1749,17 @@
"=== Configured SLA Trunks ===================================\n"
"=============================================================\n"
"===\n");
- AST_RWLIST_RDLOCK(&sla_trunks);
- AST_RWLIST_TRAVERSE(&sla_trunks, trunk, entry) {
+ i = ao2_iterator_init(sla_trunks, 0);
+ for (; (trunk = ao2_iterator_next(&i)); ao2_ref(trunk, -1)) {
struct sla_station_ref *station_ref;
char ring_timeout[16] = "(none)";
- if (trunk->ring_timeout)
+
+ ao2_lock(trunk);
+
+ if (trunk->ring_timeout) {
snprintf(ring_timeout, sizeof(ring_timeout), "%u Seconds", trunk->ring_timeout);
+ }
+
ast_cli(a->fd, "=== ---------------------------------------------------------\n"
"=== Trunk Name: %s\n"
"=== ==> Device: %s\n"
@@ -1756,13 +1773,16 @@
ring_timeout,
trunk->barge_disabled ? "No" : "Yes",
sla_hold_str(trunk->hold_access));
- AST_RWLIST_RDLOCK(&sla_stations);
- AST_LIST_TRAVERSE(&trunk->stations, station_ref, entry)
+
+ AST_LIST_TRAVERSE(&trunk->stations, station_ref, entry) {
ast_cli(a->fd, "=== ==> Station name: %s\n", station_ref->station->name);
- AST_RWLIST_UNLOCK(&sla_stations);
+ }
+
ast_cli(a->fd, "=== ---------------------------------------------------------\n===\n");
- }
- AST_RWLIST_UNLOCK(&sla_trunks);
+
+ ao2_unlock(trunk);
+ }
+ ao2_iterator_destroy(&i);
ast_cli(a->fd, "=============================================================\n\n");
return CLI_SUCCESS;
@@ -1784,7 +1804,8 @@
static char *sla_show_stations(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
- const struct sla_station *station;
+ struct ao2_iterator i;
+ struct sla_station *station;
switch (cmd) {
case CLI_INIT:
@@ -1802,11 +1823,14 @@
"=== Configured SLA Stations =================================\n"
"=============================================================\n"
"===\n");
- AST_RWLIST_RDLOCK(&sla_stations);
- AST_RWLIST_TRAVERSE(&sla_stations, station, entry) {
+ i = ao2_iterator_init(sla_stations, 0);
+ for (; (station = ao2_iterator_next(&i)); ao2_ref(station, -1)) {
struct sla_trunk_ref *trunk_ref;
char ring_timeout[16] = "(none)";
char ring_delay[16] = "(none)";
+
+ ao2_lock(station);
+
if (station->ring_timeout) {
snprintf(ring_timeout, sizeof(ring_timeout),
"%u", station->ring_timeout);
@@ -1827,7 +1851,6 @@
S_OR(station->autocontext, "(none)"),
ring_timeout, ring_delay,
sla_hold_str(station->hold_access));
- AST_RWLIST_RDLOCK(&sla_trunks);
AST_LIST_TRAVERSE(&station->trunks, trunk_ref, entry) {
if (trunk_ref->ring_timeout) {
snprintf(ring_timeout, sizeof(ring_timeout),
@@ -1847,11 +1870,12 @@
trunkstate2str(trunk_ref->state),
ring_timeout, ring_delay);
}
- AST_RWLIST_UNLOCK(&sla_trunks);
ast_cli(a->fd, "=== ---------------------------------------------------------\n"
"===\n");
- }
- AST_RWLIST_UNLOCK(&sla_stations);
+
+ ao2_unlock(station);
+ }
+ ao2_iterator_destroy(&i);
ast_cli(a->fd, "============================================================\n"
"\n");
@@ -1991,11 +2015,16 @@
struct sla_event *event;
if (sla.thread == AST_PTHREADT_NULL) {
+ ao2_ref(station, -1);
+ ao2_ref(trunk_ref, -1);
return;
}
- if (!(event = ast_calloc(1, sizeof(*event))))
+ if (!(event = ast_calloc(1, sizeof(*event)))) {
+ ao2_ref(station, -1);
+ ao2_ref(trunk_ref, -1);
return;
+ }
event->type = type;
event->trunk_ref = trunk_ref;
@@ -2029,6 +2058,7 @@
struct sla_station *station;
struct sla_trunk_ref *trunk_ref = NULL;
char *trunk_name;
+ struct ao2_iterator i;
trunk_name = ast_strdupa(conf->confno);
strsep(&trunk_name, "_");
@@ -2037,16 +2067,23 @@
return;
}
- AST_RWLIST_RDLOCK(&sla_stations);
- AST_RWLIST_TRAVERSE(&sla_stations, station, entry) {
+ i = ao2_iterator_init(sla_stations, 0);
+ while ((station = ao2_iterator_next(&i))) {
+ ao2_lock(station);
[... 12297 lines stripped ...]
More information about the asterisk-commits
mailing list