Skip to content
Snippets Groups Projects
  1. Aug 13, 2013
    • David M. Lee's avatar
      ARI: allow other operations to happen while bridged · 987fdfb4
      David M. Lee authored
      This patch changes ARI bridging to allow other channel operations to
      happen while the channel is bridged.
      
      ARI channel operations are designed to queue up and execute
      sequentially. This meant, though, that while a channel was bridged,
      any other channel operations would queue up and execute only after the
      channel left the bridge.
      
      This patch changes ARI bridging so that channel commands can execute
      while the channel is bridged. For most operations, things simply work
      as expected. The one thing that ended up being a bit odd is recording.
      
      The current recording implementation will fail when one attempts to
      record a channel that's in a bridge. Note that the bridge itself may
      be recording; it's recording a specific channel in the bridge that
      fails. While this is an annoying limitation, channel recording is
      still very useful for use cases such as voice mail, and bridge
      recording makes up much of the difference for other use cases.
      
      (closes issue ASTERISK-22084)
      Review: https://reviewboard.asterisk.org/r/2726/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396568 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      987fdfb4
  2. Aug 09, 2013
  3. Aug 08, 2013
    • Richard Mudgett's avatar
      Make bridge snapshots use prefixes. · 3f724fa4
      Richard Mudgett authored
      * Changed ast_manager_build_bridge_state_string() to assume an empty
      prefix string just like ast_manager_build_channel_state_string().
      
      * Created ast_manager_build_bridge_state_string_prefix() to work just like
      ast_manager_build_channel_state_string_prefix().
      
      * Made BridgeMerge AMI event use To/From prefixes.
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      3f724fa4
    • Richard Mudgett's avatar
      Remove some resolved or obsolete BUGBUG comments. · 73b3c70a
      Richard Mudgett authored
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      73b3c70a
    • Matthew Jordan's avatar
      Hide the Surrogate channels from external consumers; kill Masquerade events · 33e7b76d
      Matthew Jordan authored
      This patch does three things:
      1. It provides a Surrogate channel technology with a consolidated
         "implementation detail flag" on the channel technology. This tells
         consumers of Stasis that the creation of this channel is an implementation
         detail in Asterisk and can be ignored (if they so choose). This
         consolidates the conference recorder/announcer flags as well - these flags
         had no additional meaning beyond "ignore this channel please".
      
      2. It modifies allocation of a channel in two ways:
         (a) If a channel technology can be determined from the name, we set it
             directly in the allocation routine. This prevents the initial
             publication of the message from going out with a NULL channel technology
             where possible. This lets Stasis consumers get the right channel
             technology on the first publication.
         (b) It reorganizes allocation to make use of the 'finalized' property on the
             channel. This was already used to know that a channel had completely
             finished its construction in the masquerade routine; now we also use it
             to know whether or not the setting of certain channel properties is
             occurring during or post construction. The various set routines were
             modified accordingly as well.
      
      3. The masquerade event is now dead, Jim. It no longer served any purpose
         whatsoever - if you perform a call pickup you'll get a Pickup event;
         if you perform an attended transfer you will still get those events; if you
         steal a channel to put it elsewhere you'll get the corresponding NewExten or
         BridgeEnter events.
      
      Review: https://reviewboard.asterisk.org/r/2740
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      33e7b76d
  4. Aug 06, 2013
    • David M. Lee's avatar
      ARI: Add recording controls · c7908487
      David M. Lee authored
      This patch implements the controls from ARI recordings. The controls
      are:
      
       * DELETE /recordings/live/{recordingName} - stop recording and
         discard it
       * POST /recordings/live/{recordingName}/stop - stop recording
       * POST /recordings/live/{recordingName}/pause - pause recording
       * POST /recordings/live/{recordingName}/unpause - resume recording
       * POST /recordings/live/{recordingName}/mute - mute recording (record
         silence to the file)
       * POST /recordings/live/{recordingName}/unmute - unmute recording.
      
      Since this underlying functionality did not already exist, is was
      added to app.c by a set of control frames, similar to how playback
      control works. The pause/mute control frames are toggles, even though
      the ARI controls are idempotent, to be consistent with the playback
      control frames.
      
      (closes issue ASTERISK-22181)
      Review: https://reviewboard.asterisk.org/r/2697/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396331 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c7908487
    • David M. Lee's avatar
      Tweak caching topics to fix CEL tests · b97d318b
      David M. Lee authored
      The Stasis changes in r395954 had an unanticipated side effect: messages
      published directly to an _all topic does not get forwarded to the
      corresponding caching topic.
      
      This patch fixes that by changing how caching topics forward messages,
      and how the caching pattern forwards are setup.
      
      For the caching pattern, the all_topic is forwarded to the
      all_topic_cached. This forwards messages published directly to the
      all_topic to all_topic_cached.
      
      In order to avoid duplicate messages on all_topic_cached, caching topics
      were changed to no longer forward uncached messages. Subscribers to an
      individual caching topic should only expect to receive cache updates,
      and subscription change messages. Since individual caching topics are
      new, this shouldn't be a problem.
      
      There are a few minor changes to the pre-cache split behavior.
      
       * For topics changed to use the caching pattern, the all_topic_cached
         will forward snapshots in addition to cache updates. Since
         subscribers by design ignore unexpected messages, this should be
         fine.
      
       * Caching topics that don't use the caching pattern no longer forward
         non-cache updates. This makes no difference for the current caching
         topics.
      
         * mwi_topic_cached, channel_by_name_topic and
           presence_state_topic_cached have no subscribers
      
         * device_state_topic_cached's only subscriber only processes cache
           udpates
      
      (issue ASTERISK-22243)
      Review: https://reviewboard.asterisk.org/r/2738
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b97d318b
  5. Aug 05, 2013
  6. Aug 02, 2013
  7. 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
    • David M. Lee's avatar
      Split caching out from the stasis_caching_topic. · e1b959cc
      David M. Lee authored
      In working with res_stasis, I discovered a significant limitation to
      the current structure of stasis_caching_topics: you cannot subscribe
      to cache updates for a single channel/bridge/endpoint/etc.
      
      To address this, this patch splits the cache away from the
      stasis_caching_topic, making it a first class object. The stasis_cache
      object is shared amongst individual stasis_caching_topics that are
      created per channel/endpoint/etc. These are still forwarded to global
      whatever_all_cached topics, so their use from most of the code does
      not change.
      
      In making these changes, I noticed that we frequently used a similar
      pattern for bridges, endpoints and channels:
      
           single_topic  ---------------->  all_topic
                 ^
                 |
           single_topic_cached  ----+---->  all_topic_cached
                                    |
                                    +---->  cache
      
      This pattern was extracted as the 'Stasis Caching Pattern', defined in
      stasis_caching_pattern.h. This avoids a lot of duplicate code between
      the different domain objects.
      
      Since the cache is now disassociated from its upstream caching topics,
      this also necessitated a change to how the 'guaranteed' flag worked
      for retrieving from a cache. The code for handling the caching
      guarantee was extracted into a 'stasis_topic_wait' function, which
      works for any stasis_topic.
      
      (closes issue ASTERISK-22002)
      Review: https://reviewboard.asterisk.org/r/2672/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@395954 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      e1b959cc
  8. Jul 31, 2013
  9. Jul 30, 2013
  10. Jul 27, 2013
  11. Jul 26, 2013
  12. Jul 25, 2013
  13. Jul 24, 2013
  14. Jul 23, 2013
Loading