Skip to content
Snippets Groups Projects
  1. Oct 01, 2018
  2. Sep 28, 2018
    • George Joseph's avatar
      app_confbridge: Use bridge join hook to send join and leave events · f10c7b6e
      George Joseph authored
      The first attempt at publishing confbridge events to participants
      involved publishing them at the same time stasis events were
      created.  This caused issues with bridge and channel locks.  The
      second attempt involved publishing them when the stasis events
      were received by the code that published the confbridge AMI events.
      This caused timing issues because, depending on resources available,
      the event could be received before channels actually joined the
      bridge and would therefore fail to send messages to the participant.
      
      This attempt reverts to the original mechanism with one exception.
      The join and leave events are published via bridge join and leave
      hooks.  This guarantees the states of the channels and bridge and
      provides deterministic timing for event publishing.
      
      Change-Id: I2660074f8a30a5224cb953d5e047ee84484a9036
      f10c7b6e
  3. Sep 27, 2018
    • Cao Minh Hiep's avatar
      app_queue: Fix Attended transfer hangup with removing pending member. · f23a1224
      Cao Minh Hiep authored
      This issue related to setting of holdtime, announcements, member delays.
      It works well if we set the member delays to "0" and no announcements
      and no holdtime.This issue will happen if we set member delays to "1",
      "2"... or announcements or holdtime and hangs up the call during
      processing it.
      
      And here is the reason:
      (At the step of answering a phone.)
      It takes care any holdtime, announcements, member delays,
      or other options after a call has been answered if it exists.
      
      Normally, After the call has been aswered,
      and we wait for the processing one of the cases of the member delays
      or hold time or announcements finished, "if (ast_check_hangup(peer))"
      will be not executed, then queue will be updated at update_queue().
      Here, pending member will be removed.
      
      However, after the call has been aswered,
      if we hangs up the call during one of the cases of the member delays
      or hold time or announcements, "if (ast_check_hangup(peer))"
      will be executed.
      outgoing = NULL and at hangupcalls, pending members will not be removed.
      
      * This fixed patch will remove the pending member from container
      before hanging up the call with outgoing is NULL.
      
      ASTERISK-27920
      
      Reported by: Cao Minh Hiep
      Tested by: Cao Minh Hiep
      
      Change-Id: Ib780fbf48ace9d2d8eaa1270b9d530a4fc14c855
      f23a1224
  4. Sep 24, 2018
    • George Joseph's avatar
      app_voicemail: Cleanup mailbox topic and cache · 06c0676d
      George Joseph authored
      app_voicemail wasn't properly cleaning up the stasis cache or the
      mwi topic pool when the module was unloaded or when a user was
      deleted as a result of a reload.  This resulted in leaks in both
      areas.
      
      * app_voicemail now calls ast_delete_mwi_state_full when it frees
        a user structure and ast_delete_mwi_state_full in turn now calls
        the new stasis_topic_pool_delete_topic function to clear the topic
        from the pool.
      
      Change-Id: Ide23144a4a810e7e0faad5a8e988d15947965df8
      06c0676d
  5. Sep 21, 2018
    • George Joseph's avatar
      app_voicemail: Fix stack overrun in append_mailbox · 22cf065e
      George Joseph authored
      The append_mailbox function wasn't calculating the correct length
      to pass to ast_alloca and it wasn't handling the case where context
      might be empty.
      
      Found by the Address Sanitizer.
      
      Change-Id: I7eb51c7bd18a7a8dbdba261462a95cc69e84f161
      22cf065e
  6. Sep 18, 2018
    • George Joseph's avatar
      app_voicemail: Remove need to subscribe to stasis · cdece3b6
      George Joseph authored
      app_voicemail was using the stasis cache to build and maintain a
      list of mailboxes that had subscribers.  It then used this list
      to determine if a mailbox should be polled for new messages if
      polling was enabled.  For this to work, stasis had to cache every
      subscription and unsubscription to the mailbox which caused a lot of
      overhead, both cpu and memory related.
      
      Since polling is only required when changes are being made to
      mailboxes outside of app_voicemail and since the number of mailboxes
      that don't have any subscribers is likely to be very low, all
      mailboxes are now polled instead of just the ones with subscribers.
      
      This paves the way for disabling the caching of stasis subscription
      change messages.
      
      Also fixed cleanup in some of the unit tests that not only left
      test users in the users list but also caused segfaults if the tests
      were run more than once.
      
      ASTERISK-27121
      
      Change-Id: I5cceb737246949f9782955c64425b8bd25a9e9ee
      cdece3b6
  7. Sep 06, 2018
  8. Sep 03, 2018
  9. Aug 22, 2018
    • Sean Bright's avatar
      app_queue: Silence GCC 8 compiler warning · 14c6f8be
      Sean Bright authored
      I'm only seeing an error in 14+, so I assume it is due to different
      compiler options:
      
      app_queue.c: In function ‘handle_queue_add_member’:
      app_queue.c:10234:19: error: ‘%d’ directive writing between 1 and 11
          bytes into a region of size 3 [-Werror=format-overflow=]
           sprintf(num, "%d", state);
                         ^~
      app_queue.c:10234:18: note: directive argument in the range
          [-2147483648, 99]
           sprintf(num, "%d", state);
                        ^~~~
      
      Compiler: gcc version 8.0.1 20180414 (experimental)
          [trunk revision 259383] (Ubuntu 8-20180414-1ubuntu2) 
      
      Change-Id: I18577590da46829c1ea7d8b82e41d69f105baa10
      14c6f8be
  10. Aug 13, 2018
    • Ivan Poddubny's avatar
      app_queue: set QUEUESTATUS to LEAVEEMPTY instead of CONTINUE · 2ce06109
      Ivan Poddubny authored
      When a call leaves a queue on leaveempty condition, QUEUESTATUS
      must be set to LEAVEEMPTY, no matter whether Queue was executed with or
      without the "c" (continue) option.
      
      The regression was introduced in the fix for ASTERISK_25665.
      The following fix (ASTERISK_27065) was incomplete, as QUEUESTATUS was
      overwritten in case when "c" is set, regardless of what was the cause
      for leaving the queue.
      
      ASTERISK-27973 #close
      Reported-by: Valentin Safonov
      
      Change-Id: Iec013fe6a26a4e825ca572a1dda4f3cee5f6f80c
      2ce06109
  11. Jul 18, 2018
  12. Jul 13, 2018
    • George Joseph's avatar
      app_confbridge: Use the SDP 'label' attribute to correlate users · 34f3fe95
      George Joseph authored
      Previously, the msid "label" attribute was used to correlate
      participant info but because streams could be reused, the msid
      wasn't being updated correctly when someone left the bridge and
      another joined.
      
      Now, instead of looking for the msid attribute on a channel's streams,
      app_confbridge sets an "SDP:LABEL" attribute on the stream which
      res_pjsip_sdp_rtp looks for.  If it finds it, it adds a "label"
      attribute to the current sdp.
      
      Change-Id: I6cbaa87fb59a2e0688d956e72d2d09e4ac20d5a5
      34f3fe95
  13. Jun 29, 2018
    • Robert Mordec's avatar
      app_confbridge: Bridge and announcers not removed if conference ends quickly · 9d3f3a4b
      Robert Mordec authored
      If a conference is ended very quickly after it was created (i.e., the
      first user immediately hangs up) then the conference bridge and announcer
      channels are not removed.
      
      When a conference is created, the push_announcer() function is added to
      the playback queue task processor and the conference object reference is
      bumped.  If a conference is ended while the push_announcer() function is
      still going then the ao2_cleanup(conference) at the end of
      push_announcer() will call the destructor function -
      destroy_conference_bridge().
      
      The destroy_conference_bridge() function will then add the
      hangup_playback() task to the playback queue and will wait for it to end.
      Since it is already a current task of the playback queue it will wait
      forever.
      
      This patch makes the conference thread call push_announcer() directly.
      This way the conference object reference bump is not needed.  Since the
      playback queue task processor is only used by the conference thread
      itself, there is no danger of trying to play announcements before the
      announcer is pushed to the bridge.
      
      ASTERISK-27870 #close
      
      Change-Id: I947a50fb121422d90fd1816d643a54d75185a477
      9d3f3a4b
  14. Jun 26, 2018
    • George Joseph's avatar
      app_confbridge: Move participant info code to confbridge_manager. · 5f12e2bd
      George Joseph authored
      With the participant info code in app_confbridge, we were still
      in the process of adding the channel to the bridge when trying to send
      an in-dialog MESSAGE.  This caused 2 threads to grab the channel
      blocking flag at the same time.  To mitigate this, the participant
      info code was moved to confbridge_manager so it runs after all
      channel/bridge actions have finished.
      
      Change-Id: I228806ac153074f45e0b35d5236166e92e132abd
      5f12e2bd
  15. Jun 21, 2018
    • Kristian F. Høgh's avatar
      app_queue: Add option for predial handlers on caller and callee channels · 184b375b
      Kristian F. Høgh authored
      Add predial handler support to app_queue.  app_dial (ASTERISK_19548) and
      app_originate (ASTERISK_26587) have the ability to execute predial
      handlers on caller and callee channels.  This patch adds predial handlers
      to app_queue and uses the same options as Dial and Originate (b and B).
      The caller routine gets executed when the caller first enters the queue.
      The callee routine gets executed for each queue member when they are about
      to be called.
      
      ASTERISK-27912
      
      Change-Id: I5acf5c32587ee008658d12e8a8049eb8fa4d0f24
      184b375b
  16. Jun 19, 2018
  17. Jun 15, 2018
    • Sam Wierema's avatar
      app_mp3: remove 10 seconds of silence after mp3 playback · 4c7ab734
      Sam Wierema authored
      This patch changes the way asterisk polls output from mpg123, instead
      of waiting for 10 seconds(when playing an http url) it now uses a
      timeout of one second and iterates 10 times using this same timeout.
      
      The main difference is that for every timeout asterisk receives it now
      checks if mpg123 is still running before poll again.
      
      ASTERISK-27752
      
      Change-Id: Ib7df8462e3e380cb328011890ad9270d9e9b4620
      4c7ab734
  18. Jun 13, 2018
    • George Joseph's avatar
      app_confbridge: Enable sending events to participants · e7a7506f
      George Joseph authored
      ConfBridge can now send events to participants via in-dialog MESSAGEs.
      All current Confbridge events are supported, such as ConfbridgeJoin,
      ConfbridgeLeave, etc.  In addition to those events, a new event
      ConfbridgeWelcome has been added that will send a list of all
      current participants to a new participant.
      
      For all but the ConfbridgeWelcome event, the JSON message contains
      information about the bridge, such as its id and name, and information
      about the channel that triggered the event such as channel name,
      callerid info, mute status, and the MSID labels for their audio and
      video tracks. You can use the labels to correlate callerid and mute
      status to specific video elements in a webrtc client.
      
      To control this behavior, the following options have been added to
      confbridge.conf:
      
      bridge_profile/enable_events:  This must be enabled on any bridge where
      events are desired.
      
      user_profile/send_events:  This must be set for a user profile to send
      events.  Different user profiles connected to the same bridge can have
      different settings.  This allows admins to get events but not normal
      users for instance.
      
      user_profile/echo_events:  In some cases, you might not want the user
      triggering the event to get the event sent back to them.  To prevent it,
      set this to false.
      
      A change was also made to res_pjsip_sdp_rtp to save the generated msid
      to the stream so it can be re-used.  This allows participant A's video
      stream to appear as the same label to all other participants.
      
      Change-Id: I26420aa9f101f0b2387dc9e2fd10733197f1318e
      e7a7506f
  19. Jun 04, 2018
    • George Joseph's avatar
      app_sendtext: Allow content types other than text/plain · 437ab418
      George Joseph authored
      There was no real reason to limit the conteny type to text/plain other
      than that's what it was limited to before.  Now any text/* content
      type will be allowed for channel drivers that don't support enhanced
      messaging and any type will be allowed for channel drivers that do
      support enhanced messaging.
      
      Change-Id: I94a90cfee98b4bc8e22aa5c0b6afb7b862f979d9
      437ab418
  20. Jun 01, 2018
    • William McCall's avatar
      app_confbridge: Add talking indicator for ConfBridgeList AMI response · a7f41212
      William McCall authored
      When an AMI client connects, it cannot determine if a user was talking
      prior to a transition in the user speaking state (which would generate
      a ConfbridgeTalking event). This patch causes app_confbridge to track the
      talking state and make this state available via ConfBridgeList.
      
      ASTERISK-27877 #close
      
      Change-Id: I19b5284f34966c3fda94f5b99a7e40e6b89767c6
      a7f41212
  21. May 29, 2018
    • Richard Mudgett's avatar
      app_meetme: Fix manager event documentation for several events. · 6bbede84
      Richard Mudgett authored
      The MeetmeJoin, MeetmeLeave, MeetmeEnd, MeetmeMute, MeetmeTalking, and
      MeetmeTalkRequest AMI events were documented with sending out a Usernum
      header when the User header was actually output.
      
      * Change the online documentation to match reality.
      
      ASTERISK-27873
      ASTERISK-25261
      
      Change-Id: I437bc70618d07c183c9624b7069c2fcae7f17a39
      6bbede84
  22. May 22, 2018
  23. May 17, 2018
  24. May 11, 2018
    • Corey Farrell's avatar
      Fix GCC 8 build issues. · b5914d90
      Corey Farrell authored
      This fixes build warnings found by GCC 8.  In some cases format
      truncation is intentional so the warning is just suppressed.
      
      ASTERISK-27824 #close
      
      Change-Id: I724f146cbddba8b86619d4c4a9931ee877995c84
      b5914d90
  25. May 07, 2018
    • Corey Farrell's avatar
      app_macro: Prevent infinite loop in find_matching_priority. · d855658f
      Corey Farrell authored
      Use AST_PBX_MAX_STACK to escape if we recurse 128 times.  This will
      prevent crash if dialplan contains an include loop.  Log an error when
      this occurs, at most one message per call to Macro() so we avoid logger
      spam.
      
      ASTERISK-26570 #close
      
      Change-Id: I6c71b76998c31434391b150de055ae9a531e31da
      d855658f
  26. Apr 18, 2018
  27. Apr 17, 2018
    • Joshua Colp's avatar
      bridge_softmix / app_confbridge: Add support for REMB combining. · 8de3fa2b
      Joshua Colp authored
      This change adds the ability for multiple REMB reports in
      bridge_softmix to be combined according to a configured
      behavior into a single report. This single report is sent
      back to the sender of video, which adjusts the encoding bitrate
      to be at or below the bitrate of the report. The available
      behaviors are: lowest, highest, and average. Lowest uses the
      lowest received bitrate. Highest uses the highest received
      bitrate. Average goes through the received bitrates adding
      them to the previous average and creates a new average.
      
      Other behaviors can be added in the future and the existing
      average one may be adjusted, but this provides the foundation
      to do so.
      
      Support for configuring which behavior to use has been
      added to app_confbridge.
      
      ASTERISK-27804
      
      Change-Id: I9eafe4e7c1f72d67074a8d6acb26bfcf19322b66
      8de3fa2b
    • George Joseph's avatar
      app_sendtext: Enhance SendText to support Enhanced Messaging · 8135558b
      George Joseph authored
      SendText now accepts new channel variables that can be used
      to override the To and From display names and set the Content-Type
      of a message.  Since you can now set Content-Type, other text/*
      content types are now valid.
      
      Change-Id: I648b4574478119f95de09d9f08e9595831b02830
      8135558b
  28. Apr 04, 2018
  29. Apr 03, 2018
    • Joshua Colp's avatar
      app_confbridge / bridge_softmix: Add ability to configure REMB interval. · 0f6431e8
      Joshua Colp authored
      This change adds a configuration option to app_confbridge which can be
      used to set the interval at which we will send a combined REMB (remote
      estimated maximum bitrate) frame to sources of video. The bridging API
      has also been extended slightly to allow setting this so bridge_softmix
      can use it.
      
      ASTERISK-27786
      
      Change-Id: I0e49eae60f369c86434414f3cb8278709c793c82
      0f6431e8
  30. Mar 22, 2018
  31. Mar 17, 2018
    • Alexander Traud's avatar
      BuildSystem: Remove unused dependency on libltdl. · 10a97882
      Alexander Traud authored
      Asterisk does not need the development package of libltdl, because it does not
      use any symbol of -lltdl directly. Instead, it uses the runtime package via the
      shared library -lodbc. On the supported platforms, that shared library declares
      its dependency on -lltdl correctly, otherwise AST_EXT_LIB_CHECK would have
      failed.
      
      ASTERISK-27745
      
      Change-Id: Icd315809b8e7978203431f3afb66240dd3a040ba
      10a97882
  32. Mar 16, 2018
    • Florian Floimair's avatar
      app_dial: Enable early-media video · ecc846b2
      Florian Floimair authored
      Certain applications (e.g. door-phone) require that also video is transmitted
      before a call is accepted.
      
      Change-Id: I9842e1dc2f6e1c2c49dc33fe615255007d2f821e
      ecc846b2
    • George Joseph's avatar
      app_voicemail: Fix json blob errors · 4d1e3fef
      George Joseph authored
      When app_voicemail calls ast_test_suite_notify with the results of
      a user keypress, it formats the keypress as '%c'.  If the user hung up
      or some other error occurrs, the result of the keypress is a non
      printable character.  This ultimately causes json_vpack_ex to think
      it's being passed a non utf-8 string and return an error.
      
      * Keypress results passed to ast_test_suite_notify are now checked with
        isprint() and a '?' is substituted if the check fails.
      
      Change-Id: I78ee188916bbac840f3d03f40201b692347ea865
      4d1e3fef
  33. Mar 14, 2018
    • Corey Farrell's avatar
      loader: Convert reload_classes to built-in modules. · 572a508e
      Corey Farrell authored
      * acl (named_acl.c)
      * cdr
      * cel
      * ccss
      * dnsmgr
      * dsp
      * enum
      * extconfig (config.c)
      * features
      * http
      * indications
      * logger
      * manager
      * plc
      * sounds
      * udptl
      
      These modules are now loaded at appropriate time by the module loader.
      Unlike loadable modules these use AST_MODULE_LOAD_FAILURE on error so
      the module loader will abort startup on failure of these modules.
      
      Some of these modules are still initialized or shutdown from outside the
      module loader.  logger.c is initialized very early and shutdown very
      late, manager.c is initialized by the module loader but is shutdown by
      the Asterisk core (too much uses it without holding references).
      
      Change-Id: I371a9a45064f20026c492623ea8062d02a1ab97f
      572a508e
  34. Mar 08, 2018
    • Richard Mudgett's avatar
      Complete deprecating legacy modules. · e6738b79
      Richard Mudgett authored
      The menuselect comment was updated to deprecate these modules but the
      AST_MODULE_INFO block at the end of file was missed.
      
      ASTERISK-27671
      
      Change-Id: I63070b5c4d4f08af010c6034acd4793c1bcef839
      e6738b79
  35. Mar 07, 2018
Loading