Skip to content
Snippets Groups Projects
  1. Dec 11, 2018
  2. Dec 10, 2018
  3. Dec 07, 2018
    • Sean Bright's avatar
      utils: Wrap socket() and pipe() to reduce syscalls · 6d69fb3c
      Sean Bright authored
      Some platforms provide an implementation of socket() and pipe2() that allow the
      caller to specify that the resulting file descriptors should be non-blocking.
      
      Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
      calls to fcntl() to set the O_NONBLOCK flag afterwards.
      
      In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
      wrapper if it is available.
      
      Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0
      6d69fb3c
  4. Dec 06, 2018
  5. Dec 05, 2018
  6. Dec 03, 2018
  7. Dec 02, 2018
    • Chris-Savinovich's avatar
      test_websocket_client.c: Disable websocket_client_create_and_connect test. · 6c13b208
      Chris-Savinovich authored
      This test was occasionally failing, with:
      
        WARNING[5812]: http.c:1939 httpd_helper_thread: Failed to set
            TCP_NODELAY on HTTP connection: Bad file descriptor
        ERROR[5812]: iostream.c:91 ast_iostream_nonblock: Failed to get
            fcntl() flags for file descriptor: Bad file descriptor
        ERROR[5812]: iostream.c:569 ast_iostream_close: close() failed: Bad
            file descriptor
      
      Disabled for now by making the test explicit only.
      
      Change-Id: I778f6cbb6104c6b4e89737a2eaf1a9540888d351
      6c13b208
  8. Nov 30, 2018
  9. Nov 29, 2018
  10. Nov 26, 2018
    • George Joseph's avatar
      test_cel: Plug a few ref leaks · f4924d40
      George Joseph authored
      These are only a few of the leaks.  The large number of macros
      and return paths in this file would make a weeks worth of work
      to plug them all.
      
      Change-Id: Ie2369fa944023d44767871c5c30974cb077ffb56
      f4924d40
    • George Joseph's avatar
      bridges: Remove reliance on stasis caching · 3667c5e1
      George Joseph authored
      * The bridging core no longer uses the stasis cache for bridge
        snapshots.  The latest bridge snapshot is now stored on the
        ast_bridge structure itself.
      
      * The following APIs are no longer available since the stasis cache
        is no longer used:
          ast_bridge_topic_cached()
          ast_bridge_topic_all_cached()
      
      * A topic pool is now used for individual bridge topics.
      
      * The ast_bridge_cache() function was removed since there's no
        longer a separate container of snapshots.
      
      * A new function "ast_bridges()" was created to retrieve the
        container of all bridges.  Users formerly calling
        ast_bridge_cache() can use the new function to iterate over
        bridges and retrieve the latest snapshot directly from the
        bridge.
      
      * The ast_bridge_snapshot_get_latest() function was renamed to
        ast_bridge_get_snapshot_by_uniqueid().
      
      * A new function "ast_bridge_get_snapshot()" was created to retrieve
        the bridge snapshot directly from the bridge structure.
      
      * The ast_bridge_topic_all() function now returns a normal topic
        not a cached one so you can't use stasis cache functions on it
        either.
      
      * The ast_bridge_snapshot_type() stasis message now has the
        ast_bridge_snapshot_update structure as it's data.  It contains
        the last snapshot and the new one.
      
      * cdr, cel, manager and ari have been updated to use the new
        arrangement.
      
      Change-Id: I7049b80efa88676ce5c4666f818fa18ad1985369
      3667c5e1
    • Jenkins2's avatar
    • Joshua Colp's avatar
    • Joshua Colp's avatar
    • Joshua Colp's avatar
      stasis: Segment channel snapshot to reduce creation cost. · 50ac85cb
      Joshua Colp authored
      When a channel snapshot was created it used to be done
      from scratch, copying all data (many strings). This incurs
      a cost when doing so.
      
      This change segments the channel snapshot into different
      components which can be reused if unchanged from the
      previous snapshot creation, reducing the cost. In normal
      cases this results in some pointers being copied with
      reference count being bumped, some integers being set,
      and a string or two copied. The other benefit is that it
      is now possible to determine if a channel snapshot update
      is redundant and thus stop it before a message is published
      to stasis.
      
      The specific segments in the channel snapshot were split up
      based on whether they are changed together, how often they
      are changed, and their general grouping. In practice only
      1 (or 0) of the segments actually get changed in normal
      operation.
      
      Invalidation is done by setting a flag on the channel when
      the segment source is changed, forcing creation of a new
      segment when the channel snapshot is created.
      
      ASTERISK-28119
      
      Change-Id: I5d7ef3df963a88ac47bc187d73c5225c315f8423
      50ac85cb
    • Joshua Colp's avatar
      stasis: Use an implementation specific channel snapshot cache. · d0ccbb33
      Joshua Colp authored
      Channels no longer use the Stasis cache for channel snapshots. Instead
      they are stored in a hash table in stasis_channels which reduces the
      number of Stasis messages created and allows better storage.
      
      As a result the following APIs are no longer available since the stasis
      cache is no longer used:
      ast_channel_topic_cached()
      ast_channel_topic_all_cached()
      
      The ast_channel_cache_all() and ast_channel_cache_by_name() functions
      now return an ao2_container of ast_channel_snapshots rather than
      a container of stasis_messages therefore you can't (and don't need
      to) call stasis_cache functions on it.
      
      The ast_channel_topic_all() function now returns a normal topic not
      a cached one so you can't use stasis cache functions on it either.
      
      The ast_channel_snapshot_type() stasis message now has the
      ast_channel_snapshot_update structure as it's data. It contains the
      last snapshot and the new one.
      
      ast_channel_snapshot_get_latest() still returns the latest snapshot.
      
      The latest snapshot is now stored on the channel itself to eliminate
      cache hits when Stasis messages that have the snapshot as a payload
      are created.
      
      ASTERISK-28102
      
      Change-Id: I9334febff60a82d7c39703e49059fa3a68825786
      d0ccbb33
    • Joshua Colp's avatar
    • Corey Farrell's avatar
      jansson: Upgrade to 2.12. · 8e1ab4f1
      Corey Farrell authored
      This brings in jansson-2.12, removes all patches that were merged
      upstream.  README is created in third-party/jansson/patches to explain
      how to add patches but also because the patches folder must exist for
      the build process to succeed.
      
      Change-Id: If0f2d541c50997690660c21fb7b03d625a5cdadd
      Unverified
      8e1ab4f1
  11. Nov 23, 2018
    • Alexei Gradinari's avatar
      RTP: need to reset DTMF last seqno/timestamp on voice packet with marker bit · 3f530412
      Alexei Gradinari authored
      The marker bit set on the voice packet indicates the start
      of a new stream and a new time stamp.
      Need to reset the DTMF last sequence number and the timestamp
      of the last END packet.
      
      If the new time stamp is lower then the timestamp of the last DTMF END packet
      the asterisk drops all DTMF frames as out of order.
      
      This bug was caught using Cisco ip-phone SPA50X and codec g722.
      On SIP session update the SPA50X resets stream indicating it with market bit
      and a new timestamp is twice smaller then the previous.
      
      ASTERISK-28162 #close
      
      Change-Id: If9c5742158fa836ad549713a9814d46a5d2b1620
      3f530412
  12. Nov 21, 2018
  13. Nov 20, 2018
  14. Nov 19, 2018
Loading