[asterisk-commits] may: branch may/ooh323_qsig r397687 - in /team/may/ooh323_qsig: ./ apps/ brid...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Aug 26 17:49:26 CDT 2013


Author: may
Date: Mon Aug 26 17:49:14 2013
New Revision: 397687

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397687
Log:
Multiple revisions 393542,393550,393561,393576,393586,393589,393599-393601,393612,393629,393631-393633,393675,393679,393687,393704,393716,393729,393740,393749,393757,393768,393777,393785,393793,393801,393804,393806-393807,393815-393816,393831,393833-393834

........
  r393542 | dlee | 2013-07-03 21:20:43 +0400 (Wed, 03 Jul 2013) | 11 lines
  
  Configuration for Stasis threadpool
  
  The appropriate settings for the Stasis threadpool is very system
  specific, depending upon both workload and system configuration.
  
  This patch adds a stasis.conf file which can be used to configure the
  key attributes of the threadpool for the Stasis message bus.
  
  (closes issue ASTERISK-21280)
  Review: https://reviewboard.asterisk.org/r/2651/
........
  r393550 | dlee | 2013-07-03 21:58:45 +0400 (Wed, 03 Jul 2013) | 14 lines
  
  ARI - channel recording support
  
  This patch is the first step in adding recording support to the
  Asterisk REST Interface.
  
  Recordings are stored in /var/spool/recording. Since recordings may be
  destructive (overwriting existing files), the API rejects attempts to
  escape the recording directory (avoiding issues if someone attempts to
  record to ../../lib/sounds/greeting, for example).
  
  (closes issue ASTERISK-21594)
  (closes issue ASTERISK-21581)
  Review: https://reviewboard.asterisk.org/r/2612/
........
  r393561 | dlee | 2013-07-03 22:24:45 +0400 (Wed, 03 Jul 2013) | 1 line
  
  Violating the margins to make menuconfig happy
........
  r393576 | dlee | 2013-07-03 23:46:50 +0400 (Wed, 03 Jul 2013) | 12 lines
  
  Fix load errors related to the new ari_model_validators.
  
  The Asterisk strategy of loading modules with RTLD_LAZY to extract metadata
  from the module works well enough, until you try to take the address of a
  function.
  
  If a module takes the address of a function, that function needs to be
  resolved at load time. That kinda defeats RTLD_LAZY.
  
  This patch adds some ari_validator_{id}_fn() wrapper functions for safely
  getting the function pointer from a different module.
........
  r393586 | mmichelson | 2013-07-04 00:41:00 +0400 (Thu, 04 Jul 2013) | 24 lines
  
  Publish a bridge enter before pulling on a push-and-swap operation.
  
  Prior to this patch, the order of procedures on a bridge push was
  
  * Add new bridge channel to bridge's array.
  * Pull the swap channel out of the bridge
  * Publish a bridge enter event.
  
  The problem is that when the swap channel was pulled from the bridge,
  a bridge leave event would be published. The bridge snapshot
  published during the bridge leave showed the new channel that had
  been added to the bridge, but there had been no bridge enter event
  for that channel.
  
  The fix provided here was to change the order a bit
  
  * Add new bridge channel to bridge's array.
  * Publish bridge enter event.
  * Pull the swap channel out of the bridge.
  
  This makes it so that the bridge snapshots during the stasis
  events are accurate.
........
  r393589 | mjordan | 2013-07-04 01:14:03 +0400 (Thu, 04 Jul 2013) | 4 lines
  
  Let Stasis load itself with default values
  
  While a Stasis configuration file is nice, it shouldn't be mandatory.
  We can carry on with default values.
........
  r393599 | mjordan | 2013-07-04 02:04:08 +0400 (Thu, 04 Jul 2013) | 9 lines
  
  Fix some bugs in CDRs; add some CLI commands to help debugging
  
  This patch fixes a few minor bugs and one major one: the CDR by bridge
  container was less than helpful. The mechanism previously used to try
  and find all of the CDRs in a particular bridge ended up missing CDRs,
  resulting in incorrect records.
  
  When looking up CDRs in a bridge, we now just bite the bullet and do
  a selection across all existing CDRs.
........
  r393600 | rmudgett | 2013-07-04 02:05:54 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Fix some indentation in stasis_config.c.
........
  r393601 | rmudgett | 2013-07-04 02:07:25 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Move when bridge channel enter is published so it does not interrupt the thought of some lines of code.
........
  r393612 | rmudgett | 2013-07-04 02:36:38 +0400 (Thu, 04 Jul 2013) | 17 lines
  
  OneTouchRecord: Make so Monitor/MixMonitor can be toggled/started/stopped.
  
  The OneTouchRecord feature has historically been a toggle.  This patch
  adds the ability to make the OneTouchRecord hook optionally start/stop
  recording only.  If OneTouchRecord is already doing what is requested then
  only the invoker hears the courtesy tone and/or start/stop recording
  message.
  
  The new feature is written so we could easily add explicit start/stop
  recording DTMF hooks for Monitor and MixMonitor.
  
  The majority of the changes in bridge_builtin_features.c is a refactoring
  of the OneTouchRecord code (Monitor and MixMonitor versions) so it is easy
  to direct the toggle/start/stop functionality.
  
  Review: https://reviewboard.asterisk.org/r/2655/
........
  r393629 | rmudgett | 2013-07-04 03:34:19 +0400 (Thu, 04 Jul 2013) | 15 lines
  
  chan_dahdi: Fix segfault reloading chan_dahdi when round robin is used.
  
  * Clear round_robin[] in dahdi_restart().
  
  (closes issue ASTERISK-21847)
  Reported by: Ivo Andonov
  Patches:
        jira_asterisk_21847_v1.8.patch (license #5621) patch uploaded by rmudgett
  ........
  
  Merged revisions 393627 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 393628 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r393631 | rmudgett | 2013-07-04 03:55:53 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Add BUGBUG note for ASTERISK-22009
........
  r393632 | rmudgett | 2013-07-04 03:57:37 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Revert accidental overcommit.
........
  r393633 | rmudgett | 2013-07-04 03:59:17 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Add BUGBUG note for ASTERISK-22009
........
  r393675 | dlee | 2013-07-04 17:06:15 +0400 (Thu, 04 Jul 2013) | 2 lines
  
  Fix utils directory breakage.
........
  r393679 | dlee | 2013-07-04 17:18:45 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Fix int width problem for 32-bit
........
  r393687 | dlee | 2013-07-04 17:37:57 +0400 (Thu, 04 Jul 2013) | 1 line
  
  Fix int width problem for 32-bit... again
........
  r393704 | jrose | 2013-07-04 22:46:56 +0400 (Thu, 04 Jul 2013) | 12 lines
  
  res_parking: Replace Parker snapshots with ParkerDialString
  
  This process also involved a large amount of rework regarding how to redial
  the Parker when a channel leaves a parking lot due to timeout. An attended
  transfer channel variable has been added to attended transfers to extensions
  that will eventually park (but haven't at the time of transfer) as well.
  This resolves one of the two BUGBUG comments remaining in res_parking.
  
  (issues ASTERISK-21877)
  Reported by: Matt Jordan
  Review: https://reviewboard.asterisk.org/r/2638/
........
  r393716 | mjordan | 2013-07-05 07:08:58 +0400 (Fri, 05 Jul 2013) | 13 lines
  
  Remove parkinglot from the channel snapshot
  
  Legacy channel drivers often include the ability to set a default parking lot
  on an endpoint basis; when channels are created for that endpoint, they inherit
  the parkinglot option. Parking used to use this option more frequently; while
  it is still supported, other options (such as using channel variables or
  creation of a custom parkinglot) are supported. More importantly, conveying the
  parkinglot information through a channel snapshot isn't terribly useful - it
  is rarely (if ever) changed on a channel and some consumers of channel
  snapshots, such as ARI, will never use the information.
  
  (closes issue ASTERISK-21968)
  Reported by: Matt Jordan
........
  r393729 | rmudgett | 2013-07-05 18:54:27 +0400 (Fri, 05 Jul 2013) | 1 line
  
  OneTouchRecord: Add function defined earlier: ast_bridge_features_do()
........
  r393740 | mjordan | 2013-07-05 21:33:33 +0400 (Fri, 05 Jul 2013) | 44 lines
  
  Refactor RTCP events over to Stasis; associate with channels
  
  This patch does the following:
  
  * It merges Jaco Kroon's patch from ASTERISK-20754, which provides channel
    information in the RTCP events. Because Stasis provides a cache, Jaco's
    patch was modified to pass the channel uniqueid to the RTP layer as
    opposed to a pointer to the channel. This has the following benefits:
    (1) It keeps the RTP engine 'clean' of references back to channels
    (2) It prevents circular dependencies and other potential ref counting issues
  * The RTP engine now allows any RTP implementation to raise RTCP messages.
    Potentially, other implementations (such as res_rtp_multicast) could also
    raise RTCP information. The engine provides structs to represent RTCP headers
    and RTCP SR/RR reports.
  * Some general refactoring in res_rtp_asterisk was done to try and tame the
    RTCP code. It isn't perfect - that's *way* beyond the scope of this work -
    but it does feel marginally better.
  * A few random bugs were fixed in the RTCP statistics. (Example: performing an
    assignment of a = a is probably not correct)
  * We now raise RTCP events for each SR/RR sent/received. Previously we wouldn't
    raise an event when we sent a RR report.
  
  Note that this work will be of use to others who want to monitor call quality
  or build modules that report call quality statistics. Since the events are now
  moving across the Stasis message bus, this is far easier to accomplish. It is
  also a first step (though by no means the last step) towards getting Olle's
  pinefrog work incorporated.
  
  Again: note that the patch by Jaco Kroon was modified slightly for this work;
  however, he did all of the hard work in finding the right places to set the
  channel in the RTP engine across the channel drivers. Much thanks goes to Jaco
  for his hard work here.
  
  Review: https://reviewboard.asterisk.org/r/2603/
  
  (closes issue ASTERISK-20574)
  Reported by: Jaco Kroon
  patches:
    asterisk-rtcp-channel.patch uploaded by jkroon (License 5671)
  
  (closes issue ASTERISK-21471)
  Reported by: Matt Jordan
........
  r393749 | dlee | 2013-07-05 23:15:27 +0400 (Fri, 05 Jul 2013) | 1 line
  
  Document MissingParams error message for /ari/events
........
  r393757 | dlee | 2013-07-05 23:56:50 +0400 (Fri, 05 Jul 2013) | 1 line
  
  Print error details when set nonblock fails
........
  r393768 | dlee | 2013-07-06 02:08:27 +0400 (Sat, 06 Jul 2013) | 1 line
  
  ARI: return a 503 if Asterisk isn't fully booted
........
  r393777 | mjordan | 2013-07-08 00:34:38 +0400 (Mon, 08 Jul 2013) | 21 lines
  
  Handle hangup logic in the Stasis message bus and consumers of Stasis messages
  
  This patch does the following:
  * It adds a new soft hangup flag AST_SOFTHANGUP_HANGUP_EXEC that is set when a
    channel is executing dialplan hangup logic, i.e., the 'h' extension or a
    hangup handler. Stasis messages now also convey the soft hangup flag so
    consumers of the messages can know when a channel is executing said
    hangup logic.
  * It adds a new channel flag, AST_FLAG_DEAD, which is set when a channel is
    well and truly dead. Not just a zombie, but dead, Jim. Manager, CEL, CDRs,
    and other consumers of Stasis have been updated to look for this flag to
    know when the channel should by lying six feet under.
  * The CDR engine has been updated to better handle a channel entering and
    leaving a bridge. Previously, a new CDR was automatically created when a
    channel left a bridge and put into the 'Pending' state; however, this
    way of handling CDRs made it difficult for the 'endbeforehexten' logic to
    work correctly - there was always a new CDR waiting in the hangup logic
    and, even if 'ended', wouldn't be the CDR people wanted to inspect in the
    hangup routine. This patch completely removes the Pending state and instead
    defers creation of the new CDR until it gets a new message that requires
    a new CDR.
........
  r393785 | mjordan | 2013-07-08 01:29:40 +0400 (Mon, 08 Jul 2013) | 11 lines
  
  In a channel destructor dispose of items that raise Stasis message properly
  
  This patch reorders certain actions that may raise Stasis messages in the
  channel destructor such that they occur before the Stasis cache is cleared.
  Once the Stasis cache is cleared, its rather a bad idea to be trying to
  publish information about a channel.
  
  (closes issue ASTERISK-22001)
  Reported by: Jonathan Rose
........
  r393793 | mmichelson | 2013-07-08 17:57:28 +0400 (Mon, 08 Jul 2013) | 8 lines
  
  Fix some broken logic in sending outbound caller ID.
  
  * trust_id_outbound was required even when the caller ID was not marked
  private. This is against intentions and documentation.
  * We now check both name and number privacy instead of checking name privacy
  twice.
........
  r393801 | mjordan | 2013-07-08 18:26:40 +0400 (Mon, 08 Jul 2013) | 21 lines
  
  Create Local channel messages on the Stasis message bus and produce AMI events
  
  This patch does the following:
  
  * It adds a virtual table of callbacks to core_unreal. These callbacks can be
    supplied by concrete implementations of "unreal" channel drivers, which lets
    the unreal channel driver call specific functionality when it performs some
    action. Currently, this is done to notify implementations when an
    optimization operation has begun, and when an optimization operation has
    succeeded.
  
  * It adds Stasis-Core messages for Local channel bridging and Local channel
    optimization. Local channel optimization is now two events: a Begin and an
    End. Some consumers of Stasis-Core may want to know when an operation is
    beginning so that they can 'prepare' their information; others will be more
    concerned about when the operation has completed, so that they can 'fix up'
    information. Stasis-Core allows for both, as does AMI.
  
  Review: https://reviewboard.asterisk.org/r/2552
........
  r393804 | qwell | 2013-07-08 18:42:57 +0400 (Mon, 08 Jul 2013) | 8 lines
  
  Move channel driver Registry manager events to core.
  
  This also shuffles the stasis system topic and related handling.
  
  (closes issue ASTERISK-21488)
  
  Review: https://reviewboard.asterisk.org/r/2631/
........
  r393806 | qwell | 2013-07-08 18:46:20 +0400 (Mon, 08 Jul 2013) | 8 lines
  
  ARI: Add support for getting/setting channel and global variables.
  
  This allows for reading and writing of functions on channels.
  
  (closes issue ASTERISK-21868)
  
  Review: https://reviewboard.asterisk.org/r/2641/
........
  r393807 | file | 2013-07-08 19:11:07 +0400 (Mon, 08 Jul 2013) | 2 lines
  
  Fix building.
........
  r393815 | jrose | 2013-07-08 19:59:47 +0400 (Mon, 08 Jul 2013) | 6 lines
  
  res_parking: Apply ringing role option on swap with a channel that rings
  
  (closes issue ASTERISK-21877)
  Reported by: Matt Jordan
  Review: https://reviewboard.asterisk.org/r/2656/
........
  r393816 | dlee | 2013-07-08 20:04:01 +0400 (Mon, 08 Jul 2013) | 1 line
  
  res_stasis_http doesn't depend on res_stasis any more
........
  r393831 | file | 2013-07-08 23:19:55 +0400 (Mon, 08 Jul 2013) | 6 lines
  
  Refactor operations to access the stasis cache instead of objects directly when retrieving information.
  
  (closes issue ASTERISK-21883)
  
  Review: https://reviewboard.asterisk.org/r/2645/
........
  r393833 | file | 2013-07-08 23:53:13 +0400 (Mon, 08 Jul 2013) | 5 lines
  
  Ensure that a valid bind host is specified for transports.
  
  (closes issue ASTERISK-22017)
  Reported by: Rusty Newton
........
  r393834 | dlee | 2013-07-09 00:07:58 +0400 (Tue, 09 Jul 2013) | 1 line
  
  Better structure for the WebSocket validation failure message
........

Merged revisions 393542,393550,393561,393576,393586,393589,393599-393601,393612,393629,393631-393633,393675,393679,393687,393704,393716,393729,393740,393749,393757,393768,393777,393785,393793,393801,393804,393806-393807,393815-393816,393831,393833-393834 from http://svn.asterisk.org/svn/asterisk/trunk

Added:
    team/may/ooh323_qsig/configs/stasis.conf.sample
      - copied unchanged from r393834, trunk/configs/stasis.conf.sample
    team/may/ooh323_qsig/include/asterisk/stasis_app_recording.h
      - copied unchanged from r393834, trunk/include/asterisk/stasis_app_recording.h
    team/may/ooh323_qsig/include/asterisk/stasis_system.h
      - copied unchanged from r393834, trunk/include/asterisk/stasis_system.h
    team/may/ooh323_qsig/main/crypt.c
      - copied unchanged from r393834, trunk/main/crypt.c
    team/may/ooh323_qsig/main/manager_system.c
      - copied unchanged from r393834, trunk/main/manager_system.c
    team/may/ooh323_qsig/main/stasis_config.c
      - copied unchanged from r393834, trunk/main/stasis_config.c
    team/may/ooh323_qsig/main/stasis_system.c
      - copied unchanged from r393834, trunk/main/stasis_system.c
    team/may/ooh323_qsig/res/res_stasis_recording.c
      - copied unchanged from r393834, trunk/res/res_stasis_recording.c
    team/may/ooh323_qsig/res/res_stasis_recording.exports.in
      - copied unchanged from r393834, trunk/res/res_stasis_recording.exports.in
Removed:
    team/may/ooh323_qsig/configs/stasis_core.conf.sample
Modified:
    team/may/ooh323_qsig/   (props changed)
    team/may/ooh323_qsig/CHANGES
    team/may/ooh323_qsig/Makefile
    team/may/ooh323_qsig/UPGRADE.txt
    team/may/ooh323_qsig/apps/app_minivm.c
    team/may/ooh323_qsig/apps/app_voicemail.c
    team/may/ooh323_qsig/bridges/bridge_builtin_features.c
    team/may/ooh323_qsig/build_tools/cflags-devmode.xml
    team/may/ooh323_qsig/channels/chan_dahdi.c
    team/may/ooh323_qsig/channels/chan_gtalk.c
    team/may/ooh323_qsig/channels/chan_gulp.c
    team/may/ooh323_qsig/channels/chan_h323.c
    team/may/ooh323_qsig/channels/chan_iax2.c
    team/may/ooh323_qsig/channels/chan_jingle.c
    team/may/ooh323_qsig/channels/chan_mgcp.c
    team/may/ooh323_qsig/channels/chan_motif.c
    team/may/ooh323_qsig/channels/chan_multicast_rtp.c
    team/may/ooh323_qsig/channels/chan_sip.c
    team/may/ooh323_qsig/channels/chan_skinny.c
    team/may/ooh323_qsig/channels/chan_unistim.c
    team/may/ooh323_qsig/include/asterisk.h
    team/may/ooh323_qsig/include/asterisk/app.h
    team/may/ooh323_qsig/include/asterisk/bridging.h
    team/may/ooh323_qsig/include/asterisk/bridging_features.h
    team/may/ooh323_qsig/include/asterisk/cdr.h
    team/may/ooh323_qsig/include/asterisk/channel.h
    team/may/ooh323_qsig/include/asterisk/core_local.h
    team/may/ooh323_qsig/include/asterisk/core_unreal.h
    team/may/ooh323_qsig/include/asterisk/file.h
    team/may/ooh323_qsig/include/asterisk/json.h
    team/may/ooh323_qsig/include/asterisk/manager.h
    team/may/ooh323_qsig/include/asterisk/parking.h
    team/may/ooh323_qsig/include/asterisk/paths.h
    team/may/ooh323_qsig/include/asterisk/rtp_engine.h
    team/may/ooh323_qsig/include/asterisk/stasis.h
    team/may/ooh323_qsig/include/asterisk/stasis_app.h
    team/may/ooh323_qsig/include/asterisk/stasis_channels.h
    team/may/ooh323_qsig/include/asterisk/utils.h
    team/may/ooh323_qsig/main/Makefile
    team/may/ooh323_qsig/main/app.c
    team/may/ooh323_qsig/main/asterisk.c
    team/may/ooh323_qsig/main/bridging.c
    team/may/ooh323_qsig/main/cdr.c
    team/may/ooh323_qsig/main/cel.c
    team/may/ooh323_qsig/main/channel.c
    team/may/ooh323_qsig/main/channel_internal_api.c
    team/may/ooh323_qsig/main/cli.c
    team/may/ooh323_qsig/main/config_options.c
    team/may/ooh323_qsig/main/core_local.c
    team/may/ooh323_qsig/main/core_unreal.c
    team/may/ooh323_qsig/main/features.c
    team/may/ooh323_qsig/main/file.c
    team/may/ooh323_qsig/main/json.c
    team/may/ooh323_qsig/main/manager.c
    team/may/ooh323_qsig/main/manager_bridging.c
    team/may/ooh323_qsig/main/manager_channels.c
    team/may/ooh323_qsig/main/parking.c
    team/may/ooh323_qsig/main/pbx.c
    team/may/ooh323_qsig/main/rtp_engine.c
    team/may/ooh323_qsig/main/sounds_index.c
    team/may/ooh323_qsig/main/stasis.c
    team/may/ooh323_qsig/main/stasis_channels.c
    team/may/ooh323_qsig/main/utils.c
    team/may/ooh323_qsig/res/parking/parking_applications.c
    team/may/ooh323_qsig/res/parking/parking_bridge.c
    team/may/ooh323_qsig/res/parking/parking_bridge_features.c
    team/may/ooh323_qsig/res/parking/parking_controller.c
    team/may/ooh323_qsig/res/parking/parking_manager.c
    team/may/ooh323_qsig/res/parking/parking_ui.c
    team/may/ooh323_qsig/res/parking/res_parking.h
    team/may/ooh323_qsig/res/res_agi.c
    team/may/ooh323_qsig/res/res_ari_model.c
    team/may/ooh323_qsig/res/res_rtp_asterisk.c
    team/may/ooh323_qsig/res/res_sip/config_transport.c
    team/may/ooh323_qsig/res/res_sip_caller_id.c
    team/may/ooh323_qsig/res/res_stasis_http.c
    team/may/ooh323_qsig/res/res_stasis_http_asterisk.c
    team/may/ooh323_qsig/res/res_stasis_http_bridges.c
    team/may/ooh323_qsig/res/res_stasis_http_channels.c
    team/may/ooh323_qsig/res/res_stasis_http_endpoints.c
    team/may/ooh323_qsig/res/res_stasis_http_events.c
    team/may/ooh323_qsig/res/res_stasis_http_recordings.c
    team/may/ooh323_qsig/res/res_stasis_http_sounds.c
    team/may/ooh323_qsig/res/res_stasis_playback.c
    team/may/ooh323_qsig/res/res_stun_monitor.c
    team/may/ooh323_qsig/res/stasis/control.c
    team/may/ooh323_qsig/res/stasis_http/ari_model_validators.c
    team/may/ooh323_qsig/res/stasis_http/ari_model_validators.h
    team/may/ooh323_qsig/res/stasis_http/ari_websockets.c
    team/may/ooh323_qsig/res/stasis_http/resource_asterisk.c
    team/may/ooh323_qsig/res/stasis_http/resource_asterisk.h
    team/may/ooh323_qsig/res/stasis_http/resource_channels.c
    team/may/ooh323_qsig/res/stasis_http/resource_channels.h
    team/may/ooh323_qsig/res/stasis_http/resource_events.c
    team/may/ooh323_qsig/res/stasis_http/resource_recordings.c
    team/may/ooh323_qsig/res/stasis_http/resource_recordings.h
    team/may/ooh323_qsig/rest-api-templates/ari_model_validators.c.mustache
    team/may/ooh323_qsig/rest-api-templates/ari_model_validators.h.mustache
    team/may/ooh323_qsig/rest-api-templates/asterisk_processor.py
    team/may/ooh323_qsig/rest-api-templates/res_stasis_http_resource.c.mustache
    team/may/ooh323_qsig/rest-api-templates/swagger_model.py
    team/may/ooh323_qsig/rest-api/api-docs/asterisk.json
    team/may/ooh323_qsig/rest-api/api-docs/channels.json
    team/may/ooh323_qsig/rest-api/api-docs/events.json
    team/may/ooh323_qsig/rest-api/api-docs/recordings.json
    team/may/ooh323_qsig/tests/test_ari_model.c
    team/may/ooh323_qsig/tests/test_utils.c

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Aug 26 17:49:14 2013
@@ -1,1 +1,1 @@
-/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530
+/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530,393542-393834

Modified: team/may/ooh323_qsig/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/CHANGES?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/CHANGES (original)
+++ team/may/ooh323_qsig/CHANGES Mon Aug 26 17:49:14 2013
@@ -136,6 +136,10 @@
    feature on the bridge peer in a multi-party bridge will execute it on all
    peers of the activating channel.
 
+ * A channel variable ATTENDEDTRANSFER is now set which indicates which channel
+   was responsible for an attended transfer in a similar fashion to
+   BLINDTRANSFER.
+
 AMI (Asterisk Manager Interface)
 ------------------
  * The SIPshowpeer action will now include a 'SubscribeContext' field for a peer
@@ -176,12 +180,24 @@
 
  * The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
    'UnParkedCall' have changed significantly in the new res_parking module.
-   First, channel snapshot data is included for both the parker and the parkee
-   in lieu of the "From" and "Channel" fields. They follow standard channel
-   snapshot format but each field is suffixed with 'Parker' or 'Parkee'
-   depending on which side it applies to. The 'Exten' field is replaced with
-   'ParkingSpace' since the registration of extensions as for parking spaces
-   is no longer mandatory.
+
+   The 'Channel' and 'From' headers are gone. For the channel that was parked
+   or is coming out of parking, a 'Parkee' channel snapshot is issued and it
+   has a number of fields associated with it. The old 'Channel' header relayed
+   the same data as the new 'ParkeeChannel' header.
+
+   The 'From' field was ambiguous and changed meaning depending on the event.
+   for most of these, it was the name of the channel that parked the call
+   (the 'Parker'). There is no longer a header that provides this channel name,
+   however the 'ParkerDialString' will contain a dialstring to redial the
+   device that parked the call.
+
+   On UnParkedCall events, the 'From' header would instead represent the
+   channel responsible for retrieving the parkee. It receives a channel
+   snapshot labeled 'Retriever'. The 'from' field is is replaced with
+   'RetrieverChannel'.
+
+   Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
 
  * The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
    fashion has changed the field names 'StartExten' and 'StopExten' to
@@ -254,6 +270,17 @@
 
  * AMI events now contain a SystemName field, if available.
 
+ * Local channel optimization is now conveyed in two events:
+   LocalOptimizationBegin and LocalOptimizationEnd. The Begin event is sent
+   when the Local channel driver begins attempting to optimize itself out of
+   the media path; the End event is sent after the channel halves have
+   successfully optimized themselves out of the media path.
+
+ * Local channel information in events is now prefixed with "LocalOne" and
+   "LocalTwo". This replaces the suffix of "1" and "2" for the two halves of
+   the Local channel. This affects the LocalBridge, LocalOptimizationBegin,
+   and LocalOptimizationEnd events.
+
 AGI (Asterisk Gateway Interface)
 ------------------
  * The manager event AGIExec has been split into AGIExecStart and AGIExecEnd.
@@ -270,8 +297,11 @@
  * CDRs will now be created between all participants in a bridge. For each
    pair of channels in a bridge, a CDR is created to represent the path of
    communication between those two endpoints. This lets an end user choose who
-   to bill for what during multi-party bridges or bridge operations during
-   transfer scenarios.
+   to bill for what during bridge operations with multiple parties.
+
+ * The duration, billsec, start, answer, and end times now reflect the times
+   associated with the current CDR for the channel, as opposed to a cumulative
+   measurement of all CDRs for that channel.
 
  * When a CDR is dispatched, user defined CDR variables from both parties are
    included in the resulting CDR. If both parties have the same variable, only

Modified: team/may/ooh323_qsig/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/Makefile?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/Makefile (original)
+++ team/may/ooh323_qsig/Makefile Mon Aug 26 17:49:14 2013
@@ -536,7 +536,8 @@
 INSTALLDIRS="$(ASTLIBDIR)" "$(ASTMODDIR)" "$(ASTSBINDIR)" "$(ASTETCDIR)" "$(ASTVARRUNDIR)" \
 	"$(ASTSPOOLDIR)" "$(ASTSPOOLDIR)/dictate" "$(ASTSPOOLDIR)/meetme" \
 	"$(ASTSPOOLDIR)/monitor" "$(ASTSPOOLDIR)/system" "$(ASTSPOOLDIR)/tmp" \
-	"$(ASTSPOOLDIR)/voicemail" "$(ASTHEADERDIR)" "$(ASTHEADERDIR)/doxygen" \
+	"$(ASTSPOOLDIR)/voicemail" "$(ASTSPOOLDIR)/recording" \
+	"$(ASTHEADERDIR)" "$(ASTHEADERDIR)/doxygen" \
 	"$(ASTLOGDIR)" "$(ASTLOGDIR)/cdr-csv" "$(ASTLOGDIR)/cdr-custom" \
 	"$(ASTLOGDIR)/cel-custom" "$(ASTDATADIR)" "$(ASTDATADIR)/documentation" \
 	"$(ASTDATADIR)/documentation/thirdparty" "$(ASTDATADIR)/firmware" \

Modified: team/may/ooh323_qsig/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/UPGRADE.txt?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/UPGRADE.txt (original)
+++ team/may/ooh323_qsig/UPGRADE.txt Mon Aug 26 17:49:14 2013
@@ -75,6 +75,22 @@
    - Channels no longer swap Uniqueid's as a result of the masquerade.
    - Instead of a shell game of renames, there's now a single rename, appending
      <ZOMBIE> to the name of the original channel.
+ - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
+   'UnParkedCall' have changed significantly in the new res_parking module.
+   - The 'Channel' and 'From' headers are gone. For the channel that was parked
+     or is coming out of parking, a 'Parkee' channel snapshot is issued and it
+     has a number of fields associated with it. The old 'Channel' header relayed
+     the same data as the new 'ParkeeChannel' header.
+   - The 'From' field was ambiguous and changed meaning depending on the event.
+     for most of these, it was the name of the channel that parked the call
+     (the 'Parker'). There is no longer a header that provides this channel name,
+     however the 'ParkerDialString' will contain a dialstring to redial the
+     device that parked the call.
+   - On UnParkedCall events, the 'From' header would instead represent the
+     channel responsible for retrieving the parkee. It receives a channel
+     snapshot labeled 'Retriever'. The 'from' field is is replaced with
+     'RetrieverChannel'.
+   - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
 
 CEL:
  - The Uniqueid field for a channel is now a stable identifier, and will not

Modified: team/may/ooh323_qsig/apps/app_minivm.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_minivm.c?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/apps/app_minivm.c (original)
+++ team/may/ooh323_qsig/apps/app_minivm.c Mon Aug 26 17:49:14 2013
@@ -1674,7 +1674,7 @@
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &record_gain, sizeof(record_gain), 0);
 			if (ast_test_flag(vmu, MVM_OPERATOR))
 				canceldtmf = "0";
-			cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, sound_duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf);
+			cmd = ast_play_and_record_full(chan, playfile, recordfile, maxtime, fmt, duration, sound_duration, global_silencethreshold, global_maxsilence, unlockdir, acceptdtmf, canceldtmf, 0, AST_RECORD_IF_EXISTS_OVERWRITE);
 			if (record_gain)
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &zero_gain, sizeof(zero_gain), 0);
 			if (cmd == -1) /* User has hung up, no options to give */

Modified: team/may/ooh323_qsig/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_voicemail.c?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/apps/app_voicemail.c (original)
+++ team/may/ooh323_qsig/apps/app_voicemail.c Mon Aug 26 17:49:14 2013
@@ -14684,7 +14684,7 @@
 				ast_channel_setoption(chan, AST_OPTION_RXGAIN, &record_gain, sizeof(record_gain), 0);
 			if (ast_test_flag(vmu, VM_OPERATOR))
 				canceldtmf = "0";
-			cmd = ast_play_and_record_full(chan, playfile, tempfile, maxtime, fmt, duration, sound_duration, silencethreshold, maxsilence, unlockdir, acceptdtmf, canceldtmf);
+			cmd = ast_play_and_record_full(chan, playfile, tempfile, maxtime, fmt, duration, sound_duration, silencethreshold, maxsilence, unlockdir, acceptdtmf, canceldtmf, 0, AST_RECORD_IF_EXISTS_OVERWRITE);
 			if (strchr(canceldtmf, cmd)) {
 			/* need this flag here to distinguish between pressing '0' during message recording or after */
 				canceleddtmf = 1;

Modified: team/may/ooh323_qsig/bridges/bridge_builtin_features.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/bridges/bridge_builtin_features.c?view=diff&rev=397687&r1=397686&r2=397687
==============================================================================
--- team/may/ooh323_qsig/bridges/bridge_builtin_features.c (original)
+++ team/may/ooh323_qsig/bridges/bridge_builtin_features.c Mon Aug 26 17:49:14 2013
@@ -139,6 +139,9 @@
 
 	/* Who is transferring the call. */
 	pbx_builtin_setvar_helper(chan, "TRANSFERERNAME", ast_channel_name(caller));
+
+	/* To work as an analog to BLINDTRANSFER */
+	pbx_builtin_setvar_helper(chan, "ATTENDEDTRANSFER", ast_channel_name(caller));
 
 	/* Before we actually dial out let's inherit appropriate information. */
 	copy_caller_data(chan, caller);
@@ -466,15 +469,57 @@
 	return 0;
 }
 
-static void stop_automonitor(struct ast_bridge_channel *bridge_channel, struct ast_channel *peer_chan, struct ast_features_general_config *features_cfg)
-{
-	const char *stop_message;
-
-	ast_channel_lock(bridge_channel->chan);
-	stop_message = pbx_builtin_getvar_helper(bridge_channel->chan, "TOUCH_MONITOR_MESSAGE_STOP");
-	stop_message = ast_strdupa(S_OR(stop_message, ""));
-	ast_channel_unlock(bridge_channel->chan);
-
+enum set_touch_variables_res {
+	SET_TOUCH_SUCCESS,
+	SET_TOUCH_UNSET,
+	SET_TOUCH_ALLOC_FAILURE,
+};
+
+static void set_touch_variable(enum set_touch_variables_res *res, struct ast_channel *chan, const char *var_name, char **touch)
+{
+	const char *c_touch;
+
+	if (*res == SET_TOUCH_ALLOC_FAILURE) {
+		return;
+	}
+	c_touch = pbx_builtin_getvar_helper(chan, var_name);
+	if (!ast_strlen_zero(c_touch)) {
+		*touch = ast_strdup(c_touch);
+		if (!*touch) {
+			*res = SET_TOUCH_ALLOC_FAILURE;
+		} else {
+			*res = SET_TOUCH_SUCCESS;
+		}
+	}
+}
+
+static enum set_touch_variables_res set_touch_variables(struct ast_channel *chan, int is_mixmonitor, char **touch_format, char **touch_monitor, char **touch_monitor_prefix)
+{
+	enum set_touch_variables_res res = SET_TOUCH_UNSET;
+	const char *var_format;
+	const char *var_monitor;
+	const char *var_prefix;
+
+	SCOPED_CHANNELLOCK(lock, chan);
+
+	if (is_mixmonitor) {
+		var_format = "TOUCH_MIXMONITOR_FORMAT";
+		var_monitor = "TOUCH_MIXMONITOR";
+		var_prefix = "TOUCH_MIXMONITOR_PREFIX";
+	} else {
+		var_format = "TOUCH_MONITOR_FORMAT";
+		var_monitor = "TOUCH_MONITOR";
+		var_prefix = "TOUCH_MONITOR_PREFIX";
+	}
+	set_touch_variable(&res, chan, var_format, touch_format);
+	set_touch_variable(&res, chan, var_monitor, touch_monitor);
+	set_touch_variable(&res, chan, var_prefix, touch_monitor_prefix);
+
+	return res;
+}
+
+static void stop_automonitor(struct ast_bridge_channel *bridge_channel, struct ast_channel *peer_chan, struct ast_features_general_config *features_cfg, const char *stop_message)
+{
 	ast_verb(3, "AutoMonitor used to stop recording call.\n");
 
 	ast_channel_lock(peer_chan);
@@ -506,54 +551,10 @@
 	}
 }
 
-enum set_touch_variables_res {
-	SET_TOUCH_SUCCESS = 0,
-	SET_TOUCH_UNSET,
-	SET_TOUCH_ALLOC_FAILURE,
-};
-
-static int set_touch_variables(struct ast_channel *chan, int is_mixmonitor, char **touch_format, char **touch_monitor, char **touch_monitor_prefix)
-{
-	enum set_touch_variables_res res = SET_TOUCH_UNSET;
-	const char *c_touch_format, *c_touch_monitor, *c_touch_monitor_prefix;
-
-	SCOPED_CHANNELLOCK(lock, chan);
-
-	c_touch_format = pbx_builtin_getvar_helper(chan, is_mixmonitor ? "TOUCH_MIXMONITOR_FORMAT" : "TOUCH_MONITOR_FORMAT");
-
-	if (!ast_strlen_zero(c_touch_format)) {
-		if (!(*touch_format = ast_strdup(c_touch_format))) {
-			return SET_TOUCH_ALLOC_FAILURE;
-		}
-		res = SET_TOUCH_SUCCESS;
-	}
-
-	c_touch_monitor = pbx_builtin_getvar_helper(chan, is_mixmonitor ? "TOUCH_MIXMONITOR" : "TOUCH_MONITOR");
-
-	if (!ast_strlen_zero(c_touch_monitor)) {
-		if (!(*touch_monitor = ast_strdup(c_touch_monitor))) {
-			return SET_TOUCH_ALLOC_FAILURE;
-		}
-		res = SET_TOUCH_SUCCESS;
-	}
-
-	c_touch_monitor_prefix = pbx_builtin_getvar_helper(chan, is_mixmonitor ? "TOUCH_MIXMONITOR_PREFIX" : "TOUCH_MONITOR_PREFIX");
-
-	if (!ast_strlen_zero(c_touch_monitor_prefix)) {
-		if (!(*touch_monitor_prefix = ast_strdup(c_touch_monitor_prefix))) {
-			return SET_TOUCH_ALLOC_FAILURE;
-		}
-		res = SET_TOUCH_SUCCESS;
-	}
-
-	return res;
-}
-
-static int feature_automonitor(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, void *hook_pvt)
-{
-	char *caller_chan_id = NULL, *peer_chan_id = NULL, *touch_filename = NULL;
+static void start_automonitor(struct ast_bridge_channel *bridge_channel, struct ast_channel *peer_chan, struct ast_features_general_config *features_cfg, const char *start_message)
+{
+	char *touch_filename;
 	size_t len;
-	const char *automon_message;
 	int x;
 	enum set_touch_variables_res set_touch_res;
 
@@ -561,49 +562,47 @@
 	RAII_VAR(char *, touch_monitor, NULL, ast_free);
 	RAII_VAR(char *, touch_monitor_prefix, NULL, ast_free);
 
-	RAII_VAR(struct ast_channel *, peer_chan, NULL, ast_channel_cleanup);
-	RAII_VAR(struct ast_features_general_config *, features_cfg, NULL, ao2_cleanup);
-
-	features_cfg = ast_get_chan_features_general_config(bridge_channel->chan);
-	peer_chan = ast_bridge_peer(bridge, bridge_channel->chan);
-
-	if (!peer_chan) {
-		ast_verb(3, "Cannot start AutoMonitor for %s - can not determine peer in bridge.\n", ast_channel_name(bridge_channel->chan));
-		if (features_cfg && !(ast_strlen_zero(features_cfg->recordingfailsound))) {
-			ast_bridge_channel_queue_playfile(bridge_channel, NULL, features_cfg->recordingfailsound, NULL);
-		}
-		return 0;
-	}
-
-	if (ast_channel_monitor(peer_chan)) {
-		stop_automonitor(bridge_channel, peer_chan, features_cfg);
-		return 0;
-	}
-
-	if ((set_touch_res = set_touch_variables(bridge_channel->chan, 0, &touch_format, &touch_monitor, &touch_monitor_prefix))) {
+	set_touch_res = set_touch_variables(bridge_channel->chan, 0, &touch_format,
+		&touch_monitor, &touch_monitor_prefix);
+	switch (set_touch_res) {
+	case SET_TOUCH_SUCCESS:
+		break;
+	case SET_TOUCH_UNSET:
+		set_touch_res = set_touch_variables(peer_chan, 0, &touch_format, &touch_monitor,
+			&touch_monitor_prefix);
 		if (set_touch_res == SET_TOUCH_ALLOC_FAILURE) {
-			return 0;
-		}
-		if (set_touch_variables(peer_chan, 0, &touch_format, &touch_monitor, &touch_monitor_prefix) == SET_TOUCH_ALLOC_FAILURE) {
-			return 0;
-		}
+			return;
+		}
+		break;
+	case SET_TOUCH_ALLOC_FAILURE:
+		return;
 	}
 
 	if (!ast_strlen_zero(touch_monitor)) {
 		len = strlen(touch_monitor) + 50;
 		touch_filename = ast_alloca(len);
-		snprintf(touch_filename, len, "%s-%ld-%s", S_OR(touch_monitor_prefix, "auto"), (long)time(NULL), touch_monitor);
+		snprintf(touch_filename, len, "%s-%ld-%s",
+			S_OR(touch_monitor_prefix, "auto"),
+			(long) time(NULL),
+			touch_monitor);
 	} else {
+		char *caller_chan_id;
+		char *peer_chan_id;
+
 		caller_chan_id = ast_strdupa(S_COR(ast_channel_caller(bridge_channel->chan)->id.number.valid,
 			ast_channel_caller(bridge_channel->chan)->id.number.str, ast_channel_name(bridge_channel->chan)));
 		peer_chan_id = ast_strdupa(S_COR(ast_channel_caller(peer_chan)->id.number.valid,
 			ast_channel_caller(peer_chan)->id.number.str, ast_channel_name(peer_chan)));
 		len = strlen(caller_chan_id) + strlen(peer_chan_id) + 50;
 		touch_filename = ast_alloca(len);
-		snprintf(touch_filename, len, "%s-%ld-%s-%s", S_OR(touch_monitor_prefix, "auto"), (long)time(NULL), caller_chan_id, peer_chan_id);
-	}
-
-	for ( x = 0; x < strlen(touch_filename); x++) {

[... 13621 lines stripped ...]



More information about the asterisk-commits mailing list