Skip to content
Snippets Groups Projects
  1. Nov 16, 2015
    • Mark Michelson's avatar
      Confbridge: Add a user timeout option · fdd2afcd
      Mark Michelson authored
      This option adds the ability to specify a timeout, in seconds, for a
      participant in a ConfBridge. When the user's timeout has been reached,
      the user is ejected from the conference with the CONFBRIDGE_RESULT
      channel variable set to "TIMEOUT".
      
      The rationale for this change is that there have been times where we
      have seen channels get "stuck" in ConfBridge because a network issue
      results in a SIP BYE not being received by Asterisk. While these
      channels can be hung up manually via CLI/AMI/ARI, adding some sort of
      automatic cleanup of the channels is a nice feature to have.
      
      ASTERISK-25549 #close
      Reported by Mark Michelson
      
      Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
      fdd2afcd
    • Alec Davis's avatar
      app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked! · 7debb986
      Alec Davis authored
      commit aae45acb (Mark Michelson 2015-04-15 10:38:02 -0500 6525)
      refer ASTERISK-24958
      
      above commit removed ast_channel_lock(qe->chan);
      but failed to remove corresponding ast_channel_unlock(qe->chan);
      
      ASTERISK-25561 #close
      Reported Alec Davis
      
      Change-Id: Ie05f4e2d08912606178bf1fded57cc022c7a2e1a
      7debb986
  2. Nov 09, 2015
  3. Nov 06, 2015
  4. Sep 25, 2015
    • Richard Mudgett's avatar
      app_queue.c: Force COLP update if outgoing channel name changed. · 6b1e7583
      Richard Mudgett authored
      * When a call is answered and the outgoing channel name has changed then
      force a connected line update because the channel is no longer the same.
      The channel was masqueraded into by another channel.  This is usually
      because of a call pickup.
      
      Note: Forwarded calls are handled in a controlled manner so the original
      channel name is replaced with the forwarded channel.
      
      ASTERISK-25423 #close
      Reported by: John Hardin
      
      Change-Id: Ie275ea9e99c092ad369db23e0feb08c44498c172
      6b1e7583
    • Richard Mudgett's avatar
      app_queue.c: Factor out a connected line update routine. · 6bf304bf
      Richard Mudgett authored
      Replace inlined code with update_connected_line_from_peer().
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
      6bf304bf
    • Richard Mudgett's avatar
      app_dial.c: Make 'A' option pass COLP updates. · e36b5f1e
      Richard Mudgett authored
      While the 'A' option is playing the announcement file allow the caller and
      peer to exchange COLP update frames.
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: Iac6cf89b56d26452c6bb88e9363622bbf23895f9
      e36b5f1e
    • Richard Mudgett's avatar
      app_dial.c: Force COLP update if outgoing channel name changed. · 747bfac8
      Richard Mudgett authored
      * When a call is answered and the outgoing channel name has changed then
      force a connected line update because the channel is no longer the same.
      The channel was masqueraded into by another channel.  This is usually
      because of a call pickup.
      
      Note: Forwarded calls are handled in a controlled manner so the original
      channel name is replaced with the forwarded channel.
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: I2e01f7a698fbbc8c26344a59c2be40c6cd98b00c
      747bfac8
    • Richard Mudgett's avatar
      app_dial.c: Factor out a connected line update routine. · 14481d9a
      Richard Mudgett authored
      Replace inlined code with update_connected_line_from_peer().
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
      14481d9a
    • Richard Mudgett's avatar
      app_dial.c: Remove some no-op code. · bbeda190
      Richard Mudgett authored
      Change-Id: Ice1884a94315d3cb7e3bbd47a9fba76a27276c54
      bbeda190
  5. Sep 22, 2015
    • Richard Mudgett's avatar
      app_page.c: Fix crash when forwarding with a predial handler. · 5f15cd93
      Richard Mudgett authored
      Page uses the async method of dialing with the dial API.  When a call gets
      forwarded there is no calling channel available.  If the predial handler
      was set then the calling channel could not be put into auto-service
      for the forwarded call because it doesn't exist.  A crash is the result.
      
      * Moved the callee predial parameter string processing to before the
      string is passed to the dial API rather than having the dial API do it.
      There are a few benefits do doing this.  The first is the predial
      parameter string processing doesn't need to be done for each channel
      called by the dial API.  The second is in async mode and the forwarded
      channel is to have the predial handler executed on it then the
      non-existent calling channel does not need to be present to process the
      predial parameter string.
      
      * Don't start auto-service on a non-existent calling channel to execute
      the predial handler when the dial API is in async mode and forwarding a
      call.
      
      ASTERISK-25384 #close
      Reported by: Chet Stevens
      
      Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
      5f15cd93
  6. Sep 21, 2015
  7. Sep 17, 2015
    • Kevin Harwell's avatar
      app_queue: AgentComplete event has wrong reason · 4fb95bbc
      Kevin Harwell authored
      When a queued caller transfers an agent to another extension sometimes the
      raised AgentComplete event has a reason of "caller" and sometimes "transfer".
      Since a transfer has taken place this should always be transfer. This occurs
      because sometimes the stasis hangup event arrives before the transfer event
      thus writing a different reason out.
      
      With this patch, when a hangup event is received during a transfer it will
      check to see if the channel that is hanging up is part of a transfer. If so
      it will return and let the subsequently received transfer event handler take
      care of the cleanup.
      
      ASTERISK-25399 #close
      
      Change-Id: Ic63c49bd9a5ed463ea7a032fd2ea3d63bc81a50d
      4fb95bbc
    • Kevin Harwell's avatar
      app_queue: Crash when transferring · 6409e7b1
      Kevin Harwell authored
      During some transfer scenarios involving queues Asterisk would sometimes
      crash when trying to obtain a channel snapshot (could happen on caller or
      member channels). This occurred because the underlying channel had already
      disappeared when trying to obtain the latest snapshot.
      
      This patch adds a reference to both the member and caller channels that
      extends to the lifetime of the queue'd call, thus making sure the channels
      will always exist when retrieving the latest snapshots.
      
      ASTERISK-25185 #close
      Reported by: Etienne Lessard
      
      Change-Id: Ic397fa68fb4ff35fbc378e745da9246a7b552128
      6409e7b1
  8. Aug 18, 2015
    • Richard Mudgett's avatar
      app_queue.c: Extract some functions for simpler code. · bd867cd0
      Richard Mudgett authored
      * Extract set_queue_member_pause() from set_member_paused() for simpler
      and more consistent code.
      
      * Extract set_queue_member_ringinuse() from
      set_member_ringinuse_help_members() for simpler code.
      
      Change-Id: Iecc1f4119c63347341d7ea6b65f5fc4963706306
      bd867cd0
    • Richard Mudgett's avatar
      app_queue.c: Fix setting QUEUE_MEMBER 'paused' and 'ringinuse'. · e5f5b9f3
      Richard Mudgett authored
      Setting the 'paused' and 'ringinuse' options on a queue member using the
      dialplan function QUEUE_MEMBER did not behave the same way as the
      equivalent dialplan applications or AMI actions.
      
      * Made queue_function_mem_write() call the set_member_paused() and
      set_member_value() for the 'paused' and 'ringinuse' options respectively.
      A beneficial side effect is that the queue name is now optional and sets
      the value in all queues the interface is a member.
      
      * Update QUEUE_MEMBER XML documentation.
      
      * Fix error checking in QUEUE_MEMBER() write.
      
      ASTERISK-25215 #close
      Reported by: Lorne Gaetz
      
      Change-Id: I3a016be8dc94d63a9cc155295ff9c9afa5f707cb
      e5f5b9f3
    • Richard Mudgett's avatar
      app_queue.c: Fix error checking in QUEUE_MEMBER() read. · ded51e3d
      Richard Mudgett authored
      Change-Id: I7294e13d27875851c2f4ef6818adba507509d224
      ded51e3d
  9. Jul 15, 2015
  10. Jul 04, 2015
    • Matt Jordan's avatar
      Makefile: Remove coverage files on 'make clean' · 49f81ddb
      Matt Jordan authored
      This patch updates a variety of Makefiles in Asterisk's build system to
      remove .gcda and .gcno files when 'make clean' is executed. These files
      are generated when '--enable-coverage' is passed to the Asterisk
      configure script.
      
      Change-Id: Ib70b41eea2ee2908885bff02e80faf9f40c84602
      49f81ddb
  11. Jun 24, 2015
    • Joshua Colp's avatar
      app_dial: Hold reference to calling channel formats when dialing outbound. · e99e654d
      Joshua Colp authored
      Currently when requesting a channel the native formats of the
      calling channel are provided to the core for usage when dialing
      the outbound channel. This occurs without holding the channel lock
      or keeping a reference to the formats. This is problematic as
      the channel driver may end up changing the formats during this time.
      In the case of chan_sip this happens when an SDP negotiation
      completes.
      
      This change makes it so app_dial keeps a reference to the native
      formats of the calling channel which guarantees that they will
      remain valid for the period of time needed.
      
      ASTERISK-25172 #close
      
      Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
      e99e654d
  12. Jun 11, 2015
    • Richard Mudgett's avatar
      app_directory: Fix crash when using the alias option 'a'. · a2f4d03c
      Richard Mudgett authored
      The voicemail.conf mailbox key/value pair is defined as:
      <mailbox>=[<password>[,<full-name>[,<email>[,<pager>[,<options>]]]]]
      Where all fields in the value including the field values are optional.
      
      Since the parsing code for the mailbox key/value pair is sloppy, this
      patch tightens the parsing for the directory information.
      
      * Renamed the 'pos' and 'bufptr' variables to 'name' and 'options'
      respectively in search_directory_sub().  Those names make more sense.
      
      * Made sure that search_directory_sub() is dealing with the voicemail.conf
      mailbox options field if it even exists when looking for the 'hidefromdir'
      and 'alias' options.
      
      * Fix crash if a voicemail.conf mailbox is just
      <mailbox>=<password>,<name> when the 'a' option is used.  If there were no
      fields after the name then the 'options' pointer was not checked for NULL.
      
      * Fix users.conf alias processing if the 'a' option is used.  The wrong
      variable was used.
      
      ASTERISK-25087 #close
      Reported by: Chet Stevens
      
      Change-Id: I86052ea77307beddddba5279824d39dc0d593374
      a2f4d03c
  13. Jun 08, 2015
    • Corey Farrell's avatar
      Fix unsafe uses of ast_context pointers. · 55c8daf8
      Corey Farrell authored
      Although ast_context_find, ast_context_find_or_create and
      ast_context_destroy perform locking of the contexts table,
      any context pointer can become invalid at any time that the
      contexts table is unlocked. This change adds locking around
      all complete operations involving these functions.
      
      Places where ast_context_find was followed by ast_context_destroy
      have been replaced with calls ast_context_destroy_by_name.
      
      ASTERISK-25094 #close
      Reported by: Corey Farrell
      
      Change-Id: I1866b6787730c9c4f3f836b6133ffe9c820734fa
      55c8daf8
  14. May 21, 2015
  15. May 13, 2015
    • Jonathan Rose's avatar
      app_voicemail: fix moving when old messages full · d49d64b7
      Jonathan Rose authored
      When completing voicemail playback of a message in the 'INBOX', the
      message gets moved to the 'Old' messages folder. Without this patch, if
      the 'Old' folder is already at its set limit, then the 'INBOX' message will
      simply be deleted. With this patch, the flag to delete the message will be
      removed if the save_to_folder function indicates that the message could
      not be moved due to a full folder.
      
      ASTERISK-25082 #close
      Reported by: Jonathan Rose
      Review: https://gerrit.asterisk.org/#/c/448/
      
      Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
      d49d64b7
  16. May 05, 2015
  17. Apr 24, 2015
    • Kevin Harwell's avatar
      app_confbridge: Default the template option to a compatible default profile. · 7e5056b3
      Kevin Harwell authored
      Confbridge dynamic profiles did not have a default profile unless you
      explicitly used Set(CONFBRIDGE(bridge,template)=default_bridge). If a
      template was not set prior to the bridge being created then some
      options were left with no default values set. This patch makes it so
      the default templates are set to the default bridge and user profiles.
      
      ASTERISK-24749 #close
      Reported by: philippebolduc
      
      Change-Id: I1bd6e94b38701ac2112d842db68de63d46f60e0a
      7e5056b3
  18. Apr 17, 2015
    • Mark Michelson's avatar
      Detect potential forwarding loops based on count. · 4f1a8dbe
      Mark Michelson authored
      A potential problem that can arise is the following:
      
      * Bob's phone is programmed to automatically forward to Carol.
      * Carol's phone is programmed to automatically forward to Bob.
      * Alice calls Bob.
      
      If left unchecked, this results in an endless loops of call forwards
      that would eventually result in some sort of fiery crash.
      
      Asterisk's method of solving this issue was to track which interfaces
      had been dialed. If a destination were dialed a second time, then
      the attempt to call that destination would fail since a loop was
      detected.
      
      The problem with this method is that call forwarding has evolved. Some
      SIP phones allow for a user to manually forward an incoming call to an
      ad-hoc destination. This can mean that:
      
      * There are legitimate use cases where a device may be dialed multiple
      times, or
      * There can be human error when forwarding calls.
      
      This change removes the old method of detecting forwarding loops in
      favor of keeping a count of the number of destinations a channel has
      dialed on a particular branch of a call. If the number exceeds the
      set number of max forwards, then the call fails. This approach has
      the following advantages over the old:
      
      * It is much simpler.
      * It can detect loops involving local channels.
      * It is user configurable.
      
      The only disadvantage it has is that in the case where there is a
      legitimate forwarding loop present, it takes longer to detect it.
      However, the forwarding loop is still properly detected and the
      call is cleaned up as it should be.
      
      Address review feedback on gerrit.
      
      * Correct "mfgium" to "Digium"
      * Decrement max forwards by one in the case where allocation of the
        max forwards datastore is required.
      * Remove irrelevant code change from pjsip_global_headers.c
      
      ASTERISK-24958 #close
      
      Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
      4f1a8dbe
  19. Apr 09, 2015
  20. Apr 08, 2015
  21. Apr 01, 2015
  22. Mar 31, 2015
    • Ashley Sanders's avatar
      stasis: set a channel variable on websocket disconnect error · 7293ecd9
      Ashley Sanders authored
      When an error occurs while writing to a web socket, the web socket is
      disconnected and the event is logged. A side-effect of this, however, is that
      any application on the other side waiting for a response from Stasis is left
      hanging indefinitely (as there is no mechanism presently available for
      notifying interested parties about web socket error states in Stasis).
      
      To remedy this scenario, this patch introduces a new channel variable:
      STASISSTATUS.
      
      The possible values for STASISSTATUS are:
      SUCCESS         - The channel has exited Stasis without any failures
      FAILED          - Something caused Stasis to croak. Some (not all) possible
                        reasons for this:
                          - The app registry is not instantiated;
                          - The app requested is not registered;
                          - The app requested is not active;
                          - Stasis couldn't send a start message
      
      ASTERISK-24802
      Reported By: Kevin Harwell
      Review: https://reviewboard.asterisk.org/r/4519/
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      7293ecd9
  23. Mar 30, 2015
  24. Mar 28, 2015
  25. Mar 26, 2015
  26. Mar 22, 2015
  27. Mar 17, 2015
  28. Mar 14, 2015
  29. Mar 10, 2015
    • Matthew Jordan's avatar
      app_voicemail: Fix crash with IMAP backends when greetings aren't present · 05500171
      Matthew Jordan authored
      When an IMAP backend is in use and greetings are set to be used, but aren't
      present for a user in their IMAP folder, Asterisk will crash. This occurs
      due to the mailstream being set to the 'greetings' folder and being left
      in that particular state, regardless of the success/failure of the attempt
      to access the folder the mailstream points to. Later access of the mailstream
      assumes that it points to the 'INBOX' (or some other folder), resulting in
      either a crash (if the greetings folder didn't exist and the mailstream is
      invalid) or an inability to read messages from the 'INBOX' folder.
      
      This patch restores the mailstream to its correct state after accessing the
      greetings. This fixes the crash, and sets the mailstream to the state that
      VoiceMailMain expects.
      
      Note that while ASTERISK-23390 also contained a patch for this issue, the
      patch on ASTERISK-24786 is the one being merged here.
      
      Review: https://reviewboard.asterisk.org/r/4459/
      
      ASTERISK-23390 #close
      Reported by: Ben Smithurst
      
      ASTERISK-24786 #close
      Reported by: Graham Barnett
      Tested by: Graham Barnett
      patches:
        app_voicemail.c.patch.SIGSEGV3rev2 uploaded by Graham Barnett (License 6685)
      ........
      
      Merged revisions 432695 from http://svn.asterisk.org/svn/asterisk/branches/11
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      05500171
Loading