Skip to content
Snippets Groups Projects
  1. Apr 02, 2018
    • 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
  2. 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
  3. 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
  4. Mar 08, 2018
  5. 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
  6. 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
  7. Feb 12, 2018
  8. 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
  9. 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
  10. Dec 22, 2017
  11. 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
  12. 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
  13. 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
  14. Nov 20, 2017
  15. 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
  16. 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
  17. 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
  18. Nov 08, 2017
    • George Joseph's avatar
      AST-2017-009: pjproject: Add validation of numeric header values · 74432f51
      George Joseph authored
      Parsing the numeric header fields like cseq, ttl, port, etc. all
      had the potential to overflow, either causing unintended values to
      be captured or, if the values were subsequently converted back to
      strings, a buffer overrun.  To address this, new "strto" functions
      have been created that do range checking and those functions are
      used wherever possible in the parser.
      
       * Created pjlib/include/limits.h and pjlib/include/compat/limits.h
         to either include the system limits.h or define common numeric
         limits if there is no system limits.h.
      
       * Created strto*_validate functions in sip_parser that take bounds
         and on failure call the on_str_parse_error function which prints
         an error message and calls PJ_THROW.
      
       * Updated sip_parser to validate the numeric fields.
      
       * Fixed an issue in sip_transport that prevented error messages
         from being properly displayed.
      
       * Added "volatile" to some variables referenced in PJ_CATCH blocks
         as the optimizer was sometimes optimizing them away.
      
       * Fixed length calculation in sip_transaction/create_tsx_key_2543
         to account for signed ints being 11 characters, not 9.
      
      ASTERISK-27319
      Reported by: Youngsung Kim at LINE Corporation
      
      Change-Id: I48de2e4ccf196990906304e8d7061f4ffdd772ff
      74432f51
  19. Oct 23, 2017
  20. Oct 20, 2017
  21. Sep 25, 2017
  22. Aug 15, 2017
    • Richard Mudgett's avatar
      configure: Check cache for valid pjproject tarball before downloading. · c049d1c3
      Richard Mudgett authored
      On a fresh Asterisk source directory, the bundled pjproject tarball is
      unconditionally downloaded even if the tarball is already in a specified
      cache directory.
      
      * Made check if the pjproject tarball is valid in the cache directory
      before downloading the tarball on a fresh source directory.
      
      Change-Id: Ic7ec842d3c97ecd8dafbad6f056b7fdbce41cae5
      c049d1c3
  23. Aug 08, 2017
    • George Joseph's avatar
      Make --with-pjproject-bundled the default for Asterisk 15 · 305bd0d9
      George Joseph authored
      '--with-pjproject-bundled' is now the default when running
      ./configure. It can be disabled with '--without-pjproject-bundled'.
      
      To make building without an internet connection easier, a new
      ./configure option '--with-download-cache' was added that sets
      the cache for externals (like pjproject, the codecs and the DPMA),
      AND the sounds files.  It can also be specified as an environment
      variable named "AST_DOWNLOAD_CACHE".  The existing
      '--with-sounds-cache' option / SOUNDS_CACHE_DIR env variable and
      '--with-externals-cache' option / EXTERNALS_CACHE_DIR env variable
      remain and if specified, will override '--with-downloads-cache'.
      
      ASTERISK-27189
      
      Change-Id: Ifa9783fddf44aafadb060c9feba713dfa81d38ce
      305bd0d9
  24. Aug 01, 2017
    • George Joseph's avatar
      bundled_pjproject: Improve SSL/TLS error handling · ac6d98b2
      George Joseph authored
      OpenSSL has 2 levels or error processing.  It's possible for the
      top layer to return SSL_ERROR_SYSCALL but the lower layer return
      no error, in which case processing should continue.  Only the top
      layer was being examined though so connections were being torn
      down when they didn't need to be.  This patch adds the examination
      of the lower level codes, and if they return no errors, allows
      processing to continue.
      
      ASTERISK-27001
      Reported-by: Ian Gilmour
      patches:
      	pjproject-2.6.patch submitted by Ian Gilmour (license 6889)
      
      Updated-by: George Joseph and Sauw Ming (Teluu)
      
      Merged to upstream pjproject on 7/27/2017 (commit 5631)
      
      Change-Id: I23844ca0c68ef1ee550f14d46f6dae57d33b7bd2
      ac6d98b2
  25. Jul 18, 2017
  26. Jun 30, 2017
    • George Joseph's avatar
      pjproject_bundled: Allow passing configure options to bundled · f573e599
      George Joseph authored
      There wasn't any good way to pass options like --host or --build
      down to the pjproject configure which makes cross-compiling difficult.
      
      * Added a new PJPROJECT_CONFIGURE_OPTS environment variable which
        can be used to pass arbitrary options to pjproject configure.
      * Automatically set the pjproject configure --host and --build
        options to match those supplied for the asterisk configure.
      
      ASTERISK-27097 #close
      Reported-by: Kinsey Moore
      
      Change-Id: I5fa776e110262851173002a26ffe1172e4c35b2e
      f573e599
  27. Jun 29, 2017
    • George Joseph's avatar
      chan_pjsip: Fix ability to send UPDATE on COLP · c0c99c76
      George Joseph authored
      When connected_line_method is "invite", we're supposed to determine
      if the client can support UPDATE and if it can, send UPDATE instead
      of INVITE to avoid the SDP renegotiation.  Not only was pjproject
      not setting the PJSIP_INV_SUPPORT_UPDATE flag, we were testing
      that invite_tsx wasn't NULL which isn't always the case.
      
      * Updated chan_pjsip/update_connected_line_information to drop the
        requirement that invite_tsx isn't NULL.
      * Submitted patch to pjproject sip_inv.c that sets the
        PJSIP_INV_SUPPORT_UPDATE flag correctly.
      * Updated pjsip.conf.sample to clarify what happens when "invite"
        is specified.
      
      ASTERISK-27095
      
      Change-Id: Ic2381b3567b8052c616d96fbe79564c530e81560
      c0c99c76
  28. Jun 13, 2017
  29. May 19, 2017
  30. Apr 26, 2017
    • 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
  31. Apr 07, 2017
  32. Apr 05, 2017
    • George Joseph's avatar
      pjproject_bundled: Add 3 upstream patches · 01e9eaf3
      George Joseph authored
      0035-r5572-svn-backport-dialog-transaction-deadlock.patch
      0036-r5573-svn-backport-ua-pjsua-transaction-deadlock.patch
      0037-r5576-svn-backport-session-timer-crash.patch
      
      Also removed the progress bar from wget download to stdout.
      
      ASTERISK-26905 #close
      Reported-by: Ross Beer
      
      Change-Id: I268fb3cf71a3bb24283ff0d24bd8b03239d81256
      01e9eaf3
  33. Mar 27, 2017
  34. Mar 23, 2017
    • Kevin Harwell's avatar
      pjproject_bundled: raise timeout value used when downloading · 12dde3b5
      Kevin Harwell authored
      After configuring Asterisk with '--with-pjproject-bundled' the configure/build
      process attempts to download pjproject from its download site. Currently, a
      timeout of 10 seconds is used that will stop the download process if pjproject
      has not been fully downloaded in that time. For some systems this was not enough
      time and the process was timing out too early.
      
      This patch raises the download timeout value to '60'. Also, this patch fixes
      another bug where the DOWNLOAD_TIMEOUT variable was not being properly exported
      due to a naming error. DOWNLOAD_MAX_TIMEOUT is now properly renamed to
      DOWNLOAD_TIMEOUT.
      
      ASTERISK-26814 #close
      
      Change-Id: Ia56e4e8a3d39db76bc8a1852b2cf07ec10b39842
      12dde3b5
  35. Mar 21, 2017
  36. Mar 11, 2017
Loading