Skip to content
Snippets Groups Projects
  1. Dec 03, 2021
    • Alexander Traud's avatar
      res: Fix for Doxygen. · 178cb0ff
      Alexander Traud authored
      These are the remaining issues found in /res.
      
      ASTERISK-29761
      
      Change-Id: I572e6019c422780dde5ce8448b6c85c77af6046d
      178cb0ff
  2. Nov 18, 2021
  3. May 11, 2020
  4. Jun 21, 2018
    • Richard Mudgett's avatar
      VECTOR: Passing parameters with side effects to macros is dangerous. · cad50d6d
      Richard Mudgett authored
      * Fix several instances where we were bumping a ref in the parameter and
      then unrefing the object if it failed.  The way the AST_VECTOR_APPEND()
      and AST_VECTOR_REPLACE() macros are implemented means if it fails the new
      value was never evaluated.
      
      Change-Id: I2847872a455b11ea7e5b7ce697c0a455a1d0ac9a
      cad50d6d
  5. Apr 12, 2018
    • Richard Mudgett's avatar
      res_pjsip.c: Split ast_sip_push_task_synchronous() to fit expectations. · 237d341b
      Richard Mudgett authored
      ast_sip_push_task_synchronous() did not necessarily execute the passed in
      task under the specified serializer.  If the current thread is any
      registered pjsip thread then it would execute the task immediately instead
      of under the specified serializer.  Reentrancy issues could result if the
      task does not execute with the right serializer.
      
      The original reason ast_sip_push_task_synchronous() checked to see if the
      current thread was a registered pjsip thread was because of a deadlock
      with masquerades and the channel technology's fixup callback
      (ASTERISK_22936).  A subsequent masquerade deadlock fix (ASTERISK_24356)
      involving call pickups avoided the original deadlock situation entirely.
      The PJSIP channel technology's fixup callback no longer needed to call
      ast_sip_push_task_synchronous().
      
      However, there are a few places where this unexpected behavior is still
      required to avoid deadlocks.  The pjsip monitor thread executes callbacks
      that do calls to ast_sip_push_task_synchronous() that would deadlock if
      the task were actually pushed to the specified serializer.  I ran into one
      dealing with the pubsub subscriptions where an ao2 destructor called
      ast_sip_push_task_synchronous().
      
      * Split ast_sip_push_task_synchronous() into
      ast_sip_push_task_wait_servant() and ast_sip_push_task_wait_serializer().
      ast_sip_push_task_wait_servant() has the old behavior of
      ast_sip_push_task_synchronous().  ast_sip_push_task_wait_serializer() has
      the new behavior where the task is always executed by the specified
      serializer or a picked serializer if one is not passed in.  Both functions
      behave the same if the current thread is not a SIP servant.
      
      * Redirected ast_sip_push_task_synchronous() to
      ast_sip_push_task_wait_servant() to preserve API for released branches.
      
      ASTERISK_26806
      
      Change-Id: Id040fa42c0e5972f4c8deef380921461d213b9f3
      237d341b
  6. Feb 28, 2018
    • Richard Mudgett's avatar
      pjproject: Add cache_pools debugging option. · 1a36a452
      Richard Mudgett authored
      The pool cache gets in the way of finding use after free errors of memory
      pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
      pool is released because it gets put into the cache instead of being
      freed.
      
      * Added the "cache_pools" option to pjproject.conf.  Disabling the option
      helps track down pool content mismanagement when using valgrind or
      MALLOC_DEBUG.  The cache gets in the way of determining if the pool
      contents are used after free and who freed it.
      
      To disable the pool caching simply disable the cache_pools option in
      pjproject.conf and restart Asterisk.
      
      Sample pjproject.conf setting:
      [startup]
      cache_pools=no
      
      * Made current users of the caching pool factory initialization and
      destruction calls call common routines to create and destroy cached pools.
      
      ASTERISK-27704
      
      Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
      1a36a452
  7. Jan 24, 2018
    • Corey Farrell's avatar
      Remove redundant module checks and references. · 527cf5a5
      Corey Farrell authored
      This removes references that are no longer needed due to automatic
      references created by module dependencies.
      
      In addition this removes most calls to ast_module_check as they were
      checking modules which are listed as dependencies.
      
      Change-Id: I332a6e8383d4c72c8e89d988a184ab8320c4872e
      527cf5a5
  8. Jan 15, 2018
    • Corey Farrell's avatar
      loader: Add dependency fields to module structures. · 9cfdb81e
      Corey Farrell authored
      * Declare 'requires' and 'enhances' text fields on module info structure.
      * Rename 'nonoptreq' to 'optional_modules'.
      * Update doxygen comments.
      
      Still need to investigate dependencies among modules I cannot compile.
      
      Change-Id: I3ad9547a0a6442409ff4e352a6d897bef2cc04bf
      9cfdb81e
  9. Jan 04, 2018
  10. Nov 08, 2017
  11. Feb 23, 2017
    • George Joseph's avatar
      pjproject_bundled: Update for pjproject 2.6 · a537dae6
      George Joseph authored
       * Removed all 2.5.5 functional patches.
       * Updated usages of pj_release_pool to be "safe".
       * Updated configure options to disable webrtc.
       * Updated config_site.h to disable webrtc in pjmedia.
       * Added Richard Mudgett's recent resolver patches.
      
      Change-Id: Ib400cc4dfca68b3d07ce14d314e829bfddc252c7
      a537dae6
  12. Jan 27, 2017
    • George Joseph's avatar
      debug_utilities: Add ast_logescalator · ef4deb8e
      George Joseph authored
      The escalator works by creating a set of startup commands in cli.conf
      that set up logger channels and issue the debug commands for the
      subsystems specified.  If asterisk is running when it is executed,
      the same commands will be issued to the running instance.  The original
      cli.conf is saved before any changes are made and can be restored by
      executing '$prog --reset'.
      
      The log output will be stored in...
      $astlogdir/message.$uniqueid
      $astlogdir/debug.$uniqueid
      $astlogdir/dtmf.$uniqueid
      $astlogdir/fax.$uniqueid
      $astlogdir/security.$uniqueid
      $astlogdir/pjsip_history.$uniqueid
      $astlogdir/sip_history.$uniqueid
      
      Some minor tweaks were made to chan_sip, and res_pjsip_history
      so their history output could be send to a log channel as packets
      are captured.
      
      A minor tweak was also made to manager so events are output to verbose
      when "manager set debug on" is issued.
      
      Change-Id: I799f8e5013b86dc5282961b27383d134bf09e543
      ef4deb8e
  13. Oct 27, 2016
    • Corey Farrell's avatar
      Remove ASTERISK_REGISTER_FILE. · a6e5bae3
      Corey Farrell authored
      ASTERISK_REGISTER_FILE no longer has any purpose so this commit removes
      all traces of it.
      
      Previously exported symbols removed:
      * __ast_register_file
      * __ast_unregister_file
      * ast_complete_source_filename
      
      This also removes the mtx_prof static variable that was declared when
      MTX_PROFILE was enabled.  This variable was only used in lock.c so it
      is now initialized in that file only.
      
      ASTERISK-26480 #close
      
      Change-Id: I1074af07d71f9e159c48ef36631aa432c86f9966
      a6e5bae3
  14. Jan 01, 2016
    • Matt Jordan's avatar
      res_pjsip_history: Add a module that provides PJSIP history for debugging · 9cdf3ec1
      Matt Jordan authored
      This patch adds a new module, res_pjsip_history, that provides a slightly
      better way of debugging SIP message traffic on a busy Asterisk system. The
      existing mechanisms all rely on passively dumping a SIP message to the CLI.
      While this is perfectly fine for logging purposes and well controlled
      environments, on many installations, the amount of SIP messages Asterisk
      receives will quickly swamp the CLI. This makes it difficult to view/capture
      those messages that you want to diagnose in real time.
      
      This patch provides another way of handling this. When enabled, the module
      will store SIP message traffic in memory. This traffic can then be queried
      at leisure.
      
      In order to make the querying useful, a CLI command has been implemented,
      'pjsip show history', that supports a basic expression syntax similar to
      SQL or other query languages. A small number of useful fields have been
      added in this initial patch; additional fields can easily be added in
      later improvements. Those fields are:
       - number: The entry index in the history
       - timestamp: The time the message was recieved
       - addr: The source/destination address of the message
       - sip.msg.request.method: The request method
       - sip.msg.call-id: The Call-ID header
      
      Note - this is a resurrection of the module initially proposed on Review Board
      here: https://reviewboard.asterisk.org/r/4053/
      
      Change-Id: I39bd74ce998e99ad5ebc0aab3e84df3a150f8e36
      9cdf3ec1
Loading