[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