Skip to content
Snippets Groups Projects
  1. Oct 16, 2018
    • Richard Mudgett's avatar
      bundled pjproject: Remove timer cleanup usage patch. · 915861b4
      Richard Mudgett authored
      This patch is not in the upstream pjproject and does unsafe things with
      the timer->_timer_id and timer->_grp_lock values in pj_timer_entry_reset()
      outside of the timer heap lock.  pj_timer_entry_reset() is also called for
      timers that are not about to be rescheduled in a few places.
      
      Change-Id: I4fe0b4bc648f7be5903cf4531b94fc87275713c1
      915861b4
  2. Sep 28, 2018
  3. Sep 24, 2018
  4. Sep 21, 2018
    • Kevin Harwell's avatar
      rtp_engine: rtcp_report_to_json can overflow the ssrc integer value · 31fba4e8
      Kevin Harwell authored
      When writing an RTCP report to json the code attempts to pack the "ssrc" and
      "source_ssrc" unsigned integer values as a signed int value type. This of course
      means if the ssrc's unsigned value is greater than that which can fit into a
      signed integer value it gets converted to a negative number. Subsequently, the
      negative value goes out in the json report.
      
      This patch now packs the value as a json_int_t, which is the widest integer type
      available on a given system. This should make it so the value no longer
      overflows.
      
      Note, this was caught by two failing tests hep/rtcp-receiver/ and
      hep/rtcp-sender.
      
      Change-Id: I2af275286ee5e795b79f0c3d450d9e4b28e958b0
      Unverified
      31fba4e8
  5. Sep 19, 2018
  6. Sep 18, 2018
    • Joshua Colp's avatar
      pjproject: Upgrade to 2.8. · ce9a980b
      Joshua Colp authored
      This change brings in PJSIP 2.8, removes all the patches
      that were merged upstream, and makes a minor change to
      support a breaking change that was done.
      
      ASTERISK-28059
      
      Change-Id: I5097772b11b0f95c3c1f52df6400158666f0a189
      ce9a980b
  7. Sep 11, 2018
  8. Aug 03, 2018
    • Alexander Traud's avatar
      pjproject_bundled: Fix for Solaris builds. Do not undef s_addr. · 603d1e8d
      Alexander Traud authored
      The authors of PJProject undef s_addr because of some issue in Microsoft
      Windows. However in Oracle Solaris, s_addr is not a structure member, but
      defined to map to the real structure member.
      
      Updates the patch from ASTERISK_20366
      
      ASTERISK-27997
      
      Change-Id: I8223026d4d54e2a46521085fcc94bfa6ebe35b11
      603d1e8d
    • Alexander Traud's avatar
      pjproject_bundled: Find shared libraries in root --with-ssl=PATH. · 1c7c867c
      Alexander Traud authored
      The script configure from Teluu expects shared libraries (.so) in a subfolder
      called 'lib', when --with-xyz=PATH is specified. However for OpenSSL, the
      default location is the root of the source folder = PATH. Furthermore, Asterisk
      supports both, 'lib' and root. For consistency and because Asterisk is using
      (only) OpenSSL in PJProject, it is enhanced to support both locations, just
      like Asterisk.
      
      ASTERISK-27995
      
      Change-Id: I8eb916a88b6b8c22e29bb40bee8faaca6c73406f
      1c7c867c
  9. Aug 01, 2018
    • Torrey Searle's avatar
      thirdparty/pjproject: fix deadlock in response retransmissions · 3424795f
      Torrey Searle authored
      The tdata containing the response can be shared by both the dialog
      object and the tsx object.  In order to prevent the race condition
      between the tsx retransmission and the dialog sending a response,
      clone the tdata before modifying it for the dialog send response.
      
      ASTERISK-27966 #close
      
      Change-Id: Ic381004a3a212fe1d8eca0e707fe09dba4a6ab4e
      3424795f
    • Corey Farrell's avatar
      Build System: Improve ccache matching for different menuselect options. · a10a3aff
      Corey Farrell authored
      Changing any Menuselect option in the `Compiler Flags` section causes a
      full rebuild of the Asterisk source tree.  Every enabled option causes
      a #define to be added to buildopts.h, thus breaking ccache caching for
      every source file that includes "asterisk.h".  In most cases each option
      only applies to one or two files.  Now we only define those options for
      the specific sources which use them, this causes much better cache
      matching when working with multiple builds.  For example testing code
      with an without MALLOC_DEBUG will now use just over half the ccache
      size, only main/astmm.o will have two builds cached instead of every
      file.
      
      Reorder main/Makefile so _ASTCFLAGS set on specific object files are all
      together, sorted by filename.  Stop adding -DMALLOC_DEBUG to CFLAGS of
      bundled pjproject, this define is no longer used by any header so only
      serves to break cache.
      
      The only code change is a slight adjustment to how main/astmm.c is
      initialized.  Initialization functions always exist so main/asterisk.c
      can call them unconditionally.  Additionally rename the astmm
      initialization functions so they are not exported.
      
      Change-Id: Ie2085237a964f6e1e6fff55ed046e2afff83c027
      a10a3aff
  10. Jul 25, 2018
  11. Jul 24, 2018
    • Corey Farrell's avatar
      Build System: Fix bundled jansson install. · af5984d6
      Corey Farrell authored
      Update the bundled jansson Makefile to do nothing during Asterisk
      install, use a target that is not phony to initiate the jansson make and
      install.
      
      Change-Id: I7643cc3d39af9feba8fc0da676b646efc5f8b3bb
      af5984d6
  12. Jul 20, 2018
  13. Jul 18, 2018
  14. Jul 17, 2018
    • Nick French's avatar
      res_pjsip: Remove spurious error logging when printing silent headers · 0e897611
      Nick French authored
      Asterisk patched the pjproject source to avoid crashing when pjproject
      sip_msg headers are encountered with NULL vptr's, but the patch also
      output error messages for some valid headers which simply did not need
      to be added to the message itself, such as hidden route headers.
      
      pjproject has since applied a similar patch to their baseline to avoid
      crashes, but their version also avoids the spurious error logging.
      
      Lets use their patch instead.
      
      ASTERISK-27961 #close
      
      Change-Id: I2ddbd82c8da10e0dcc9807a48089d1f3c2d6e389
      0e897611
  15. Jul 16, 2018
    • Richard Mudgett's avatar
      Build: Fix modules getting their optimization setting overridden. · 5febc995
      Richard Mudgett authored
      Asterisk modules that use PJPROJECT services have their compiler
      optimization and possibly their symbolic debug options overridden by the
      PJPROJECT configure script selected settings.
      
      * We need to filter-out any -O and -g options in PJ_CFLAGS before echoing
      out the result so the PJPROJECT_INCLUDE variable does not override the
      Asterisk module settings when using bundled PJPROJECT.
      
      NOTE: This patch only has an effect when using bundled PJPROJECT.
      
      ASTERISK-27563
      
      Change-Id: If124169735ecf572ad1535cd43bff94cb44d5b30
      5febc995
  16. Jul 13, 2018
    • Alexander Traud's avatar
      Bundled PJPROJECT: Disable internal connection oriented keep-alive. · e19080a1
      Alexander Traud authored
      Turn off the periodic sending of CRLNCRLN.  Default is on (90 seconds),
      which conflicts with the global section's keep_alive_interval option in
      pjsip.conf.
      
      patches:
        pjsip_keep_not_alive.patch submitted by Alexander Traud (License 6520)
      
      ASTERISK-27347
      
      Change-Id: I6a197f56e1830d3b7e5ec70f17025840a290b057
      e19080a1
  17. Jun 26, 2018
    • George Joseph's avatar
      res_pjsip_session: Add ability to accept multiple sdp answers · 880fbff6
      George Joseph authored
      pjproject by default currently will follow media forked during an INVITE
      on outbound calls if the To tag is different on a subsequent response as
      that on an earlier response.  We handle this correctly.  There have
      been reported cases where the To tag is the same but we still need to
      follow the media.  The pjproject patch in this commit adds the
      capability to sip_inv and also adds the capability to control it at
      runtime.  The original "different tag" behavior was always controllable
      at runtime but we never did anything with it and left it to default to
      TRUE.
      
      So, along with the pjproject patch, this commit adds options to both the
      system and endpoint objects to control the two behaviors, and a small
      logic change to session_inv_on_media_update in res_pjsip_session to
      control the behavior at the endpoint level.
      
      The default behavior for "different tags" remains the same at TRUE and
      the default for "same tag" is FALSE.
      
      Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
      ASTERISK-27936
      Reported-by: Ross Beer
      880fbff6
  18. Apr 02, 2018
    • George Joseph's avatar
      pjroject_bundled: Add already-destroyed check to tsx_timer_callback · 48720e7d
      George Joseph authored
      There have been cases that when the transaction timer callback is called
      the tsx is already destroyed.  This causes a crash.  We now check the
      tsx state and return if the tsx is already destroyed.
      
      Change-Id: If93acd5e48d9ca5bb553f2405d5afc836842fe1c
      48720e7d
    • George Joseph's avatar
      pjproject_bundled: timer: Clean up usage of timer heap · 7c03b271
      George Joseph authored
      Added a new pj_timer_entry_reset function that resets a timer_entry
      for re-use.
      
      Changed direct settings of timer_entry fields to use
      pj_timer_entry_init and pj_timer_entry_reset.
      
      Fixed issues where timers were being rescheduled incorrectly.
      
      Change-Id: I5b624bfbc5c1429117484b9b24567293002148e6
      7c03b271
  19. Mar 28, 2018
    • George Joseph's avatar
      pjproject_bundled: Add patch for pj_atomic crashes · a87141dd
      George Joseph authored
      There have been some crashes in the past where something attempts
      to use a pj_atomic after it's already been destroyed.  This patch
      tries to prevent it by making sure that pj_atomic_destroy sets
      its mutex to NULL when it's done.  The pj_mutex functions already check
      for a NULL mutex and just return PJ_EINVAL.
      
      Teluu also added some checks to the win32 implementation as well.
      
      Change-Id: Id25f70b79fdedf44ead6e6e1763a4417d3b3f825
      a87141dd
  20. Mar 17, 2018
    • Alexander Traud's avatar
      BuildSystem: When no download utility is available, display the explanation. · f697025a
      Alexander Traud authored
      ./configure --with-pjproject-bundled
      did not display an explanation, when no download utility like wget, curl, or
      fetch was installed beforehand, although an explanation existed in code. This
      happened because the code expected the variable DOWNLOAD_TO_STDOUT to be empty.
      However, the script ./configure set that variable always.
      
      Change-Id: I64c99b76a03525c69471e5055bf124b36a51bbd4
      f697025a
    • Corey Farrell's avatar
      core: Stop using AST_INLINE_API for allocator functions. · 4d1c9d87
      Corey Farrell authored
      This replaces AST_INLINE_API allocators in utils.h with real functions
      implemented in astmm.c.  Associated macro's are also moved from utils.h
      to astmm.h.
      
      Remove menuselect conflicts between MALLOC_DEBUG and DEBUG_CHAOS as they
      can now be combined.
      
      This has multiple benefits:
      * Simplifies asterisk/utils.h by removing inline functions and use of
        the logger.
      * Removal of these inline functions decreases size of Asterisk and
        module binaries by 1% or more.
      * Puts memory management functions together with and without
        MALLOC_DEBUG enabled, simplifying management of the code.
      * Enables DEBUG_CHAOS for ASTMM_REDIRECT and bundled pjproject.
      
      Change-Id: If9df4377f74bdbb627461b27a473123e05525887
      4d1c9d87
  21. Mar 08, 2018
  22. Mar 01, 2018
    • Richard Mudgett's avatar
      core: Remove ABI effects of MALLOC_DEBUG. · c711e407
      Richard Mudgett authored
      This allows asterisk to be compiled with MALLOC_DEBUG to load modules
      built without MALLOC_DEBUG.  Now pre-compiled third-party modules will
      still work regardless of MALLOC_DEBUG being enabled or not.
      
      Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10
      c711e407
  23. Feb 21, 2018
    • Kevin Harwell's avatar
      AST-2018-003: Crash with an invalid SDP fmtp attribute · 880c69f0
      Kevin Harwell authored
      pjproject's fmtp retrieval function failed to catch invalid fmtp attributes.
      Because of this Asterisk would crash if given an SDP with an invalid fmtp
      attribute.
      
      When retrieving the format this patch now makes sure the fmtp attribute is
      available. If not available it now returns an error status.
      
      ASTERISK-27583 #close
      
      Change-Id: I5cebe000ce2d846cae3af33b6d72c416e51caf2f
      880c69f0
    • Kevin Harwell's avatar
      AST-2018-002: Crash with an invalid SDP media format description · d3a398cf
      Kevin Harwell authored
      pjproject's media format parsing algorithm failed to catch invalid values.
      Because of this Asterisk would crash if given an SDP with a invalid media
      format description.
      
      When parsing the media format description this patch now properly parses the
      value and returns an error status if it can't successfully parse/convert the
      value.
      
      ASTERISK-27582 #close
      
      Change-Id: I883b3a4ef85b6972397f7b56bf46c5779c55fdd6
      d3a398cf
  24. Feb 12, 2018
  25. Jan 16, 2018
    • George Joseph's avatar
      pjproject_bundled: Prevent crash on bad outgoing header · f0a3c977
      George Joseph authored
      We still need to figure out how a bad header is getting into the
      outgoing message but this patch to pjproject prevents attempting
      to print that header and causing a crash.
      
      For several users, this crash happens when sending 183 progress
      messages.
      
      ASTERISK-26832
      Reported by: Ross Beer, Jan Rozhon
      
      Change-Id: Ie5c5a921c890c843587763e7f33f987dfe66bd16
      f0a3c977
  26. Jan 12, 2018
    • Alexander Traud's avatar
      BuildSystem: Really do not pass unknown-warning options to the compiler. · cff3add6
      Alexander Traud authored
      When an older GCC version is called with a too new warning option, GCC exited
      with an error and Asterisk was not built. Therefore, the configure script tests
      the installed compiler whether it supports that warning option. If not, Asterisk
      does not pass it to the installed compiler. However, some compilers (like clang)
      do not exit (error) but give just a warning in such a case. Because the compiler
      did not exit, Asterisk passed the unknown-warning option.
      
      ASTERISK-27560
      
      Change-Id: Ia9d148e689c173df4e91699113605dab2de36038
      cff3add6
  27. Dec 22, 2017
  28. Dec 13, 2017
    • Joshua Colp's avatar
      pjsip: Ignore state changes from old transactions. · 0b532367
      Joshua Colp authored
      When we fail over to a new target we create a new transaction
      and it becomes the current INVITE transaction. This does not
      prevent the previous transaction from raising state changes
      and causing the session to be prematurely disconnected if a
      transport error occurs immediately.
      
      This change backports a fix from PJSIP that eliminates the
      incorrect state change and reduces when they would be raised
      in the first place.
      
      ASTERISK-27408
      
      Change-Id: Id22d087591782eee31311753d11e7eca4b95ef34
      0b532367
  29. Dec 04, 2017
    • Joshua Colp's avatar
      pjproject: Clean up disabling of WebRTC support. · e2715d2c
      Joshua Colp authored
      The definition in config_site.h and the argument to the
      configure script are not necessary to disable WebRTC
      support. The correct argument, --disable-libwebrtc, is
      already passed.
      
      ASTERISK-26980
      
      Change-Id: I27da2c894f87914956a72710222e17462d8a44bc
      e2715d2c
  30. Nov 22, 2017
    • Kevin Harwell's avatar
      pjsip: 183 without To tag does not negotiate media · db21f7f2
      Kevin Harwell authored
      If a 183 with sdp response is receive without a To tag the sdp is not
      negotiated. According to RFC 3261 section 12.1.2 while a To tag is required,
      the client needs to still be able to handle the missing tag case for
      backwards compatibility.
      
      This patch, accepted by and applied to pjproject, makes it so if an incoming
      180/183 with SDP comes in without a To tag it gets appropriately handled.
      
      ASTERISK-27442 #close
      
      Change-Id: Ic9d6b01e05e8f4874eebbd7adfe05d932025d203
      db21f7f2
  31. Nov 20, 2017
  32. Nov 19, 2017
    • Corey Farrell's avatar
      Build: Fix OSX build issues. · b4f7f825
      Corey Farrell authored
      OSX does not support 'readlink -f' or 'sed -r'.  Replace readlink with
      the GNU make macro 'realpath'.  Replace sed with grep in one place, cut
      in the other.
      
      ASTERISK-27332
      
      Change-Id: I5d34ecca905384decb22ead45c913ae5e8aff748
      b4f7f825
  33. Nov 13, 2017
    • George Joseph's avatar
      bundled_pjproject: sip_parser: Fix return code in pjsip_find_msg · f6ebd16b
      George Joseph authored
      The default return code for pjsip_find_msg was PJ_SUCCESS so if
      a Content-Length header wasn't found at all, pjsip_find_msg was
      returning PJ_SUCCESS instead of PJSIP_EMISSINGHDR.
      
      Also added the volatile keyword to a few variables that are used
      both inside and outside the PJ_TRY/PJ_CATCH block.
      
      Partial fix for ASTERISK_27408
      
      Change-Id: If82ba9de921e3d57df9c68cf96ee45ccc1491f7a
      f6ebd16b
    • Ben Ford's avatar
      bundled_pjproject: Update to 2.7.1 · 2e7f6cd3
      Ben Ford authored
      Update from 2.7 to 2.7.1 for bundled pjproject. Changed version
      and removed patch files included in the update.
      
      Change-Id: I55cea8e734b318c2df9daf86aa0802c559ec8357
      2e7f6cd3
  34. Nov 10, 2017
    • Joshua Colp's avatar
      pjsip: Add patch to allow all transports to be destroyed. · 96f2ee86
      Joshua Colp authored
      If a transport is created with the same transport type, source
      IP address, and source port as one that already exists the old
      transport is moved into a linked list called "tp_list".
      
      If this old transport is later shutdown it will not be destroyed
      as the process checks whether the transport is valid or not. This
      check does not look at the "tp_list" when making the determination
      causing the transport to not be destroyed.
      
      This change updates the logic to query not just the main storage
      method for transports but also the "tp_list".
      
      Upstream issue https://trac.pjsip.org/repos/ticket/2061
      
      ASTERISK-27411
      
      Change-Id: Ic5c2bb60226df0ef1c8851359ed8d4cd64469429
      96f2ee86
Loading