Skip to content
Snippets Groups Projects
  1. Mar 21, 2017
  2. Mar 17, 2017
    • Robert Mordec's avatar
      app_queue: Member stuck as pending after forwarding previous call from queue · 79069f8c
      Robert Mordec authored
      Queue member will get stuck in pending_members if queue calls a device
      that is different from the one observed for state changes.
      
      This patch removes members from pending_members as a result of channel stasis
      events such as blind or attended transfers and hangup.
      
      ASTERISK-26862 #close
      
      Change-Id: I8bf6df487b9bb35726c08049ff25cdad5e357727
      79069f8c
    • Sean Bright's avatar
      app_queue: Fix locking behavior in stasis message handlers · c13ea608
      Sean Bright authored
      The queue_stasis_data structure contains various mutable fields that require
      appropriate locking. Specifically, the 'dying,' 'member_uniqueid,' and
      'caller_uniqueid' fields need to be locked when read from or written to.
      
      Change-Id: I246b7dbff8447acc957a1299f6ad0ebd0fd39088
      c13ea608
  3. Mar 16, 2017
  4. Mar 15, 2017
    • Richard Mudgett's avatar
      autochan/mixmonitor/chanspy: Fix unsafe channel locking and references. · c87e7dd9
      Richard Mudgett authored
      Dereferencing struct ast_autochan.chan without first calling
      ast_autochan_channel_lock() is unsafe because the pointer could change at
      any time due to a masquerade.  Unfortunately, ast_autochan_channel_lock()
      itself uses struct ast_autochan.chan unsafely and can result in a deadlock
      if the original channel happens to get destroyed after a masquerade in
      addition to the pointer getting changed.
      
      The problem is more likely to happen with v11 and earlier because
      masquerades are used to optimize out local channels on those versions.
      However, it could still happen on newer versions if the channel is
      executing a dialplan application when the channel is transferred or
      redirected.  In this situation a masquerade still must be used.
      
      * Added a lock to struct ast_autochan to safely be able to use
      ast_autochan.chan while trying to get the channel lock in
      ast_autochan_channel_lock().  The locking order is the channel lock then
      the autochan lock.  Locking in the other direction requires deadlock
      avoidance.
      
      * Fix unsafe ast_autochan.chan usages in app_mixmonitor.c.
      
      * Fix unsafe ast_autochan.chan usages in app_chanspy.c.
      
      * app_chanspy.c: Removed unused autochan parameter from next_channel().
      
      ASTERISK-26867
      
      Change-Id: Id29dd22bc0f369b44e23ca423d2f3657187cc592
      c87e7dd9
    • Sean Bright's avatar
      app_queue: Handle the caller being redirected out of a queue bridge · 982d6173
      Sean Bright authored
      A caller can leave the Queue() application after being bridged with a
      member in a few ways:
      
        * Caller or member hangup
        * Caller is transferred somewhere else (blind or atx)
        * Caller is externally redirected elsewhere
      
      The first 2 scenarios are currently handled by subscribing to stasis
      messages, but the 3rd is not explicitly covered. If a caller is
      redirected away from the Queue() application, the member who was last
      bridged with that caller will remain in an "In use" state until the
      caller hangs up.
      
      This patch adds handling of the caller leaving the queue via
      redirection. We monitor the caller-member bridge, and if the caller is
      the one that leaves, we treat it the same as we would a caller hangup.
      
      ASTERISK-26400 #close
      Reported by: Etienne Lessard
      
      Change-Id: Iba160907770de5a6c9efeffc9df5a13e9ea75334
      982d6173
  5. Mar 08, 2017
  6. Feb 24, 2017
  7. Feb 23, 2017
    • frahaase's avatar
      Binaural synthesis (confbridge): Adds binaural synthesis to bridge_softmix. · 094c26aa
      frahaase authored
      Adds binaural synthesis to bridge_softmix (via convolution using libfftw3).
      Binaural synthesis is conducted at 48kHz.
      For a conference, only one spatial representation is rendered.
      The default rendering is applied for mono-capable channels.
      
      ASTERISK-26292
      
      Change-Id: Iecdb381b6adc17c961049658678f6219adae1ddf
      094c26aa
  8. Feb 21, 2017
    • Sean Bright's avatar
      realtime: Fix ast_load_realtime_multientry handling · ab04a018
      Sean Bright authored
      ast_load_realtime_multientry() returns an ast_config structure whose
      ast_categorys are keyed with the empty strings. Several modules were
      giving semantic meaning to the category names causing problems at
      runtime.
      
      * app_directory: Treated the category name as the mailbox name, and
        would fail to direct calls to the appropriate extension after an
        entry was chosen.
      
      * app_queue: Queues, queue members, and queue rules were all affected
        and needed to be updated.
      
      * pbx_realtime: Pattern matching would never succeed because the
        extension entered by the user was always compared to the empty
        string.
      
      Change-Id: Ie7e44986344b0b76ea8f6ddb5879f5040c6ca8a7
      ab04a018
  9. Feb 20, 2017
  10. Feb 14, 2017
    • Sean Bright's avatar
      app_voicemail: Allow 'Comedian Mail' branding to be overriden · 275f469a
      Sean Bright authored
      Original patch by John Covert, slight modifications by me.
      
      ASTERISK-17428 #close
      Reported by: John Covert
      Patches:
      	app_voicemail.c.patch (license #5512) patch uploaded by
              John Covert
      
      Change-Id: Ic3361b0782e5a5397a19ab18eb8550923a9bd6a6
      275f469a
    • rrittgarn's avatar
      app_voicemail: VoiceMailPlayMsg did not play database stored messages · 2b245b12
      rrittgarn authored
      When attempting to use VoiceMailPlayMsg with a realtime data backend
      the message is located, but never retrieved. This patch adds the
      required RETRIEVE and DISPOSE calls that will fetch the message from
      the database (and IMAP storage as well for that matter).
      
      Also, removed extraneous make_file call.
      
      ASTERISK-26723 #close
      
      Change-Id: I1e122dd53c0f3d7faa10f3c2b7e7e76a47d51b8c
      2b245b12
    • Sean Bright's avatar
      app_record: Add option to prevent silence from being truncated · 662c9e69
      Sean Bright authored
      When using Record() with the silence detection feature, the stream is
      written out to the given file. However, if only 'silence' is detected,
      this file is then truncated to the first second of the recording.
      
      This patch adds the 'u' option to Record() to override that behavior.
      
      ASTERISK-18286 #close
      Reported by: var
      Patches:
      	app_record-1.8.7.1.diff (license #6184) patch uploaded by var
      
      Change-Id: Ia1cd163483235efe2db05e52f39054288553b957
      662c9e69
  11. Feb 13, 2017
    • Sebastian Gutierrez's avatar
      app_queue: reset abandoned in sl for sl2 calculations · 9f394d07
      Sebastian Gutierrez authored
      ASTERISK-26775 #close
      
      Change-Id: I86de4b1a699d6edc77fea9b70d839440e4088284
      9f394d07
    • Sean Bright's avatar
      cli: Fix various CLI documentation and completion issues · 3f943737
      Sean Bright authored
      * app_minivm: Use built-in completion facilities to complete optional
      arguments.
      
      * app_voicemail: Use built-in completion facilities to complete
      optional arguments.
      
      * app_confbridge: Add missing colons after 'Usage' text.
      
      * chan_alsa: Use built-in completion facilities to complete optional
      arguments.
      
      * chan_sip: Use built-in completion facilities to complete optional
      arguments. Add completions for 'load' for 'sip show user', 'sip show
      peer', and 'sip qualify peer.'
      
      * chan_skinny: Correct and extend completions for 'skinny reset' and
      'skinny show line.'
      
      * func_odbc: Correct completions for 'odbc read' and 'odbc write'
      
      * main/astmm: Use built-in completion facilities to complete arguments
      for 'memory' commands.
      
      * main/bridge: Correct completions for 'bridge kick.'
      
      * main/ccss: Use built-in completion facilities to complete arguments
      for 'cc cancel' command.
      
      * main/cli: Add 'all' completion for 'channel request hangup.' Correct
      completions for 'core set debug channel.' Correct completions for 'core
      show calls.'
      
      * main/pbx_app: Remove redundant completions for 'core show
      applications.'
      
      * main/pbx_hangup_handler: Remove unused completions for 'core show
      hanguphandlers all.'
      
      * res_sorcery_memory_cache: Add completion for 'reload' argument of
      'sorcery memory cache stale' and properly implement.
      
      Change-Id: Iee58c7392f6fec34ad9d596109117af87697bbca
      3f943737
  12. Feb 10, 2017
    • Sean Bright's avatar
      manager: Restore Originate failure behavior from Asterisk 11 · 09107730
      Sean Bright authored
      In Asterisk 11, if the 'Originate' AMI command failed to connect the provided
      Channel while in extension mode, a 'failed' extension would be looked up and
      run. This was, I believe, unintentionally removed in 51b6c496. This patch
      restores that behavior.
      
      This also adds an enum for the various 'synchronous' modes in an attempt to
      make them meaningful.
      
      ASTERISK-26115 #close
      Reported by: Nasir Iqbal
      
      Change-Id: I8afbd06725e99610e02adb529137d4800c05345d
      09107730
    • Richard Mudgett's avatar
      core: Cleanup some channel snapshot staging anomalies. · 16fdb11b
      Richard Mudgett authored
      We shouldn't unlock the channel after starting a snapshot staging because
      another thread may interfere and do its own snapshot staging.
      
      * app_dial.c:dial_exec_full() made hold the channel lock while setting up
      the outgoing channel staging.  Made hold the channel lock after the called
      party answers while updating the caller channel staging.
      
      * chan_sip.c:sip_new() completed the channel staging on off-nominal exit.
      Also we need to use ast_hangup() instead of ast_channel_unref() at that
      location.
      
      * channel.c:__ast_channel_alloc_ap() added a comment about not needing to
      complete the channel snapshot staging on off-nominal exit paths.
      
      * rtp_engine.c:ast_rtp_instance_set_stats_vars() made hold the channel
      locks while staging the channels for the stats channel variables.
      
      Change-Id: Iefb6336893163f6447bad65568722ad5d5d8212a
      16fdb11b
  13. Jan 27, 2017
    • kkm's avatar
      app_queue: Fix queues randomly disappearing on reload · 8270d243
      kkm authored
      With 500+ queues and a reload every minute, a random queue disappears
      upon reload. The cause is mususe of the 'dead' flag. Namely, all queues
      were marked dead up front, and then "resurrected" by dropping this flag
      for those found in the configuration. But a queue marked dead can be
      removed also when control leaves the app entry point on a PBX thread.
      
      With this change, the queue is marked only not found, and at the end of
      reload only the queues that are still not found are actually marked as
      dead, so the dead flag is never reset, and set only on positively dead
      queues.
      
      ASTERISK-26755
      
      Change-Id: I3a4537aec9eb8d8aeeaa0193407e3523feb004bf
      8270d243
  14. Jan 21, 2017
    • Tzafrir Cohen's avatar
      tests: use datadir for sound files · dbb9c814
      Tzafrir Cohen authored
      Some (voicemail-related) tests API symlinks beep.gsm and other files
      from ast_config_AST_VAR_DIR. It should use ast_config_AST_DATA_DIR.
      
      ASTERISK-26740 #close
      
      Change-Id: Id49c56fb9e16df64b1a2b829693ca7601252df89
      dbb9c814
  15. Jan 20, 2017
    • Martin Tomec's avatar
      app_queue: add RINGCANCELED log event on caller hang up · 40b9766a
      Martin Tomec authored
      QueueLog did not log ringnoanswer when the caller abandoned call
      before first timeout. It was impossible to get agent membername
      and ringing duration for this short calls. After some discusions
      it seems that the best way is to add new event RINGCANCELED,
      which is generated after caller hangup during ringing.
      
      ASTERISK-26665
      
      Change-Id: Ic70f7b0f32fc95c9378e5bcf63865519014805d3
      40b9766a
  16. Jan 17, 2017
  17. Jan 04, 2017
  18. Dec 19, 2016
    • Martin Tomec's avatar
      app_queue: Ensure member is removed from pending when hanging up. · f461f65d
      Martin Tomec authored
      In some cases member is added to pending_members, and the channel
      is hung up before any extension state change. So the member would
      stay in pending_members forever. So when we call do_hang, we
      should also remove member from pending.
      
      ASTERISK-26621 #close
      
      Change-Id: Iae476b5c06481db18ebe0fa594b3e80fdc9a7d54
      f461f65d
  19. Nov 30, 2016
    • David Kerr's avatar
      app_originate: Add option to execute gosub prior to dial · ddc95106
      David Kerr authored
      Issue/patch ASTERISK-26587 was inspired by issue ASTERISK-22992
      that requested ability to add callerid into app_originate.
      Comments in that issue suggested that it was better solved by
      adding an option to gosub prior to originating the call.  The
      attached patch implements this much like app_dial with two
      options one to gosub on the originating channel and one to gosub
      on the newly created channel and behaves just like app_dial.
      I have tested this patch by adding callerid info to the new
      channel and also SIPAddHeader (to e.g. add header to force auto
      answer) and confirmed it works.  Have also tested both 'exten'
      and 'app' versions of app_originate.
      
      Opened by: dkerr
      Patch by: dkerr
      
      Change-Id: I36abc39b58567ffcab4a636ea196ef48be234c57
      ddc95106
  20. Nov 15, 2016
    • Timo Teräs's avatar
      Implement internal abstraction for iostreams · 070a51bf
      Timo Teräs authored
      fopencookie/funclose is a non-standard API and should not be used
      in portable software. Additionally, the way FILE's fd is used in
      non-blocking mode is undefined behaviour and cannot be relied on.
      
      This introduces internal abstraction for io streams, that allows
      implementing the desired virtualization of read/write operations
      with necessary timeout handling.
      
      ASTERISK-24515 #close
      ASTERISK-24517 #close
      
      Change-Id: Id916aef418b665ced6a7489aef74908b6e376e85
      070a51bf
  21. Nov 14, 2016
    • Matt Jordan's avatar
      apps/app_echo: Only relay a single video source change frame · cc863292
      Matt Jordan authored
      In 9785e8d0, app_echo was updated to relay video source updates to the
      channel for the purposes of displaying video in WebRTC tests.
      Unfortunately, this can cause a Kafkaesque nightmare if two or more
      Local channels are in a bridge together where their ends are in
      app_echo. When this situation occurs, a video update sent into app_echo
      will cause the video update to be relayed to the other Local channels,
      causing another round of video updates, etc. In not much time at all,
      the channel length queues will be overwhelmed, channel alert pipes will
      fail, and all hell will break loose as Asterisk merrily continues to
      throw more video update requests onto the channels.
      
      This patch updates app_echo to *only* relay a single video update. Once
      a video update has been made, all further video updates are dropped.
      This meets the intended purpose of the original patch: if we get a video
      update and we're in app_echo, go ahead and ask the sender to update
      themselves. However, once we've got that video stream sync'd up, don't
      keep spamming the world.
      
      Change-Id: I9210780b08d4c17ddb38599d1c64453adfc34f74
      cc863292
  22. Nov 09, 2016
  23. Nov 02, 2016
    • Joshua Colp's avatar
      app_dial: Fix incorrect device state when channel is picked up. · 4de5454e
      Joshua Colp authored
      Given the scenario where multiple channels are dialed using Dial()
      but the caller is picked up using PickupChan() all outgoing channels
      except the channel specified to PickupChan() would be marked
      as ringing until the call had been hung up.
      
      When using the PickupChan application the channel executing the
      application is swapped into place of another channel. As part
      of this process the channel is answered. The Dial application
      has explicit logic which checks if the channel is answered,
      cancels all other outgoing channels, and bridges. This logic is
      different than the normal logic that is executed when an outgoing
      channel is answered. This different logic failed to publish dial
      events stating that the other outgoing channels had been canceled.
      As a result references to the outgoing channels were held onto by
      the dial masquerade process until the call had been ended and
      the channels had gone away. This would result in the channels
      appearing in the "core show channels" list despite not being present
      anymore and would also result in incorrect device state.
      
      This change makes it so that this logic also publishes
      dial events stating that the other outgoing channels have been
      canceled.
      
      ASTERISK-26549
      
      Change-Id: Iea7168e6e82f7d4609ec0366153804e4f55ea64f
      4de5454e
  24. Oct 27, 2016
    • Corey Farrell's avatar
      Remove ASTERISK_REGISTER_FILE. · a6e5bae3
      Corey Farrell authored
      ASTERISK_REGISTER_FILE no longer has any purpose so this commit removes
      all traces of it.
      
      Previously exported symbols removed:
      * __ast_register_file
      * __ast_unregister_file
      * ast_complete_source_filename
      
      This also removes the mtx_prof static variable that was declared when
      MTX_PROFILE was enabled.  This variable was only used in lock.c so it
      is now initialized in that file only.
      
      ASTERISK-26480 #close
      
      Change-Id: I1074af07d71f9e159c48ef36631aa432c86f9966
      a6e5bae3
  25. Oct 26, 2016
  26. Oct 17, 2016
    • frahaase's avatar
      Binaural synthesis (confbridge): On/off setting for binaural synthesis. · dce31f90
      frahaase authored
      Adds setting to confbridge.conf (binaural_active) that determines if binaural
      synthesis can be available in bridge_softmix.
      
      ASTERISK-26292
      
      Change-Id: I59dfcb8e55fe1df4ef32045882fea5bb58fc71db
      dce31f90
    • Leandro Dardini's avatar
      app_queue: Added initialization for "context" parameter · 973e57d5
      Leandro Dardini authored
      When using Asterisk Realtime Architecture, empty fields are skipped and the
      default values are used. If the "context" parameter in queue was set and then
      cleared from the database, the old value remains in memory and it continues
      to be used. This change initialize the "context" parameter with an empty value,
      allowing clearing the parameter.
      
      ASTERISK-26462 #close
      
      Change-Id: I64be73d5044ce38dd02408bd0e53de965ef65905
      973e57d5
  27. Oct 13, 2016
    • Richard Mudgett's avatar
      Audit ast_json_pack() calls for needed UTF-8 checks. · 9c49b963
      Richard Mudgett authored
      Added needed UTF-8 checks before constructing json objects in various
      files for strings obtained outside the system.  In this case string values
      from a channel driver's peer and not from the user setting channel
      variables.
      
      * aoc.c: Fixed type mismatch in s_to_json() for time and granularity json
      object construction.
      
      ASTERISK-26466
      Reported by: Richard Mudgett
      
      Change-Id: Iac2d867fa598daba5c5dbc619b5464625a7f2096
      9c49b963
    • Richard Mudgett's avatar
      app_minivm.c: Fix malformed ast_json_pack() call. · c3bf1632
      Richard Mudgett authored
      Change-Id: I082b239022fac462666e52a14a44304748908dc0
      c3bf1632
    • Richard Mudgett's avatar
      app_queue.c: Fix clearing of pause reason string. · 9c54964d
      Richard Mudgett authored
      The pause reason is not always cleared when it should be cleared.
      
      * Made set_queue_member_pause() always clear pause reason if not pausing
      with a reason string.
      
      Change-Id: I993dad19626ec017478a230e980989438b778c53
      9c54964d
  28. Oct 11, 2016
    • George Joseph's avatar
      app_dial: Add the "Q" option to set the cause on unanswered channels · 86e87169
      George Joseph authored
      The "Q" option will set the cause on the unanswered channels when
      another channel answers.  It overrides the default of
      ANSWERED_ELSEWHERE.
      
      NOTE:  chan_sip does not support setting the cause on a CANCEL to
      anything other than ANSWERED_ELSEWHERE.
      
      ASTERISK-26446 #close
      
      Change-Id: I71742e0919aaa16784c30a2b2e73fbeed7672e47
      86e87169
  29. Sep 30, 2016
    • Etienne Lessard's avatar
      app_queue: Update dynamic members ringinuse on reload. · 806d08b6
      Etienne Lessard authored
      Previously, when reloading the members of a queue, the members added statically
      (i.e. defined in queues.conf) would see their "ringinuse" value updated but not
      the members added dynamically.
      
      This change makes dynamic members ringuse value to be updated on reload.
      
      Note that it's impossible to add a dynamic member with a specific ringinuse
      value. For both static and dynamic members, the ringinuse value can always be
      changed later on with command like "queue set ringinuse" or with the AMI action
      "QueueMemberRingInUse". So it's possible this commit could break a user workflow
      if he was changing the ringinuse value of dynamic members via such commands and
      was also relying on the fact that a queue reload would not update the dynamic
      members ringinuse value.
      
      ASTERISK-26330
      
      Change-Id: I3745cc9a06ba7e02c399636f1ee9e58c04081f3f
      806d08b6
  30. Sep 12, 2016
    • Richard Mudgett's avatar
      app_queue: Fix CLI "queue show" and AMI Queues action output truncation. · 7d7b23f0
      Richard Mudgett authored
      The output of CLI "queue show" and AMI Queues action is truncated and
      "failed to extend from 240 to 327" messages are generated if the queue
      member and interface names are lengthy.
      
      * Increase the string buffer size from 240 to 512 in order to accommodate
      for more information fields added to the output since v1.8.
      
      ASTERISK-26360 #close
      Reported by: Richard Mudgett
      
      Change-Id: Id99c03cf5362453b80491a4b3b0434cb67aa966d
      7d7b23f0
  31. Sep 07, 2016
    • Mark Michelson's avatar
      ConfBridge: Make some announcements asynchronous. · ac02bbd9
      Mark Michelson authored
      Confbridge announcements tend to block a channel while they are being
      played. In some circumstances, this is warranted since you want that
      particular channel not to hear the announcement (Example: "John Doe has
      entered the conference"). For others it makes less sense.
      
      This change first introduces methods for playing sounds asynchronously
      into the conference. This is very similar to how synchronous sounds are
      played, except the channel initiating the playback does not wait for the
      sound to complete before moving on.
      
      Asynchronous announcements are used for two circumstances:
      * Sounds played for a user after they have left the bridge
      * Sounds that play first to a single user and then the rest of the
        conference (if the channel and conference use the same language)
      
      ASTERISK-26289 #close
      Reported by Mark Michelson
      
      Change-Id: Ie486bb3de1646d50894489030326a423e594ab0a
      ac02bbd9
Loading