Lees weergave

PostgreSQL 18.3, 17.9, 16.13, 15.17, and 14.22 Released!

The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 18.3, 17.9, 16.13, 15.17, and 14.22. This is an out-of-cycle release that fixes several regressions reported after the last update release.

For the full list of changes, please review the release notes.

Bug Fixes and Improvements

This update fixes several bugs that were reported since the previous release. The issues listed below affect PostgreSQL 18. Some of these issues may also affect other supported versions of PostgreSQL.

  • Fix issue where a standby would halt and return an error "could not access status of transaction".
  • Fix error where the substring() function would raise an error "invalid byte sequence for encoding" on non-ASCII text values if the source of that value is a database column. This was due to a change introduced for the fix to CVE-2026-2006.
  • Fix for the strict_word_similarity function in pg_trgm that could lead to incorrect output or crashes. This was due to an oversight in the fix for CVE-2026-2007.
  • Fix function volatility for json_strip_nulls() and jsonb_strip_nulls() to be immutable, like previous releases, allowing for them to be used in indexes. If you previously upgraded to PostgreSQL 18.0 through 18.2, see the additional steps in the "Updating" section.
  • Fix for NOT NULL tests in LATERAL UNION ALL subquery that could lead to wrong query output.
  • Avoid NOT NULL constraints from generating name conflicts with user-written constraints.
  • Fix pg_stat_get_backend_wait_event() and pg_stat_get_backend_wait_event_type() to report values for auxiliary processes, similar to pg_stat_activity.
  • Fix casting a composite-type variable to a domain type when returning its value from a PL/pgSQL function.
  • Fix the hstore binary input function to avoid crashes on input with duplicate keys.

Updating

All PostgreSQL update releases are cumulative. As with other minor releases, users are not required to dump and reload their database or use pg_upgrade in order to apply this update release; you may simply shutdown PostgreSQL and update its binaries.

If you previously upgraded to PostgreSQL 18.0, 18.1 or 18.2, you need to execute the following SQL as a PostgreSQL superuser in all of your databases to make the json_strip_nulls() and jsonb_strip_nulls() functions immutable:

UPDATE pg_catalog.pg_proc SET provolatile = 'i' WHERE oid IN ('3261','3262');

You should also execute this command in the template0 and template1 databases so future databases you create in your PostgreSQL cluster have the correct function volatility setting. Please see the documentation on template databases for more information.

Users who have skipped one or more update releases may need to run additional post-update steps; please see the release notes from earlier versions for details.

For more details, please see the release notes.

Links

If you have corrections or suggestions for this release announcement, please send them to the pgsql-www@lists.postgresql.org public mailing list.

  •  

Counter-Strike 2 Update

[p]\[ MAP SCRIPTING ][/p]
  • [p]Added Instance.SetSaveData[/p][/*]
  • [p]Added Instance.GetSaveData[/p]
    • [p]Workshop maps can write up to 1MB of save data.[/p][/*]
    • [p]Workshop saves leverage Steam Cloud and persist across installs.[/p][/*]
    • [p]Save data size limit can be configured with sv_workshop_map_save_data_max_filesize_mb.[/p][/*]
    [/*]
  • [p]Added Instance.OnModifyPlayerDamage[/p]
    • [p]Called after all damage properties have been calculated, just before armor and health are modified[/p][/*]
    • [p]Replaces Instance.OnBeforePlayerDamage[/p][/*]
    • [p]Includes hitgroup in event data[/p][/*][/*]
    • [p]Added hitgroup to OnPlayerDamage event data[/p][/*]
    • [p]Added CSDamageFlags.IGNORE_ARMOR[/p][/*]
    • [p]Added CSPlayerPawn.IsInputPressed[/p][/*]
    • [p]Added CSPlayerPawn.WasInputJustPressed[/p][/*]
    • [p]Added CSPlayerPawn.WasInputJustReleased[/p][/*]
    • [p]Added enum CSInputs[/p][/*]
    • [p]Fixed bug where CSDamageTypes was exported under the name CSDamageType[/p][/*][p]\[ MISC ][/p]
      • [p]Map guides for de_ancient can now be used on de_ancient_night and vice versa.[/p][/*]
        •  

        Early Stable Update for Desktop

         The Stable channel has been updated to 146.0.7680.31/.32 for Windows and Mac as part of our early stable release to a small percentage of users. A full list of changes in this build is available in the log.

        You can find more details about early Stable releases here.

        Interested in switching release channels?  Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.


        Srinivas Sista

        Google Chrome

        •  

        fix login (ノ ゚ヮ゚)ノ ~┻━┻

        there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2026-02-25)

        recent important news

        🩹 bugfixes

        🔧 other changes

        • warn that config-reload doesn't do global-options a29037a

        🌠 fun facts

        • rushing out a cve-fix in the wee hours of the morning before the 9-5 is a great idea that never goes wrong
          • 10/10 will probably do again

        ⚠️ not the latest version!

        •  

        SECURITY: XSS fix

        there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2026-02-25)

        ⚠️ ATTN: this release fixes an XSS vulnerability

        GHSA-62cr-6wp5-q43h could let an attacker execute arbitrary JS by tricking you into clicking a malicious link 31b2801

        known issue: login broken, fix roughly 8pm UTC tonight

        🔧 other changes


        ⚠️ not the latest version!

        •  

        Asterisk Release certified-22.8-cert1

        The Asterisk Development Team would like to announce
        the release of Certified asterisk-22.8-cert1.

        The release artifacts are available for immediate download at
        https://github.com/asterisk/asterisk/releases/tag/certified-22.8-cert1
        and
        https://downloads.asterisk.org/pub/telephony/certified-asterisk

        Repository: https://github.com/asterisk/asterisk
        Tag: certified-22.8-cert1

        This release resolves issues reported by the community
        and would have not been possible without your participation.

        Thank You!

        Change Log for Release asterisk-certified-22.8-cert1

        Links:

        Summary:

        • Commits: 853
        • Commit Authors: 110
        • Issues Resolved: 590
        • Security Advisories Resolved: 13

        •  

        Minecraft 26.1-snapshot-10 (snapshot) Released

        26.1 Snapshot 10 (known as 26.1-snapshot-10 in the launcher) is the tenth snapshot for Java Edition 26.1, released on February 24, 2026, which makes some minor changes and fixes some issues. Full changelog: https://minecraft.wiki/Java_Edition_26.1-snapshot-10
        •  

        Firefox

        New

        • Added an AI Controls section to Settings for managing AI-enhanced features. Learn more.

          image for AI controls in Settings

        • Firefox now has improved support for screen readers accessing mathematical formulas embedded in PDFs.

        • Remote improvements are now decoupled from telemetry requirements in Firefox Settings. You can now opt into receiving remote browser changes even if you have opted out of sharing telemetry or participating in our experimental studies.

        • Firefox Backup is now available on Windows 10 to users who also use the “Clear history when Firefox closes” capability. Backups will not include any data which is set to be cleared when Firefox is closed.

        • The following languages are now available for translation:

          • Translation into and from Traditional Chinese.
          • Translation into Vietnamese.
        • New Tab wallpapers will now appear on new container tabs as well as new default tabs.

        Fixed

        • Fixed an issue where a language pack could become disabled after a major update, causing Firefox to display in the wrong language.

        • On Windows, dragging a downloaded image to Adobe Illustrator now correctly inserts the image instead of its URL.

        • Various security fixes.

        Web Platform

        • The initial about:blank document is now Web-compatible. If the first navigation of a browsing context goes to about:blank, it completes synchronously and is no longer replaced by a second parser-generated document.

        • Service worker support for WebGPU has been added, making it available in all worker contexts. Service workers allow WebGPU to run in the background, which is particularly useful for extensions and other pages that can meaningfully share resources across multiple tabs and time periods.

        • Firefox now supports the Iterator.zip() and Iterator.zipKeyed() methods from the joint iteration proposal. This allows zipping together underlying iterators into an iterator over values grouped by position, similar to zip in many other languages.

        • Firefox now supports the Trusted Types API, which is primarily aimed at preventing cross-site scripting attacks.

        • Firefox now supports the Sanitizer API, which provides new methods for HTML manipulation. The element.setHTML() method enables developers to insert HTML content similarly to element.innerHTML, but without the security vulnerabilities such as cross-site scripting (XSS). A complementary method, document.parseHTML(), is also available for parsing HTML safely.

        • Firefox now supports the location.ancestorOrigins attribute.

        • Firefox now supports the NavigationPrecommitController.addHandler() interface of the Navigation API. This allows registering a post-commit navigation handler during the pre-commit phase, to allow a multi-step navigation process.

        • Firefox now supports the position-try-order property as part of CSS Anchor Positioning, controlling the order of fallback positioning attempts.

        • Firefox now supports the CSS shape() function, which allows defining responsive free-form shapes in properties that take shapes like clip-path. Unlike path(), it uses standard CSS syntax, supports various CSS units, and allows mathematical functions.

        Community

        •  

        Heiman joins Works with Home Assistant

        Heiman joins Works with Home Assistant

        After an amazing 2025 that saw 12 new Works with Home Assistant partners join the program, it’s now time to say “Hei” to the first partner joining us this year: Heiman.

        Founded back in 2005, Heiman specialize in smart home security devices, and are bringing an impressive selection of safety-focused sensors and alarms to the program: including the first Matter carbon monoxide alarms to be certified, along with smoke alarms designed for international markets.

        Keep it local, keep it safe

        If you’re new to the Works with Home Assistant program, it’s designed to help you identify devices that work brilliantly with Home Assistant, and support the Open Home Foundation’s principles of privacy, choice, and sustainability.

        These values all pivot around local control, something that’s essential when it comes to home safety. Your smoke and CO alarms need to work when you need them most, regardless of your internet connection or cloud service status (though if you want to check in on your devices while away from home, Home Assistant Cloud provides secure remote access, and your subscription helps fund this very program, among other things!).

        Our in-house team has thoroughly tested Heiman’s devices to ensure they meet this key requirement, and we’re happy to report they did! But Heiman has gone further still by using the Matter open connectivity standard

        Why this matters

        Matter was launched to be a unifying connectivity type with interoperability at its heart. Instead of being locked into one company’s ecosystem, Matter devices work across Home Assistant, as well as other platforms like Google Home.

        Heiman’s Matter devices work over Thread, which adds another layer of benefits. Thread is a low-power wireless mesh network protocol that creates resilient connectivity throughout your home, perfect for battery-powered sensors that need reliable communication while staying energy efficient. This is ideal for battery-powered sensors like Heiman’s that need to be energy efficient while maintaining reliable communication.

        So why does all this matter for safety devices specifically? Well firstly, it’s important to know these smart devices will still work as “dumb” ones, so there’s always a failsafe if you decide to rebuild your Thread network, or start making tweaks. If your sensors integrate locally, it means you can automate basic checks, such as reminders to test an alarm once a month, or notifications of hardware faults. If you want to go even further, your smoke alarm could trigger emergency lighting, your CO detector could shut off your gas fireplace, or your leak sensor could close water valves, all without sending your private data through a third-party server. And this is just the sort of complete, interoperable ecosystem Heiman aims to provide.

        "Our core goal has always been to enable every family to enjoy a safe and intelligent living experience. Home Assistant, as a world-leading open source smart home platform, has an open and inclusive ecological philosophy and strong compatibility with multi-brand and multi-protocol devices, which are highly consistent with the direction of our product research and development. We deeply understand that only by integrating into an open ecosystem can we break down device barriers and provide users with a truly seamless whole-house smart solution."

        - Leo Xie, Software Engineer Manager at Heiman

        Working with the community

        Heiman is showing they’re true to these ambitions. Beyond getting certified, they’re planning to take an active role in the Home Assistant community by participating in discussions, listening to real-world feedback, and continuously optimizing their products based on what users actually need. They’re also sharing their technical expertise in smart home security, collaborating with developers to explore innovative safety scenarios that benefit everyone.

        Devices

        Heiman’s commitment to openness and community is also reflected in the devices we’ve certified, which also meet strict safety regulations across the US, Europe, Asia and beyond. Before Heiman joined, we had one Zigbee smoke alarm in the program. Now there are Matter options for multiple regions, plus the first certified carbon monoxide alarms: more choice, more coverage.

        What devices have been certified?

        Also worth noting: Heiman’s global presence allows them to deliver quality devices at prices that won’t break the bank. Safety sensors and alarms shouldn’t be a luxury, and Heiman’s approach means they don’t have to be.

        No more guessing games!

        Accessible pricing is just one way Heiman expands choice for users. We’ve found they also deliver on the other core principles behind the Works with Home Assistant program: local control protects privacy, and open standards ensure sustainability. And that’s the whole point of our certification process: to make it easier for you to spot manufacturers who genuinely commit to these values, taking the guesswork out of building your open home. For full details of all Works with Home Assistant partners, check out our certified device list.

        Welcome to the program, Heiman, we’re excited to see what the community builds with these devices!

        Frequently asked questions

        If I have a device that is not listed under Works with Home Assistant, does this mean it’s not supported?

        No! It just means that it hasn’t gone through a testing schedule with our team, or doesn’t fit the requirements of the program. It might function perfectly well but be added to the testing schedule in the future.

        OK, so what’s the point of the Works with program?

        It highlights the devices we know work well with Home Assistant and the brands that make a long-term commitment to keeping support for these devices going. The certification agreement specifies that brands must continue to support the devices in the program.

        How were these devices tested?

        All devices in this list were tested using a standard Home Assistant Green Hub with the Home Assistant Connect ZBT-2 as the Thread Border Router and with our certified Matter integration.

        Will you be adding more Heiman devices to the program?

        Why not! We’re thrilled to foster a close relationship with the team at Heiman to work together on any upcoming releases or add in further products that are not yet listed here. We are also chatting with them about some exciting future plans.

        •  

        Counter-Strike 2 Update

        [p]\[ MISC ][/p]
        • [p]Mitigated a performance issue that primarily affected Windows 10 users with recent Intel CPUs.[/p][/*]
        • [p]Fixed a case where the Delete Item inventory option wasn't working.[/p][/*]
        • [p]Fixed a case of visual corruption using iron sights on AMD GPUs.[/p][/*]
        • [p]Expanding list of console variables addons are allowed to change.[/p][/*]
        [p][/p][p]\[ MAPS ][/p][p]Overpass[/p]
        • [p]Fixed the Party balloons.[/p][/*]
        •  

        Stable Channel Update for Desktop

         The Stable channel has been updated to 145.0.7632.116/117 for Windows/Mac  and 145.0.7632.116 for Linux, which will roll out over the coming days/weeks. A full list of changes in this build is available in the Log


        Security Fixes and Rewards

        Note: Access to bug details and links may be kept restricted until a majority of users are updated with a fix. We will also retain restrictions if the bug exists in a third party library that other projects similarly depend on, but haven’t yet fixed.

        This update includes 3 security fixes. Please see the Chrome Security Page for more information.


        [TBD][482862710] High CVE-2026-3061: Out of bounds read in Media. Reported by Luke Francis on 2026-02-09

        [TBD][483751167] High CVE-2026-3062: Out of bounds read and write in Tint. Reported by cinzinga on 2026-02-11

        [TBD][485287859] High CVE-2026-3063: Inappropriate implementation

        in DevTools. Reported by M. Fauzan Wijaya (Gh05t666nero) on 2026-02-17


        We would also like to thank all security researchers that worked with us during

        the development cycle to prevent security bugs from ever reaching the stable channel.

        As usual, our ongoing internal security work was responsible for a wide range of fixes:

        • [NA]Various fixes from internal audits, fuzzing and other initiatives



        Many of our security bugs are detected using AddressSanitizerMemorySanitizerUndefinedBehaviorSanitizerControl Flow IntegritylibFuzzer, or AFL.



        Interested in switching release channels? Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.


        Krishna Govind

        Google Chrome
        •  

        Extended Stable Updates for Desktop

         The Extended Stable channel has been updated to 144.0.7559.225 for Windows and Mac which will roll out over the coming days/weeks.


        A full list of changes in this build is available in the log. Interested in switching release channels? Find out how here. If you find a new issue, please let us know by filing a bug. The community help forum is also a great place to reach out for help or learn about common issues.

        Krishna Govind
        Google Chrome
        •  

        Asterisk Release certified-22.8-cert1-rc1

        The Asterisk Development Team would like to announce
        release candidate 1 of Certified asterisk-22.8-cert1.

        The release artifacts are available for immediate download at
        https://github.com/asterisk/asterisk/releases/tag/certified-22.8-cert1-rc1
        and
        https://downloads.asterisk.org/pub/telephony/certified-asterisk

        Repository: https://github.com/asterisk/asterisk
        Tag: certified-22.8-cert1-rc1

        This release resolves issues reported by the community
        and would have not been possible without your participation.

        Thank You!

        Change Log for Release asterisk-certified-22.8-cert1-rc1

        Links:

        Summary:

        • Commits: 853
        • Commit Authors: 110
        • Issues Resolved: 590
        • Security Advisories Resolved: 13
          • GHSA-2grh-7mhv-fcfw: Using malformed From header can forge identity with ";" or NULL in name portion
          • GHSA-33x6-fj46-6rfh: Path traversal via AMI ListCategories allows access to outside files
          • GHSA-64qc-9x89-rx5j: A specifically malformed Authorization header in an incoming SIP request can cause Asterisk to crash
          • GHSA-85x7-54wr-vh42: Asterisk xml.c uses unsafe XML_PARSE_NOENT leading to potential XXE Injection
          • GHSA-c4cg-9275-6w44: Write=originate, is sufficient permissions for code execution / System() dialplan
          • GHSA-c7p6-7mvq-8jq2: cli_permissions.conf: deny option does not work for disallowing shell commands
          • GHSA-hxj9-xwr8-w8pq: Asterisk susceptible to Denial of Service via DTLS Hello packets during call initiation
          • GHSA-mrq5-74j5-f5cr: Remote DoS and possible RCE in asterisk/res/res_stir_shaken/verification.c
          • GHSA-rvch-3jmx-3jf3: ast_coredumper running as root sources ast_debug_tools.conf from /etc/asterisk; potentially leading to privilege escalation
          • GHSA-v428-g3cw-7hv9: A malformed Contact or Record-Route URI in an incoming SIP request can cause Asterisk to crash when res_resolver_unbound is used
          • GHSA-v6hp-wh3r-cwxh: The Asterisk embedded web server's /httpstatus page echos user supplied values(cookie and query string) without sanitization
          • GHSA-v9q8-9j8m-5xwp: Uncontrolled Search-Path Element in safe_asterisk script may allow local privilege escalation.
          • GHSA-xpc6-x892-v83c: ast_coredumper runs as root, and writes gdb init file to world writeable folder; leading to potential privilege escalation

        User Notes:

        • ast_coredumper: check ast_debug_tools.conf permissions

          ast_debug_tools.conf must be owned by root and not be
          writable by other users or groups to be used by ast_coredumper or
          by ast_logescalator or ast_loggrabber when run as root.

        • chan_websocket.conf.sample: Fix category name.

          The category name in the chan_websocket.conf.sample file was
          incorrect. It should be "global" instead of "general".

        • cli.c: Allow 'channel request hangup' to accept patterns.

          The 'channel request hangup' CLI command now accepts
          multiple channel names, POSIX Extended Regular Expressions, glob-like
          patterns, or a combination of all of them. See the CLI command 'core
          show help channel request hangup' for full details.

        • res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command

          The AMI command sorcery memory cache populate will now
          return an error if there is an internal error performing the populate.
          The CLI command will display an error in this case as well.

        • res_geolocation: Fix multiple issues with XML generation.

          Geolocation: Two new optional profile parameters have been added.

          • pidf_element_id which sets the value of the id attribute on the top-level
            PIDF-LO device, person or tuple elements.
          • device_id which sets the content of the <deviceID> element.
            Both parameters can include channel variables.
        • res_pjsip_messaging: Add support for following 3xx redirects

          A new pjsip endpoint option follow_redirect_methods was added.
          This option is a comma-delimited, case-insensitive list of SIP methods
          for which SIP 3XX redirect responses are followed. An alembic upgrade
          script has been added for adding this new option to the Asterisk
          database.

        • taskprocessors: Improve logging and add new cli options

          New CLI command has been added -
          core show taskprocessor name

        • ccss: Add option to ccss.conf to globally disable it.

          A new "enabled" parameter has been added to ccss.conf. It defaults
          to "yes" to preserve backwards compatibility but CCSS is rarely used so
          setting "enabled = no" in the "general" section can save some unneeded channel
          locking operations and log message spam. Disabling ccss will also prevent
          the func_callcompletion and chan_dahdi modules from loading.

        • Makefile: Add module-list-* targets.

          Try "make module-list-deprecated" to see what modules
          are on their way out the door.

        • app_mixmonitor: Add 's' (skip) option to delay recording.

          This change introduces a new 's()' (skip) option to the MixMonitor
          application. Example:
          MixMonitor(${UNIQUEID}.wav,s(3))
          This skips recording for the first 3 seconds before writing audio to the file.
          Existing MixMonitor behavior remains unchanged when the 's' option is not used.

        • app_queue.c: Only announce to head caller if announce_to_first_user

          When announce_to_first_user is false, no announcements are played to the head caller

        • res_stir_shaken: Add STIR_SHAKEN_ATTESTATION dialplan function.

          The STIR_SHAKEN_ATTESTATION dialplan function has been added
          which will allow suppressing attestation on a call-by-call basis
          regardless of the profile attached to the outgoing endpoint.

        • func_channel: Allow R/W of ADSI CPE capability setting.

          CHANNEL(adsicpe) can now be read or written to change
          the channels' ADSI CPE capability setting.

        • func_hangupcause.c: Add access to Reason headers via HANGUPCAUSE()

          Added a new option to HANGUPCAUSE to access additional
          information about hangup reason. Reason headers from pjsip
          could be read using 'tech_extended' cause type.

        • func_math: Add DIGIT_SUM function.

          The DIGIT_SUM function can be used to return the digit sum of
          a number.

        • app_sf: Add post-digit timer option to ReceiveSF.

          The 't' option for ReceiveSF now allows for a timer since
          the last digit received, in addition to the number-wide timeout.

        • app_dial: Allow fractional seconds for dial timeouts.

          The answer and progress dial timeouts now have millisecond
          precision, instead of having to be whole numbers.

        • chan_dahdi: Add DAHDI_CHANNEL function.

          The DAHDI_CHANNEL function allows for getting/setting
          certain properties about DAHDI channels from the dialplan.

        • app_queue.c: Add new global 'log_unpause_on_reason_change'

          Add new global option 'log_unpause_on_reason_change' that
          is default disabled. When enabled cause addition of UNPAUSE event on
          every re-PAUSE with reason changed.

        • pbx_builtins: Allow custom tone for WaitExten.

          The tone used while waiting for digits in WaitExten
          can now be overridden by specifying an argument for the 'd'
          option.

        • res_tonedetect: Add option for TONE_DETECT detection to auto stop.

          The 'e' option for TONE_DETECT now allows detection to
          be disabled automatically once the desired number of matches have
          been fulfilled, which can help prevent race conditions in the
          dialplan, since TONE_DETECT does not need to be disabled after
          a hit.

        • sorcery: Prevent duplicate objects and ensure missing objects are created on update

          Users relying on Sorcery multiple writable backends configurations
          (e.g., astdb + realtime) may now enable update_or_create_on_update_miss = yes
          in sorcery.conf to ensure missing objects are recreated after temporary backend
          failures. Default behavior remains unchanged unless explicitly enabled.

        • chan_websocket: Allow additional URI parameters to be added to the outgoing URI.

          A new WebSocket channel driver option v has been added to the
          Dial application that allows you to specify additional URI parameters on
          outgoing connections. Run core show application Dial from the Asterisk CLI
          to see how to use it.

        • app_chanspy: Add option to not automatically answer channel.

          ChanSpy and ExtenSpy can now be configured to not
          automatically answer the channel by using the 'N' option.

        • cel: Add STREAM_BEGIN, STREAM_END and DTMF event types.

          Enabling the tracking of the
          STREAM_BEGIN and the STREAM_END event
          types in cel.conf will log media files and
          music on hold played to each channel.
          The STREAM_BEGIN event's extra field will
          contain a JSON with the file details (path,
          format and language), or the class name, in
          case of music on hold is played. The DTMF
          event's extra field will contain a JSON with
          the digit and the duration in milliseconds.

        • res_srtp: Add menuselect options to enable AES_192, AES_256 and AES_GCM

          Options are now available in the menuselect "Resource Modules"
          category that allow you to enable the AES_192, AES_256 and AES_GCM
          cipher suites in res_srtp. Of course, libsrtp and OpenSSL must support
          them but modern versions do. Previously, the only way to enable them was
          to set the CFLAGS environment variable when running ./configure.
          The default setting is to disable them preserving existing behavior.

        • cdr: add CANCEL dispostion in CDR

          A new CDR option "canceldispositionenabled" has been added
          that when set to true, the NO ANSWER disposition will be split into
          two dispositions: CANCEL and NO ANSWER. The default value is 'no'

        • func_curl: Allow auth methods to be set.

          The httpauth field in CURLOPT now allows the authentication
          methods to be set.

        • Media over Websocket Channel Driver

          A new channel driver "chan_websocket" is now available. It can
          exchange media over both inbound and outbound websockets and will both frame
          and re-time the media it receives.
          See http://s.asterisk.net/mow for more information.
          The ARI channels/externalMedia API now includes support for the

        • res_stir_shaken.so: Handle X5U certificate chains.

          The STIR/SHAKEN verification process will now load a full
          certificate chain retrieved via the X5U URL instead of loading only
          the end user cert.

        • res_stir_shaken: Add "ignore_sip_date_header" config option.

          A new STIR/SHAKEN verification option "ignore_sip_date_header" has
          been added that when set to true, will cause the verification process to
          not consider a missing or invalid SIP "Date" header to be a failure. This
          will make the IAT the sole "truth" for Date in the verification process.
          The option can be set in the "verification" and "profile" sections of
          stir_shaken.conf.
          Also fixed a bug in the port match logic.
          Resolves: #1251
          Resolves: #1271

        • app_record: Add RECORDING_INFO function.

          The RECORDING_INFO function can now be used
          to retrieve the duration of a recording.

        • app_queue: queue rules – Add support for QUEUE_RAISE_PENALTY=rN to raise penalties only for members within min/max range

          This change introduces QUEUE_RAISE_PENALTY=rN, allowing selective penalty raises
          only for members whose current penalty is within the [min_penalty, max_penalty] range.
          Members with lower or higher penalties are unaffected.
          This behavior is backward-compatible with existing queue rule configurations.

        • res_odbc: cache_size option to limit the cached connections.

          New cache_size option for res_odbc to on a per class basis limit the
          number of cached connections. Please reference the sample configuration
          for details.

        • res_odbc: cache_type option for res_odbc.

          When using res_odbc it should be noted that back-end
          connections to the underlying database can now be configured to re-use
          the cached connections in a round-robin manner rather than repeatedly
          re-using the same connection. This helps to keep connections alive, and
          to purge dead connections from the system, thus more dynamically
          adjusting to actual load. The downside is that one could keep too many
          connections active for a longer time resulting in resource also begin
          consumed on the database side.

        • ARI Outbound Websockets

          Asterisk can now establish websocket sessions to your ARI applications
          as well as accepting websocket sessions from them.
          Full details: http://s.asterisk.net/ari-outbound-ws

        • res_websocket_client: Create common utilities for websocket clients.

          A new module "res_websocket_client" and config file
          "websocket_client.conf" have been added to support several upcoming new
          capabilities that need common websocket client configuration.

        • asterisk.c: Add option to restrict shell access from remote consoles.

          A new asterisk.conf option 'disable_remote_console_shell' has
          been added that, when set, will prevent remote consoles from executing
          shell commands using the '!' prefix.
          Resolves: #GHSA-c7p6-7mvq-8jq2

        • sig_analog: Add Call Waiting Deluxe support.

          Call Waiting Deluxe can now be enabled for FXS channels
          by enabling its corresponding option.

        • stasis/control.c: Set Hangup Cause to No Answer on Dial timeout

          A Dial timeout on POST /channels/{channelId}/dial will now result in a
          CANCEL and ChannelDestroyed with cause 19 / User alerting, no answer. Previously
          no explicit cause was set, resulting in a cause of 16 / Normal Call Clearing.

        • contrib: Add systemd service and timer files for malloc trim.

          Service and timer files for systemd have been added to the
          contrib/systemd/ directory. If you are experiencing memory issues,
          install these files to have "malloc trim" periodically run on the
          system.

        • Add log-caller-id-name option to log Caller ID Name in queue log

          This patch adds a global configuration option, log-caller-id-name, to queues.conf
          to control whether the Caller ID name is logged as parameter 4 when a call enters a queue.
          When log-caller-id-name=yes, the Caller ID name is included in the queue log,
          Any '|' characters in the caller ID name will be replaced with '_'.
          (provided it’s allowed by the existing log_restricted_caller_id rules).
          When log-caller-id-name=no (the default), the Caller ID name is omitted.

        • asterisk.c: Add "pre-init" and "pre-module" capability to cli.conf.

          In cli.conf, you can now define startup commands that run before
          core initialization and before module initialization.

        • audiosocket: added support for DTMF frames

          The AudioSocket protocol now forwards DTMF frames with
          payload type 0x03. The payload is a 1-byte ascii representing the DTMF
          digit (0-9,*,#...).

        • ari/pjsip: Make it possible to control transfers through ARI

          Call transfers on the PJSIP channel can now be controlled by
          ARI. This can be enabled by using the PJSIP_TRANSFER_HANDLING(ari-only)
          dialplan function.

        • sig_analog: Add Last Number Redial feature.

          Users can now redial the last number
          called if the lastnumredial setting is set to yes.
          Resolves: #437

        • Add SHA-256 and SHA-512-256 as authentication digest algorithms

          The SHA-256 and SHA-512-256 algorithms are now available
          for authentication as both a UAS and a UAC.

        • Upgrade bundled pjproject to 2.15.1 Resolves: #1016

          Bundled pjproject has been upgraded to 2.15.1. For more
          information visit pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.15.1

        • res_pjsip: Add new AOR option "qualify_2xx_only"

          The pjsip.conf AOR section now has a "qualify_2xx_only"
          option that can be set so that only 2XX responses to OPTIONS requests
          used to qualify a contact will mark the contact as available.

        • app_queue: allow dynamically adding a queue member in paused state.

          use the p option of AddQueueMember() for paused member state.
          Optionally, use the r(reason) option to specify a custom reason for the pause.

        • manager.c: Add Processed Call Count to CoreStatus output

          The current processed call count is now returned as CoreProcessedCalls from the
          CoreStatus AMI Action.

        • func_curl.c: Add additional CURL options for SSL requests

          The following new configuration options are now available
          in the res_curl.conf file, and the CURL() function: 'ssl_verifyhost'
          (CURLOPT_SSL_VERIFYHOST), 'ssl_cainfo' (CURLOPT_CAINFO), 'ssl_capath'
          (CURLOPT_CAPATH), 'ssl_cert' (CURLOPT_SSLCERT), 'ssl_certtype'
          (CURLOPT_SSLCERTTYPE), 'ssl_key' (CURLOPT_SSLKEY), 'ssl_keytype',
          (CURLOPT_SSLKEYTYPE) and 'ssl_keypasswd' (CURLOPT_KEYPASSWD). See the
          libcurl documentation for more details.

        • res_stir_shaken: Allow sending Identity headers for unknown TNs

          You can now set the "unknown_tn_attest_level" option
          in the attestation and/or profile objects in stir_shaken.conf to
          enable sending Identity headers for callerid TNs not explicitly
          configured.

        • manager.c: Restrict ListCategories to the configuration directory.

          The ListCategories AMI action now restricts files to the
          configured configuration directory.

        • res_pjsip: Add new endpoint option "suppress_moh_on_sendonly"

          The new "suppress_moh_on_sendonly" endpoint option
          can be used to prevent playing MOH back to a caller if the remote
          end sends "sendonly" or "inactive" (hold) to Asterisk in an SDP.

        • app_mixmonitor: Add 'D' option for dual-channel audio.

          The MixMonitor application now has a new 'D' option which
          interleaves the recorded audio in the output frames. This allows for
          stereo recording output with one channel being the transmitted audio and
          the other being the received audio. The 't' and 't' options are
          compatible with this.

        • manager.c: Restrict ModuleLoad to the configured modules directory.

          The ModuleLoad AMI action now restricts modules to the
          configured modules directory.

        • manager: Enhance event filtering for performance

          You can now perform more granular filtering on events
          in manager.conf using expressions like
          eventfilter(name(Newchannel),header(Channel),method(starts_with)) = PJSIP/
          This is much more efficient than
          eventfilter = Event: Newchannel.*Channel: PJSIP/
          Full syntax guide is in configs/samples/manager.conf.sample.

        • db.c: Remove limit on family/key length

          The ast_db_*() APIs have had the 253 byte limit on
          "/family/key" removed and will now accept families and keys with a
          total length of up to SQLITE_MAX_LENGTH (currently 1e9!). This
          affects the DB* dialplan applications, dialplan functions,
          manager actions and databse CLI commands. Since the
          media_cache also uses the ast_db_*() APIs, you can now store
          resources with URIs longer than 253 bytes.

        • res_pjsip_notify: add dialplan application

          A new dialplan application PJSIPNotify is now available
          which can send SIP NOTIFY requests from the dialplan.
          The pjsip send notify CLI command has also been enhanced to allow
          sending NOTIFY messages to a specific channel. Syntax:
          pjsip send notify channel

        • channel: Add multi-tenant identifier.

          tenantid has been added to channels. It can be read in
          dialplan via CHANNEL(tenantid), and it can be set using
          Set(CHANNEL(tenantid)=My tenant ID). In pjsip.conf, it is recommended to
          use the new tenantid option for pjsip endpoints (e.g., tenantid=My
          tenant ID) so that it will show up in Newchannel events. You can set it
          like any other channel variable using set_var in pjsip.conf as well, but
          note that this will NOT show up in Newchannel events. Tenant ID is also
          available in CDR and can be accessed with CDR(tenantid). The peer tenant
          ID can also be accessed with CDR(peertenantid). CEL includes tenant ID
          as well if it has been set.

        • feat: ARI "ChannelToneDetected" event

          Setting the TONE_DETECT dialplan function on a channel
          in ARI will now cause a ChannelToneDetected ARI event to be raised
          when the specified tone is detected.

        • res_pjsip_config_wizard.c: Refactor load process

          The res_pjsip_config_wizard.so module can now be reloaded.

        • app_voicemail_odbc: Allow audio to be kept on disk

          This commit adds a new voicemail.conf option
          'odbc_audio_on_disk' which when set causes the ODBC variant of
          app_voicemail_odbc to leave the message and greeting audio files
          on disk and only store the message metadata in the database.
          Much more information can be found in the voicemail.conf.sample
          file.

        • app_queue: Add option to not log Restricted Caller ID to queue_log

          Add a Queue option log-restricted-caller-id to control whether the Restricted Caller ID
          will be stored in the queue log.
          If log-restricted-caller-id=no then the Caller ID will be stripped if the Caller ID is restricted.

        • pbx.c: expand fields width of "core show hints"

          The fields width of "core show hints" were increased.
          The width of "extension" field to 30 characters and
          the width of the "device state id" field to 60 characters.

        • rtp_engine: add support for multirate RFC2833 digits

          No change in configuration is required in order to enable this
          feature. Endpoints configured to use RFC2833 will automatically have this
          enabled. If the endpoint does not support this, it should not include it in
          the SDP offer/response.
          Resolves: #699

        • res_pjsip_logger: Preserve logging state on reloads.

          Issuing "pjsip reload" will no longer disable
          logging if it was previously enabled from the CLI.

        • loader.c: Allow dependent modules to be unloaded recursively.

          In certain circumstances, modules with dependency relations
          can have their dependents automatically recursively unloaded and loaded
          again using the "module refresh" CLI command or the ModuleLoad AMI command.

        • tcptls/iostream: Add support for setting SNI on client TLS connections

          Secure websocket client connections now send SNI in
          the TLS client hello.

        • res_pjsip_endpoint_identifier_ip: Endpoint identifier request URI

          this new feature let users match endpoints based on the
          indound SIP requests' URI. To do so, add 'request_uri' to the
          endpoint's 'identify_by' option. The 'match_request_uri' option of
          the identify can be an exact match for the entire request uri, or a
          regular expression (between slashes). It's quite similar to the
          header identifer.
          Fixes: #599

        • res_pjsip_refer.c: Allow GET_TRANSFERRER_DATA

          the GET_TRANSFERRER_DATA dialplan variable can now be used also in pjsip.

        • manager.c: Add new parameter 'PreDialGoSub' to Originate AMI action

          When using the Originate AMI Action, we now can pass the PreDialGoSub parameter, instructing the asterisk to perform an subrouting at channel before call start. With this parameter an call initiated by AMI can request the channel to start the call automaticaly, adding a SIP header to using GoSUB, instructing to autoanswer the channel, and proceeding the outbuound extension executing. Exemple of an context to perform the previus indication:
          [addautoanswer]
          exten => _s,1,Set(PJSIP_HEADER(add,Call-Info)=answer-after=0)
          exten => _s,n,Set(PJSIP_HEADER(add,Alert-Info)=answer-after=0)
          exten => _s,n,Return()

        • manager.c: Add CLI command to kick AMI sessions.

          The "manager kick session" CLI command now
          allows kicking a specified AMI session.

        • chan_dahdi: Allow specifying waitfordialtone per call.

          "waitfordialtone" may now be specified for DAHDI
          trunk channels on a per-call basis using the CHANNEL function.

        • Upgrade bundled pjproject to 2.14.1

          Bundled pjproject has been upgraded to 2.14.1. For more
          information visit pjproject Github page: https://github.com/pjsip/pjproject/releases/tag/2.14.1

        • app_dial: Add dial time for progress/ringing.

          The timeout argument to Dial now allows
          specifying the maximum amount of time to dial if
          early media is not received.

        • app_voicemail: Allow preventing mark messages as urgent.

          The leaveurgent mailbox option can now be used to
          control whether callers may leave messages marked as 'Urgent'.

        • Stir/Shaken Refactor

          Asterisk's stir-shaken feature has been refactored to
          correct interoperability, RFC compliance, and performance issues.
          See https://docs.asterisk.org/Deployment/STIR-SHAKEN for more
          information.

        • Upgrade bundled pjproject to 2.14.

          Bundled pjproject has been upgraded to 2.14. For more
          information on what all is included in this change, check out the
          pjproject Github page: https://github.com/pjsip/pjproject/releases

        • app_speech_utils.c: Allow partial speech results.

          The SpeechBackground dialplan application now supports a 'p'
          option that will return partial results from speech engines that
          provide them when a timeout occurs.

        • res_pjsip_outbound_registration.c: Add User-Agent header override

          PJSIP outbound registrations now support a per-registration
          User-Agent header

        • app_chanspy: Add 'D' option for dual-channel audio

          The ChanSpy application now accepts the 'D' option which
          will interleave the spied audio within the outgoing frames. The
          purpose of this is to allow the audio to be read as a Dual channel
          stream with separate incoming and outgoing audio. Setting both the
          'o' option and the 'D' option and results in the 'D' option being
          ignored.

        • app_voicemail_odbc: remove macrocontext from voicemail_messages table

          The fix requires removing the macrocontext column from the
          voicemail_messages table in the voicemail database via alembic upgrade.

        • chan_dahdi: Allow MWI to be manually toggled on channels.

          The 'dahdi set mwi' now allows MWI on channels
          to be manually toggled if needed for troubleshooting.
          Resolves: #440

        • app_dial: Add option "j" to preserve initial stream topology of caller

          The option "j" is now available for the Dial application which
          uses the initial stream topology of the caller to create the outgoing
          channels.

        • logger: Add channel-based filtering.

          The console log can now be filtered by
          channels or groups of channels, using the
          logger filter CLI commands.

        • chan_pjsip: Add PJSIPHangup dialplan app and manager action

          A new dialplan app PJSIPHangup and AMI action allows you
          to hang up an unanswered incoming PJSIP call with a specific SIP
          response code in the 400 -> 699 range.

        • app_voicemail: Add AMI event for mailbox PIN changes.

          The VoicemailPasswordChange event is
          now emitted whenever a mailbox password is updated,
          containing the mailbox information and the new
          password.
          Resolves: #398

        • res_speech: allow speech to translate input channel

          res_speech now supports translation of an input channel
          to a format supported by the speech provider, provided a translation
          path is available between the source format and provider capabilites.

        • res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters

          With this update, the PJSIP realm lengths have been extended
          to support up to 255 characters.

        • res_stasis: signal when new command is queued

          Call setup times should be significantly improved
          when using ARI.

        • lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS

          You no longer need to select DEBUG_THREADS to use
          DETECT_DEADLOCKS. This removes a significant amount of overhead
          if you just want to detect possible deadlocks vs needing full
          lock tracing.

        • file.c: Add ability to search custom dir for sounds

          A new option "sounds_search_custom_dir" has been added to
          asterisk.conf that allows asterisk to search
          AST_DATA_DIR/sounds/custom for sounds files before searching the
          standard AST_DATA_DIR/sounds/ directory.

        • make_buildopts_h, et. al. Allow adding all cflags to buildopts.h

          The "Build Options" entry in the "core show settings"
          CLI command has been renamed to "ABI related Build Options" and
          a new entry named "All Build Options" has been added that shows
          both breaking and non-breaking options.

        • chan_rtp: Implement RTP glue for UnicastRTP channels

          The dial string option 'g' was added to the UnicastRTP channel
          which enables RTP glue and therefore native RTP bridges with those
          channels.

        • variables: Add additional variable dialplan functions.

          Four new dialplan functions have been added.
          GLOBAL_DELETE and DELETE have been added which allows
          the deletion of global and channel variables.
          GLOBAL_EXISTS and VARIABLE_EXISTS have been added
          which checks whether a global or channel variable has
          been set.

        • sig_analog: Add Called Subscriber Held capability.

          Called Subscriber Held is now supported for analog
          FXS channels, using the calledsubscriberheld option. This allows
          a station user to go on hook when receiving an incoming call
          and resume from another phone on the same line by going on hook,
          without disconnecting the call.

        • res_pjsip_header_funcs: Make prefix argument optional.

          The prefix argument to PJSIP_HEADERS is now
          optional. If not specified, all header names will be
          returned.

        • core/ari/pjsip: Add refer mechanism

          There is a new ARI endpoint /endpoints/refer for referring
          an endpoint to some URI or endpoint.

        • chan_dahdi: Allow autoreoriginating after hangup.

          The autoreoriginate setting now allows for kewlstart FXS
          channels to automatically reoriginate and provide dial tone to the
          user again after all calls on the line have cleared. This saves users
          from having to manually hang up and pick up the receiver again before
          making another call.

        • sig_analog: Allow three-way flash to time out to silence.

          The threewaysilenthold option now allows the three-way
          dial tone to time out to silence, rather than continuing forever.

        • res_pjsip: Enable TLS v1.3 if present.

          res_pjsip now allows TLS v1.3 to be enabled if supported by
          the underlying PJSIP library. The bundled version of PJSIP supports
          TLS v1.3.

        • app_queue: Add support for applying caller priority change immediately.

          The 'queue priority caller' CLI command and
          'QueueChangePriorityCaller' AMI action now have an 'immediate'
          argument which allows the caller priority change to be reflected
          immediately, causing the position of a caller to move within the
          queue depending on the priorities of the other callers.

        • Adds manager actions to allow move/remove/forward individual messages in a particular mailbox folder. The forward command can be used to copy a message within a mailbox or to another mailbox. Also adds a VoicemailBoxSummarry, required to retrieve message ID's.

          The following manager actions have been added
          VoicemailBoxSummary - Generate message list for a given mailbox
          VoicemailRemove - Remove a message from a mailbox folder
          VoicemailMove - Move a message from one folder to another within a mailbox
          VoicemailForward - Copy a message from one folder in one mailbox
          to another folder in another or the same mailbox.

        • app_voicemail: add CLI commands for message manipulation

          The following CLI commands have been added to app_voicemail
          voicemail show mailbox
          Show contents of mailbox @
          voicemail remove <from_folder>
          Remove message from <from_folder> in mailbox @
          voicemail move <from_folder> <to_folder>
          Move message in mailbox & from <from_folder> to <to_folder>
          voicemail forward <from_mailbox> <from_context> <from_folder> <to_mailbox> <to_context> <to_folder>
          Forward message in mailbox @ <from_folder> to
          mailbox @ <to_folder>

        • sig_analog: Allow immediate fake ring to be suppressed.

          The immediatering option can now be set to no to suppress
          the fake audible ringback provided when immediate=yes on FXS channels.

        • AMI: Add parking position parameter to Park action

          New ParkingSpace parameter has been added to AMI action Park.

        • res_musiconhold: Add option to loop last file.

          The loop_last option in musiconhold.conf now
          allows the last file in the directory to be looped once reached.

        • AMI: Add CoreShowChannelMap action.

          New AMI action CoreShowChannelMap has been added.

        • sig_analog: Add fuller Caller ID support.

          Additional Caller ID properties are now supported on
          incoming calls to FXS stations, namely the
          redirecting reason and call qualifier.

        • res_stasis.c: Add new type 'sdp_label' for bridge creation.

          When creating a bridge using the ARI the 'type' argument now
          accepts a new value 'sdp_label' which will configure the bridge to add
          labels for each stream in the SDP with the corresponding channel id.

        • app_queue: Preserve reason for realtime queues

          Make paused reason in realtime queues persist an
          Asterisk restart. This was fixed for non-realtime
          queues in ASTERISK_25732.

        • cel: add local optimization begin event (#54)

          The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
          by itself or in conert with the existing
          AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.

        • chan_dahdi: Add dialmode option for FXS lines.

          A "dialmode" option has been added which allows
          specifying, on a per-channel basis, what methods of
          subscriber dialing (pulse and/or tone) are permitted.
          Additionally, this can be changed on a channel
          at any point during a call using the CHANNEL
          function.

        Upgrade Notes:

        • http.c: Change httpstatus to default disabled and sanitize output.

          To prevent possible security issues, the /httpstatus page
          served by the internal web server is now disabled by default. To explicitly
          enable it, set enable_status=yes in http.conf.

        • res_geolocation: Fix multiple issues with XML generation.

          Geolocation: In order to correct bugs in both code and
          documentation, the following changes to the parameters for GML geolocation
          locations are now in effect:

          • The documented but unimplemented crs (coordinate reference system) element
            has been added to the location_info parameter that indicates whether the 2d
            or 3d reference system is to be used. If the crs isn't valid for the shape
            specified, an error will be generated. The default depends on the shape
            specified.
          • The Circle, Ellipse and ArcBand shapes MUST use a 2d crs. If crs isn't
            specified, it will default to 2d for these shapes.
            The Sphere, Ellipsoid and Prism shapes MUST use a 3d crs. If crs isn't
            specified, it will default to 3d for these shapes.
            The Point and Polygon shapes may use either crs. The default crs is 2d
            however so if 3d positions are used, the crs must be explicitly set to 3d.
          • The geoloc show gml_shape_defs CLI command has been updated to show which
            coordinate reference systems are valid for each shape.
          • The pos3d element has been removed in favor of allowing the pos element
            to include altitude if the crs is 3d. The number of values in the pos
            element MUST be 2 if the crs is 2d and 3 if the crs is 3d. An error
            will be generated for any other combination.
          • The angle unit-of-measure for shapes that use angles should now be included
            in the respective parameter. The default is degrees. There were some
            inconsistent references to orientation_uom in some documentation but that
            parameter never worked and is now removed. See examples below.
            Examples...
            location_info = shape="Sphere", pos="39.0 -105.0 1620", radius="20"
            location_info = shape="Point", crs="3d", pos="39.0 -105.0 1620"
            location_info = shape="Point", pos="39.0 -105.0"
            location_info = shape=Ellipsoid, pos="39.0 -105.0 1620", semiMajorAxis="20"
                          semiMinorAxis="10", verticalAxis="0", orientation="25 degrees"
            pidf_element_id = ${CHANNEL(name)}-${EXTEN}
            device_id = mac:001122334455
            Set(GEOLOC_PROFILE(pidf_element_id)=${CHANNEL(name)}/${EXTEN})
          
        • app_directed_pickup.c: Change some log messages from NOTICE to VERBOSE.

          In an effort to reduce log spam, two normal progress
          "pickup attempted" log messages from app_directed_pickup have been changed
          from NOTICE to VERBOSE(3). This puts them on par with other normal
          dialplan progress messages.

        • app_queue.c: Fix error in Queue parameter documentation.

          As part of Asterisk 21, macros were removed from Asterisk.
          This resulted in argument order changing for the Queue dialplan
          application since the macro argument was removed. Upgrade notice was
          missed when this was done, so this upgrade note has been added to
          provide a record of such and a notice to users who may have not upgraded
          yet.

        • res_audiosocket: add message types for all slin sample rates

          New audiosocket message types 0x11 - 0x18 has been added
          for slin12, slin16, slin24, slin32, slin44, slin48, slin96, and
          slin192 audio. External applications using audiosocket may need to be
          updated to support these message types if the audiosocket channel is
          created with one of these audio formats.

        • taskpool: Add taskpool API, switch Stasis to using it.

          The threadpool_* options in stasis.conf have now been deprecated
          though they continue to be read and used. They have been replaced with taskpool
          options that give greater control over the underlying taskpool used for stasis.

        • safe_asterisk: Add ownership checks for /etc/asterisk/startup.d and its files.

          The safe_asterisk script now checks that, if it was run by the
          root user, the /etc/asterisk/startup.d directory and all the files it contains
          are owned by root. If the checks fail, safe_asterisk will exit with an error
          and Asterisk will not be started. Additionally, the default logging
          destination is now stderr instead of tty "9" which probably won't exist
          in modern systems.

        • jansson: Upgrade version to jansson 2.14.1

          jansson has been upgraded to 2.14.1. For more
          information visit jansson Github page: https://github.com/akheron/jansson/releases/tag/v2.14.1

        • Alternate Channel Storage Backends

          With this release, you can now select an alternate channel
          storage backend based on C++ Maps. Using the new backend may increase
          performance and reduce the chances of deadlocks on heavily loaded systems.
          For more information, see http://s.asterisk.net/dc679ec3

        • ARI: REST over Websocket

          This commit adds the ability to make ARI REST requests over the same
          websocket used to receive events.
          See https://docs.asterisk.org/Configuration/Interfaces/Asterisk-REST-Interface-ARI/ARI-REST-over-WebSocket/

        • alembic: Database updates required.

          Two commits in this release...
          'Add SHA-256 and SHA-512-256 as authentication digest algorithms'
          'res_pjsip: Add new AOR option "qualify_2xx_only"'
          ...have modified alembic scripts for the following database tables: ps_aors,
          ps_contacts, ps_auths, ps_globals. If you don't use the scripts to update
          your database, reads from those tables will succeeed but inserts into the
          ps_contacts table by res_pjsip_registrar will fail.

        • channel: Add multi-tenant identifier.

          A new versioned struct (ast_channel_initializers) has been
          added that gets passed to __ast_channel_alloc_ap. The new function
          ast_channel_alloc_with_initializers should be used when creating
          channels that require the use of this struct. Currently the only value
          in the struct is for tenantid, but now more fields can be added to the
          struct as necessary rather than the __ast_channel_alloc_ap function. A
          new option (tenantid) has been added to endpoints in pjsip.conf as well.
          CEL has had its version bumped to include tenant ID.

        • app_queue: Add option to not log Restricted Caller ID to queue_log

          Add a new column to the queues table:
          queue_log_option_log_restricted ENUM('0','1','off','on','false','true','no','yes')
          to control whether the Restricted Caller ID will be stored in the queue log.

        • pbx_variables.c: Prevent SEGV due to stack overflow.

          The maximum amount of dialplan recursion
          using variable substitution (such as by using EVAL_EXTEN)
          is capped at 15.

        • Stir/Shaken Refactor

          The stir-shaken refactor is a breaking change but since
          it's not working now we don't think it matters. The
          stir_shaken.conf file has changed significantly which means that
          existing ones WILL need to be changed. The stir_shaken.conf.sample
          file in configs/samples/ has quite a bit more information. This is
          also an ABI breaking change since some of the existing objects
          needed to be changed or removed, and new ones added. Additionally,
          if res_stir_shaken is enabled in menuselect, you'll need to either
          have the development package for libjwt v1.15.3 installed or use
          the --with-libjwt-bundled option with ./configure.

        • app_voicemail_odbc: remove macrocontext from voicemail_messages table

          The fix requires that the voicemail database be upgraded via
          alembic. Upgrading to the latest voicemail database via alembic will
          remove the macrocontext column from the voicemail_messages table.

        • app.c: Allow ampersands in playback lists to be escaped.

          Ampersands in URLs passed to the Playback(),
          Background(), SpeechBackground(), Read(), Authenticate(), or
          Queue() applications as filename arguments can now be escaped by
          single quoting the filename. Additionally, this is also possible when
          using the CONFBRIDGE dialplan function, or configuring various
          features in confbridge.conf and queues.conf.

        • pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.

          The dtls_rekey will be disabled if webrtc support is
          requested on an endpoint. A warning will also be emitted.

        • res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters

          As part of this update, the maximum allowable length
          for PJSIP endpoints and relevant resources has been increased from
          40 to 255 characters. To take advantage of this enhancement, it is
          recommended to run the necessary procedures (e.g., Alembic) to
          update your schemas.

        • users.conf: Deprecate users.conf configuration.

          The users.conf config is now deprecated
          and will be removed in a future version of Asterisk.

        • app_queue: Preserve reason for realtime queues

          Add a new column to the queue_member table:
          reason_paused VARCHAR(80) so the reason can be preserved.

        • app_sla: Migrate SLA applications out of app_meetme.

          The SLAStation and SLATrunk applications have been moved
          from app_meetme to app_sla. If you are using these applications and have
          autoload=no, you will need to explicitly load this module in modules.conf.

        • utils.h: Deprecate ast_gethostbyname(). (#79)

          ast_gethostbyname() has been deprecated and will be removed
          in Asterisk 23. New code should use ast_sockaddr_resolve() and
          ast_sockaddr_resolve_first_af().

        • cel: add local optimization begin event (#54)

          The existing AST_CEL_LOCAL_OPTIMIZE can continue
          to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
          can be ignored if desired.

        Developer Notes:

        • ccss: Add option to ccss.conf to globally disable it.

          A new API ast_is_cc_enabled() has been added. It should be
          used to ensure that CCSS is enabled before making any other ast_cc_* calls.

        • chan_websocket: Add ability to place a MARK in the media stream.

          Apps can now send a MARK_MEDIA command with an optional
          correlation_id parameter to chan_websocket which will be placed in the
          media frame queue. When that frame is dequeued after all intervening media
          has been played to the core, chan_websocket will send a
          MEDIA_MARK_PROCESSED event to the app with the same correlation_id
          (if any).

        • chan_websocket: Add capability for JSON control messages and events.

          The chan_websocket plain-text control and event messages are now
          deprecated (but remain the default) in favor of JSON formatted messages.
          See https://docs.asterisk.org/Configuration/Channel-Drivers/WebSocket for
          more information.
          A "transport_data" parameter has been added to the

        • chan_pjsip: Add technology-specific off-nominal hangup cause to events.

          A "tech_cause" parameter has been added to the
          ChannelHangupRequest and ChannelDestroyed ARI event messages and a "TechCause"
          parameter has been added to the HangupRequest, SoftHangupRequest and Hangup
          AMI event messages. For chan_pjsip, these will be set to the last SIP
          response status code for off-nominally terminated calls. The parameter is
          suppressed for nominal termination.

        • ARI: The bridges play and record APIs now handle sample rates > 8K correctly.

          The ARI /bridges/play and /bridges/record REST APIs have new
          parameters that allow the caller to specify the format to be used on the
          "Announcer" and "Recorder" channels respecitvely.

        • taskpool: Add taskpool API, switch Stasis to using it.

          The taskpool API has been added for common usage of a
          pool of taskprocessors. It is suggested to use this API instead of the
          threadpool+taskprocessor approach.

        • ARI: Add command to indicate progress to a channel

          A new ARI endpoint is available at /channels/{channelId}/progress to indicate progress to a channel.

        • options: Change ast_options from ast_flags to ast_flags64.

          The 32-bit ast_options has no room left to accomodate new
          options and so has been converted to an ast_flags64 structure. All internal
          references to ast_options have been updated to use the 64-bit flag
          manipulation macros. External module references to the 32-bit ast_options
          should continue to work on little-endian systems because the
          least-significant bytes of a 64 bit integer will be in the same location as a
          32-bit integer. Because that's not the case on big-endian systems, we've
          swapped the bytes in the flags manupulation macros on big-endian systems
          so external modules should still work however you are encouraged to test.

        Commit Authors:

        • Abdelkader Boudih: (3)
        • Albrecht Oster: (1)
        • Alexandre Fournier: (1)
        • Alexei Gradinari: (10)
        • Alexey Khabulyak: (3)
        • Alexey Vasilyev: (1)
        • Allan Nathanson: (6)
        • Andreas Wehrmann: (1)
        • Anthony Minessale: (1)
        • Artem Umerov: (2)
        • Bastian Triller: (4)
        • Ben Ford: (17)
        • Boris P. Korzun: (2)
        • Brad Smith: (4)
        • C. Maj: (1)
        • Cade Parker: (1)
        • Christoph Moench-Tegeder: (1)
        • Daouda Taha: (1)
        • Eduardo: (1)
        • Fabrice Fontaine: (3)
        • Flole998: (1)
        • Florent CHAUVEAU: (1)
        • Frederic LE FOLL: (1)
        • George Joseph: (184)
        • Gitea: (1)
        • Henning Westerholt: (3)
        • Henrik Liljedahl: (1)
        • Holger Hans Peter Freyther: (9)
        • Igor Goncharovsky: (7)
        • InterLinked1: (4)
        • Itzanh: (1)
        • Ivan Poddubny: (2)
        • Jaco Kroon: (10)
        • James Terhune: (1)
        • Jason D. McCormick: (1)
        • Jeremy Lainé: (1)
        • Jiajian Zhou: (1)
        • Joe Garlick: (3)
        • Joe Searle: (2)
        • Jose Lopes: (1)
        • Joshua C. Colp: (22)
        • Joshua Elson: (2)
        • Justin T. Gibbs: (1)
        • Kent: (1)
        • Kristian F. Høgh: (1)
        • Luz Paz: (4)
        • Maksim Nesterov: (1)
        • Marcel Wagner: (2)
        • Mark Murawski: (2)
        • Martin Nystroem: (1)
        • Martin Tomec: (2)
        • Matthew Fredrickson: (2)
        • Max Grobecker: (1)
        • Maximilian Fridrich: (13)
        • Michael Kuron: (2)
        • Michal Hajek: (2)
        • Miguel Angel Nubla: (1)
        • Mike Bradeen: (58)
        • Mike Pultz: (3)
        • MikeNaso: (1)
        • Nathan Bruning: (1)
        • Nathan Monfils: (2)
        • Nathaniel Wesley Filardo: (1)
        • Naveen Albert: (201)
        • Nick French: (1)
        • Niklas Larsson: (1)
        • Norm Harrison: (2)
        • Olaf Titz: (1)
        • Peter Fern: (1)
        • Peter Jannesen: (3)
        • Peter Krall: (1)
        • PeterHolik: (2)
        • Philip Prindeville: (12)
        • Roman Pertsev: (1)
        • Samuel Olaechea: (1)
        • Sean Bright: (122)
        • Sebastian Jennen: (1)
        • Sergey V. Lobanov: (1)
        • Shaaah: (1)
        • Shyju Kanaprath: (1)
        • Sperl Viktor: (5)
        • Spiridonov Dmitry: (1)
        • Stanislav Abramenkov: (6)
        • Steffen Arntz: (1)
        • Stuart Henderson: (1)
        • Sven Kube: (8)
        • ThatTotallyRealMyth: (1)
        • The_Blode: (1)
        • Thomas B. Clark: (1)
        • Thomas Guebels: (2)
        • Tinet-mucw: (11)
        • Vitezslav Novy: (1)
        • Walter Doekes: (1)
        • Zhai Liangliang: (1)
        • alex2grad: (1)
        • chrsmj: (2)
        • cmaj: (2)
        • fabriziopicconi: (1)
        • gauravs456: (1)
        • gibbz00: (1)
        • jiangxc: (1)
        • jonatascalebe: (1)
        • kodokaii: (1)
        • mkmer: (3)
        • phoneben: (10)
        • romryz: (1)
        • sarangr7: (1)
        • sungtae kim: (3)
        • zhengsh: (3)
        • zhou_jiajian: (2)

        •  

        no265

        there is a discord server with an @everyone in case of future important updates, such as vulnerabilities (most recently 2025-09-07)

        🧪 new features

        🩹 bugfixes

        🔧 other changes

        • due to legal reasons, the docker-images and bootable flashdrive are now unable to create thumbnails of HEVC/h265 videos and heif/heic images 1bec91d
          • this primarily means photos/videos taken with iphones (and maybe some samsung phones)
          • on the bright side, this has made the docker-images much smaller; ac is now half the size it used to be, and iv / dj are each 97 MiB smaller

        🌠 fun facts

        • if you wanna see your car doing its best impression of a frictionless spherical cow, I can warmly (heh) recommend the icy snowcoated countryroads of viken this weekend

        ⚠️ not the latest version!

        •  

        uNmINeD 0.19.57-dev

        New uNmINeD development snapshot is available for download!

        Changes:

        • (Minecraft) Added and fixed a lot of building block colors
        • (Minecraft) Fixed Java Edition region loading issues that were occuring on some systems
        • (Hytale) Added support for RocksDB world storage type (thanks to rocksdb-sharp)
        • (Hytale) Map colors are now calculated based on in-game textures
        • (Hytale / GUI) Added Hytale player markers
        • (GUI) Added export functions to the block list panel

        uNmINeD now uses different colors for each Minecraft stone type (basalt, diorite, andesite, etc.), and the color of stone and cobblestone blocks are now darker to better match the in-game color. Many other blocks now have a distinct color (gold, lapis, diamond, etc.). If you want to go back to the previous map colors, turn off the Natural stones, Masonry and Mineral blocks settings on the stylesheet sidebar tab.

        Hytale support is still experimental. There may be bugs and crashes.

        A Hytale world map rendered in uNmINeD:

        •  
        ❌