Skip to content
Snippets Groups Projects
  1. Dec 04, 2017
  2. Dec 02, 2017
    • Corey Farrell's avatar
      autoconf: Remove use of m4_ifblank. · 39939cec
      Corey Farrell authored
      The m4_ifblank macro is not available on CentOS 6, reverse conditionals
      to allow use of m4_ifval instead.  ./bootstrap.sh was run but this patch
      does not result in any difference to the generated configure script.
      
      Change-Id: I280785deb872ed8d3339d99cce63a2b54d5f1438
      39939cec
  3. Dec 01, 2017
    • George Joseph's avatar
      AST-2017-013: chan_skinny: Call pthread_detach when sess threads end · 075faac2
      George Joseph authored
      chan_skinny creates a new thread for each new session.  In trying
      to be a good cleanup citizen, the threads are joinable and the
      unload_module function does a pthread_cancel() and a pthread_join()
      on any sessions that are active at that time.  This has an
      unintended side effect though. Since you can call pthread_join on a
      thread that's already terminated, pthreads keeps the thread's
      storage around until you explicitly call pthread_join (or
      pthread_detach()).   Since only the module_unload function was
      calling pthread_join, and even then only on the ones active at the
      tme, the storage for every thread/session ever created sticks
      around until asterisk exits.
      
      * A thread can detach itself so the session_destroy() function
        now calls pthread_detach() just before it frees the session
        memory allocation.  The module_unload function still takes care
        of the ones that are still active should the module be unloaded.
      
      ASTERISK-27452
      Reported by: Juan Sacco
      
      Change-Id: I9af7268eba14bf76960566f891320f97b974e6dd
      (cherry picked from commit 8f5dff54)
      075faac2
    • Sean Bright's avatar
      config: Speed up config template lookup · d9fdeae6
      Sean Bright authored
      ast_category_get() has an (undocumented) implementation detail where it
      tries to match the category name first by an explicit pointer comparison
      and if that fails falls back to a normal match.
      
      When initially building an ast_config during ast_config_load, this
      pointer comparison can never succeed, but we will end up iterating all
      categories twice. As the number of categories using a template
      increases, this dual looping becomes quite expensive. So we pass a flag
      to category_get_sep() indicating if a pointer match is even possible
      before trying to do so, saving us a full pass over the list of current
      categories.
      
      In my tests, loading a file with 3 template categories and 12000
      additional categories that use those 3 templates (this file configures
      4000 PJSIP endpoints with AOR & Auth) takes 1.2 seconds. After this
      change, that drops to 22ms.
      
      Change-Id: I59b95f288e11eb6bb34f31ce4cc772136b275e4a
      d9fdeae6
    • Sean Bright's avatar
      config: Speed up ACO & sorcery initialization · 1ad0fbc8
      Sean Bright authored
      When starting Asterisk in the foreground, there is a perceptible delay
      when loading modules that use the ACO and sorcery config frameworks.
      For example, a lightly configured res_pjsip took 853ms to load on my
      VM.
      
      I tracked down the slowness to the XPath queries used to associate the
      relevant documentation with the config options. One improvement was
      adding a call to xmlXPathOrderDocElems after loading an XML document.
      From the libxml2 docs:
      
        Call this routine to speed up XPath computation on static documents.
      
      The second change was to remove recursive descent and wildcard
      operators from the XPath queries. After these changes, res_pjsip takes
      85ms to load on my VM and there is no longer a perceptible delay when
      starting Asterisk in the foreground.
      
      Change-Id: I45d457f1580e26bf5a2b0dab16e8e9ae46dcbd82
      1ad0fbc8
    • Joshua Colp's avatar
      res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION. · 892df22c
      Joshua Colp authored
      This change makes the presence of the GMIME_MAJOR_VERSION
      definition optional, as not all versions of gmime actually
      define it.
      
      ASTERISK-27454
      
      Change-Id: I01d99590045971ed6787899147170a5954077238
      892df22c
    • Corey Farrell's avatar
      README-SERIOUSLY.bestpractices.txt: Convert to markdown · 35a7036a
      Corey Farrell authored
      Follow-up to conversion of README.md.
      
      Change-Id: I17ee7cf25bc027ece844efa2c1dfe613aff1e35b
      35a7036a
  4. Nov 30, 2017
  5. Nov 28, 2017
  6. Nov 27, 2017
  7. Nov 26, 2017
    • Alexander Traud's avatar
      translate: Transcode siren14, speex32, silk24, and silk12 via slin16. · 58115e9c
      Alexander Traud authored
      When a format has no pre-recorded sound files, Asterisk has to transcode between
      formats. For this, Asterisk has a fixed translation table. If the pre-recorded
      sound files are not available in the same sample rate, Asterisk has not only to
      transcode but also to resample.
      
      Asterisk has pre-recorded files for SLN (8000 kHz) and SLN16 (16000 kHz).
      However before this change, Asterisk did not take the sample rate into account,
      because the translation paths to SLN and SLN16 got the same score/weight in the
      table. Consequently, you might have got narrow-band audio with siren14, speex32,
      silk24, and silk12 although those are (ultra) wide-band audio codecs.
      
      With this change, the distance in sample-rates is taken into account. Now on the
      Command-Line interface (CLI) 'core show channels', you should see:
      (slin@16000)->(slin@32000)->(speex@32000).
      
      ASTERISK-23735
      Reported by: Richard Kenner
      
      Change-Id: I9448295c1978be26f8633b6066395e7bbbe2e213
      58115e9c
    • Richard Mudgett's avatar
      res_ari: Fix inverted test giving wrong error message. · 55c4d8e0
      Richard Mudgett authored
      The patch for ASTERISK_24560 inverted a test checking if the bridge name
      is being updated to a different name.
      
      * Fix the test to return "Changing bridge name is not implemented" when
      someone attempts to change the bridge name.
      
      ASTERISK-27445
      
      Change-Id: I4b70bf08b0e02e016108b077ff75b345dec12fc9
      55c4d8e0
  8. Nov 25, 2017
  9. Nov 23, 2017
Loading