Skip to content
Snippets Groups Projects
  1. Dec 13, 2021
  2. Dec 02, 2021
  3. Nov 15, 2021
    • Josh Soref's avatar
      CHANGES: Spelling fixes · 42d1c134
      Josh Soref authored
      Correct typos of the following word families:
      
      issuing
      execution
      bridging
      alert
      respective
      unlikely
      confbridge
      offered
      negotiation
      announced
      engineer
      systems
      inherited
      passthrough
      functionality
      supporting
      conflicts
      semantically
      monitor
      specify
      specifiable
      
      ASTERISK-29714
      
      Change-Id: Ia6b1cf634f52c5f7b1b8769dc54dae78106ed98c
      42d1c134
  4. Oct 13, 2021
  5. Sep 16, 2021
  6. Aug 12, 2021
  7. Jul 22, 2021
  8. Jun 17, 2021
  9. Apr 29, 2021
  10. Mar 11, 2021
  11. Jan 14, 2021
  12. Nov 12, 2020
  13. Sep 09, 2020
  14. Jul 15, 2020
  15. Jul 29, 2019
  16. Apr 09, 2019
    • Ben Ford's avatar
      build: Revise CHANGES and UPGRADE.txt handling. · a4ab7f5f
      Ben Ford authored
      This changes the way that we handle adding changes to CHANGES and
      UPGRADE.txt. The reason for this is because whenever someone needed to
      make a change to one of these files and someone else had already done
      so, you would run into merge conflicts. With this new setup, there will
      never be merge conflicts since all changes will be documented in the
      doc/<file>-staging directory. The release script is now responsible for
      merging all of these changes into the appropriate files.
      
      There is a special format that these files have to follow in order to be
      parsed. The files do not need to have a meaningful name, but it is
      strongly recommended. For example, if you made a change to pjsip, you
      may have something like this "res_pjsip_relative_title", where
      "relative_title" is something more descriptive than that. Inside each
      file, you will need a subject line for your change, followed by a
      description. There can be multiple subject lines. The file may look
      something like this:
      
         Subject: res_pjsip
         Subject: Core
      
         A description that explains the changes made and why. The release
         script will handle the bulleting and section separators!
      
         You can still separate with new lines within your
         description.
      
      The headers ("Subject" and "Master-Only") are case sensative, but the
      value for "Master-Only" ("true" or "True") is not.
      
      For more information, check out the wiki page:
      https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt
      
      ASTERISK-28111 #close
      
      Change-Id: I19cf4b569321c88155a65e9b0b80f6d58075dd47
      a4ab7f5f
  17. Mar 08, 2019
    • Torrey Searle's avatar
      chan_pjsip: add a flag to ignore 183 responses if no SDP present · 4661c085
      Torrey Searle authored
      chan_sip will always ignore 183 responses that do not contain SDP
      however, chan_pjsip will currently always translate it into a
      183 with SDP.  This new flag allows chan_pjsip to have the same
      behavior as chan_sip.
      
      ASTERISK-28322 #close
      
      Change-Id: If81cfaa17c11b6ac703e3d71696f259d86c6be4a
      4661c085
  18. Mar 07, 2019
    • Ben Ford's avatar
      res_stasis: Add ability to switch applications. · 6626df58
      Ben Ford authored
      Added the ability to move between Stasis applications within Stasis.
      This can be done by calling 'move' in an application, providing (at
      minimum) the channel's id and the application to switch to. If the
      application is not registered or active, nothing will happen and the
      channel will remain in the current application, and an event will be
      triggered to let the application know that the move failed. The event
      name is "ApplicationMoveFailed", and provides the "destination" that the
      channel was attempting to move to, as well as the usual channel
      information. Optionally, a list of arguments can be passed to the
      function call for the receiving application. A full example of a 'move'
      call would look like this:
      
      client.channels.move(channelId, app, appArgs)
      
      The control object used to control the channel in Stasis can now switch
      which application it belongs to, rather than belonging to one Stasis
      application for its lifetime. This allows us to use the same control
      object instead of having to tear down the current one and create
      another.
      
      ASTERISK-28267 #close
      
      Change-Id: I43d12b10045a98a8d42541889b85695be26f288a
      6626df58
  19. Mar 01, 2019
  20. Feb 26, 2019
  21. Feb 20, 2019
    • George Joseph's avatar
      taskprocessor: Enable subsystems and overload by subsystem · c2adeb9d
      George Joseph authored
      To prevent one subsystem's taskprocessors from causing others
      to stall, new capabilities have been added to taskprocessors.
      
      * Any taskprocessor name that has a '/' will have the part
        before the '/' saved as its "subsystem".
        Examples:
        "sorcery/acl-0000006a" and "sorcery/aor-00000019"
        will be grouped to subsystem "sorcery".
        "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
        will bn grouped to subsystem "pjsip".
        Taskprocessors with no '/' have an empty subsystem.
      
      * When a taskprocessor enters high-water alert status and it
        has a non-empty subsystem, the subsystem alert count will
        be incremented.
      
      * When a taskprocessor leaves high-water alert status and it
        has a non-empty subsystem, the subsystem alert count will be
        decremented.
      
      * A new api ast_taskprocessor_get_subsystem_alert() has been
        added that returns the number of taskprocessors in alert for
        the subsystem.
      
      * A new CLI command "core show taskprocessor alerted subsystems"
        has been added.
      
      * A new unit test was addded.
      
      REMINDER: The taskprocessor code itself doesn't take any action
      based on high-water alerts or overloading.  It's up to taskprocessor
      users to check and take action themselves.  Currently only the pjsip
      distributor does this.
      
      * A new pjsip/global option "taskprocessor_overload_trigger"
        has been added that allows the user to select the trigger
        mechanism the distributor uses to pause accepting new requests.
        "none": Don't pause on any overload condition.
        "global": Pause on ANY taskprocessor overload (the default and
        current behavior)
        "pjsip_only": Pause only on pjsip taskprocessor overloads.
      
      * The core pjsip pool was renamed from "SIP" to "pjsip" so it can
        be properly grouped into the "pjsip" subsystem.
      
      * stasis taskprocessor names were changed to "stasis" as the
        subsystem.
      
      * Sorcery core taskprocessor names were changed to "sorcery" to
        match the object taskprocessors.
      
      Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56
      c2adeb9d
    • Kevin Harwell's avatar
      ARI event type filtering · 8681fc9d
      Kevin Harwell authored
      Event type filtering is now enabled, and configurable per application. An app is
      now able to specify which events are sent to the application by configuring an
      allowed and/or disallowed list(s). This can be done by issuing the following:
      
      PUT /applications/{applicationName}/eventFilter
      
      And then enumerating the allowed/disallowed event types as a body parameter.
      
      ASTERISK-28106
      
      Change-Id: I9671ba1fcdb3b6c830b553d4c5365aed5d588d5b
      8681fc9d
  22. Feb 04, 2019
    • Ben Ford's avatar
      res_stasis: Auto-create context and extens on Stasis app launch. · 3f9c5fba
      Ben Ford authored
      At AstriCon, there was a strong desire for the ability to completely
      bypass dialplan when using ARI. This is possible through the automatic
      creation of a context and a couple of extensions whenever an application
      is started.
      
      For example, if you have an application named 'ari-example', a context
      named 'stasis-ari-example' will be automatically created whenever this
      application is started as long as one does not already exist. Two
      extensions (a match-all extension for Stasis and a 'h' extension) are
      created within this context. Any endpoint that registers to Asterisk
      within this context will send all calls to the corresponding Stasis
      application. When the application is destroyed, the context is removed.
      
      ASTERISK-28104 #close
      
      Change-Id: Ie35bd93075e05b05e3ae129a83c9426931b7ebac
      3f9c5fba
  23. Jan 28, 2019
    • George Joseph's avatar
      media_index.c: Refactored so it doesn't cache the index · 7071e9d6
      George Joseph authored
      Testing revealed that the cache added no benefit but that it could
      consume excessive memory.
      
      Two new index related functions were created:
      ast_sounds_get_index_for_file() and ast_media_index_update_for_file()
      which restrict index updating to specific sound files.
      
      The original ast_sounds_get_index() and ast_media_index_update()
      calls are still available but since they no longer cache the results
      internally, developers should re-use an index they may already have
      instead of calling ast_sounds_get_index() repeatedly.  If information
      for only a single file is needed, ast_sounds_get_index_for_file()
      should be called instead of ast_sounds_get_index().
      
      The media_index directory scan code was elimininated in favor of
      using the existing ast_file_read_dirs() function.
      
      Since there's no more cache, ast_sounds_index_init now only
      registers the sounds cli commands instead of generating the
      initial index and subscribing to stasis format register/unregister
      messages.
      
      "sounds" is no longer a valid target for the "module reload"
      command.
      
      Both the sounds cli commands and the sounds ari resources were
      refactored to only call ast_sounds_get_index() once per invocation
      and to use ast_sounds_get_index_for_file() when a specific sound
      file is requested.
      
      Change-Id: I1cef327ba1b0648d85d218b70ce469ad07f4aa8d
      7071e9d6
  24. Jan 22, 2019
    • George Joseph's avatar
      app_voicemail: Add Mailbox Aliases · c6980e32
      George Joseph authored
      You can now define an "aliases" context in voicemail.conf
      whose entries point to actual mailboxes.  These can be used anywhere
      the mailbox is specified.
      
      Example:
      [general]
      aliasescontext = myaliases
      
      [default]
      1234 = yadayada
      
      [myaliases]
      4321@devices = 1234@default
      
      Now you can use 4321@devices to refer to the 1234@default mailbox.
      
      This can be useful to provide channel drivers with constant
      mailbox specifications such as <extension>@devices leaving
      app_voicemail to control exactly which mailbox the alias points to.
      Now, only voicemail has to be reloaded to make changes instead of
      individual channel drivers which are usually more expensive to
      reload.
      
      Change-Id: I395b9205c91523a334fe971be0d1de4522067b04
      c6980e32
  25. Jan 11, 2019
    • Alexei Gradinari's avatar
      res_pjsip: add option to enable ContactStatus event when contact is updated · f0546d1d
      Alexei Gradinari authored
      The commit I2f97ebfa79969a36a97bb7b9afd5b6268cf1a07d removed sending out
      the ContactStatus AMI event when a contact is updated.
      Thist change broke things which rely on old behavior.
      
      This patch adds a new PJSIP global configuration option
      'send_contact_status_on_update_registration' to be able to preserve old
      ContactStatus behavior.
      By default new behavior, i.e. the ContactStatus event will not be sent when a
      device refreshes its registration.
      
      Change-Id: I706adf7584e7077eb6bde6d9799ca408bc82ce46
      f0546d1d
  26. Dec 13, 2018
  27. Nov 26, 2018
    • George Joseph's avatar
      bridges: Remove reliance on stasis caching · 3667c5e1
      George Joseph authored
      * The bridging core no longer uses the stasis cache for bridge
        snapshots.  The latest bridge snapshot is now stored on the
        ast_bridge structure itself.
      
      * The following APIs are no longer available since the stasis cache
        is no longer used:
          ast_bridge_topic_cached()
          ast_bridge_topic_all_cached()
      
      * A topic pool is now used for individual bridge topics.
      
      * The ast_bridge_cache() function was removed since there's no
        longer a separate container of snapshots.
      
      * A new function "ast_bridges()" was created to retrieve the
        container of all bridges.  Users formerly calling
        ast_bridge_cache() can use the new function to iterate over
        bridges and retrieve the latest snapshot directly from the
        bridge.
      
      * The ast_bridge_snapshot_get_latest() function was renamed to
        ast_bridge_get_snapshot_by_uniqueid().
      
      * A new function "ast_bridge_get_snapshot()" was created to retrieve
        the bridge snapshot directly from the bridge structure.
      
      * The ast_bridge_topic_all() function now returns a normal topic
        not a cached one so you can't use stasis cache functions on it
        either.
      
      * The ast_bridge_snapshot_type() stasis message now has the
        ast_bridge_snapshot_update structure as it's data.  It contains
        the last snapshot and the new one.
      
      * cdr, cel, manager and ari have been updated to use the new
        arrangement.
      
      Change-Id: I7049b80efa88676ce5c4666f818fa18ad1985369
      3667c5e1
    • Joshua Colp's avatar
      stasis: Use an implementation specific channel snapshot cache. · d0ccbb33
      Joshua Colp authored
      Channels no longer use the Stasis cache for channel snapshots. Instead
      they are stored in a hash table in stasis_channels which reduces the
      number of Stasis messages created and allows better storage.
      
      As a result the following APIs are no longer available since the stasis
      cache is no longer used:
      ast_channel_topic_cached()
      ast_channel_topic_all_cached()
      
      The ast_channel_cache_all() and ast_channel_cache_by_name() functions
      now return an ao2_container of ast_channel_snapshots rather than
      a container of stasis_messages therefore you can't (and don't need
      to) call stasis_cache functions on it.
      
      The ast_channel_topic_all() function now returns a normal topic not
      a cached one so you can't use stasis cache functions on it either.
      
      The ast_channel_snapshot_type() stasis message now has the
      ast_channel_snapshot_update structure as it's data. It contains the
      last snapshot and the new one.
      
      ast_channel_snapshot_get_latest() still returns the latest snapshot.
      
      The latest snapshot is now stored on the channel itself to eliminate
      cache hits when Stasis messages that have the snapshot as a payload
      are created.
      
      ASTERISK-28102
      
      Change-Id: I9334febff60a82d7c39703e49059fa3a68825786
      d0ccbb33
  28. Nov 19, 2018
    • George Joseph's avatar
      backtrace: Refactor ast_bt_get_symbols so it doesn't crash · ece5f801
      George Joseph authored
      We've been seeing crashes in libbfd when we attempt to generate
      a stack trace from multiple threads.  It turns out that libbfd
      is NOT thread-safe.  It can cache the bfd structure and give it to
      multiple threads without protecting itself.  To get around this,
      we've added a global mutex around the bfd functions and also have
      refactored the use of those functions to be more efficient and
      to provide more information about inlined functions.
      
      Also added a few more tests to test_pbx.c.  One just calls
      ast_assert() and the other calls ast_log_backtrace().  Neither are
      run by default.
      
      WARNING:  This change necessitated changing the return value of
      ast_bt_get_symbols() from an array of strings to a VECTOR of
      strings.  However, the use of this function outside Asterisk is not
      likely.
      
      ASTERISK-28140
      
      Change-Id: I79d02862ddaa2423a0809caa4b3b85c128131621
      ece5f801
  29. Nov 18, 2018
    • Alexei Gradinari's avatar
      pjsip: New function PJSIP_PARSE_URI to parse URI and return part of URI · fa048183
      Alexei Gradinari authored
      New dialplan function PJSIP_PARSE_URI added to parse an URI and return
      a specified part of the URI.
      
      This is useful when need to get part of the URI instead of cutting it
      using a CUT function.
      
      For example to get 'user' part of Remote URI
      ${PJSIP_PARSE_URI(${CHANNEL(pjsip,remote_uri)},user)}
      
      ASTERISK-28144 #close
      
      Change-Id: I5d828fb87f6803b6c1152bb7b44835f027bb9d5a
      fa048183
  30. Nov 08, 2018
    • Corey Farrell's avatar
      pbx_config: Only the first [globals] section is seen. · 8e34cb30
      Corey Farrell authored
      If multiple [globals] sections are used (for example via separate
      included files), only the first one is processed.  This can result in
      lost global variables when using a modular extensions.conf.
      
      ASTERISK-28146 #close
      
      Change-Id: Iaac810c0a7c4d9b1bf8989fcc041cdb910ef08a0
      Unverified
      8e34cb30
  31. Oct 30, 2018
    • Alexei Gradinari's avatar
      pjsip: new endpoint's options to control Connected Line updates · eee93598
      Alexei Gradinari authored
      This patch adds new options 'trust_connected_line' and 'send_connected_line'
      to the endpoint.
      
      The option 'trust_connected_line' is to control if connected line updates
      are accepted from this endpoint.
      
      The option 'send_connected_line' is to control if connected line updates
      can be sent to this endpoint.
      
      The default value is 'yes' for both options.
      
      Change-Id: I16af967815efd904597ec2f033337e4333d097cd
      eee93598
  32. Oct 25, 2018
    • Corey Farrell's avatar
      chan_sip deprecation. · 90a11c4a
      Corey Farrell authored
      This officially deprecates chan_sip in Asterisk 17+.  A warning is
      printed upon startup or module load to tell users that they should
      consider migrating.  chan_sip is still built by default but the default
      modules.conf skips loading it at startup.
      
      Very important to note we are not scheduling a time where chan_sip will
      be removed.  The goal of this change is to accurately inform end users
      of the current state of chan_sip and encourage movement to the fully
      supported chan_pjsip.
      
      Change-Id: Icebd8848f63feab94ef882d36b2e99d73155af93
      Unverified
      90a11c4a
  33. Oct 01, 2018
  34. Sep 26, 2018
    • Ben Ford's avatar
      res_rtp_asterisk.c: Add "seqno" strictrtp option · b11a6643
      Ben Ford authored
      When networks experience disruptions, there can be large gaps of time
      between receiving packets. When strictrtp is enabled, this created
      issues where a flood of packets could come in and be seen as an attack.
      Another option - seqno - has been added to the strictrtp option that
      ignores the time interval and goes strictly by sequence number for
      validity.
      
      Change-Id: I8a42b8d193673899c8fc22fe7f98ea87df89be71
      b11a6643
  35. Sep 12, 2018
    • lvl's avatar
      manager: Set AMI event "Newexten" to the EVENT_FLAG_DIALPLAN class · 012272a1
      lvl authored
      The documentation already specified EVENT_FLAG_DIALPLAN for this
      event, but the implementation was using EVENT_FLAG_CALL.
      
      Using EVENT_FLAG_DIALPLAN allows AMI clients to opt out of receiving
      this highly verbose event.
      
      ASTERISK-28033
      
      Change-Id: I45b3119f30e4dbc17b49831f2b1a4f2c1beadafe
      012272a1
  36. Aug 17, 2018
  37. Jul 27, 2018
    • Richard Mudgett's avatar
      res_pjsip_endpoint_identifier_ip.c: Added regex support to match_header · e5ae04b4
      Richard Mudgett authored
      This patch adds regular expression support to make the identify section's
      match_header option more useful when attempting to match complex headers
      like the 'To' or 'From' headers.  The 'From' header has variable
      components such as the tag parameter that you cannot predict.  To specify
      a regular expression put slashes around the regular expression in place of
      the header value.
      
      [identify-alice]
      type=identify
      endpoint=alice
      match_header=From: /<sip:alice@127\\.0\\.0\\.1>/
      
      * Added regex support to match_header so you could match a 'To' header
      among other complex headers.
      
      Fixed reported crashes when trying to match special headers like 'Contact'.
      The identify section's match_header method used code that assumed you were
      matching a generic header.  Any other type of header could cause a crash
      if the header structure variant did not match the generic header enough.
      
      * Made use code that will work for any header type instead of code
      specific to generic headers.
      
      Other fixes while in the area:
      
      * Made check all headers of the requested name.
      * Added some more sanity checks to the configured identify matching
      options when applying the configuration.
      
      ASTERISK-27548
      
      Change-Id: I27dfd4ff5e2259b906640e3c330681b76b4ed1f1
      e5ae04b4
  38. Jul 20, 2018
Loading