Skip to content
Snippets Groups Projects
  1. Aug 02, 2013
  2. Aug 01, 2013
    • Matthew Jordan's avatar
      Add queue member paused hints · c8a91b5b
      Matthew Jordan authored
      This patch adds the ability in Queue to raise a hint when a member's paused
      state changes. The hint uses the form 'Queue:{queue_name}_pause_{member_name}',
      where {queue_name} and {member_name} are the name of the queue and the name
      of the member to subscribe to, respectively.
      
      For example: exten => 8501,hint,Queue:sales_pause_mark.
      
      Members will show as In Use when paused.
      
      Note that the format of the queue pause hint was changed slightly from what
      is on the issue to accomodate suggestion on the code review.
      
      Review: https://reviewboard.asterisk.org/r/2254
      
      (closes issue ASTERISK-20842)
      Reported by: Philippe Lindheimer
      patches:
        qpause-10-378206.diff uploaded by Philippe Lindheimer (license 5519)
        qpause-11-378206.diff uploaded by Philippe Lindheimer (license 5519)
        qpause-trunk-378206.diff uploaded by Philippe Lindheimer (license 5519)
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c8a91b5b
    • 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
  3. Jul 31, 2013
  4. Jul 21, 2013
    • Matthew Jordan's avatar
      Always install safe_asterisk; add configuration file support · 54803338
      Matthew Jordan authored
      This patch modifies the behavior of safe_asterisk in two ways:
      (1) It modifies the Asterisk Makefile such that safe_asterisk is always
          installed on a 'make install'. This was done as bugfixes in the
          safe_asterisk script were not applied in previous version of Asterisk
          without first removing the old version of the script.
      (2) In order to keep a newly installed version of safe_asterisk from impacting
          local modifications, a new config file - safe_asterisk.conf.sample - has
          been provided. Settings that were previously modified in safe_asterisk can
          be set there instead.
      
      (closes issue ASTERISK-21965)
      Reported by: Jeremy Kister
      patches:
        safe_asterisk.patch uploaded by jkister (License 6232)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      54803338
    • Matthew Jordan's avatar
      Allow setting allowmultiplelogin on an account basis · 3a5b68f0
      Matthew Jordan authored
      This patch modifies manager to allow the allowmultiplelogin setting to be set
      on an account by account basis. When set in the general context, it will act
      as the default for the defined accounts. Setting it in the account will
      override the general setting.
      
      (closes issue ASTERISK-21324)
      Reported by: vldmr
      patches:
        asterisk-manager-per-user-allowmultiplelogin.patch uploaded by vldmr (License 6487)
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394881 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      3a5b68f0
  5. Jul 20, 2013
  6. Jul 16, 2013
    • Matthew Jordan's avatar
      Add 'kick all' capability to ConfBridge CLI command · 19d8f8c8
      Matthew Jordan authored
      This patch adds the ability to kick all users out of a conference from the
      ConfBridge kick CLI command. It is invoked by passing 'all' as the channel
      parameter to the CLI command, i.e., "confbridge kick <conf> all".
      
      Note that this patch was modified slightly to conform to trunk.
      
      (closes issue ASTERISK-21827)
      Reported by: dorianlogan
      patches:
        kickall-patch_v2.diff uploaded by dorianlogan (License 6504)
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394531 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      19d8f8c8
  7. Jul 15, 2013
    • Richard Mudgett's avatar
      Replace chan_agent with app_agent_pool. · d43b17a8
      Richard Mudgett authored
      The ill conceived chan_agent is no more.  It is now replaced by
      app_agent_pool.
      
      Agents login using the AgentLogin() application as before.  The
      AgentLogin() application no longer does any authentication.
      Authentication is now the responsibility of the dialplan.  (Besides, the
      authentication done by chan_agent did not match what the voice prompts
      asked for.)
      
      Sample extensions.conf
      [login]
      ; Sample agent 1001 login
      ; Set COLP for in between calls so the agent does not see the last caller COLP.
      exten => 1001,1,Set(CONNECTEDLINE(all)="Agent Waiting" <1001>)
      ; Give the agent DTMF transfer and disconnect features when connected to a caller.
      same => n,Set(CHANNEL(dtmf-features)=TX)
      same => n,AgentLogin(1001)
      same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
      same => n,Hangup()
      
      [caller]
      ; Sample caller direct connect to agent 1001
      exten => 800,1,AgentRequest(1001)
      same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
      same => n,Hangup()
      
      ; Sample caller going through a Queue to agent 1001
      exten => 900,1,Queue(agent_q)
      same => n,Hangup()
      
      Sample queues.conf
      [agent_q]
      member => Local/800@caller,,SuperAgent,Agent:1001
      
      Under the hood operation overview:
      1) Logged in agents wait for callers in an agents holding bridge.
      2) Caller requests an agent using AgentRequest()
      3) A basic bridge is created, the agent is notified, and caller joins the
         basic bridge to wait for the agent.
      4) The agent is either automatically connected to the caller or must ack
         the call to connect.
      5) The agent is moved from the agents holding bridge to the basic bridge.
      6) The agent and caller talk.
      7) The connection is ended by either party.
      8) The agent goes back to the agents holding bridge.
      
      To avoid some locking issues with the agent holding bridge, I needed to
      make some changes to the after bridge callback support.  The after bridge
      callback is now a list of requested callbacks with the last to be added
      the only active callback.  The after bridge callback for failed callbacks
      will always happen in the channel thread when the channel leaves the
      bridging system or is destroyed.
      
      (closes issue ASTERISK-21554)
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/2657/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      d43b17a8
  8. Jul 08, 2013
    • Matthew Jordan's avatar
      Create Local channel messages on the Stasis message bus and produce AMI events · 30d37985
      Matthew Jordan authored
      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
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393801 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      30d37985
  9. Jul 07, 2013
    • Matthew Jordan's avatar
      Handle hangup logic in the Stasis message bus and consumers of Stasis messages · b193c287
      Matthew Jordan authored
      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.
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@393777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b193c287
  10. Jul 04, 2013
  11. Jul 03, 2013
  12. Jul 02, 2013
  13. Jul 01, 2013
  14. Jun 28, 2013
  15. Jun 25, 2013
  16. Jun 17, 2013
    • Matthew Jordan's avatar
      Restore bad merge on CHANGES · 0afb1949
      Matthew Jordan authored
      The patch for CDRs moved around a lot of content in CHANGES to try and
      organize the areas that were affected. This missed some changes that went
      in with a merge and removed some updates - this patch adds them back in.
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@392004 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0afb1949
    • Matthew Jordan's avatar
      Update Asterisk's CDRs for the new bridging framework · 6258bbe7
      Matthew Jordan authored
      This patch is the initial push to update Asterisk's CDR engine for the new
      bridging framework. This patch guts the existing CDR engine and builds the new
      on top of messages coming across Stasis. As changes in channel state and bridge
      state are detected, CDRs are built and dispatched accordingly. This
      fundamentally changes CDRs in a few ways.
      (1) CDRs are now *very* reflective of the actual state of channels and bridges.
          This means CDRs track well with what an actual channel is doing - which
          is useful in transfer scenarios (which were previously difficult to pin
          down). It does, however, mean that CDRs cannot be 'fooled'. Previous
          behavior in Asterisk allowed for CDR applications, channels, and other
          properties to be spoofed in parts of the code - this no longer works.
      (2) CDRs have defined behavior in multi-party scenarios. This behavior will not
          be what everyone wants, but it is a defined behavior and as such, it is
          predictable.
      (3) The CDR manipulation functions and applications have been overhauled. Major
          changes have been made to ResetCDR and ForkCDR in particular. Many of the
          options for these two applications no longer made any sense with the new
          framework and the (slightly) more immutable nature of CDRs.
      
      There are a plethora of other changes. For a full description of CDR behavior,
      see the CDR specification on the Asterisk wiki.
      
      (closes issue ASTERISK-21196)
      
      Review: https://reviewboard.asterisk.org/r/2486/
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@391947 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      6258bbe7
  17. Jun 07, 2013
  18. Jun 06, 2013
    • Richard Mudgett's avatar
      Reimplement bridging and DTMF features related channel variables in the bridging core. · bad8caa8
      Richard Mudgett authored
      * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer
      channel driver specific.  If the channel variable is set on the
      transferrer channel, the sound will be played to the target of an attended
      transfer.
      
      * The channel variable BRIDGEPEER becomes a comma separated list of peers
      in a multi-party bridge.  The BRIDGEPEER value can have a maximum of 10
      peers listed.  Any more peers in the bridge will not be included in the
      list.  BRIDGEPEER is not valid in holding bridges like parking since those
      channels do not talk to each other even though they are in a bridge.
      
      * The channel variable BRIDGEPVTCALLID is only valid for two party bridges
      and will contain a value if the BRIDGEPEER's channel driver supports it.
      
      * The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and
      is removed.  The more useful DYNAMIC_WHO_ACTIVATED gives the channel name
      that activated the dynamic feature.
      
      * The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are
      set only on the channel executing the dynamic feature.  Executing a
      dynamic feature on the bridge peer in a multi-party bridge will execute it
      on all peers of the activating channel.
      
      (closes issue ASTERISK-21555)
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/2582/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@390771 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      bad8caa8
    • Jason Parker's avatar
      Split AGI manager events, to remove SubEvent field. · 0613100e
      Jason Parker authored
      This moves them to stasis, in the process.
      
      (closes issue ASTERISK-21470)
      Review: https://reviewboard.asterisk.org/r/2587/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@390701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0613100e
  19. May 28, 2013
  20. May 24, 2013
  21. May 21, 2013
  22. May 17, 2013
  23. May 10, 2013
    • Kinsey Moore's avatar
      Add channel events for res_stasis apps · 7ce05bfb
      Kinsey Moore authored
      This change adds a framework in res_stasis for handling events from
      channel topics. JSON event generation and validation code is created
      from event documentation in rest-api/api-docs/events.json to assist in
      JSON event generation, ensure consistency, and ensure that accurate
      documentation is available for ALL events that are received by
      res_stasis applications.
      
      The userevent application has been refactored along with the code that
      handles userevent channel blob events to pass the headers as key/value
      pairs in the JSON blob. As a side-effect, app_userevent now handles
      duplicate keys by overwriting the previous value.
      
      Review: https://reviewboard.asterisk.org/r/2428/
      
      
      (closes issue ASTERISK-21180)
      Patch-By: default avatarKinsey Moore <kmoore@digium.com>
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@388275 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7ce05bfb
  24. Apr 29, 2013
  25. Apr 27, 2013
  26. Apr 09, 2013
  27. Apr 08, 2013
    • Matthew Jordan's avatar
      Add multi-channel Stasis messages; refactor Dial AMI events to Stasis · b8d4e573
      Matthew Jordan authored
      This patch does the following:
       * A new Stasis payload has been defined for multi-channel messages. This
         payload can store multiple ast_channel_snapshot objects along with a single
         JSON blob. The payload object itself is opaque; the snapshots are stored
         in a container keyed by roles. APIs have been provided to query for and
         retrieve the snapshots from the payload object.
       * The Dial AMI events have been refactored onto Stasis. This includes dial
         messages in app_dial, as well as the core dialing framework. The AMI events
         have been modified to send out a DialBegin/DialEnd events, as opposed to
         the subevent type that was previously used.
       * Stasis messages, types, and other objects related to channels have been
         placed in their own file, stasis_channels. Unit tests for some of these
         objects/messages have also been written.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@384910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      b8d4e573
  28. Mar 25, 2013
    • David M. Lee's avatar
      Move NewCallerid, HangupRequest and SoftHangupRequest to Stasis · 4a6237b2
      David M. Lee authored
      HangupRequest and SoftHangupRequest are now ast_channel_blob Stasis
      messages, with the cause code as an optional field in the blob.
      
      NewCallerid now simply watches for changes in the callerid information
      in channel snapshots, and creates the AMI event appropriately.
      
      Since the original NewCallerid event honored the channelvars setting
      in manager.conf, the channel variables configured there had to become
      a part of the channel snapshot. These are now a part of every snapshot
      based event, making the configuration description "every time a
      channel-oriented event is emitted" less of a lie.
      
      There a a few other changes wrapped up in here as well.
      
       * When ast_channel_topic() is given NULL for a channel, it returns
         the ast_channel_topic_all() topic instead of NULL. This can clean
         up a lot of NULL checking we're doing currently.
       * The fields Cause and Cause-txt were removed from the base channel
         information and put only on the Hangup events, since those fields
         are meaningless outside of a Hangup event.
       * Removed the pipe-delimiter processing of the channelvars field,
         since that's been deprecated forever.
      
      (closes issue ASTERISK-21096)
      Review: https://reviewboard.asterisk.org/r/2405/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@383726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4a6237b2
  29. Mar 22, 2013
    • David M. Lee's avatar
      Move more channel events to Stasis; move res_json.c to main/json.c. · cf9324b2
      David M. Lee authored
      This patch started out simply as fixing the bouncing tests introduced
      in r382685, but required some other changes to give it a decent
      implementation.
      
      To fix the bouncing tests, the UserEvent and Newexten AMI events
      needed to be refactored to dispatch via Stasis. Dispatching directly
      to AMI resulted in those events sometimes getting ahead of the
      associated Newchannel events, which would understandably confuse anyone.
      
      I found that instead of creating a zillion different message types and
      structures associated with them, it would be preferable to define a
      message type that has a channel snapshot and a blob of structured data
      with a small bit of additional information. The JSON object model
      provides a very nice way of representing structured data, so I went
      with that.
      
       * Move JSON support from res_json.c to main/json.c
         * Made libjansson-dev a required dependency
       * Added an ast_channel_blob message type, which has a channel
         snapshot and JSON blob of data.
       * Changed UserEvent and Newexten events so that they are dispatched
         via ast_channel_blob messages on the channel's topic.
       * Got rid of the ast_channel_varset message; used ast_channel_blob
         instead.
       * Extracted the manager functions converting Stasis channel events to
         AMI events into manager_channel.c.
      
      (issue ASTERISK-21096)
      Review: https://reviewboard.asterisk.org/r/2381/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@383579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      cf9324b2
  30. Mar 16, 2013
  31. Mar 12, 2013
Loading