Skip to content
Snippets Groups Projects
  1. Mar 24, 2016
    • Gianluca Merlo's avatar
      config: fix flags in uint option handler · 894071ea
      Gianluca Merlo authored
      The configuration unsigned integer option handler sets flags for the
      parser as if the option should be a signed integer (PARSE_INT32),
      leading to errors on "out of range" values. Fix flags (PARSE_UINT32).
      
      A fix to res_pjsip is also present which stops invalid flags from
      being passed when registering sorcery object fields for qualify
      status.
      
      ASTERISK-25612 #close
      
      Change-Id: I96b539336275e0e72a8e8033487d2c3344debd3e
      894071ea
  2. Mar 16, 2016
  3. Mar 11, 2016
    • Walter Doekes's avatar
      app_chanspy: Fix occasional deadlock with ChanSpy and Local channels. · dcb25bb0
      Walter Doekes authored
      Channel masquerading had a conflict with autochannel locking.
      
      When locking autochannel->channel, the channel is fetched from the
      autochannel and then locked. During the fetch, the autochannel -- which
      has no locks itself -- can be modified by someone who owns the channel
      lock. That means that the value of autochan->channel cannot be trusted
      until you hold the lock.
      
      In practice, this caused problems with Local channels getting
      masqueraded away while the ChanSpy attempted to get info from that
      channel. The old channel which was about to get removed got locked, but
      the new (replaced) channel got unlocked (no-op). Because the replaced
      channel was now locked (and would never get unlocked), it couldn't get
      removed from the channel list in a timely manner, and would now cause
      deadlocks when iterating over the channel list.
      
      This change checks the autochannel after locking the channel for changes
      to the autochannel. If the channel had been changed, the lock is
      reobtained on the new channel.
      
      In theory it seems possible that after this fix, the lock attempt on the
      old (wrong) channel can be on an already destroyed lock, maybe causing
      a crash. But that hasn't been observed in the wild and is harder induce
      than the current deadlock.
      
      Thanks go to Filip Frank for suggesting a fix similar to this and
      especially to IRC user hexanol for pointing out why this deadlock was
      possible and testing this fix. And to Richard for catching my rookie
      while loop mistake ;)
      
      ASTERISK-25321 #close
      
      Change-Id: I293ae0014e531cd0e675c3f02d1d118a98683def
      dcb25bb0
  4. Feb 17, 2016
  5. Feb 05, 2016
    • Richard Mudgett's avatar
      app_confbridge: Only use b_profile options from the conference. · 1bc54aee
      Richard Mudgett authored
      A user cannot set new bridge options after the conference is created by
      the first user.  Attempting to do so is documented as undefined behavior.
      
      This patch ensures that the bridge profile options used are from the
      conference and not what a subsequent user may have tried to set.
      
      Change-Id: I1b6383eba654679e5739d5a8de98199cf074a266
      1bc54aee
  6. Feb 02, 2016
  7. Jan 27, 2016
  8. Jan 25, 2016
    • Rodrigo Ramírez Norambuena's avatar
      app_queue: Add Lastpause field of queue member · f299dc0d
      Rodrigo Ramírez Norambuena authored
      Add time when started a the last pause for a queue member for
      QueueMemberStatus ami event.
      
      Also show accumulate time in seconds when started a pause for a queue
      member to CLI command 'queue show'.
      
      ASTERISK-16394 #close
      
      Change-Id: I4b12aa3b2efa8d02939db3e13712510b4879865c
      f299dc0d
  9. Jan 23, 2016
  10. Jan 22, 2016
  11. Jan 19, 2016
  12. 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
  13. 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
  14. 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
  15. 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
  16. Dec 09, 2015
  17. Nov 28, 2015
  18. 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
  19. 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
  20. Nov 09, 2015
  21. Nov 06, 2015
  22. Nov 02, 2015
  23. Oct 28, 2015
  24. 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
  25. 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
  26. 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
  27. 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
  28. Sep 21, 2015
  29. 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
Loading