Skip to content
Snippets Groups Projects
  1. Apr 28, 2017
  2. Apr 27, 2017
  3. Apr 26, 2017
    • Kevin Harwell's avatar
      res_pjsip/res_pjsip_callerid: NULL check on caller id name string · c6b757fa
      Kevin Harwell authored
      It's possible for a name in a party id structure to be marked as valid, but the
      name string itself be NULL (for instance this is possible to do by using the
      dialplan CALLERID function). There were a couple of places where the name was
      validated, but the string itself was not checked before passing it to functions
      like 'strlen'. This of course caused a crashed.
      
      This patch adds in a NULL check before attempting to pass it into a function
      that is not NULL tolerant.
      
      ASTERISK-25823 #close
      
      Change-Id: Iaa6ffe9d92f598fe9e3c8ae373fadbe3dfbf1d4a
      c6b757fa
    • Kevin Harwell's avatar
      vector: defaults and indexes · cf3429b9
      Kevin Harwell authored
      Added an pre-defined integer vector declaration. This makes integer vectors
      easier to declare and pass around. Also, added the ability to default a vector
      up to a given size with a default value. Lastly, added functionality that
      returns the "nth" index of a matching value.
      
      Also, updated a unit test to test these changes.
      
      Change-Id: Iaf4b51b2540eda57cb43f67aa59cf1d96cdbcaa5
      cf3429b9
    • Joshua Colp's avatar
      frame: Better handle interpolated frames. · 985a5fd7
      Joshua Colp authored
      Interpolated frames are frames which contain a number of
      samples but have no actual data. Audiohooks did not
      handle this case when translating an incoming frame into
      signed linear. It assumed that a frame would always contain
      media when it may not. If this occurs audiohooks will now
      immediately return and not act on the frame.
      
      As well for users of ast_trans_frameout the function has
      been changed to be a bit more sane and ensure that the data
      pointer on a frame is set to NULL if no data is actually
      on the frame. This allows the various spots in Asterisk that
      check for an interpolated frame based on the presence of a
      data pointer to work as expected.
      
      ASTERISK-26926
      
      Change-Id: I7fa22f631fa28d540722ed789ce28e84c7f8662b
      985a5fd7
    • Jenkins2's avatar
    • George Joseph's avatar
      pjproject_bundled: Add --disable-libwebrtc to configure · 858ed604
      George Joseph authored
      Without the disable, pjproject tries to build it's internal
      webrtc implementation which requires sse2.  This fails on
      platforms without sse2.
      
      ASTERISK-26930 #close
      Reported-by: abelbeck
      
      Change-Id: I07231f9160c35cfa42b194d3aad4e7d51fd9a410
      858ed604
    • George Joseph's avatar
  4. Apr 25, 2017
    • Jenkins2's avatar
    • George Joseph's avatar
    • Sean Bright's avatar
      cleanup: Fix fread() and fwrite() error handling · f5b67871
      Sean Bright authored
      Cleaned up some of the incorrect uses of fread() and fwrite(), mostly in
      the format modules. Neither of these functions will ever return a value
      less than 0, which we were checking for in some cases.
      
      I've introduced a fair amount of duplication in the format modules, but
      I plan to change how format modules work internally in a subsequent
      patch set, so this is simply a stop-gap.
      
      Change-Id: I8ca1cd47c20b2c0b72088bd13b9046f6977aa872
      f5b67871
    • George Joseph's avatar
    • Joshua Colp's avatar
      alembic: Add table for 'resource_list' PJSIP RLS type. · 199d4776
      Joshua Colp authored
      This change adds an Alembic migration which adds a
      ps_resource_list table that can contain resource_list
      RLS configuration objects.
      
      ASTERISK-26929
      
      Change-Id: I7c888fafc67b3e87012de974f71ca7a5b8b1ec05
      199d4776
    • Joshua Colp's avatar
      sdp: Add support for T.38 · 19a79ae1
      Joshua Colp authored
      This change adds a T.38 format which can be used in a stream
      topology to specify that a UDPTL stream needs to be created.
      The SDP API has been changed to understand T.38 and create
      the UDPTL session, add the attributes, and parse the attributes.
      
      This change does not change the boundary of the T.38 state
      machine. It is still up to the channel driver to implement and
      act on it (such as queueing control frames or reacting to them).
      
      ASTERISK-26949
      
      Change-Id: If28956762ccb8ead562ac6c03d162d3d6014f2c7
      19a79ae1
    • Mark Michelson's avatar
      SDP: Ensure SDPs "merge" properly. · 32b3e36c
      Mark Michelson authored
      The gist of this work ensures that when a remote SDP is received, it is
      merged properly with the local capabilities. The remote SDP is converted
      into a stream topology. That topology is then merged with the current
      local topology on the SDP state. That new merged topology is then used
      to create an SDP. Finally, adjustments are made to RTP instances based
      on knowledge gained from the remote SDP.
      
      There are also a battery of tests in this commit that ensure that some
      basic SDP merges work as expected.
      
      While this may not sound like a big change, it has the property that it
      caused lots of ancillary changes.
      
      * The remote SDP is no longer stored on the SDP state. Biggest reason:
        there's no need for it. The remote SDP is used at the time it is being
        set and nowhere else.
      
      * Some new SDP APIs were added in order to find attributes and convert
        generic SDP attributes into rtpmap structures.
      
      * Writing tests made me realize that retrieving a value from an SDP
        options structure, the SDP options needs to be made const.
      
      * The SDP state machine was essentially gutted by a previous commit.
        Initially, I attempted to reinstate it, but I found that as it had
        been defined, it was not all that useful. What was more useful was
        knowing the role we play in SDP negotiation, so the SDP state machine
        has been transformed into an indicator of role.
      
      * Rather than storing separate local and joint stream state
        capabilities, it makes more sense to keep track of current stream
        state and update it as things change.
      
      Change-Id: I5938c2be3c6f0a003aa88a39a59e0880f8b2df3d
      32b3e36c
  5. Apr 24, 2017
    • Sean Bright's avatar
      res_hep: Add additional config initialization and validation · 0611f2ca
      Sean Bright authored
      * Initialize hepv3_runtime_data.sockfd to -1 so that our ao2 destructor
        does not close fd 0
      
      * Add logging output when the required option - capture_address - is not
        specified.
      
      * Remove a no longer relevant #define and correct related documentation
      
      * Pass appropriate flags to aco_option_register so that capture_address
        cannot be the empty string.
      
      ASTERISK-26953 #close
      
      Change-Id: Ief08441bc6596d6f1718fa810e54a5048124f076
      0611f2ca
    • Sean Bright's avatar
      core: Use eventfd for alert pipes on Linux when possible · 59203c51
      Sean Bright authored
      The primary win of switching to eventfd when possible is that it only
      uses a single file descriptor while pipe() will use two. This means for
      each bridge channel we're reducing the number of required file
      descriptors by 1, and - if you're using timerfd - we also now have 1
      less file descriptor per Asterisk channel.
      
      The API is not ideal (passing int arrays), but this is the cleanest
      approach I could come up with to maintain API/ABI.
      
      I've also removed what I believe to be an erroneous code block that
      checked the non-blocking flag on the pipe ends for each read. If the
      file descriptor is 'losing' its non-blocking mode, it is because of a
      bug somewhere else in our code.
      
      In my testing I haven't seen any measurable difference in performance.
      
      Change-Id: Iff0fb1573e7f7a187d5211ddc60aa8f3da3edb1d
      59203c51
  6. Apr 21, 2017
  7. Apr 20, 2017
  8. Apr 19, 2017
    • Sean Bright's avatar
      pbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified · c47b3e74
      Sean Bright authored
      Both ast_pbx_outgoing_app() and ast_pbx_outgoing_exten() cause the core
      to spawn a new thread to perform the dial. When AST_OUTGOING_WAIT_COMPLETE
      is passed to these functions, the calling thread will be blocked until
      the newly created channel has been hung up.
      
      After this patch, we run the dial on the current thread rather than
      spawning a new one. The only in-tree code that passes
      AST_OUTGOING_WAIT_COMPLETE is pbx_spool, so you should see reduced
      thread usage if you are using .call files.
      
      Change-Id: I512735d243f0a9da2bcc128f7a96dece71f2d913
      c47b3e74
    • Richard Mudgett's avatar
      res_rtp_asterisk.c: Fix crash in RTCP DTLS operation. · afad2ffd
      Richard Mudgett authored
      Occasionally a crash happens when processing the RTCP DTLS timeout
      handler.  The RTCP DTLS timeout timer could be left running if we have not
      completed the DTLS handshake before we place the call on hold or we
      attempt direct media.
      
      * Made ast_rtp_prop_set() stop the RTCP DTLS timer when disabling RTCP.
      
      * Made some sanity tweaks to ast_rtp_prop_set() when switching from
      standard RTCP mode to RTCP multiplexed mode.
      
      ASTERISK-26692 #close
      
      Change-Id: If6c64c79129961acfa4b3d63a864e8f6b664acc0
      afad2ffd
Loading