Change Log for Release asterisk-22.12.0-rc4

Links:

Summary:

User Notes:

Upgrade Notes:

Developer Notes:

Commit Authors:

Issue and Commit Detail:

Closed Issues:

Commits By Author:

Commit List:

Commit Details:

extstate: Handle lack of or late loading of device state.
Author: Joshua C. Colp
Date: 2026-10-26

The extension state implementation is stateful resulting in state
not being updated if a device state provider does not publish an
update after loading. To handle providers which don't do this we
query for updated state if we are asked for it and the existing
state is invalid. This ensures that if the device state provider
is loaded later we will get the updated state when asked.

The "core show hints" and "core show hint" CLI commands have also
been changed so that they will update invalid sources for both
device and presence before displaying the information.

Fixes: #2249

extension_state: Fix crash when a hint loses its presence sources.
Author: AbdurahmanZA
Date: 2026-10-26

If an existing hint with a presence part ("devices,presence") was
updated to a hint without one, extension_state_update_sources()
passed a NULL presence_state_sources to strcmp() and crashed.

This is triggered by "dialplan add extension ,hint,... replace"
from the CLI or the AMI Command action, because pbx_config always
places the presence part in the application data, and by a dialplan
reload that removes the presence part of a hint.

The presence sources are now compared NULL-safely.

Fixes: #2257

Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com

pbx_config: Don't leak a stasis subscription on each reload with users.conf
Author: kaos-kult
Date: 2026-10-19

pbx_load_users() runs on every load and reload of pbx_config. When
users.conf exists it subscribed to the manager topic so it could log
the users.conf deprecation warning once Asterisk was fully booted.
FullyBooted is only published at startup, so the subscription made by
each later reload was never removed: every dialplan reload left a
stasis/p:manager:core taskprocessor behind, each of which goes on
receiving every manager message.

Only subscribe while Asterisk is still starting and no subscription
exists yet. The warning is still logged once, at startup.

Resolves: #2242