Skip to content
Snippets Groups Projects
  1. May 05, 2015
    • George Joseph's avatar
      vector: Traversal, retrieval, insert and locking enhancements · 6d594129
      George Joseph authored
      Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
      does replace not insert.  The few users of AST_VECTOR_INSERT were
      refactored.  Because these are macros, there should be no ABI
      compatibility issues.
      
      Added AST_VECTOR_INSERT_AT that actually inserts an element into the
      vector at a specific index pushing existing elements to the right.
      
      Added AST_VECTOR_GET_CMP that can retrieve from the vector based
      on a user-provided compare function.
      
      Added AST_VECTOR_CALLBACK function that will execute a function
      for each element in the vector.  Similar to ao2_callback and
      ao2_callback_data functions although the vector callback can take
      a variable number of arguments.  This should allow easy migration
      to a vector where a container might be too heavy.
      
      Added read/write locked vector and lock manipulation macros.
      
      Added unit tests.
      
      ASTERISK-25045 #close
      
      Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
      6d594129
  2. May 03, 2015
    • Diederik de Groot's avatar
      Update configure.ac/Makefile for clang · 305ce3de
      Diederik de Groot authored
      Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which
      checks compiler requirements for RAII:
      gcc: -fnested-functions support
      clang: -fblocks (and if required -lBlocksRuntime)
      The original check was implemented in configure.ac and now has it's
      own file. This function also sets C_COMPILER_FAMILY to either gcc or
      clang for use by makefile
      
      Created autoconf/ast_check_strsep_array_bounds.m4 (contains
      AST_CHECK_STRSEP_ARRAY_BOUNDS):
      which checks if clang is able to handle the optimized strsep & strcmp
      functions (linux). If not, the standard libc implementation should be
      used instead. Clang + the optimized macro's work with:
      strsep(char *, char []), but not with strsepo(char *, char *).
      Instead of replacing all the occurences throughout the source code,
      not using the optimized macro version seemed easier
      
      See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h':
      llvm-comment: Normally, this array-bounds warning are suppressed for
      macros, so that unused paths like the one that accesses __s1[3] are
      not warned about.  But if you preprocess manually, and feed the
      result to another instance of clang, it will warn about all the
      possible forks of this particular if statement. Instead of switching
      of this optimization, another solution would be to run the preproces-
      sing step with -frewrite-includes, which should preserve enough
      information so that clang should still be able to suppress the diag-
      nostic at the compile step later on.
      
      See also "https://llvm.org/bugs/show_bug.cgi?id=20144"
      See also "https://llvm.org/bugs/show_bug.cgi?id=11536"
      
      Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning
      suppressions:
      -Wno-unused-value
      -Wno-parentheses-equality
      In an earlier review (reviewboard: 4550 and 4554), they were deemed a
      nuisace and less than benefitial.
      
      configure.ac:
      Added AST_CHECK_RAII() see earlier
      Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier
      Removed moved content
      
      ASTERISK-24917
      Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
      305ce3de
    • Corey Farrell's avatar
      Remove unneeded uses of optional_api providers. · c3ec5da1
      Corey Farrell authored
      A few cases exist where headers of optional_api provders are included but
      not needed.  This causes unneeded calls to ast_optional_api_use.
      
      * Don't include optional_api.h from sip_api.h.
      * Move 'struct ast_channel_monitor' to channel.h.
      * Don't include monitor.h from chan_sip.c, channel.c or features.c.
      
      The move of struct ast_channel_monitor is needed since channel.c depends on
      it.  This has no effect on users of monitor.h since channel.h is included
      from monitor.h.
      
      ASTERISK-25051 #close
      Reported by: Corey Farrell
      
      Change-Id: I53ea65a9fc9693c89f8bcfd6120649bfcfbc3478
      c3ec5da1
  3. Apr 30, 2015
  4. Apr 29, 2015
    • Kevin Harwell's avatar
      res_fax: allow 2400 transmission rate according to v.27ter standard · 5d0c1828
      Kevin Harwell authored
      A previous set of patches (see: ASTERISK-22790 & ASTERISK-23231) made it so
      a v.27 modem was not allowed to have a minimum transmission rate of 2400 bits
      per second. This reverts all or some of those patches since according to the
      v.27ter standard a rate of 2400 bits per second is also supported.
      
      One of the original patches also added 9600 bits per second support for v.27.
      This patch also removes that since v.27ter only supports 2400/4800 bits per
      second.
      
      Also, since Asterisk specifically supports v.27ter the enum was renamed to
      better reflect this.
      
      ASTERISK-24955 #close
      Reported by: Matt Jordan
      
      Change-Id: I4b9dfb6bf7eff08463ab47ee1a74224f27cae733
      5d0c1828
    • Corey Farrell's avatar
      Astobj2: Add ao2_weakproxy_ref_object function. · c9c03998
      Corey Farrell authored
      This function allows code to run ao2_ref against the real
      object associated with a weakproxy.  It is useful when
      all of the following conditions are true:
      * You have a pointer to weakproxy.
      * You do not have or need a pointer to the real object.
      * You need to ensure the real object exists and is not
        destroyed during a process.
      
      In this case it's wasteful to store a pointer to the real
      object just for the sake of releasing it later.
      
      Change-Id: I38a319b83314de75be74207a8771aab269bcca46
      c9c03998
    • Mark Michelson's avatar
      res_pjsip_outbound_registration: Don't fail on delayed processing. · 4f1db207
      Mark Michelson authored
      Odd behaviors have been observed during outbound registrations. The most
      common problem witnessed has been one where a request with
      authentication credentials cannot be created after receiving a 401
      response. Other behaviors include apparently processing an incorrect SIP
      response.
      
      Inspecting the code led to an apparent issue with regards to how we
      handle transactions in outbound registration code. When a response to a
      REGISTER arrives, we save a pointer to the transaction and then push a
      task onto the registration serializer. Between the time that we save the
      pointer and push the task, it's possible for the transaction to be
      destroyed due to a timeout. It's also possible for the address to be
      reused by the transaction layer for a new transaction.
      
      To allow for authentication of a REGISTER request to be authenticated
      after the transaction has timed out, we now hold a reference to the
      original REGISTER request instead of the transaction. The function for
      creating a request with authentication has been altered to take the
      original request instead of the transaction where the original request
      was sent.
      
      ASTERISK-25020
      Reported by Mark Michelson
      
      Change-Id: I756c19ab05ada5d0503175db9676acf87c686d0a
      4f1db207
  5. Apr 27, 2015
    • Corey Farrell's avatar
      Astobj2: Allow reference debugging to be enabled/disabled by config. · 5c1d07ba
      Corey Farrell authored
      * The REF_DEBUG compiler flag no longer has any effect on code that uses
        Astobj2.  It is used to determine if reference debugging is enabled by
        default.  Reference debugging can be enabled or disabled in asterisk.conf.
      * Caller information is provided in logger errors for ao2 bad magic numbers.
      * Optimizes AO2 by merging internal functions with the public counterpart.
        This was possible now that we no longer require a dual ABI.
      
      ASTERISK-24974 #close
      Reported by: Corey Farrell
      
      Change-Id: Icf3552721fe999365ba8a8cf00a965aa6b897cc1
      5c1d07ba
  6. Apr 22, 2015
    • Diederik de Groot's avatar
      Fix/Update clang-RAII macro implementation · 09c7c678
      Diederik de Groot authored
      - When you need to refer to 'variable XXX' outside a block, it needs
      to be declared as '__block XXX', otherwise it will not be available with-
      in the block, making updating that variable hard to do, and ast_free
      lead to issues.
      
      - Removed the #error message
      because it creates complications when compiling external projects
      against asterisk For example when using a different compiler than the
      one used to compile asterisk. The warning/error should be generated
      during the configure process not the compilation process
      
      ASTERISK-24917
      Change-Id: I12091228090e90831bf2b498293858f46ea7a8c2
      09c7c678
  7. Apr 21, 2015
    • Gareth Palmer's avatar
      New AMI Command Output Format · 2f418c05
      Gareth Palmer authored
      This change modifies how the the output from a CLI command is sent
      to a client over AMI.
      
      Output from the CLI command is now sent as a series of zero-or-more
      Output: headers.
      
      Additionally, commands that fail to execute (eg: no such command,
      invalid syntax etc.) now cause an Error response instead of Success.
      
      If the command executed successfully, but the manager unable to
      provide the output the reason will be included in the Message:
      header. Otherwise it will contain 'Command output follows'.
      
      Depends on a new version of starpy (> 1.0.2) that supports the new
      output format.
      
      See pull-request https://github.com/asterisk/starpy/pull/34
      
      ASTERISK-24730
      
      Change-Id: I6718d95490f0a6b3f171c1a5cdad9207f9a44888
      2f418c05
  8. Apr 20, 2015
    • George Joseph's avatar
      pjsip_options: Fix non-qualified contacts showing as unavailable · 298faf7c
      George Joseph authored
      The "Add qualify_timeout processing and eventing" patch introduced
      an issue where contacts that had qualify_frequency set to 0 were
      showing Unavailable instead Unknown.  This patch checks for
      qualify_frequency=0 and create an "Unknown"  contact_status
      with an RTT = 0.
      
      Previously, the lack of contact_status implied Unknown but since
      we're now changing endpoint state based on contact_status, I've
      had to add new UNKNOWN status so that changes could trigger the
      appropriate contact_status observers.
      
      ASTERISK-24977: #close
      
      Change-Id: Ifcbc01533ce57f0e4e584b89a395326e098b8fe7
      298faf7c
  9. Apr 17, 2015
    • Corey Farrell's avatar
      Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled. · c1d44ff0
      Corey Farrell authored
      When DEBUG_THREADLOCALS is enabled it causes the threadlocal cleanup to be
      called as a function.  This causes a compile error with raw threadstorage as
      it uses NULL for cleanup.  This fix uses a macro that provides NULL when
      DEBUG_THREADLOCALS is disabled, and replaces the call to "c_cleanup(data);"
      with "{};" when DEBUG_THREADLOCALS is enabled.
      
      ASTERISK-24975 #close
      Reported by: Ashley Sanders
      
      Change-Id: I3ef7428ee402816d9fcefa1b3b95830c00d5c402
      c1d44ff0
    • Mark Michelson's avatar
      Detect potential forwarding loops based on count. · aae45acb
      Mark Michelson authored
      A potential problem that can arise is the following:
      
      * Bob's phone is programmed to automatically forward to Carol.
      * Carol's phone is programmed to automatically forward to Bob.
      * Alice calls Bob.
      
      If left unchecked, this results in an endless loops of call forwards
      that would eventually result in some sort of fiery crash.
      
      Asterisk's method of solving this issue was to track which interfaces
      had been dialed. If a destination were dialed a second time, then
      the attempt to call that destination would fail since a loop was
      detected.
      
      The problem with this method is that call forwarding has evolved. Some
      SIP phones allow for a user to manually forward an incoming call to an
      ad-hoc destination. This can mean that:
      
      * There are legitimate use cases where a device may be dialed multiple
      times, or
      * There can be human error when forwarding calls.
      
      This change removes the old method of detecting forwarding loops in
      favor of keeping a count of the number of destinations a channel has
      dialed on a particular branch of a call. If the number exceeds the
      set number of max forwards, then the call fails. This approach has
      the following advantages over the old:
      
      * It is much simpler.
      * It can detect loops involving local channels.
      * It is user configurable.
      
      The only disadvantage it has is that in the case where there is a
      legitimate forwarding loop present, it takes longer to detect it.
      However, the forwarding loop is still properly detected and the
      call is cleaned up as it should be.
      
      Address review feedback on gerrit.
      
      * Correct "mfgium" to "Digium"
      * Decrement max forwards by one in the case where allocation of the
        max forwards datastore is required.
      * Remove irrelevant code change from pjsip_global_headers.c
      
      ASTERISK-24958 #close
      
      Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
      aae45acb
  10. Apr 16, 2015
    • George Joseph's avatar
      res_pjsip: Add global option to limit the maximum time for initial qualifies · c6ed6816
      George Joseph authored
      
      Currently when Asterisk starts initial qualifies of contacts are spread out
      randomly between 0 and qualify_timeout to prevent network and system overload.
      If a contact's qualify_frequency is 5 minutes however, that contact may be
      unavailable to accept calls for the entire 5 minutes after startup.  So while
      staggering the initial qualifies is a good idea, basing the time on
      qualify_timeout could leave contacts unavailable for too long.
      
      This patch adds a new global parameter "max_initial_qualify_time" that sets the
      maximum time for the initial qualifies.  This way you could make sure that all
      your contacts are initialy, randomly qualified within say 30 seconds but still
      have the contact's ongoing qualifies at a 5 minute interval.
      
      If max_initial_qualify_time is > 0, the formula is initial_interval =
      min(max_initial_interval, qualify_timeout * random().  If not set,
      qualify_timeout is used.
      
      The default is "0" (disabled).
      
      ASTERISK-24863 #close
      
      Change-Id: Ib80498aa1ea9923277bef51d6a9015c9c79740f4
      Tested-by: default avatarGeorge Joseph <george.joseph@fairview5.com>
      c6ed6816
    • George Joseph's avatar
      pjsip_options: Add qualify_timeout processing and eventing · 51886c68
      George Joseph authored
      This is the second follow-on to https://reviewboard.asterisk.org/r/4572/ and the
      discussion at
      http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
      
      
      
      The basic issues are that changes in contact status don't cause events to be
      emitted for the associated endpoint.  Only dynamic contact add/delete actions
      update the endpoint.  Also, the qualify timeout is fixed by pjsip at 32 seconds
      which is a long time.
      
      This patch makes use of the new transaction timeout feature in r4585 and
      provides the following capabilities...
      
      1.  A new aor/contact variable 'qualify_timeout' has been added that allows the
      user to specify the maximum time in milliseconds to wait for a response to an
      OPTIONS message.  The default is 3000ms.  When the timer expires, the contact is
      marked unavailable.
      
      2.  Contact status changes are now propagated up to the endpoint as follows...
      When any contact is 'Available', the endpoint is marked as 'Reachable'.  When
      all contacts are 'Unavailable', the endpoint is marked as 'Unreachable'.  The
      existing endpoint events are generated appropriately.
      
      ASTERISK-24863 #close
      
      Change-Id: Id0ce0528e58014da1324856ea537e7765466044a
      Tested-by: Dmitriy Serov
      Tested-by: default avatarGeorge Joseph <george.joseph@fairview5.com>
      51886c68
    • George Joseph's avatar
      res_pjsip: Refactor endpt_send_request to include transaction timeout · ab6382ca
      George Joseph authored
      This is the first follow-on to https://reviewboard.asterisk.org/r/4572/ and the
      discussion at
      http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
      
      
      
      Since we currently have no control over pjproject transaction timeout, this
      patch pulls the pjsip_endpt_send_request function out of pjproject and into
      res_pjsip/endpt_send_transaction in order to implement that capability.
      
      Now when the transaction is initiated, we also schedule our own pj_timer with
      our own desired timeout.
      
      If the transaction completes before either timeout, pjproject cancels its timer,
      and calls our tsx callback where we cancel our timer and run the app callback.
      
      If the pjproject timer times out first, pjproject calls our tsx callback where
      we cancel our timer and run the app callback.
      
      If our timer times out first, we terminate the transaction which causes
      pjproject to cancel its timer and call our tsx callback where we run the app
      callback.
      
      Regardless of the scenario, pjproject is calling the tsx callback inside the
      group_lock and there are checks in the callback to make sure it doesn't run
      twice.
      
      As part of this patch ast_sip_send_out_of_dialog_request was created to replace
      its similarly named private function.  It takes a new timeout argument in
      milliseconds (<= 0 to disable the timeout).
      
      ASTERISK-24863 #close
      Reported-by: default avatarGeorge Joseph <george.joseph@fairview5.com>
      Tested-by: default avatarGeorge Joseph <george.joseph@fairview5.com>
      
      Change-Id: I0778dc730d9689c5147a444a04aee3c1026bf747
      ab6382ca
  11. Apr 15, 2015
    • Joshua Colp's avatar
      res_pjsip: Add external PJSIP resolver implementation using core DNS API. · a3cec44a
      Joshua Colp authored
      This change adds the following:
      
      1. A query set implementation. This is an API that allows queries to be executed in parallel and once all have completed a callback is invoked.
      2. Unit tests for the query set implementation.
      3. An external PJSIP resolver which uses the DNS core API to do NAPTR, SRV, AAAA, and A lookups.
      
      For the resolver it will do NAPTR, SRV, and AAAA/A lookups in parallel. If NAPTR or SRV
      are available it will then do more queries. And so on. Preference is NAPTR > SRV > AAAA/A,
      with IPv6 preferred over IPv4. For transport it will prefer TLS > TCP > UDP if no explicit
      transport has been provided. Configured transports on the system are taken into account to
      eliminate resolved addresses which have no hope of completing.
      
      ASTERISK-24947 #close
      Reported by: Joshua Colp
      
      Change-Id: I56cb03ce4f9d3d600776f36928e0b3e379b5d71e
      a3cec44a
  12. Apr 14, 2015
    • Corey Farrell's avatar
      astobj2: Add support for weakproxy objects. · cb6bf309
      Corey Farrell authored
      This implements "weak" references.  The weakproxy object is a real ao2 with
      normal reference counting of its own.  When a weakproxy is pointed to a normal
      object they hold references to each other.  The normal object is automatically
      freed when a single reference remains (the weakproxy).  The weakproxy also
      supports subscriptions that will notify callbacks when it does not point
      to any real object.
      
      ASTERISK-24936 #close
      Reported by: Corey Farrell
      
      Change-Id: Ib9f73c02262488d314d9d9d62f58165b9ec43c67
      cb6bf309
  13. Apr 13, 2015
    • Corey Farrell's avatar
      Optional API: Fix handling of sources that are both provider and user. · fbc8ddfe
      Corey Farrell authored
      OPTIONAL_API has conditionals to define AST_OPTIONAL_API and
      AST_OPTIONAL_API_ATTR differently based on if AST_API_MODULE is defined.
      Unfortunately this is inside the include protection block, so only the
      first status of AST_API_MODULE is respected.  For example res_monitor
      is an optional API provider, but uses func_periodic_hook.  This makes
      func_periodic_hook non-optional to res_monitor.
      
      This changes optional_api.h so that AST_OPTIONAL_API and
      AST_OPTIONAL_API_ATTR is redefined every time the header is included.
      
      ASTERISK-17608 #close
      Reported by: Warren Selby
      
      Change-Id: I8fcf2a5e7b481893e17484ecde4f172c9ffb5679
      fbc8ddfe
    • Matt Jordan's avatar
      git migration: Refactor the ASTERISK_FILE_VERSION macro · 4a582616
      Matt Jordan authored
      Git does not support the ability to replace a token with a version
      string during check-in. While it does have support for replacing a
      token on clone, this is somewhat sub-optimal: the token is replaced
      with the object hash, which is not particularly easy for human
      consumption. What's more, in practice, the source file version was often
      not terribly useful. Generally, when triaging bugs, the overall version
      of Asterisk is far more useful than an individual SVN version of a file. As a
      result, this patch removes Asterisk's support for showing source file
      versions.
      
      Specifically, it does the following:
      
      * Rename ASTERISK_FILE_VERSION macro to ASTERISK_REGISTER_FILE, and
        remove passing the version in with the macro. Other facilities
        than 'core show file version' make use of the file names, such as
        setting a debug level only on a specific file. As such, the act of
        registering source files with the Asterisk core still has use. The
        macro rename now reflects the new macro purpose.
      
      * main/asterisk:
        - Refactor the file_version structure to reflect that it no longer
          tracks a version field.
        - Remove the "core show file version" CLI command. Without the file
          version, it is no longer useful.
        - Remove the ast_file_version_find function. The file version is no
          longer tracked.
        - Rename ast_register_file_version/ast_unregister_file_version to
          ast_register_file/ast_unregister_file, respectively.
      
      * main/manager: Remove value from the Version key of the ModuleCheck
        Action. The actual key itself has not been removed, as doing so would
        absolutely constitute a backwards incompatible change. However, since
        the file version is no longer tracked, there is no need to attempt to
        include it in the Version key.
      
      * UPGRADE: Add notes for:
        - Modification to the ModuleCheck AMI Action
        - Removal of the "core show file version" CLI command
      
      Change-Id: I6cf0ff280e1668bf4957dc21f32a5ff43444a40e
      4a582616
  14. Apr 12, 2015
    • George Joseph's avatar
      Add .gitignore and .gitreview files · b35e184d
      George Joseph authored
      Add the .gitignore and .gitreview files to the asterisk repo.
      
      NB:  You can add local ignores to the .git/info/exclude file
      without having to do a commit.
      
      Common ignore patterns are in the top-level .gitignore file.
      Subdirectory-specific ignore patterns are in their own .gitignore
      files.
      
      Change-Id: I842a1588ff27d8a0189f12d597f0a7af033d6c69
      Tested-by: George Joseph
      b35e184d
  15. Apr 10, 2015
    • Richard Mudgett's avatar
      chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices. · c499cabf
      Richard Mudgett authored
      With this patch, chan_pjsip/res_pjsip now sets the native formats to the
      codecs negotiated by a call.
      
      * The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
      formats to include all the negotiated audio codecs instead of only the
      initial preferred audio codec and later the currently received audio
      codec.
      
      * The audio frame handling in channel.c:ast_read() is more streamlined and
      will automatically adjust to changes in received frame formats.  The new
      policy is to remove translation and pass the new frame format to the
      receiver except if the translation was to a signed linear format.  A more
      long winded version is commented in ast_read() along with some caveats.
      
      * The audio frame handling in channel.c:ast_write() is more streamlined
      and will automatically adjust any needed translation to changes in the
      frame formats sent.  Frame formats sent can change for many reasons such
      as a recording is being played back or the bridged peer changed the format
      it sends.  Since it is a normal expectation that sent formats can change,
      the codec mismatch warning message is demoted to a debug message.
      
      * Removed the short circuit check in
      channel.c:ast_channel_make_compatible_helper().  Two party bridges need to
      make channels compatible with each other.  However, transfers and moving
      channels among bridges can result in otherwise compatible channels having
      sub-optimal translation paths if the make compatible check is short
      circuited.  A result of forcing the reevaluation of channel compatibility
      is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
      options take effect consistently now.  It is unfortunate that these two
      options are enabled by default and negate some of the benefits to the
      changes in channel.c:ast_read() by forcing translation through signed
      linear on a two party bridge.
      
      * Improved the softmix bridge technology to better control the translation
      of frames to the bridge.  All of the incoming translation is now normally
      handled by ast_read() instead of splitting any translation steps between
      ast_read() and the slin factory.  If any frame comes in with an unexpected
      format then the translation path in ast_read() is updated for the next
      frame and the slin factory handles the current frame translation.
      
      This is the final patch in a series of patches aimed at improving
      translation path choices.  The other patches are on the following reviews:
      https://reviewboard.asterisk.org/r/4600/
      https://reviewboard.asterisk.org/r/4605/
      
      ASTERISK-24841 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/4609/
      ........
      
      Merged revisions 434671 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434672 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c499cabf
    • Matthew Jordan's avatar
      res_pjsip: Add an 'auto' option for DTMF Mode · 8bae18ab
      Matthew Jordan authored
      This patch adds support for automatically detecting the type of DTMF that a
      PJSIP endpoint supports. When the 'dtmf_mode' endpoint option is set to 'auto',
      the channel created for an endpoint will attempt to determine if RFC 4733
      DTMF is supported. If so, it will use that DTMF type. If not, the DTMF type
      for the channel will be set to inband.
      
      Review: https://reviewboard.asterisk.org/r/4438
      
      ASTERISK-24706 #close
      Reported by: yaron nahum
      patches:
        yaron_patch_3_Feb.diff submitted by yaron nahum (License 6676)
      ........
      
      Merged revisions 434637 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      8bae18ab
  16. Apr 09, 2015
    • Mark Michelson's avatar
      Reduce duplication of common DNS code. · c08ebc6e
      Mark Michelson authored
      The NAPTR and SRV branches were worked on independently and
      resulted in some code being duplicated in each. Since both
      have been merged into trunk now, this patch reduces the
      duplication by factoring out common code into its own
      source files.
      
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      c08ebc6e
    • Matthew Jordan's avatar
      clang compiler warnings: Fix autological comparisons · ea009872
      Matthew Jordan authored
      This fixes autological comparison warnings in the following:
       * chan_skinny: letohl may return a signed or unsigned value, depending on the
         macro chosen
       * func_curl: Provide a specific cast to CURLoption to prevent mismatch
       * cel: Fix enum comparisons where the enum can never be negative
       * enum: Fix comparison of return result of dn_expand, which returns a signed
         int value
       * event: Fix enum comparisons where the enum can never be negative
       * indications: tone_data.freq1 and freq2 are unsigned, and hence can never be
         negative
       * presencestate: Use the actual enum value for INVALID state
       * security_events: Fix enum comparisons where the enum can never be negative
       * udptl: Don't bother to check if the return value from encode_length is less
         than 0, as it returns an unsigned int
       * translate: Since the parameters are unsigned int, don't bother checking
         to see if they are negative. The cast to unsigned int would already blow
         past the matrix bounds.
       * res_pjsip_exten_state: Use a temporary value to cache the return of
         ast_hint_presence_state
       * res_stasis_playback: Fix enum comparisons where the enum can never be
         negative
       * res_stasis_recording: Add an enum value for the case where the recording
         operation is in error; fix enum comparisons
       * resource_bridges: Use enum value as opposed to -1
       * resource_channels: Use enum value as opposed to -1
      
      Review: https://reviewboard.asterisk.org/r/4533
      ASTERISK-24917
      Reported by: dkdegroot
      patches:
        rb4533.patch submitted by dkdegroot (License 6600)
      ........
      
      Merged revisions 434469 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 434470 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434471 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      ea009872
  17. Apr 08, 2015
    • Richard Mudgett's avatar
      Bridging: Eliminate the unnecessary make channel compatible with bridge operation. · 09df34d8
      Richard Mudgett authored
      When a channel enters the bridging system it is first made compatible with
      the bridge and then the bridge technology makes the channel compatible
      with the technology.  For all but the DAHDI native and softmix bridge
      technologies the make channel compatible with the bridge step is an
      effective noop because the other technologies allow all audio formats.
      For the DAHDI native bridge technology it doesn't matter because it is not
      an initial bridge technology and chan_dahdi allows only one native format
      per channel.  For the softmix bridge technology, it is a noop at best and
      harmful at worst because the wrong translation path could be setup if the
      channel's native formats allow more than one audio format.
      
      This is an intermediate patch for a series of patches aimed at improving
      translation path choices.
      
      * Removed code dealing with the unnecessary step of making the channel
      compatible with the bridge.
      
      ASTERISK-24841
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/4600/
      ........
      
      Merged revisions 434424 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      09df34d8
  18. Apr 06, 2015
  19. Apr 02, 2015
  20. Apr 01, 2015
  21. Mar 30, 2015
  22. Mar 27, 2015
  23. Mar 26, 2015
  24. Mar 25, 2015
  25. Mar 24, 2015
    • Richard Mudgett's avatar
      chan_pjsip: Add "rpid_immediate" option to prevent unnecessary "180 Ringing" messages. · 4c2fc5b8
      Richard Mudgett authored
      Incoming PJSIP call legs that have not been answered yet send unnecessary
      "180 Ringing" or "183 Progress" messages every time a connected line
      update happens.  If the outgoing channel is also PJSIP then the incoming
      channel will always send a "180 Ringing" or "183 Progress" message when
      the outgoing channel sends the INVITE.
      
      Consequences of these unnecessary messages:
      
      * The caller can start hearing ringback before the far end even gets the
      call.
      
      * Many phones tend to grab the first connected line information and refuse
      to update the display if it changes.  The first information is not likely
      to be correct if the call goes to an endpoint not under the control of the
      first Asterisk box.
      
      When connected line first went into Asterisk in v1.8, chan_sip received an
      undocumented option "rpid_immediate" that defaults to disabled.  When
      enabled, the option immediately passes connected line update information
      to the caller in "180 Ringing" or "183 Progress" messages as described
      above.
      
      * Added "rpid_immediate" option to prevent unnecessary "180 Ringing" or
      "183 Progress" messages.  The default is "no" to disable sending the
      unnecessary messages.
      
      ASTERISK-24781 #close
      Reported by: Richard Mudgett
      
      Review: https://reviewboard.asterisk.org/r/4473/
      ........
      
      Merged revisions 433338 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@433339 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      4c2fc5b8
  26. Mar 17, 2015
Loading