mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 08:40:16 +00:00
Compare commits
5 Commits
22.0.0-rc1
...
22.0.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e4a09f711 | ||
|
|
4473ed5256 | ||
|
|
fd8d28cb60 | ||
|
|
dc8f83662b | ||
|
|
4411f22d67 |
@@ -1 +1 @@
|
||||
ChangeLogs/ChangeLog-22.0.0-rc1.md
|
||||
ChangeLogs/ChangeLog-22.0.0.md
|
||||
@@ -1,18 +1,18 @@
|
||||
|
||||
## Change Log for Release asterisk-22.0.0-rc1
|
||||
## Change Log for Release asterisk-22.0.0
|
||||
|
||||
### Links:
|
||||
|
||||
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.0.0-rc1.md)
|
||||
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.0.0-pre1...22.0.0-rc1)
|
||||
- [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22.0.0-rc1.tar.gz)
|
||||
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.0.0.md)
|
||||
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.0.0-pre1...22.0.0)
|
||||
- [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22.0.0.tar.gz)
|
||||
- [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
|
||||
|
||||
### Summary:
|
||||
|
||||
- Commits: 19
|
||||
- Commits: 22
|
||||
- Commit Authors: 8
|
||||
- Issues Resolved: 10
|
||||
- Issues Resolved: 13
|
||||
- Security Advisories Resolved: 1
|
||||
- [GHSA-v428-g3cw-7hv9](https://github.com/asterisk/asterisk/security/advisories/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
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
### Commit Authors:
|
||||
|
||||
- Alexei Gradinari: (2)
|
||||
- George Joseph: (7)
|
||||
- George Joseph: (10)
|
||||
- Gibbz00: (1)
|
||||
- Joshua C. Colp: (2)
|
||||
- Mike Bradeen: (2)
|
||||
@@ -57,6 +57,9 @@
|
||||
- 861: [bug]: ChanSpy unable to read audiohook read direction frame when no packet lost on both side of the call
|
||||
- 876: [bug]: ChanSpy unable to write whisper_audiohook when set flag OPTION_READONLY
|
||||
- 879: [bug]: res_stir_shaken/verification.c: Getting verification errors when global_disable=yes
|
||||
- 884: [bug]: A ':' at the top of in stir_shaken.conf make Asterisk producing a core file when starting
|
||||
- 889: [bug]: res_stir_shaken/verification.c has a stale include for jansson.h that can cause compilation to fail
|
||||
- 904: [bug]: stir_shaken: attest_level isn't being propagated correctly from attestation to profile to tn
|
||||
|
||||
### Commits By Author:
|
||||
|
||||
@@ -64,12 +67,15 @@
|
||||
- res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
||||
- autoservice: Do not sleep if autoservice_stop is called within autoservice thr..
|
||||
|
||||
- #### George Joseph (5):
|
||||
- #### George Joseph (8):
|
||||
- stir_shaken.conf.sample: Fix bad references to private_key_path
|
||||
- security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
||||
- app_voicemail: Use ast_asprintf to create mailbox SQL query
|
||||
- res_resolver_unbound: Test for NULL ub_result in unbound_resolver_callback
|
||||
- res_stir_shaken: Check for disabled before param validation
|
||||
- res_stir_shaken.c: Fix crash when stir_shaken.conf is invalid
|
||||
- res_stir_shaken: Remove stale include for jansson.h in verification.c
|
||||
- stir_shaken: Fix propagation of attest_level and a few other values
|
||||
|
||||
- #### Mike Bradeen (1):
|
||||
- res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
||||
@@ -92,6 +98,9 @@
|
||||
- Revert "app_record: Add RECORD_TIME output variable."
|
||||
- feat: ARI "ChannelToneDetected" event
|
||||
- Update version for Asterisk 22
|
||||
- stir_shaken: Fix propagation of attest_level and a few other values
|
||||
- res_stir_shaken: Remove stale include for jansson.h in verification.c
|
||||
- res_stir_shaken.c: Fix crash when stir_shaken.conf is invalid
|
||||
- res_stir_shaken: Check for disabled before param validation
|
||||
- app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
||||
- res_resolver_unbound: Test for NULL ub_result in unbound_resolver_callback
|
||||
@@ -159,6 +168,60 @@
|
||||
Date: 2024-08-14
|
||||
|
||||
|
||||
#### stir_shaken: Fix propagation of attest_level and a few other values
|
||||
Author: George Joseph
|
||||
Date: 2024-09-24
|
||||
|
||||
attest_level, send_mky and check_tn_cert_public_url weren't
|
||||
propagating correctly from the attestation object to the profile
|
||||
and tn.
|
||||
|
||||
* In the case of attest_level, the enum needed to be changed
|
||||
so the "0" value (the default) was "NOT_SET" instead of "A". This
|
||||
now allows the merging of the attestation object, profile and tn
|
||||
to detect when a value isn't set and use the higher level value.
|
||||
|
||||
* For send_mky and check_tn_cert_public_url, the tn default was
|
||||
forced to "NO" which always overrode the profile and attestation
|
||||
objects. Their defaults are now "NOT_SET" so the propagation
|
||||
happens correctly.
|
||||
|
||||
* Just to remove some redundant code in tn_config.c, a bunch of calls to
|
||||
generate_sorcery_enum_from_str() and generate_sorcery_enum_to_str() were
|
||||
replaced with a single call to generate_acfg_common_sorcery_handlers().
|
||||
|
||||
Resolves: #904
|
||||
|
||||
#### res_stir_shaken: Remove stale include for jansson.h in verification.c
|
||||
Author: George Joseph
|
||||
Date: 2024-09-17
|
||||
|
||||
verification.c had an include for jansson.h left over from previous
|
||||
versions of the module. Since res_stir_shaken no longer has a
|
||||
dependency on jansson, the bundled version wasn't added to GCC's
|
||||
include path so if you didn't also have a jansson development package
|
||||
installed, the compile would fail. Removing the stale include
|
||||
was the only thing needed.
|
||||
|
||||
Resolves: #889
|
||||
|
||||
#### res_stir_shaken.c: Fix crash when stir_shaken.conf is invalid
|
||||
Author: George Joseph
|
||||
Date: 2024-09-13
|
||||
|
||||
* If the call to ast_config_load() returns CONFIG_STATUS_FILEINVALID,
|
||||
check_for_old_config() now returns LOAD_DECLINE instead of continuing
|
||||
on with a bad pointer.
|
||||
|
||||
* If CONFIG_STATUS_FILEMISSING is returned, check_for_old_config()
|
||||
assumes the config is being loaded from realtime and now returns
|
||||
LOAD_SUCCESS. If it's actually not being loaded from realtime,
|
||||
sorcery will catch that later on.
|
||||
|
||||
* Also refactored the error handling in load_module() a bit.
|
||||
|
||||
Resolves: #884
|
||||
|
||||
#### res_stir_shaken: Check for disabled before param validation
|
||||
Author: George Joseph
|
||||
Date: 2024-09-11
|
||||
@@ -311,13 +311,22 @@ static int check_for_old_config(void)
|
||||
char *cat = NULL;
|
||||
|
||||
cfg = ast_config_load("stir_shaken.conf", config_flags);
|
||||
if (cfg == NULL) {
|
||||
if (cfg == CONFIG_STATUS_FILEMISSING) {
|
||||
/*
|
||||
* They may be loading from realtime so the fact that there's
|
||||
* no stir-shaken.conf file isn't an issue for this purpose.
|
||||
*/
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
} else if (cfg == CONFIG_STATUS_FILEINVALID) {
|
||||
cfg = NULL;
|
||||
ast_log(LOG_ERROR, "The stir_shaken.conf file is invalid\n");
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
} else if (cfg == CONFIG_STATUS_FILEUNCHANGED) {
|
||||
/* This can never happen but is included for completeness */
|
||||
cfg = NULL;
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
}
|
||||
|
||||
while ((cat = ast_category_browse(cfg, cat))) {
|
||||
const char *val;
|
||||
if (strcasecmp(cat, "general") == 0) {
|
||||
@@ -339,13 +348,14 @@ static int load_module(void)
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
if (check_for_old_config()) {
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
res = check_for_old_config();
|
||||
if (res != AST_MODULE_LOAD_SUCCESS) {
|
||||
return res;
|
||||
}
|
||||
|
||||
if (crypto_load()) {
|
||||
unload_module();
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
res = crypto_load();
|
||||
if (res != AST_MODULE_LOAD_SUCCESS) {
|
||||
return res;
|
||||
}
|
||||
|
||||
tn_auth_list_nid = crypto_register_x509_extension(TN_AUTH_LIST_OID,
|
||||
@@ -355,14 +365,19 @@ static int load_module(void)
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
}
|
||||
|
||||
if (common_config_load()) {
|
||||
res = common_config_load();
|
||||
if (res != AST_MODULE_LOAD_SUCCESS) {
|
||||
unload_module();
|
||||
return res;
|
||||
}
|
||||
|
||||
res = ast_custom_function_register(&stir_shaken_function);
|
||||
if (res != 0) {
|
||||
unload_module();
|
||||
return AST_MODULE_LOAD_DECLINE;
|
||||
}
|
||||
|
||||
res |= ast_custom_function_register(&stir_shaken_function);
|
||||
|
||||
return res;
|
||||
return AST_MODULE_LOAD_SUCCESS;
|
||||
}
|
||||
|
||||
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER, "STIR/SHAKEN Module for Asterisk",
|
||||
|
||||
@@ -100,6 +100,7 @@ const char *param_name ## _to_str( \
|
||||
}
|
||||
|
||||
generate_enum_string_functions(attest_level, UNKNOWN,
|
||||
{attest_level_NOT_SET, "not_set"},
|
||||
{attest_level_A, "A"},
|
||||
{attest_level_B, "B"},
|
||||
{attest_level_C, "C"},
|
||||
|
||||
@@ -110,10 +110,10 @@ generate_enum_string_prototypes(endpoint_behavior,
|
||||
|
||||
generate_enum_string_prototypes(attest_level,
|
||||
attest_level_UNKNOWN = -1,
|
||||
attest_level_A = 0,
|
||||
attest_level_NOT_SET = 0,
|
||||
attest_level_A,
|
||||
attest_level_B,
|
||||
attest_level_C,
|
||||
attest_level_NOT_SET,
|
||||
);
|
||||
|
||||
/*
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
|
||||
#define CONFIG_TYPE "tn"
|
||||
|
||||
#define DEFAULT_check_tn_cert_public_url check_tn_cert_public_url_NO
|
||||
#define DEFAULT_check_tn_cert_public_url check_tn_cert_public_url_NOT_SET
|
||||
#define DEFAULT_private_key_file NULL
|
||||
#define DEFAULT_public_cert_url NULL
|
||||
#define DEFAULT_attest_level attest_level_NOT_SET
|
||||
#define DEFAULT_send_mky send_mky_NO
|
||||
#define DEFAULT_send_mky send_mky_NOT_SET
|
||||
|
||||
struct tn_cfg *tn_get_cfg(const char *id)
|
||||
{
|
||||
@@ -45,14 +45,7 @@ static struct ao2_container *get_tn_all(void)
|
||||
AST_RETRIEVE_FLAG_MULTIPLE | AST_RETRIEVE_FLAG_ALL, NULL);
|
||||
}
|
||||
|
||||
generate_sorcery_enum_from_str(tn_cfg, acfg_common., check_tn_cert_public_url, UNKNOWN)
|
||||
generate_sorcery_enum_to_str(tn_cfg, acfg_common., check_tn_cert_public_url)
|
||||
|
||||
generate_sorcery_enum_from_str(tn_cfg, acfg_common., attest_level, UNKNOWN)
|
||||
generate_sorcery_enum_to_str(tn_cfg, acfg_common., attest_level)
|
||||
|
||||
generate_sorcery_enum_from_str(tn_cfg, acfg_common., send_mky, UNKNOWN)
|
||||
generate_sorcery_enum_to_str(tn_cfg, acfg_common., send_mky)
|
||||
generate_acfg_common_sorcery_handlers(tn_cfg);
|
||||
|
||||
static void tn_destructor(void *obj)
|
||||
{
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <jwt.h>
|
||||
#include <jansson.h>
|
||||
#include <regex.h>
|
||||
|
||||
#include "asterisk.h"
|
||||
|
||||
Reference in New Issue
Block a user