Skip to content
Snippets Groups Projects
  1. May 06, 2015
  2. May 05, 2015
    • Richard Mudgett's avatar
      features: Fix crash when transferee hangs up during DTMF attended transfer. · 6c4d1c32
      Richard Mudgett authored
      A crash happens with this sequence of steps:
      1) Party A is connected to party B.
      2) Party B starts a DTMF attended transfer.
      3) Party A hangs up while party B is dialing party C.
      
      When party A hangs up the bridge that party A and party B are in is
      dissolved and party B is kicked out of the bridge.  When party B finishes
      dialing party C he attempts to move to the new bridge with party C.  Since
      party B is no longer in a bridge the attempted move dereferences a NULL
      bridge_channel pointer and crashes.
      
      * Made the hold(), unhold(), ringing(), and the bridge_move() functions
      tolerant of the channel not being in a bridge.  The assertion that party B
      is always in a bridge is not true if the bridged peer of party B hangs up
      and dissolves the bridge.  Being tolerant of not being in a bridge allows
      the peer hangup stimulus to be processed by the FSM.
      
      * Made the bridge_move() function return void since where the return value
      for a failed move was checked generated a FSM coding ERROR message for a
      normal off-nominal condition.
      
      * Eliminated most uses of RAII_VAR in bridge_basic.c.
      
      ASTERISK-25003 #close
      Reported by: Artem Volodin
      
      Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
      6c4d1c32
    • Joshua Colp's avatar
      stasis: Fix dial masquerade datastore lifetime · 11f650c6
      Joshua Colp authored
      A recent change went into Asterisk which added reference counts to the
      channels stored in a dial masquerade datastore. Unfortunately this
      included a reference to the caller in a dialing operation. While all
      of the dialed targets have the datastore removed from them upon dialing
      completion this did not occur for the caller, causing it to have a
      reference to itself that could go never go away (as it depended on
      the destruction of the datastore which only happened when the channel
      was destroyed). This resulted in the caller channel remaining on the
      system despite it having hung up.
      
      This change does the following to fix this issue:
      
      1. The dial masquerade datastore is now removed from the caller upon
      dialing completion, just like the dialed targets.
      2. Upon destruction of the caller all the dialed targets are also
      removed from the dial masquerade datastore (just in case).
      3. The reference to the caller has been removed as it should not be
      possible for the datastore to now be valid/useful after the lifetime
      of the caller has ended.
      
      ASTERISK-25025 #close
      
      Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
      11f650c6
    • 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
  3. May 04, 2015
  4. May 03, 2015
    • Corey Farrell's avatar
      main/presencestate.c: Add trailing slash to test category. · 1368dae7
      Corey Farrell authored
      ASTERISK-25053
      Reported by: Corey Farrell
      
      Change-Id: I8c0375dd0818747b2d2e1ceaea87bfbeb2daf8d4
      1368dae7
    • 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
  5. May 02, 2015
    • D Tucny's avatar
      term: send proper reset sequence when black background is forced · e4f0a55f
      D Tucny authored
      When using the force black background command-line option or configuration
      option an invalid reset sequence is sent following a coloured output item 
      in the CLI, the result is that the colour is not 'turned off' and continues
      until the next non-default coloured text output.
      
      A reset sequence is already defined in term.c, but the ast_term_reset
      function doesn't use it, instead building it's own invalid sequence and 
      returning that.
      
      This patch changes that behaviour, removing the building of a reset sequence
      and instead using the pre-built constant 'enddata' which is a suitable reset
      sequence for this purpose.
      
      ASTERISK-24896 #close
      Reported by: Dan Tucny
      
      Change-Id: I56323899123ae3264900389cae1f5b252aa3bf43
      e4f0a55f
  6. May 01, 2015
    • Corey Farrell's avatar
      Astobj2: Fix initialization order of refdebug and AO2_DEBUG. · 8f3cee12
      Corey Farrell authored
      This ensures that refdebug is initialized before AO2_DEBUG if
      both are enabled, since AO2_DEBUG allocates a container.
      
      This change also makes AO2_DEBUG initialization critical, a
      failure will abort Asterisk startup.  This is needed since
      the failure would be caused by reg_containers allocation
      failure, and that would result in a segmentation fault by
      ao2_container_register later in startup.
      
      ASTERISK-25048 #close
      Reported by: Corey Farrell
      
      Change-Id: I9a243ea3fc5653b48b931ba6d61971cb2e530244
      8f3cee12
    • Matt Jordan's avatar
      main/pbx: Improve performance of dialplan reloads with a large number of hints · 7ac28be0
      Matt Jordan authored
      The PBX core maintains two hash tables for hints: a container of the
      actual hints (hints), along with a container of devices that are watching that
      hint (hintdevices). When a dialplan reload occurs, each hint in the hints
      container is destroyed; this requires a lookup in the container of devices to
      find the device => hint mapping object. In the current code, this performs an
      ao2_callback, iterating over each of the device to hint objects in the
      hintdevices container. For a large number of hints, this is extremely
      expensive: dialplan reloads with 20000 hints could take several minutes
      in just this phase.
      
      This patch improves the performance of this step in the dialplan reloads
      by caching which devices are watching a hint on the hint object itself.
      Since we don't want to create a circular reference, we just cache the
      name of the device. This allows us to perform a smarter ao2_callback on
      the hintdevices container during hint removal, hashing on the name of the
      device and returning an iterator to the matching names. The overall
      performance improvement is rather large, taking this step down to a number of
      seconds as opposed to minutes.
      
      In addition, this patch also registers the hint containers in the PBX
      core with the astobj2 library. This allows for reasonable debugging to
      hash collisions in those containers.
      
      ASTERISK-25040 #close
      Reported by: Matt Jordan
      
      Change-Id: Iedfc97a69d21070c50fca42275d7b3e714e59360
      7ac28be0
  7. Apr 30, 2015
    • Mark Michelson's avatar
      Prevent potential crash on blond transfer. · dc23204a
      Mark Michelson authored
      Scenario:
      Alice calls Bob. Bob performs a blond transfer to Carol. Carol rejects
      the incoming call (or some other immediate circumstance causes Carol not
      to answer the call)
      
      What occurs in this case is that when the bridge between Alice and Bob
      breaks, Alice is told to masquerade into Bob's channel that had placed
      the call to Carol. The actual masquerade goes down without a hitch.
      However, a channel fixup callback that attempts to publish dial events
      over Stasis has a crash. The reason for this crash is that the datastore
      on Bob's channel that placed the outbound call to Carol only had a bare
      pointer to Carol's channel. Since Carol rejected the incoming call,
      Carol's channel has been hung up and freed, meaning accessing her
      channel results in a crash.
      
      The fix here is simple. The dial fixup code has been altered to hold
      references to the involved channels and to drop those references when
      freeing data.
      
      ASTERISK-25025 #close
      Reported by Chet Stevens
      
      Change-Id: I54eedda207b8ec7a69263353b43abe5746aea197
      dc23204a
    • Mark Michelson's avatar
      Restrict functionality when ACLs are misconfigured. · 11ffcf66
      Mark Michelson authored
      This patch has two main purposes:
      
      1) Improve warning messages when ACLs are configured improperly.
      2) Prevent misconfigured ACLs from allowing potentially unwanted
      traffic.
      
      To acomplish point (2) in most cases, whatever configuration object that
      the ACL belonged to was not allowed to load.
      
      The one exception is res_pjsip_acl. In that case, ACLs are their own
      configuration object. Furthermore, the module loading code has no
      indication that a ACL configuration had a failure. So the tactic taken
      here is to create an ACL that just blocks everything.
      
      ASTERISK-24969
      Reported by Corey Farrell
      
      Change-Id: I2ebcb6959cefad03cea4d81401be946203fcacae
      11ffcf66
  8. Apr 29, 2015
    • Matt Jordan's avatar
      main/rtp_engine: Fix DTLS double-free introduced by 0b6410c4 · 39d3e1ef
      Matt Jordan authored
      The patch in 0b6410c4 did correctly fix a memory leak of the DTLS
      structures in the RTP engine. However, when a 'core reload' is issued, a
      double free of the memory pointed to by the char *'s in the DTLS
      configuration struct can occur, as ast_rtp_dtls_cfg_free does not set
      the pointers to NULL when they are freed.
      
      This patch sets those pointers to NULL, preventing a second call to
      ast_rtp_dtls_cfg_free from corrupting memory.
      
      ASTERISK-25022
      
      Change-Id: I820471e6070a37e3c26f760118c86770e12f6115
      39d3e1ef
    • 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
    • Corey Farrell's avatar
      Git Conversion: Switch Non-C files to ASTERISK_REGISTER_FILE. · 55a780d2
      Corey Farrell authored
      This switches files used to generate other sources to use the new
      ASTERISK_REGISTER_FILE macro.
      
      ASTERISK-25026 #close
      Reported by: Corey Farrell
      
      Change-Id: Ieb2537b83421cad07c8955e5f90c405ccf079740
      55a780d2
  9. Apr 28, 2015
    • Steve Davies's avatar
      res_rtp_asterisk: Resolve 2 discrete memory leaks in DTLS · 5e965848
      Steve Davies authored
      ao2 ref leak in res_rtp_asterisk.c when a DTLS policy is created.
      The resources are linked into a table, but the original alloc refs
      are never released. ast_strdup leak in rtp_engine.c. If
      ast_rtp_dtls_cfg_copy() is called twice on the same destination struct,
      a pointer to an alloc'd string is overwritten before the string is free'd.
      
      ASTERISK-25022
      Reported by: one47
      
      Change-Id: I62a8ceb8679709f6c3769136dc6aa9a68202ff9b
      5e965848
  10. 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
  11. Apr 23, 2015
    • Diederik de Groot's avatar
      Clang: change previous tautological-compare fixes. · ca719316
      Diederik de Groot authored
      clang can warn about a so called tautological-compare, when it finds
      comparisons which are logically always true, and are therefor deemed
      unnecessary.
      
      Exanple:
      unsigned int x = 4;
      if (x > 0)    // x is always going to be bigger than 0
      
      Enum Case:
      Each enumeration is its own type. Enums are an integer type but they
      do not have to be *signed*. C leaves it up to the compiler as an
      implementation option what to consider the integer type of a particu-
      lar enumeration is. Gcc treats an enum without negative values as
      an int while clang treats this enum as an unsigned int.
      
      rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
      The cast does have an effect. For gcc, which seems to treat all enums
      as int, the cast to unsigned int will eliminate the possibility of
      negative values being allowed. For clang, which seems to treat enums
      without any negative members as unsigned int, the cast will have no
      effect. If for some reason in the future a negative value is ever
      added to the enum the assert will still catch the negative value.
      
      ASTERISK-24917
      
      Change-Id: I0557ae0154a0b7de68883848a609309cdf0aee6a
      ca719316
    • Corey Farrell's avatar
      Astobj2: Ensure all calls to __adjust_lock pass a valid object. · c231c85e
      Corey Farrell authored
      __adjust_lock doesn't check for invalid objects, and doesn't have an
      appropriate return value for invalid objects.  Most callers of
      __adjust_lock pass objects that have already been confirmed valid,
      this change adds checks before the remaining calls.
      
      ASTERISK-24997 #close
      Reported by: Corey Farrell
      
      Change-Id: I669100f87937cc3f867cec56a27ae9c01292908f
      c231c85e
  12. Apr 22, 2015
    • Joshua Colp's avatar
      dns: Make query sets hold on to queries for their lifetime. · 7216e3c6
      Joshua Colp authored
      The query set documentation states that upon completion queries can be
      retrieved for the lifetime of the query set. This is a reasonable
      expectation but does not currently occur. This was originally done
      to resolve a circular reference between queries and query sets, but
      in practice the query can be kept.
      
      This change makes it so a query does not have a reference to the
      query set until it begins resolving. It also makes it so that the
      reference is given up upon the query being completed. This allows
      the queries to remain for the lifetime of the query set. As the
      query set on the query is only useful to the query set functionality
      and only for the lifetime that the query is resolving this is safe
      to do.
      
      ASTERISK-24994 #close
      Reported by: Joshua Colp
      
      Change-Id: I54e09c0cb45475896654e7835394524e816d1aa0
      7216e3c6
  13. Apr 21, 2015
    • Corey Farrell's avatar
      Check for ao2_alloc failure in __ast_channel_internal_alloc. · 5757d2d3
      Corey Farrell authored
      Fix a crash that could occur in __ast_channel_internal_alloc if
      ao2_alloc fails.
      
      ASTERISK-24991 #close
      
      Change-Id: I4ca89189eb22f907408cb87d0a1645cfe1314a90
      5757d2d3
    • 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
  14. Apr 19, 2015
    • Matt Jordan's avatar
      main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple · 8e903b17
      Matt Jordan authored
      When a PBX registrar is unloaded, it will fail to remove its extension from
      the context root_table if a dialplan application used by that extension is
      still loaded. This can be the case for AGI, which can be unloaded after several
      of the standard PBX providers. Often, this is harmless; however, if the
      extension's priorities are removed during the failed unloading *and* the
      dialplan application later unregisters, it leaves a ticking timebomb for the
      next PBX provider that attempts to iterate over the extensions. When that
      occurs, the peer_table pointer on the extension will already be set to NULL.
      The current code does not check to see if the pointer is NULL before passing
      it to a hashtab function this is not NULL tolerant.
      
      Since it is possible for the peer_table to be NULL when we normally would not
      expect that to be the case, the solution in this patch is to simply skip over
      processing an extension's priorities if peer_table is NULL.
      
      Prior to this patch, the tests/pbx/callerid_match test would crash during
      module unload. With this patch, the test no longer crashes after running.
      
      ASTERISK-24774 #close
      Reported by: Corey Farrell
      
      Change-Id: I2bbeecb7e0f77bac303a1b9135e4cdb4db6d4c40
      8e903b17
  15. Apr 17, 2015
    • 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
  16. Apr 16, 2015
    • Kevin Harwell's avatar
      bridge.c: NULL app causes crash during attended transfer · 56a2baa2
      Kevin Harwell authored
      Due to a race condition there was a chance that during an attended transfer the
      channel's application would return NULL. This, of course, would cause a crash
      when attempting to access the memory. This patch retrieves the channel's app
      at an earlier time in processing in hopes that the app name is available.
      However, if it is not then "unknown" is used instead. Since some string value
      is now always present the crash can no longer occur.
      
      ASTERISK-24869 #close
      Reported by: viniciusfontes
      Review: https://gerrit.asterisk.org/#/c/133/
      
      Change-Id: I5134b84c4524906d8148817719d76ffb306488ac
      56a2baa2
    • 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
  17. 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
  18. Apr 14, 2015
    • Corey Farrell's avatar
      AMI: Fix improper handling of lines that are exactly 1025 bytes long. · 62e95065
      Corey Farrell authored
      When AMI receives a line that is 1025 bytes long, it sends two error
      messages.  Copy the last byte in the buffer to the first postiion,
      set the length to 1.
      
      ASTERISK-20524 #close
      Reported by: David M. Lee
      
      Change-Id: Ifda403e2713b59582c715229814fd64a0733c5ea
      62e95065
    • 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
  19. Apr 13, 2015
    • 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
  20. Apr 12, 2015
    • Corey Farrell's avatar
      main/editline: Add .gitignore. · 5d34bce6
      Corey Farrell authored
      This patch adds a .gitignore for main/editline to ignore all build results.
      
      Change-Id: I68c7bf375ea46282689e5a706534b69fca233b5d
      5d34bce6
    • 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
  21. 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
    • Richard Mudgett's avatar
      bridge_softmix.c,channel.c: Minor code simplification and cleanup. · 6f1a7fe0
      Richard Mudgett authored
      * Made code easier to follow in bridge_softmix.c:analyse_softmix_stats()
      and made some debug messages more helpful.
      
      * Made some debug and warning messages more helpful in
      channel.c:set_format().
      
      Review: https://reviewboard.asterisk.org/r/4607/
      ........
      
      Merged revisions 434617 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      6f1a7fe0
    • Richard Mudgett's avatar
      translate.c: Only select audio codecs to determine the best translation choice. · 0b805cb8
      Richard Mudgett authored
      Given a source capability of h264 and ulaw, a destination capability of
      h264 and g722 then ast_translator_best_choice() would pick h264 as the
      best choice even though h264 is a video codec and Asterisk only supports
      translation of audio codecs.  When the audio starts flowing, there are
      warnings about a codec mismatch when the channel tries to write a frame to
      the peer.
      
      * Made ast_translator_best_choice() only select audio codecs.
      
      * Restore a check in channel.c:set_format() lost after v1.8 to prevent
      trying to set a non-audio codec.
      
      This is an intermediate patch for a series of patches aimed at improving
      translation path choices for ASTERISK-24841.
      
      This patch is a complete enough fix for ASTERISK-21777 as the v11 version
      of ast_translator_best_choice() does the same thing.  However, chan_sip.c
      still somehow tries to call ast_codec_choose() which then calls
      ast_best_codec() with a capability set that doesn't contain any audio
      formats for the incoming call.  The remaining warning message seems to be
      a benign transient.
      
      ASTERISK-21777 #close
      Reported by: Nick Ruggles
      
      ASTERISK-24380 #close
      Reported by: Matt Jordan
      
      Review: https://reviewboard.asterisk.org/r/4605/
      ........
      
      Merged revisions 434614 from http://svn.asterisk.org/svn/asterisk/branches/11
      ........
      
      Merged revisions 434615 from http://svn.asterisk.org/svn/asterisk/branches/13
      
      
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      0b805cb8
    • Joshua Colp's avatar
      dns: Fix build when TEST_FRAMEWORK is not defined. · 02a0a4d6
      Joshua Colp authored
      git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@434583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
      02a0a4d6
  22. Apr 09, 2015
Loading