Skip to content
Snippets Groups Projects
  1. Feb 02, 2016
  2. Jan 05, 2016
    • Martin Tomec's avatar
      app_queue: Add member flag "in_call" to prevent reading wrong lastcall time · 90b06d1a
      Martin Tomec authored
      Member lastcall time is updated later than member status. There was chance to
      check wrapuptime for available member with wrong (old) lastcall time.
      New boolean flag "in_call" is set to true right before connecting call, and
      reset to false after update of lastcall time. Members with "in_call" set to true
      are treat as unavailable.
      
      ASTERISK-19820 #close
      
      Change-Id: I1923230cf9859ee51563a8ed420a0628b4d2e500
      90b06d1a
  3. Jan 04, 2016
    • George Joseph's avatar
      voicemail: Move app_voicemail / res_mwi_external conflict to runtime · 6d18fe15
      George Joseph authored
      The menuselect conflict between app_voicemail and res_mwi_external
      makes it hard to package 1 version of Asterisk.  There no actual
      build dependencies between the 2 so moving this check to runtime
      seems like a better solution.
      
      The ast_vm_register and ast_vm_greeter_register functions in app.c
      were modified to return AST_MODULE_LOAD_DECLINE instead of -1 if there
      is already a voicemail module registered. The modules' load_module
      functions were then modified to return DECLINE instead of -1 to the
      loader.  Since -1 is interpreted by the loader as AST_MODULE_LOAD_FAILURE,
      the modules were incorrectly causing Asterisk to stop so this needed
      to be cleaned up anyway.
      
      Now you can build both and use modules.conf to decide which voicemail
      implementation to load.
      
      The default menuselect options still build app_voicemail and not
      res_mwi_external but if both ARE built, res_mwi_external will load
      first and become the voicemail provider unless modules.conf rules
      prevent it.  This is noted in CHANGES.
      
      Change-Id: I7d98d4e8a3b87b8df9e51c2608f0da6ddfb89247
      6d18fe15
    • Richard Mudgett's avatar
      app_dial: Immediately exit dial if the caller is already hung up. · f88b9520
      Richard Mudgett authored
      If a caller hangs up before dial is executed within an AGI then the AGI
      has likely eaten all queued frames before executing the dial in DeadAGI
      mode.  With the caller hung up and no pending frames from the caller's
      read queue, dial would not know that the call has hung up until a called
      channel answers.  It is rather annoying to whoever just answered the
      non-existent call.
      
      Dial should not continue execution in DeadAGI mode, hangup handlers, or
      the h exten.
      
      * Added a check early in dial to abort dialing if the caller has hungup.
      
      ASTERISK-25307 #close
      Reported by: David Cunningham
      
      Change-Id: Icd1bc0764726ef8c809f76743ca008d0f102f418
      f88b9520
  4. Dec 22, 2015
    • Dade Brandon's avatar
      app_amd: Correct maximum_number_of_words functionality & documentation · ca394161
      Dade Brandon authored
      - The maximum_number_of_words was previously documented as being
      the number of words that when exceeded, would result in the AMD
      application returning that the audio represents a machine.
      
      This was inconsistent with its actual functionality - it was
      a number of words that when REACHED, would result in determination
      as a machine.
      
      This update corrects the functionality to match the previously
      documented functionality.  This is a backwards incompatible change
      in configuration file, and has been added to UPGRADE.txt as a result.
      
      The sample configuration file and application defaults have been updated
      so that the default value is now 2, which reflects the same default
      functionality as previous versions.
      
      - Update documentation for silence_threshold, which previously implied
      that it was measuring time, rather than noise averages in the sample.
      
      - Update the comments in amd.conf.sample.
      
      ASTERISK-25639 #close
      Change-Id: I4b1451e5dc9cb3cb06d59b6ab872f5275ba79093
      ca394161
  5. Dec 14, 2015
    • Carlos Oliva's avatar
      app_queue: update RT members when the 1st call joins a queue with no agents · 3e752253
      Carlos Oliva authored
      If a call enters on a queue and the members on that queue are updated in
      realtime (ex: using mysql inserting a new agent) the queue members are
      never refreshed and the call will stay in the queue until other event occurs.
      This happens only if this is the first call of the queue and there is no
      agents servicing.
      This patch prevent this issue, ensuring realtime members are updated if
      there is one call in the queue and no available agents
      
      ASTERISK-25442 #close
      
      Change-Id: If1e036d013a5c1d8b0bf60d71d48fe98694a8682
      3e752253
  6. Dec 09, 2015
  7. Nov 28, 2015
  8. Nov 18, 2015
    • Alec Davis's avatar
      app_bridgeaddchan: ability to barge into existing call · 8c14b916
      Alec Davis authored
      To be able to barge into a call by dialling a prefix+extension that maps
      to the extensions device.
      
      Senario is that DECT headset users may be away from their desks and need
      to transfer the call, the goal is that from any phone they dial a prefix
      then their extension and are added to the bridge that they are in, from
      there they can drop the headset call, as it's also on the handset,
      and transfer the caller.
      
      The dialplan would look like, where prefix=73, extension = 8512;
      exten => _738512,1,BridgeAdd(SIP/cisco0001)
      
      ASTERISK-25551 #close
      Reported By: Alec Davis
      
      Change-Id: I8eb5096a02168dcc8d7aeea416ef36ba4ed10540
      8c14b916
    • tcambron's avatar
      StatsD: Add sample rate compatibility · 05addf3d
      tcambron authored
      Implemented support for the StatsD sample rate parameter,
      which is a parameter for determining when to send computed
      statistics to a client.
      
      Valid sample rate values are:
      Less than or equal to 0.0 will never be sent.
      Between 0.0 and 1.0 will randomly be sent.
      Greater than or equal to 1.0 will always be sent.
      
      ASTERISK-25419
      Reported By: Ashley Sanders
      
      Change-Id: I11d315d0a5034fffeae1178e650aa8264485ed52
      05addf3d
    • Alec Davis's avatar
      app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked! · 4013f9d5
      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
      4013f9d5
  9. Nov 16, 2015
    • Mark Michelson's avatar
      Confbridge: Add a user timeout option · ed137321
      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
      ed137321
  10. Nov 09, 2015
  11. Nov 06, 2015
  12. Nov 02, 2015
  13. Oct 28, 2015
  14. Oct 19, 2015
    • Rodrigo Ramírez Norambuena's avatar
      app_queue: Added reason pause of member · 92fa8d1e
      Rodrigo Ramírez Norambuena authored
      In app_queue added value Paused Reason on QueueMemberStatus when a member
      on queue is paused and the reason was set.
      
      ASTERISK-25480 #close
      Reporte by: Rodrigo Ramírez Norambuena
      
      Change-Id: Ia5db503482f50764c15e2020196c785f59d4a68e
      92fa8d1e
  15. Oct 08, 2015
    • tcambron's avatar
      StatsD: Write skeleton Asterisk application · 2fe9f097
      tcambron authored
      Wrote the skeleton framework for the Asterisk StatsD dialplan
      application. This includes a load function, unload function, a
      callback for execution, and XML documentation.
      
      ASTERISK-25419
      Reported By: Ashley Sanders
      
      Change-Id: I9597730e134c6e82c8a55ef4d5334b62dd473363
      2fe9f097
  16. Sep 25, 2015
    • Richard Mudgett's avatar
      app_queue.c: Force COLP update if outgoing channel name changed. · 7c7a7ddd
      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
      7c7a7ddd
    • Richard Mudgett's avatar
      app_queue.c: Factor out a connected line update routine. · 145608bd
      Richard Mudgett authored
      Replace inlined code with update_connected_line_from_peer().
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
      145608bd
    • Richard Mudgett's avatar
      app_dial.c: Make 'A' option pass COLP updates. · 1d394774
      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
      1d394774
    • Richard Mudgett's avatar
      app_dial.c: Force COLP update if outgoing channel name changed. · 680b76eb
      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
      680b76eb
    • Richard Mudgett's avatar
      app_dial.c: Factor out a connected line update routine. · fdf0bcb0
      Richard Mudgett authored
      Replace inlined code with update_connected_line_from_peer().
      
      ASTERISK-25423
      Reported by: John Hardin
      
      Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
      fdf0bcb0
    • Richard Mudgett's avatar
      app_dial.c: Remove some no-op code. · c2858798
      Richard Mudgett authored
      Change-Id: Ice1884a94315d3cb7e3bbd47a9fba76a27276c54
      c2858798
  17. Sep 22, 2015
    • Richard Mudgett's avatar
      app_page.c: Fix crash when forwarding with a predial handler. · 06f4f80a
      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
      06f4f80a
  18. Sep 21, 2015
  19. Sep 17, 2015
    • Kevin Harwell's avatar
      app_queue: AgentComplete event has wrong reason · 729a4325
      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
      729a4325
    • Kevin Harwell's avatar
      app_queue: Crash when transferring · 63ede412
      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
      63ede412
  20. Aug 18, 2015
    • Richard Mudgett's avatar
      app_queue.c: Fix setting QUEUE_MEMBER 'paused' and 'ringinuse'. · 9fb4a96e
      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
      9fb4a96e
    • Richard Mudgett's avatar
      app_queue.c: Extract some functions for simpler code. · 87b22969
      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
      87b22969
    • Richard Mudgett's avatar
      app_queue.c: Fix error checking in QUEUE_MEMBER() read. · 5cf98e24
      Richard Mudgett authored
      Change-Id: I7294e13d27875851c2f4ef6818adba507509d224
      5cf98e24
  21. Jul 15, 2015
  22. Jun 24, 2015
    • Joshua Colp's avatar
      app_dial: Hold reference to calling channel formats when dialing outbound. · 3b2b004d
      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
      3b2b004d
  23. Jun 11, 2015
    • Richard Mudgett's avatar
      app_directory: Fix crash when using the alias option 'a'. · a657ab12
      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
      a657ab12
  24. Jun 08, 2015
    • Corey Farrell's avatar
      Fix unsafe uses of ast_context pointers. · 80621ce3
      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
      80621ce3
  25. May 21, 2015
  26. May 13, 2015
  27. May 05, 2015
  28. Apr 27, 2015
    • Corey Farrell's avatar
      Astobj2: Allow reference debugging to be enabled/disabled by config. · 5c1d07ba
      Corey Farrell authored
      * The REF_DEBUG compiler flag no longer has any effect on code that uses
        Astobj2.  It is used to determine if reference debugging is enabled by
        default.  Reference debugging can be enabled or disabled in asterisk.conf.
      * Caller information is provided in logger errors for ao2 bad magic numbers.
      * Optimizes AO2 by merging internal functions with the public counterpart.
        This was possible now that we no longer require a dual ABI.
      
      ASTERISK-24974 #close
      Reported by: Corey Farrell
      
      Change-Id: Icf3552721fe999365ba8a8cf00a965aa6b897cc1
      5c1d07ba
Loading