Skip to content
Snippets Groups Projects
  1. Jul 20, 2014
  2. Jun 20, 2014
  3. Jun 19, 2014
  4. May 28, 2014
    • Matthew Jordan's avatar
      Logger/CLI/etc.: Fix some aesthetic issues; reduce chatty verbose messages · fb5690ce
      Matthew Jordan authored
      This patch addresses some aesthetic issues in Asterisk. These are all just
      minor tweaks to improve the look of the CLI when used in a variety of
      settings. Specifically:
       * A number of chatty verbose messages were removed or demoted to DEBUG
         messages. Verbose messages with a verbosity level of 5 or higher were -
         if kept as verbose messages - demoted to level 4. Several messages
         that were emitted at verbose level 3 were demoted to 4, as announcement
         of dialplan applications being executed occur at level 3 (and so the
         effects of those applications should generally be less).
       * Some verbose messages that only appear when their respective 'debug'
         options are enabled were bumped up to always be displayed.
       * Prefix/timestamping of verbose messages were moved to the verboser
         handlers. This was done to prevent duplication of prefixes when the
         timestamp option (-T) is used with the CLI.
       * Verbose magic is removed from messages before being emitted to
         non-verboser handlers. This prevents the magic in multi-line verbose
         messages (such as SIP debug traces or the output of DumpChan) from
         being written to files.
       * _Slightly_ better support for the "light background" option (-W) was
         added. This includes using ast_term_quit in the output of XML
         documentation help, as well as changing the "Asterisk Ready" prompt to
         bright green on the default background (which stands a better chance of
         being displayed properly than bright white).
      
      Review: https://reviewboard.asterisk.org/r/3547/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@414798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      fb5690ce
  5. May 22, 2014
  6. May 09, 2014
  7. May 02, 2014
  8. Apr 15, 2014
  9. Apr 01, 2014
  10. Mar 07, 2014
    • Scott Griepentrog's avatar
      uniqueid: channel linkedid, ami, ari object creation with id's · 80ef9a21
      Scott Griepentrog authored
      Much needed was a way to assign id to objects on creation, and
      much change was necessary to accomplish it.  Channel uniqueids
      and linkedids are split into separate string and creation time
      components without breaking linkedid propgation.  This allowed
      the uniqueid to be specified by the user interface - and those
      values are now carried through to channel creation, adding the
      assignedids value to every function in the chain including the
      channel drivers. For local channels, the second channel can be
      specified or left to default to a ;2 suffix of first.  In ARI,
      bridge, playback, and snoop objects can also be created with a
      specified uniqueid.
      
      Along the way, the args order to allocating channels was fixed
      in chan_mgcp and chan_gtalk, and linkedid is no longer lost as
      masquerade occurs.
      
      (closes issue ASTERISK-23120)
      Review: https://reviewboard.asterisk.org/r/3191/
      ........
      
      Merged revisions 410157 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@410158 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      80ef9a21
  11. Dec 20, 2013
  12. Dec 18, 2013
  13. Dec 17, 2013
  14. Dec 13, 2013
  15. Dec 05, 2013
  16. Dec 03, 2013
  17. Oct 22, 2013
  18. Oct 18, 2013
  19. Oct 03, 2013
  20. Sep 30, 2013
    • David M. Lee's avatar
      Multiple revisions 399887,400138,400178,400180-400181 · 2de42c2a
      David M. Lee authored
      ........
        r399887 | dlee | 2013-09-26 10:41:47 -0500 (Thu, 26 Sep 2013) | 1 line
        
        Minor performance bump by not allocate manager variable struct if we don't need it
      ........
        r400138 | dlee | 2013-09-30 10:24:00 -0500 (Mon, 30 Sep 2013) | 23 lines
        
        Stasis performance improvements
        
        This patch addresses several performance problems that were found in
        the initial performance testing of Asterisk 12.
        
        The Stasis dispatch object was allocated as an AO2 object, even though
        it has a very confined lifecycle. This was replaced with a straight
        ast_malloc().
        
        The Stasis message router was spending an inordinate amount of time
        searching hash tables. In this case, most of our routers had 6 or
        fewer routes in them to begin with. This was replaced with an array
        that's searched linearly for the route.
        
        We more heavily rely on AO2 objects in Asterisk 12, and the memset()
        in ao2_ref() actually became noticeable on the profile. This was
        #ifdef'ed to only run when AO2_DEBUG was enabled.
        
        After being misled by an erroneous comment in taskprocessor.c during
        profiling, the wrong comment was removed.
        
        Review: https://reviewboard.asterisk.org/r/2873/
      ........
        r400178 | dlee | 2013-09-30 13:26:27 -0500 (Mon, 30 Sep 2013) | 24 lines
        
        Taskprocessor optimization; switch Stasis to use taskprocessors
        
        This patch optimizes taskprocessor to use a semaphore for signaling,
        which the OS can do a better job at managing contention and waiting
        that we can with a mutex and condition.
        
        The taskprocessor execution was also slightly optimized to reduce the
        number of locks taken.
        
        The only observable difference in the taskprocessor implementation is
        that when the final reference to the taskprocessor goes away, it will
        execute all tasks to completion instead of discarding the unexecuted
        tasks.
        
        For systems where unnamed semaphores are not supported, a really
        simple semaphore implementation is provided. (Which gives identical
        performance as the original taskprocessor implementation).
        
        The way we ended up implementing Stasis caused the threadpool to be a
        burden instead of a boost to performance. This was switched to just
        use taskprocessors directly for subscriptions.
        
        Review: https://reviewboard.asterisk.org/r/2881/
      ........
        r400180 | dlee | 2013-09-30 13:39:34 -0500 (Mon, 30 Sep 2013) | 28 lines
        
        Optimize how Stasis forwards are dispatched
        
        This patch optimizes how forwards are dispatched in Stasis.
        
        Originally, forwards were dispatched as subscriptions that are invoked
        on the publishing thread. This did not account for the vast number of
        forwards we would end up having in the system, and the amount of work it
        would take to walk though the forward subscriptions.
        
        This patch modifies Stasis so that rather than walking the tree of
        forwards on every dispatch, when forwards and subscriptions are changed,
        the subscriber list for every topic in the tree is changed.
        
        This has a couple of benefits. First, this reduces the workload of
        dispatching messages. It also reduces contention when dispatching to
        different topics that happen to forward to the same aggregation topic
        (as happens with all of the channel, bridge and endpoint topics).
        
        Since forwards are no longer subscriptions, the bulk of this patch is
        simply changing stasis_subscription objects to stasis_forward objects
        (which, admittedly, I should have done in the first place.)
        
        Since this required me to yet again put in a growing array, I finally
        abstracted that out into a set of ast_vector macros in
        asterisk/vector.h.
        
        Review: https://reviewboard.asterisk.org/r/2883/
      ........
        r400181 | dlee | 2013-09-30 13:48:57 -0500 (Mon, 30 Sep 2013) | 28 lines
        
        Remove dispatch object allocation from Stasis publishing
        
        While looking for areas for performance improvement, I realized that an
        unused feature in Stasis was negatively impacting performance.
        
        When a message is sent to a subscriber, a dispatch object is allocated
        for the dispatch, containing the topic the message was published to, the
        subscriber the message is being sent to, and the message itself.
        
        The topic is actually unused by any subscriber in Asterisk today. And
        the subscriber is associated with the taskprocessor the message is being
        dispatched to.
        
        First, this patch removes the unused topic parameter from Stasis
        subscription callbacks.
        
        Second, this patch introduces the concept of taskprocessor local data,
        data that may be set on a taskprocessor and provided along with the data
        pointer when a task is pushed using the ast_taskprocessor_push_local()
        call. This allows the task to have both data specific to that
        taskprocessor, in addition to data specific to that invocation.
        
        With those two changes, the dispatch object can be removed completely,
        and the message is simply refcounted and sent directly to the
        taskprocessor.
        
        Review: https://reviewboard.asterisk.org/r/2884/
      ........
      
      Merged revisions 399887,400138,400178,400180-400181 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@400186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2de42c2a
  21. Sep 13, 2013
    • Richard Mudgett's avatar
      Restore Dial, Queue, and FollowMe 'I' option support. · 2a371cd8
      Richard Mudgett authored
      The Dial, Queue, and FollowMe applications need to inhibit the bridging
      initial connected line exchange in order to support the 'I' option.
      
      * Replaced the pass_reference flag on ast_bridge_join() with a flags
      parameter to pass other flags defined by enum ast_bridge_join_flags.
      
      * Replaced the independent flag on ast_bridge_impart() with a flags
      parameter to pass other flags defined by enum ast_bridge_impart_flags.
      
      * Since the Dial, Queue, and FollowMe applications are now the only
      callers of ast_bridge_call() and ast_bridge_call_with_flags(), changed the
      calling contract to require the initial COLP exchange to already have been
      done by the caller.
      
      * Made all callers of ast_bridge_impart() check the return value.  It is
      important.  As a precaution, I also made the compiler complain now if it
      is not checked.
      
      * Did some cleanup in parking_tests.c as a result of checking the
      ast_bridge_impart() return value.
      
      An independent, but associated change is:
      * Reduce stack usage in ast_indicate_data() and add a dropping redundant
      connected line verbose message.
      
      (closes issue ASTERISK-22072)
      Reported by: Joshua Colp
      
      Review: https://reviewboard.asterisk.org/r/2845/
      ........
      
      Merged revisions 399136 from http://svn.asterisk.org/svn/asterisk/branches/12
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@399138 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      2a371cd8
  22. Aug 22, 2013
  23. Aug 21, 2013
    • Richard Mudgett's avatar
      Fix several interrelated issues dealing with the holding bridge technology. · d213dfa3
      Richard Mudgett authored
      * Added an option flags parameter to interval hooks.  Interval hooks now
      can specify if the callback will affect the media path or not.
      
      * Added an option flags parameter to the bridge action custom callback.
      The action callback now can specify if the callback will affect the media
      path or not.
      
      * Made the holding bridge technology reexamine the participant idle mode
      option whenever the entertainment is restarted.
      
      * Fixed app_agent_pool waiting agents needlessly starting and stopping MOH
      every second by specifying the heartbeat interval hook as not affecting
      the media path.
      
      * Fixed app_agent_pool agent alert from restarting the MOH after the alert
      beep.  The agent entertainment is now changed from MOH to silence after
      the alert beep.
      
      * Fixed holding bridge technology to defer starting the entertainment.  It
      was previously a mixture of immediate and deferred.
      
      * Fixed holding bridge technology to immediately stop the entertainment.
      It was previously a mixture of immediate and deferred.  If the channel
      left the bridging system, any deferred stopping was discarded before
      taking effect.
      
      * Miscellaneous holding bridge technology rework coding improvements.
      
      Review: https://reviewboard.asterisk.org/r/2761/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d213dfa3
  24. Aug 17, 2013
    • Kinsey Moore's avatar
      Allow res_parking to be unloadable · 56aea1c0
      Kinsey Moore authored
      This change protects accesses of res_parking such that it can unload
      safely once transient uses of its registered functions are complete.
      The parking API has been restructured such that its consumers do not
      have access to the vtable exposed by the parking provider, but instead
      route through stubs to prevent consumers from holding on to function
      pointers.
      
      This adds calls to all the parking unload functions and moves
      application loading and unloading into functions in
      parking_applications.c similar to the rest of the parts of res_parking.
      
      Review: https://reviewboard.asterisk.org/r/2763/
      (closes issue ASTERISK-22142)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      56aea1c0
    • Kinsey Moore's avatar
      Strip down the old event system · 59753b1e
      Kinsey Moore authored
      This removes unused code, event types, IE pltypes, and event IE types
      where possible and makes several functions private that were once
      public. This includes a renumbering of the remaining event and IE types
      which breaks binary compatibility with previous versions. The last
      remaining consumers of the old event system (or parts thereof) are
      main/security_events.c, res/res_security_log.c, tests/test_cel.c,
      tests/test_event.c, main/cel.c, and the CEL backends.
      
      Review: https://reviewboard.asterisk.org/r/2703/
      (closes issue ASTERISK-22139)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396887 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      59753b1e
  25. Aug 16, 2013
  26. Aug 15, 2013
  27. Aug 05, 2013
    • Jonathan Rose's avatar
      res_parking: Unit tests · 98b02d98
      Jonathan Rose authored
      Adds the following unit tests:
      * create_lot: tests adding and removal of a new parking lot (baseline)
      * park_extensions: creates a parking lot that registers extensions and
            then confirms that all of the expected extensions exist
      * extensions_conflicts: creates numerous parking lots to test that
            extension conflicts in parking lots result in parking lot
            creation failing
      * dynamic_parking_variables: Tests that the creation of dynamic
            parking lots respects the related channel variables set on the
            channel that requests them.
      * park_call: Tests adding a channel to a parking lot's holding bridge
            by standard parking functions.
      * retrieve_call: Tests pulling a channel out of a parking lot's
            holding bridge via parked call retrieval functions.
      
      (closes issue ASTERISK-22138)
      Reported by: Matt Jordan
      Review: https://reviewboard.asterisk.org/r/2714/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      98b02d98
  28. Aug 02, 2013
  29. Aug 01, 2013
    • Matthew Jordan's avatar
      Support externally initiated parking requests; remove some dead code · 5c4b4824
      Matthew Jordan authored
      This patch does the following:
       * It adds support for externally initiated parking requests. In particular,
         chan_skinny has a protocol level message that initiates a call park.
         This patch now supports that option, as well as the protocol specific
         mechanisms in chan_dahdi/sig_analog and chan_mgcp.
       * A parking bridge features virtual table has been added that provides
         access to the parking functionality that the Bridging API needs. This
         includes requests to park an entire 'call' (with little or no additional
         information, thank you chan_skinny), perform a blind transfer to a parking
         extension, determine if an extension is a parking extension, as well as the
         actual "do the parking" request from the Bridging API.
       * Refactoring in chan_mgcp, chan_skinny, and chan_dahdi to make use of the new
         functions
       * The removal of some - but not all - dead parking code from features.c
      
      This also fixed blind transferring a multi-party bridge to a parking lot (which
      was implemented, but had at least one code path where using the parking features
      kK might not have worked)
      
      Review: https://reviewboard.asterisk.org/r/2710
      
      (closes issue ASTERISK-22134)
      Reported by: Matt Jordan
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      5c4b4824
    • Kinsey Moore's avatar
      Fix documentation replication issues · 03090a88
      Kinsey Moore authored
      This prevents XML documentation duplication by expanding channel and
      bridge snapshot tags into channel and bridge snapshot parameter sets
      with a given prefix or defaulting to no prefix. This also prevents
      documentation from becoming fractured and out of date by keeping all
      variations of the documentation in template form such that it only
      needs to be updated once and keeps maintenance to a minimum.
      
      Review: https://reviewboard.asterisk.org/r/2708/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395985 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      03090a88
  30. Jul 26, 2013
    • Richard Mudgett's avatar
      Remove the unsafe bridge parameter from ast_bridge_hook_callback's. · c017d5e6
      Richard Mudgett authored
      Most hook callbacks did not need the bridge parameter.  The pointer value
      could become invalid if the channel is moved to another bridge while it is
      executing.
      
      * Fixed some issues in feature_attended_transfer() as a result.
      
      * Reduce the bridge inhibit count in
      attended_transfer_properties_shutdown() after it has restored the bridge
      channel hooks.
      
      * Removed basic bridge requirement on feature_blind_transfer().  It does
      not require the basic bridge like feature_attended_transfer().
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c017d5e6
    • Richard Mudgett's avatar
      Improved feature limits interval hook implementaion. · 50aba6be
      Richard Mudgett authored
      * Fixed feature limits to not use special members of struct
      ast_bridge_features.
      
      * Fixed memory leak in off nominal paths of bridge_builtin_set_limits().
      
      * Fixed off nominal path in ast_bridge_features_limits_construct() freeing
      unallocated memory if it was not called by bridge_builtin_set_limits().
      
      * Made bridge_builtin_interval_features.so unloadable.
      
      * Simplified parking's use of its duration interval hook.
      
      * Made BridgeWait S option not depend upon another module being loaded.
      
      (closes issue ASTERISK-22107)
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/2701/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      50aba6be
  31. Jul 25, 2013
  32. Jul 24, 2013
Loading