Skip to content
Snippets Groups Projects
  1. Jan 17, 2017
    • Kevin Harwell's avatar
      abstract/fixed/adpative jitter buffer: disallow frame re-inserts · 283c16c6
      Kevin Harwell authored
      It was possible for a frame to be re-inserted into a jitter buffer after it
      had been removed from it. A case when this happened was if a frame was read
      out of the jitterbuffer, passed to the translation core, and then multiple
      frames were returned from said translation core. Upon multiple frames being
      returned the first is passed on, but sebsequently "chained" frames are put
      back into the read queue. Thus it was possible for a frame to go back into
      the jitter buffer where this would cause problems.
      
      This patch adds a flag to frames that are inserted into the channel's read
      queue after translation. The abstract jitter buffer code then checks for this
      flag and ignores any frames marked as such.
      
      Change-Id: I276c44edc9dcff61e606242f71274265c7779587
      283c16c6
  2. Jan 14, 2017
    • Richard Mudgett's avatar
      taskprocessor.c: Change when high water warning logged. · f4e77a56
      Richard Mudgett authored
      The task processor queue reached X scheduled tasks message was originally
      intended to get logged only once per task processor to prevent spamming
      the log.  This is no longer necessary since high and low water thresholds
      can better control when the message is logged.
      
      It is beneficial to generate the warning each time a task processor
      reaches the high water level because PJSIP stops processing new requests
      while any high water alert is active.  Without this change you would have
      to enable at least debug level 3 logging to know about a repeated alert
      trigger.
      
      * Made generate the warning message whenever a task is pushed into the
      task processor that triggers the high water alert.
      
      * Appended 'again' to the warning for a repeated high water alert trigger.
      
      Change-Id: Iabf75a004f7edaf1e5e8c323099418e667cac999
      f4e77a56
  3. Jan 13, 2017
  4. Jan 12, 2017
    • Aaron An's avatar
      res_rtp_asterisk: Fix bug in function CHANNEL(rtcp, all_rtt) · e0e502d9
      Aaron An authored
      Function CHANNEL(rtcp,all_rtt) CHANNEL(rtcp,all_loss) CHANNEL(rtcp,all_jitter)
      always return 0.0 due to wrong define of macro "AST_RTP_SATA_SET" and
      "AST_RTP_STAT_STRCPY".
      It should compare "combined" with "stat" not "current_stat".
      
      ASTERISK-26710 #close
      Reported-by: Aaron An
      Tested-by: AaronAn
      
      Change-Id: Id4140fafbf92e2db689dac5b17d9caa009028a15
      e0e502d9
  5. Jan 11, 2017
    • George Joseph's avatar
      debug_utilities: Create the ast_coredumper utility · 0d53c91f
      George Joseph authored
      This utility allows easy manipulation of asterisk coredumps.
      
      * Configurable search paths and patterns for existing coredumps
      * Can generate a consistent coredump from the running instance
      * Can dump the lock_infos table from a coredump
      * Dumps backtraces to separate files...
        - thread apply 1 bt full -> <coredump>.thread1.txt
        - thread apply all bt -> <coredump>.brief.txt
        - thread apply all bt full -> <coredump>.full.txt
        - lock_infos table -> <coredump>.locks.txt
      * Can tarball corefiles and optionally delete them after processing
      * Can tarball results files and optionally delete them after processing
      * Converts ':' in coredump and results file names '-' to facilitate
        uploading.  Jira for instance, won't accept file names with colons
        in them.
      
      Tested on Fedora24+, Ubuntu14+, Debian6+, CentOS6+ and FreeBSD9+[1].
      
      [1] For *BSDs, the "devel/gdb" package might have to be installed to
      get a recent gdb.  The utility will check all instances of gdb
      it finds in $PATH and if one isn't found that can run python, it
      prints a friendly error.
      
      Change-Id: I935d37ab9db85ef923f32b05579897f0893d33cd
      (cherry picked from commit cb47b4556053cd50d9102eef913671ad0306062d)
      0d53c91f
  6. Jan 10, 2017
  7. Jan 09, 2017
  8. Jan 08, 2017
  9. Jan 06, 2017
    • Joshua Colp's avatar
      res_pjsip_endpoint_identifier_ip: Add support for SRV lookups. · a7d856cd
      Joshua Colp authored
      This change implements SRV support for the IP based endpoint
      identifier module. All possible addresses through SRV are looked
      up and added as matches. If no SRV records are available a
      fallback to normal host resolution is done. If an IP address
      is provided then no SRV lookup occurs.
      
      This is configured using the "srv_lookups" option on the
      identify section and defaults to "yes".
      
      ASTERISK-26693
      
      Change-Id: I6b641e275bf96629320efa8b479737062aed82ac
      a7d856cd
  10. Jan 05, 2017
  11. Jan 04, 2017
    • George Joseph's avatar
    • Sebastian Gutierrez's avatar
      app_queue: add new Service Level calculation · 740ca862
      Sebastian Gutierrez authored
      Adds a new formula for SL2 and documentation
      
      ASTERISK-26559
      
      Change-Id: I0970c620460507cd9d45b0d43600779c8915e770
      740ca862
    • Jonathan R. Rose's avatar
      core/pbx: dialplan show - display filename/line# · d96e3502
      Jonathan R. Rose authored
      Adds the ability for extensions to be registered to include filename and
      line number so that dialplan show output can show the filename and line
      number of a config file responsible for generating a given extension.
      
      This only affects config modules that are written to use the new extension
      registering functions. In this patch, that only includes pbx_config, so
      extensions registered in extensions.conf and any included extension will
      be shown in this manner. Extensions registered in this manner will show
      the filename and line number *instead* of the registrar.
      
      ASTERISK-26658 #close
      Reported by: Jonathan R. Rose
      
      Change-Id: Ieccc6abccdff34ed5c7da3511fd24972b8f2dd30
      d96e3502
    • Alexander Traud's avatar
      res_pjsip_session: Access SIPDOMAIN via Dialplan. · aea22858
      Alexander Traud authored
      This feature was available in the SIP channel driver chan_sip. For example,
      Asterisk is the outbound proxy and has to handle all SIP-URIs, even domains not
      local to Asterisk. In that case, SIPDOMAIN is used in the Dialplan, to detect
      and dial remote SIP-URIs. This change here sets the SIP destination domain of
      an inbound call (SIPDOMAIN) in the SIP channel driver res_pjsip as well.
      
      ASTERISK-26670 #close
      
      Change-Id: I27c880dc404a3c1c6792e1ba3545475339577243
      aea22858
    • Alexander Traud's avatar
      chan_sip: Remember SDP negotiation on SIP_CODEC_INBOUND. · e220c11b
      Alexander Traud authored
      After a SIP_CODEC_INBOUND in the dialplan, do not continue with cached formats
      but remember the joint format. Cached formats contain default parameters,
      often create an empty fmtp line. However, a joint format might have passed
      format_get_joint(.) in a res_format_attr_* module (like Opus Codec) and
      contain the resulting format parameters from a SDP negotiation.
      
      ASTERISK-26691 #close
      
      Change-Id: I35712d98a793d4c3efdd156cec57deab9014b1dc
      e220c11b
  12. Jan 03, 2017
    • George Joseph's avatar
      pjproject_bundled: Compile pjsua with max log level = 2 · ceb9dae5
      George Joseph authored
      A while back, we changed config_site.h to set PJ_LOG_MAX_LEVEL = 6.
      This allowed us to control the log level better from inside Asterisk.
      An unfortunate side effect of this was that the pjsua binary and
      python bindings were also compiled with log level set to 6 so whenever
      a testsuite test that uses pjsua runs, it spits out 6795 lines of
      debug in an instant even before the test starts.  I believe this
      overruns the Jenkins capture buffer and prevents the test from
      properly terminating.  In turn, this results in the testsuite just
      hanging until the job is killed.  It's more frequent on the higher
      end agents because they can spit out the messages faster.
      
      Unfortunately, the messages are all spit out before we have control
      of the python pj.Lib instance where we can set logging levels so the
      only alternative was to actually compile pjsua and _pjsua.so with an
      overridden PJ_LOG_MAX_LEVEL.  Although defining a lower max level was
      done in the Makefile, the define in config_site.h had to be wrapped
      with "#ifndef" so the change would take effect.
      
      Change-Id: I2af9e7d48dde1927279c586c9c725d868fe6f3ff
      ceb9dae5
    • Joshua Colp's avatar
      ad8ada00
    • Joshua Colp's avatar
    • Joshua Colp's avatar
      chan_pjsip: Use session for retrieving CHANNEL() information. · ae576529
      Joshua Colp authored
      The CHANNEL() dialplan function implementation for PJSIP allows
      querying of PJSIP specific information. This used the channel
      passed in to get the PJSIP session and associated information.
      It is possible for this channel to be masqueraded and end
      up as a different channel type by the time the information
      request is actually acted upon.
      
      This change retrieves the PJSIP session safely and accesses
      data from it (including channel). This provides a guarantee
      that the session and channel will not be altered when the
      request is being acted upon.
      
      ASTERISK-26673
      
      Change-Id: I335e12b89e1820cafdd92b3e7526b8ba649eb7e6
      ae576529
  13. Jan 01, 2017
  14. Dec 30, 2016
    • George Joseph's avatar
      res_pjsip_refer: Handle compact Refer-To header. · 5a5953f9
      George Joseph authored
      refer_incoming_refer_request needed to look for the "r" header as well
      as the "Refer-To" header.
      
      ASTERISK-26655 #close
      patches:
      	refer_compact_fix.diff	submitted by JoshE (license 6075)
      
      Change-Id: I610410a99b02427ea5db887aeb454d5f12c2259f
      5a5953f9
  15. Dec 23, 2016
    • Richard Mudgett's avatar
      bridge_native_rtp.c: Minor code cleanups. · ac04e63a
      Richard Mudgett authored
      In native_rtp_bridge_compatible_check()
      
      * Made one variable declaration per line.
      
      * Extracted if test assignment to make the test easier to see.
      
      * Made long if tests easier to see the combinatorial logic.
      
      * Added bridge id to a couple debug messages.
      
      Change-Id: I65bc5732aa7c9a2537f062f106fbea711cf2daad
      ac04e63a
    • Richard Mudgett's avatar
      bridge_native_rtp.c: Fix native rtp bridge data race. · da6f40c9
      Richard Mudgett authored
      native_rtp_bridge_compatible() didn't lock the bridge channels before
      checking the channels for native bridging ability.  As a result, one of
      the channel's native format capabilities structure got replaced out from
      under the native bridge check.  Use of a stale pointer to freed memory
      causes bad things to happen.
      
      MALLOC_DEBUG, DO_CRASH, and the
      tests/channels/pjsip/transfers/blind_transfer/caller_direct_media
      testsuite test caught this.
      
      * Add missing channel locking in native_rtp_bridge_compatible().
      
      Change-Id: If25fdb3ac8e85563c4857fb8216b3d9dc3d0fa53
      da6f40c9
  16. Dec 22, 2016
    • Richard Mudgett's avatar
      res_rtp_asterisk.c: Fix uninitialized memory crash. · b576b58d
      Richard Mudgett authored
      ast_rtp_remote_address_set() could pass an uninitialized 'us' parameter to
      ast_ouraddrfor().  If ast_ouraddrfor() returns an error then the 'us'
      parameter may not get initialized.  Thus when the code tries to save the
      'us' parameter to the local address we could try to copy a ridiculous
      sized memory buffer and segfault.
      
      * Made pass an initialized 'us' parameter to ast_ouraddrfor().
      
      * Optimized out the 'us' struct variable.
      
      ASTERISK-26672 #close
      
      Change-Id: I4acea5dcdf0813da2c7d3e11c2d6067d160d17dc
      b576b58d
    • Richard Mudgett's avatar
      acl.c: Improve ast_ouraddrfor() diagnostic messages. · 67cc8499
      Richard Mudgett authored
      * Made not generate strings unless they will actually be used.
      
      ASTERISK-26672
      
      Change-Id: I155fbe7fdff5ce47dfe5326f3baf5446849702c3
      67cc8499
    • Richard Mudgett's avatar
      chan_rtp.c: Fix uninitialized memory crash. · 67b47191
      Richard Mudgett authored
      unicast_rtp_request() could pass an uninitialized 'us' parameter to
      ast_ouraddrfor().  If ast_ouraddrfor() returns an error then the 'us'
      parameter may not get initialized.  Thus when the code tries to save the
      'us' parameter to the local address we could try to copy a ridiculous
      sized memory buffer and segfault.
      
      * Made pass an initialized 'us' parameter to ast_ouraddrfor() and abort
      the UnicastRTP channel request if it fails.
      
      ASTERISK-26672
      
      Change-Id: I1ef7a7c09f4da4f15dcb6de660d2bcac5f2a95c0
      67b47191
    • Richard Mudgett's avatar
      res_rtp_asterisk.c: Initialize ourip passed to ast_find_ourip(). · 2fc65173
      Richard Mudgett authored
      We access uninitialized memory when the 'ourip' parameter does not
      have an initial guess to our IP address.
      
      ASTERISK-26672
      
      Change-Id: I35507ea1ad7455d2be188f6ccdd4add7bd150e15
      2fc65173
    • Joshua Colp's avatar
      059a5420
  17. Dec 21, 2016
  18. Dec 20, 2016
  19. Dec 19, 2016
Loading