]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Update for certified-20.7-cert8 releases/certified-20.7 certified-20.7-cert8
authorAsterisk Development Team <asteriskteam@digium.com>
Mon, 12 Jan 2026 16:33:18 +0000 (16:33 +0000)
committerAsterisk Development Team <asteriskteam@digium.com>
Mon, 12 Jan 2026 16:33:18 +0000 (16:33 +0000)
.version
CHANGES.html
CHANGES.md
ChangeLogs/ChangeLog-certified-20.7-cert8.html [new file with mode: 0644]
ChangeLogs/ChangeLog-certified-20.7-cert8.md [new file with mode: 0644]
README.html
README.md

index baa91ff640240fdd14fdf1569bd085674631fc71..7bc8930cc8df4fc6a88bbae604573cf6875386a0 100644 (file)
--- a/.version
+++ b/.version
@@ -1 +1 @@
-certified-20.7-cert7
+certified-20.7-cert8
index 9aef6ba99ad1a696c674809c19ca207ca6b1fd40..9260e8ad9142957bae46c2624f6c06f1d531aeb0 120000 (symlink)
@@ -1 +1 @@
-ChangeLogs/ChangeLog-certified-20.7-cert7.html
\ No newline at end of file
+ChangeLogs/ChangeLog-certified-20.7-cert8.html
\ No newline at end of file
index eb4f4cc9a3d1d85b7a1f398be057a5573a29c485..6c6098f9c5dbe36f21ca10355ce62094bb2dd181 120000 (symlink)
@@ -1 +1 @@
-ChangeLogs/ChangeLog-certified-20.7-cert7.md
\ No newline at end of file
+ChangeLogs/ChangeLog-certified-20.7-cert8.md
\ No newline at end of file
diff --git a/ChangeLogs/ChangeLog-certified-20.7-cert8.html b/ChangeLogs/ChangeLog-certified-20.7-cert8.html
new file mode 100644 (file)
index 0000000..58e8348
--- /dev/null
@@ -0,0 +1,231 @@
+<html><head><title>ChangeLog for asterisk-certified-20.7-cert8</title></head><body>
+<h2>Change Log for Release asterisk-certified-20.7-cert8</h2>
+<h3>Links:</h3>
+<ul>
+<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk/releases/ChangeLog-certified-20.7-cert8.html">Full ChangeLog</a>  </li>
+<li><a href="https://github.com/asterisk/asterisk/compare/certified-20.7-cert7...certified-20.7-cert8">GitHub Diff</a>  </li>
+<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-20.7-cert8.tar.gz">Tarball</a>  </li>
+<li><a href="https://downloads.asterisk.org/pub/telephony/certified-asterisk">Downloads</a>  </li>
+</ul>
+<h3>Summary:</h3>
+<ul>
+<li>Commits: 7</li>
+<li>Commit Authors: 3</li>
+<li>Issues Resolved: 7</li>
+<li>Security Advisories Resolved: 0</li>
+</ul>
+<h3>User Notes:</h3>
+<ul>
+<li>
+<h4>res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command</h4>
+<p>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.</p>
+</li>
+<li>
+<h4>res_geolocation:  Fix multiple issues with XML generation.</h4>
+<p>Geolocation: Two new optional profile parameters have been added.</p>
+</li>
+<li><code>pidf_element_id</code> which sets the value of the <code>id</code> attribute on the top-level
+    PIDF-LO <code>device</code>, <code>person</code> or <code>tuple</code> elements.</li>
+<li><code>device_id</code> which sets the content of the <code>&lt;deviceID&gt;</code> element.
+  Both parameters can include channel variables.</li>
+</ul>
+<h3>Upgrade Notes:</h3>
+<ul>
+<li>
+<h4>res_geolocation:  Fix multiple issues with XML generation.</h4>
+  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:</li>
+<li>The documented but unimplemented <code>crs</code> (coordinate reference system) element
+    has been added to the location_info parameter that indicates whether the <code>2d</code>
+    or <code>3d</code> 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.</li>
+<li>The Circle, Ellipse and ArcBand shapes MUST use a <code>2d</code> crs.  If crs isn't
+    specified, it will default to <code>2d</code> for these shapes.
+    The Sphere, Ellipsoid and Prism shapes MUST use a <code>3d</code> crs. If crs isn't
+    specified, it will default to <code>3d</code> for these shapes.
+    The Point and Polygon shapes may use either crs.  The default crs is <code>2d</code>
+    however so if <code>3d</code> positions are used, the crs must be explicitly set to <code>3d</code>.</li>
+<li>The <code>geoloc show gml_shape_defs</code> CLI command has been updated to show which
+    coordinate reference systems are valid for each shape.</li>
+<li>The <code>pos3d</code> element has been removed in favor of allowing the <code>pos</code> element
+    to include altitude if the crs is <code>3d</code>.  The number of values in the <code>pos</code>
+    element MUST be 2 if the crs is <code>2d</code> and 3 if the crs is <code>3d</code>.  An error
+    will be generated for any other combination.</li>
+<li>The angle unit-of-measure for shapes that use angles should now be included
+    in the respective parameter.  The default is <code>degrees</code>. There were some
+    inconsistent references to <code>orientation_uom</code> in some documentation but that
+    parameter never worked and is now removed.  See examples below.
+  Examples...
+  <code>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})</code></li>
+</ul>
+<h3>Developer Notes:</h3>
+<h3>Commit Authors:</h3>
+<ul>
+<li>George Joseph: (4)</li>
+<li>Mike Bradeen: (2)</li>
+<li>Sean Bright: (1)</li>
+</ul>
+<h2>Issue and Commit Detail:</h2>
+<h3>Closed Issues:</h3>
+<ul>
+<li>1259: [bug]: New TenantID feature doesn't seem to set CDR for incoming calls</li>
+<li>1349: [bug]: Race condition on redirect can cause missing Diversion header</li>
+<li>1539: [bug]: safe_asterisk without TTY doesn't log to file</li>
+<li>1554: [bug]: safe_asterisk recurses into subdirectories of startup.d after f97361</li>
+<li>1667: [bug]: Multiple geolocation issues with rendering XML</li>
+<li>1681: [bug]: stasis/control.c: Memory leak of hangup_time in set-timeout</li>
+<li>1700: [improvement]: Improve sorcery cache populate</li>
+</ul>
+<h3>Commits By Author:</h3>
+<ul>
+<li>
+<h4>George Joseph (4):</h4>
+</li>
+<li>
+<h4>Mike Bradeen (2):</h4>
+</li>
+<li>
+<h4>Sean Bright (1):</h4>
+</li>
+</ul>
+<h3>Commit List:</h3>
+<ul>
+<li>res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command</li>
+<li>res_geolocation:  Fix multiple issues with XML generation.</li>
+<li>stasis/control.c: Add destructor to timeout_datastore.</li>
+<li>safe_asterisk: Resolve a POSIX sh problem and restore globbing behavior.</li>
+<li>safe_asterisk:  Fix logging and sorting issue.</li>
+<li>res_pjsip_diversion: resolve race condition between Diversion header processing and redirect</li>
+<li>cdr.c: Set tenantid from party_a-&gt;base instead of chan-&gt;base.</li>
+</ul>
+<h3>Commit Details:</h3>
+<h4>res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command</h4>
+<p>Author: Mike Bradeen
+  Date:   2026-01-06</p>
+<p>Reduce cache lock time for AMI and CLI sorcery memory cache populate
+  commands by adding a new populate_lock to the sorcery_memory_cache
+  struct which is locked separately from the existing cache lock so that
+  the cache lock can be maintained for a reduced time, locking only when
+  the cache objects are removed and re-populated.</p>
+<p>Resolves: #1700</p>
+<p>UserNote: 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.</p>
+<h4>res_geolocation:  Fix multiple issues with XML generation.</h4>
+<p>Author: George Joseph
+  Date:   2025-12-17</p>
+<ul>
+<li>3d positions were being rendered without an enclosing <code>&lt;gml:pos&gt;</code>
+    element resulting in invalid XML.</li>
+<li>There was no way to set the <code>id</code> attribute on the enclosing <code>tuple</code>, <code>device</code>
+    and <code>person</code> elements.</li>
+<li>There was no way to set the value of the <code>deviceID</code> element.</li>
+<li>Parsing of degree and radian UOMs was broken resulting in them appearing
+    outside an XML element.</li>
+<li>The UOM schemas for degrees and radians were reversed.</li>
+<li>The Ellipsoid shape was missing and the Ellipse shape was defined multiple
+    times.</li>
+<li>The <code>crs</code> location_info parameter, although documented, didn't work.</li>
+<li>The <code>pos3d</code> location_info parameter appears in some documentation but
+    wasn't being parsed correctly.</li>
+<li>The retransmission-allowed and retention-expiry sub-elements of usage-rules
+    were using the <code>gp</code> namespace instead of the <code>gbp</code> namespace.</li>
+</ul>
+<p>In addition to fixing the above, several other code refactorings were
+  performed and the unit test enhanced to include a round trip
+  XML -&gt; eprofile -&gt; XML validation.</p>
+<p>Resolves: #1667</p>
+<p>UserNote: Geolocation: Two new optional profile parameters have been added.
+  * <code>pidf_element_id</code> which sets the value of the <code>id</code> attribute on the top-level
+    PIDF-LO <code>device</code>, <code>person</code> or <code>tuple</code> elements.
+  * <code>device_id</code> which sets the content of the <code>&lt;deviceID&gt;</code> element.
+  Both parameters can include channel variables.</p>
+<p>UpgradeNote: 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 <code>crs</code> (coordinate reference system) element
+    has been added to the location_info parameter that indicates whether the <code>2d</code>
+    or <code>3d</code> 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 <code>2d</code> crs.  If crs isn't
+    specified, it will default to <code>2d</code> for these shapes.
+    The Sphere, Ellipsoid and Prism shapes MUST use a <code>3d</code> crs. If crs isn't
+    specified, it will default to <code>3d</code> for these shapes.
+    The Point and Polygon shapes may use either crs.  The default crs is <code>2d</code>
+    however so if <code>3d</code> positions are used, the crs must be explicitly set to <code>3d</code>.
+  * The <code>geoloc show gml_shape_defs</code> CLI command has been updated to show which
+    coordinate reference systems are valid for each shape.
+  * The <code>pos3d</code> element has been removed in favor of allowing the <code>pos</code> element
+    to include altitude if the crs is <code>3d</code>.  The number of values in the <code>pos</code>
+    element MUST be 2 if the crs is <code>2d</code> and 3 if the crs is <code>3d</code>.  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 <code>degrees</code>. There were some
+    inconsistent references to <code>orientation_uom</code> in some documentation but that
+    parameter never worked and is now removed.  See examples below.
+  Examples...
+  <code>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})</code></p>
+<h4>stasis/control.c: Add destructor to timeout_datastore.</h4>
+<p>Author: George Joseph
+  Date:   2025-12-31</p>
+<p>The timeout_datastore was missing a destructor resulting in a leak
+  of 16 bytes for every outgoing ARI call.</p>
+<p>Resolves: #1681</p>
+<h4>safe_asterisk: Resolve a POSIX sh problem and restore globbing behavior.</h4>
+<p>Author: Sean Bright
+  Date:   2025-10-22</p>
+<ul>
+<li>Using <code>==</code> with the POSIX sh <code>test</code> utility is UB.</li>
+<li>Switch back to using globs instead of using <code>$(find … | sort)</code>.</li>
+<li>Fix a missing redirect when checking for the OS type.</li>
+</ul>
+<p>Resolves: #1554</p>
+<h4>safe_asterisk:  Fix logging and sorting issue.</h4>
+<p>Author: George Joseph
+  Date:   2025-10-17</p>
+<p>Re-enabled "TTY=9" which was erroneously disabled as part of a recent
+  security fix and removed another logging "fix" that was added.</p>
+<p>Also added a sort to the "find" that enumerates the scripts to be sourced so
+  they're sourced in the correct order.</p>
+<p>Resolves: #1539</p>
+<h4>res_pjsip_diversion: resolve race condition between Diversion header processing and redirect</h4>
+<p>Author: Mike Bradeen
+  Date:   2025-08-07</p>
+<p>Based on the firing order of the PJSIP call-backs on a redirect, it was possible for
+  the Diversion header to not be included in the outgoing 181 response to the UAC and
+  the INVITE to the UAS.</p>
+<p>This change moves the Diversion header processing to an earlier PJSIP callback while also
+  preventing the corresponding update that can cause a duplicate 181 response when processing
+  the header at that time.</p>
+<p>Resolves: #1349</p>
+<h4>cdr.c: Set tenantid from party_a-&gt;base instead of chan-&gt;base.</h4>
+<p>Author: George Joseph
+  Date:   2025-07-17</p>
+<p>The CDR tenantid was being set in cdr_object_alloc from the channel-&gt;base
+  snapshot.  Since this happens at channel creation before the dialplan is even
+  reached, calls to <code>CHANNEL(tenantid)=&lt;something&gt;</code> in the dialplan were being
+  ignored.  Instead we now take tenantid from party_a when
+  cdr_object_create_public_records() is called which is after the call has
+  ended and all channel snapshots rebuilt.  This is exactly how accountcode
+  and amaflags, which can also be set in tha dialplpan, are handled.</p>
+<p>Resolves: #1259</p>
+</body></html>
diff --git a/ChangeLogs/ChangeLog-certified-20.7-cert8.md b/ChangeLogs/ChangeLog-certified-20.7-cert8.md
new file mode 100644 (file)
index 0000000..fc12e1a
--- /dev/null
@@ -0,0 +1,256 @@
+
+## Change Log for Release asterisk-certified-20.7-cert8
+
+### Links:
+
+ - [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/certified-asterisk/releases/ChangeLog-certified-20.7-cert8.html)  
+ - [GitHub Diff](https://github.com/asterisk/asterisk/compare/certified-20.7-cert7...certified-20.7-cert8)  
+ - [Tarball](https://downloads.asterisk.org/pub/telephony/certified-asterisk/asterisk-certified-20.7-cert8.tar.gz)  
+ - [Downloads](https://downloads.asterisk.org/pub/telephony/certified-asterisk)  
+
+### Summary:
+
+- Commits: 7
+- Commit Authors: 3
+- Issues Resolved: 7
+- Security Advisories Resolved: 0
+
+### User Notes:
+
+- #### 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.
+
+
+### Upgrade Notes:
+
+- #### 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})
+  ```
+
+
+### Developer Notes:
+
+
+### Commit Authors:
+
+- George Joseph: (4)
+- Mike Bradeen: (2)
+- Sean Bright: (1)
+
+## Issue and Commit Detail:
+
+### Closed Issues:
+
+  - 1259: [bug]: New TenantID feature doesn't seem to set CDR for incoming calls
+  - 1349: [bug]: Race condition on redirect can cause missing Diversion header
+  - 1539: [bug]: safe_asterisk without TTY doesn't log to file
+  - 1554: [bug]: safe_asterisk recurses into subdirectories of startup.d after f97361
+  - 1667: [bug]: Multiple geolocation issues with rendering XML
+  - 1681: [bug]: stasis/control.c: Memory leak of hangup_time in set-timeout
+  - 1700: [improvement]: Improve sorcery cache populate
+
+### Commits By Author:
+
+- #### George Joseph (4):
+
+- #### Mike Bradeen (2):
+
+- #### Sean Bright (1):
+
+### Commit List:
+
+-  res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command
+-  res_geolocation:  Fix multiple issues with XML generation.
+-  stasis/control.c: Add destructor to timeout_datastore.
+-  safe_asterisk: Resolve a POSIX sh problem and restore globbing behavior.
+-  safe_asterisk:  Fix logging and sorting issue.
+-  res_pjsip_diversion: resolve race condition between Diversion header processing and redirect
+-  cdr.c: Set tenantid from party_a->base instead of chan->base.
+
+### Commit Details:
+
+#### res_sorcery_memory_cache: Reduce cache lock time for sorcery memory cache populate command
+  Author: Mike Bradeen
+  Date:   2026-01-06
+
+  Reduce cache lock time for AMI and CLI sorcery memory cache populate
+  commands by adding a new populate_lock to the sorcery_memory_cache
+  struct which is locked separately from the existing cache lock so that
+  the cache lock can be maintained for a reduced time, locking only when
+  the cache objects are removed and re-populated.
+
+  Resolves: #1700
+
+  UserNote: 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.
+  Author: George Joseph
+  Date:   2025-12-17
+
+  * 3d positions were being rendered without an enclosing `<gml:pos>`
+    element resulting in invalid XML.
+  * There was no way to set the `id` attribute on the enclosing `tuple`, `device`
+    and `person` elements.
+  * There was no way to set the value of the `deviceID` element.
+  * Parsing of degree and radian UOMs was broken resulting in them appearing
+    outside an XML element.
+  * The UOM schemas for degrees and radians were reversed.
+  * The Ellipsoid shape was missing and the Ellipse shape was defined multiple
+    times.
+  * The `crs` location_info parameter, although documented, didn't work.
+  * The `pos3d` location_info parameter appears in some documentation but
+    wasn't being parsed correctly.
+  * The retransmission-allowed and retention-expiry sub-elements of usage-rules
+    were using the `gp` namespace instead of the `gbp` namespace.
+
+  In addition to fixing the above, several other code refactorings were
+  performed and the unit test enhanced to include a round trip
+  XML -> eprofile -> XML validation.
+
+  Resolves: #1667
+
+  UserNote: 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.
+
+  UpgradeNote: 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})
+  ```
+
+#### stasis/control.c: Add destructor to timeout_datastore.
+  Author: George Joseph
+  Date:   2025-12-31
+
+  The timeout_datastore was missing a destructor resulting in a leak
+  of 16 bytes for every outgoing ARI call.
+
+  Resolves: #1681
+
+#### safe_asterisk: Resolve a POSIX sh problem and restore globbing behavior.
+  Author: Sean Bright
+  Date:   2025-10-22
+
+  * Using `==` with the POSIX sh `test` utility is UB.
+  * Switch back to using globs instead of using `$(find … | sort)`.
+  * Fix a missing redirect when checking for the OS type.
+
+  Resolves: #1554
+
+#### safe_asterisk:  Fix logging and sorting issue.
+  Author: George Joseph
+  Date:   2025-10-17
+
+  Re-enabled "TTY=9" which was erroneously disabled as part of a recent
+  security fix and removed another logging "fix" that was added.
+
+  Also added a sort to the "find" that enumerates the scripts to be sourced so
+  they're sourced in the correct order.
+
+  Resolves: #1539
+
+#### res_pjsip_diversion: resolve race condition between Diversion header processing and redirect
+  Author: Mike Bradeen
+  Date:   2025-08-07
+
+  Based on the firing order of the PJSIP call-backs on a redirect, it was possible for
+  the Diversion header to not be included in the outgoing 181 response to the UAC and
+  the INVITE to the UAS.
+
+  This change moves the Diversion header processing to an earlier PJSIP callback while also
+  preventing the corresponding update that can cause a duplicate 181 response when processing
+  the header at that time.
+
+  Resolves: #1349
+
+#### cdr.c: Set tenantid from party_a->base instead of chan->base.
+  Author: George Joseph
+  Date:   2025-07-17
+
+  The CDR tenantid was being set in cdr_object_alloc from the channel->base
+  snapshot.  Since this happens at channel creation before the dialplan is even
+  reached, calls to `CHANNEL(tenantid)=<something>` in the dialplan were being
+  ignored.  Instead we now take tenantid from party_a when
+  cdr_object_create_public_records() is called which is after the call has
+  ended and all channel snapshots rebuilt.  This is exactly how accountcode
+  and amaflags, which can also be set in tha dialplpan, are handled.
+
+  Resolves: #1259
+
index c7d5c15266697c69321aac2c2a1ab47264c0f691..bc452b58fd16f253bda71fa632b8395f0df839ee 100644 (file)
@@ -1,4 +1,4 @@
-<html><head><title>Readme for asterisk-certified-20.7-cert7</title></head><body>
+<html><head><title>Readme for asterisk-certified-20.7-cert8</title></head><body>
 <h1>The Asterisk(R) Open Source PBX</h1>
 <pre><code>By Mark Spencer &lt;markster@digium.com&gt; and the Asterisk.org developer community.
 Copyright (C) 2001-2025 Sangoma Technologies Corporation and other copyright holders.
@@ -37,7 +37,7 @@ hardware.</p>
 <p>If you are updating from a previous version of Asterisk, make sure you
 read the Change Logs.</p>
 <!-- CHANGELOGS (the URL will change based on the location of this README) -->
-<p><a href="ChangeLogs/ChangeLog-certified-20.7-cert7.html">Change Logs</a></p>
+<p><a href="ChangeLogs/ChangeLog-certified-20.7-cert8.html">Change Logs</a></p>
 <!-- END-CHANGELOGS -->
 
 <h3>NEW INSTALLATIONS</h3>
index 5c39c1009e94e98f90e1b58898b5f2e56c9dd902..add0b3199467d4f29f5f87f4db9eb98b008a0865 100644 (file)
--- a/README.md
+++ b/README.md
@@ -55,7 +55,7 @@ If you are updating from a previous version of Asterisk, make sure you
 read the Change Logs.
 
 <!-- CHANGELOGS (the URL will change based on the location of this README) -->
-[Change Logs](ChangeLogs/ChangeLog-certified-20.7-cert7.html)
+[Change Logs](ChangeLogs/ChangeLog-certified-20.7-cert8.html)
 <!-- END-CHANGELOGS -->
 
 ### NEW INSTALLATIONS