mirror of https://github.com/asterisk/asterisk
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
553 lines
22 KiB
553 lines
22 KiB
|
|
## Change Log for Release asterisk-21.5.0
|
|
|
|
### Links:
|
|
|
|
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-21.5.0.md)
|
|
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/21.4.3...21.5.0)
|
|
- [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-21.5.0.tar.gz)
|
|
- [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
|
|
|
|
### Summary:
|
|
|
|
- Commits: 24
|
|
- Commit Authors: 8
|
|
- Issues Resolved: 17
|
|
- Security Advisories Resolved: 0
|
|
|
|
### User Notes:
|
|
|
|
- #### 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 <option> channel <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.
|
|
|
|
- #### res_pjsip_config_wizard.c: Refactor load process
|
|
The res_pjsip_config_wizard.so module can now be reloaded.
|
|
|
|
|
|
### Upgrade Notes:
|
|
|
|
- #### 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.
|
|
|
|
|
|
### Commit Authors:
|
|
|
|
- Alexei Gradinari: (2)
|
|
- Ben Ford: (1)
|
|
- Cade Parker: (1)
|
|
- George Joseph: (11)
|
|
- Jaco Kroon: (1)
|
|
- Mike Bradeen: (3)
|
|
- Sean Bright: (2)
|
|
- Tinet-Mucw: (3)
|
|
|
|
## Issue and Commit Detail:
|
|
|
|
### Closed Issues:
|
|
|
|
- 740: [new-feature]: Add multi-tenant identifier to chan_pjsip
|
|
- 763: [bug]: autoservice thread stuck in an endless sleep
|
|
- 780: [bug]: Infinite loop of "Indicated Video Update", max CPU usage
|
|
- 799: [improvement]: Add PJSIPNOTIFY dialplan application
|
|
- 801: [bug]: res_stasis: Occasional 200ms delay adding channel to a bridge
|
|
- 809: [bug]: CLI stir_shaken show verification kills asterisk
|
|
- 816: [bug]: res_pjsip_config_wizard doesn't load properly if res_pjsip is loaded first
|
|
- 845: [bug]: Buffer overflow in handling of security mechanisms in res_pjsip
|
|
- 847: [bug]: Asterisk not using negotiated fall-back 8K digits
|
|
- 854: [bug]: wrong properties in stir_shaken.conf.sample
|
|
- 856: [bug]: res_pjsip_sdp_rtp leaks astobj2 ast_format
|
|
- 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:
|
|
|
|
- #### Alexei Gradinari (2):
|
|
- res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
|
- autoservice: Do not sleep if autoservice_stop is called within autoservice thr..
|
|
|
|
- #### Ben Ford (1):
|
|
- channel: Add multi-tenant identifier.
|
|
|
|
- #### Cade Parker (1):
|
|
- chan_mobile: decrease CHANNEL_FRAME_SIZE to prevent delay
|
|
|
|
- #### George Joseph (11):
|
|
- bridge_softmix: Fix queueing VIDUPDATE control frames
|
|
- res_pjsip_config_wizard.c: Refactor load process
|
|
- stir_shaken: CRL fixes and a new CLI command
|
|
- manager.c: Fix FRACK when doing CoreShowChannelMap in DEVMODE
|
|
- 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_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
|
|
|
|
- #### Jaco Kroon (1):
|
|
- configure: Use . file rather than source file.
|
|
|
|
- #### Mike Bradeen (3):
|
|
- res_stasis: fix intermittent delays on adding channel to bridge
|
|
- res_pjsip_notify: add dialplan application
|
|
- res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
|
|
|
- #### Sean Bright (2):
|
|
- alembic: Make 'revises' header comment match reality.
|
|
- res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
|
|
|
- #### Tinet-mucw (3):
|
|
- res_pjsip_sdp_rtp.c: Fix DTMF Handling in Re-INVITE with dtmf_mode set to auto
|
|
- app_chanspy.c: resolving the issue with audiohook direction read
|
|
- app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
|
|
|
|
|
### Commit List:
|
|
|
|
- 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.
|
|
- app_voicemail: Use ast_asprintf to create mailbox SQL query
|
|
- res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
|
- app_chanspy.c: resolving the issue with audiohook direction read
|
|
- security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
|
- res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
|
- stir_shaken.conf.sample: Fix bad references to private_key_path
|
|
- res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
|
- alembic: Make 'revises' header comment match reality.
|
|
- chan_mobile: decrease CHANNEL_FRAME_SIZE to prevent delay
|
|
- res_pjsip_notify: add dialplan application
|
|
- manager.c: Fix FRACK when doing CoreShowChannelMap in DEVMODE
|
|
- channel: Add multi-tenant identifier.
|
|
- configure: Use . file rather than source file.
|
|
- res_stasis: fix intermittent delays on adding channel to bridge
|
|
- res_pjsip_sdp_rtp.c: Fix DTMF Handling in Re-INVITE with dtmf_mode set to auto
|
|
- stir_shaken: CRL fixes and a new CLI command
|
|
- res_pjsip_config_wizard.c: Refactor load process
|
|
- bridge_softmix: Fix queueing VIDUPDATE control frames
|
|
|
|
### Commit Details:
|
|
|
|
#### 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
|
|
|
|
For both attestation and verification, we now check whether they've
|
|
been disabled either globally or by the profile before validating
|
|
things like callerid, orig_tn, dest_tn, etc. This prevents useless
|
|
error messages.
|
|
|
|
Resolves: #879
|
|
|
|
#### app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
|
Author: Tinet-mucw
|
|
Date: 2024-09-10
|
|
|
|
ChanSpy(${channel}, qEoSw): because flags set o, ast_audiohook_set_frame_feed_direction(audiohook, AST_AUDIOHOOK_DIRECTION_READ); this will effect whisper audiohook and spy audiohook, this makes writing frame to whisper audiohook impossible. So add function start_whispering to starting whisper audiohook.
|
|
|
|
Resolves: #876
|
|
|
|
#### autoservice: Do not sleep if autoservice_stop is called within autoservice thr..
|
|
Author: Alexei Gradinari
|
|
Date: 2024-09-04
|
|
|
|
It's possible that ast_autoservice_stop is called within the autoservice thread.
|
|
In this case the autoservice thread is stuck in an endless sleep.
|
|
|
|
To avoid endless sleep ast_autoservice_stop must check that it's not called
|
|
within the autoservice thread.
|
|
|
|
Fixes: #763
|
|
|
|
#### app_voicemail: Use ast_asprintf to create mailbox SQL query
|
|
Author: George Joseph
|
|
Date: 2024-09-03
|
|
|
|
...instead of trying to calculate the length of the buffer needed
|
|
manually.
|
|
|
|
|
|
#### res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
|
Author: Mike Bradeen
|
|
Date: 2024-08-21
|
|
|
|
When Asterisk sends an offer to Bob that includes 48K and 8K codecs with
|
|
matching 4733 offers, Bob may want to use the 48K audio codec but can not
|
|
accept 48K digits and so negotiates for a mixed set.
|
|
|
|
Asterisk will now check Bob's offer to make sure Bob has indicated this is
|
|
acceptible and if not, will use Bob's preference.
|
|
|
|
Fixes: #847
|
|
|
|
#### app_chanspy.c: resolving the issue with audiohook direction read
|
|
Author: Tinet-mucw
|
|
Date: 2024-08-30
|
|
|
|
ChanSpy(${channel}, qEoS): When chanspy spy the direction read, reading frame is often failed when reading direction read audiohook. because chanspy only read audiohook direction read; write_factory_ms will greater than 100ms soon, then ast_slinfactory_flush will being called, then direction read will fail.
|
|
|
|
Resolves: #861
|
|
|
|
#### security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
|
Author: George Joseph
|
|
Date: 2024-08-17
|
|
|
|
* A static array of security mechanism type names was created.
|
|
|
|
* ast_sip_str_to_security_mechanism_type() was refactored to do
|
|
a lookup in the new array instead of using fixed "if/else if"
|
|
statments.
|
|
|
|
* security_mechanism_to_str() and ast_sip_security_mechanisms_to_str()
|
|
were refactored to use ast_str instead of a fixed length buffer
|
|
to store the result.
|
|
|
|
* ast_sip_security_mechanism_type_to_str was removed in favor of
|
|
just referencing the new type name array. Despite starting with
|
|
"ast_sip_", it was a static function so removing it doesn't affect
|
|
ABI.
|
|
|
|
* Speaking of "ast_sip_", several other static functions that
|
|
started with "ast_sip_" were renamed to avoid confusion about
|
|
their public availability.
|
|
|
|
* A few VECTOR free loops were replaced with AST_VECTOR_RESET().
|
|
|
|
* Fixed a meomry leak in pjsip_configuration.c endpoint_destructor
|
|
caused by not calling ast_sip_security_mechanisms_vector_destroy().
|
|
|
|
* Fixed a memory leak in res_pjsip_outbound_registration.c
|
|
add_security_headers() caused by not specifying OBJ_NODATA in
|
|
an ao2_callback.
|
|
|
|
* Fixed a few ao2_callback return code misuses.
|
|
|
|
Resolves: #845
|
|
|
|
#### res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
|
Author: Alexei Gradinari
|
|
Date: 2024-08-23
|
|
|
|
PR #700 added a preferred_format for the struct ast_rtp_codecs,
|
|
but when set the preferred_format it leaks an astobj2 ast_format.
|
|
In the next code
|
|
ast_rtp_codecs_set_preferred_format(&codecs, ast_format_cap_get_format(joint, 0));
|
|
both functions ast_rtp_codecs_set_preferred_format
|
|
and ast_format_cap_get_format increases the ao2 reference count.
|
|
|
|
Fixes: #856
|
|
|
|
#### stir_shaken.conf.sample: Fix bad references to private_key_path
|
|
Author: George Joseph
|
|
Date: 2024-08-22
|
|
|
|
They should be private_key_file.
|
|
|
|
Resolves: #854
|
|
|
|
#### res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
|
Author: Sean Bright
|
|
Date: 2024-08-19
|
|
|
|
Fixes #843
|
|
|
|
|
|
#### alembic: Make 'revises' header comment match reality.
|
|
Author: Sean Bright
|
|
Date: 2024-08-17
|
|
|
|
|
|
#### chan_mobile: decrease CHANNEL_FRAME_SIZE to prevent delay
|
|
Author: Cade Parker
|
|
Date: 2024-08-07
|
|
|
|
On modern Bluetooth devices or lower-powered asterisk servers, decreasing the channel frame size significantly improves latency and delay on outbound calls with only a mild sacrifice to the quality of the call (the frame size before was massive overkill to begin with)
|
|
|
|
|
|
#### res_pjsip_notify: add dialplan application
|
|
Author: Mike Bradeen
|
|
Date: 2024-07-09
|
|
|
|
Add dialplan application PJSIPNOTIFY to send either pre-configured
|
|
NOTIFY messages from pjsip_notify.conf or with headers defined in
|
|
dialplan.
|
|
|
|
Also adds the ability to send pre-configured NOTIFY commands to a
|
|
channel via the CLI.
|
|
|
|
Resolves: #799
|
|
|
|
UserNote: 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 <option> channel <channel>
|
|
|
|
|
|
#### manager.c: Fix FRACK when doing CoreShowChannelMap in DEVMODE
|
|
Author: George Joseph
|
|
Date: 2024-08-08
|
|
|
|
If you run an AMI CoreShowChannelMap on a channel that isn't in a
|
|
bridge and you're in DEVMODE, you can get a FRACK because the
|
|
bridge id is empty. We now simply return an empty list for that
|
|
request.
|
|
|
|
|
|
#### channel: Add multi-tenant identifier.
|
|
Author: Ben Ford
|
|
Date: 2024-05-21
|
|
|
|
This patch introduces a new identifier for channels: tenantid. It's
|
|
a stringfield on the channel that can be used for general purposes. It
|
|
will be inherited by other channels the same way that linkedid is.
|
|
|
|
You can set tenantid in a few ways. The first is to set it in the
|
|
dialplan with the Set and CHANNEL functions:
|
|
|
|
exten => example,1,Set(CHANNEL(tenantid)=My tenant ID)
|
|
|
|
It can also be accessed via CHANNEL:
|
|
|
|
exten => example,2,NoOp(CHANNEL(tenantid))
|
|
|
|
Another method is to use the new tenantid option for pjsip endpoints in
|
|
pjsip.conf:
|
|
|
|
[my_endpoint]
|
|
type=endpoint
|
|
tenantid=My tenant ID
|
|
|
|
This is considered the best approach since you will be able to see the
|
|
tenant ID as early as the Newchannel event.
|
|
|
|
It can also be set using set_var in pjsip.conf on the endpoint like
|
|
setting other channel variable:
|
|
|
|
set_var=CHANNEL(tenantid)=My tenant ID
|
|
|
|
Note that set_var will not show tenant ID on the Newchannel event,
|
|
however.
|
|
|
|
Tenant ID has also been added to CDR. It's read-only and can be accessed
|
|
via CDR(tenantid). You can also get the tenant ID of the last channel
|
|
communicated with via CDR(peertenantid).
|
|
|
|
Tenant ID will also show up in CEL records if it has been set, and the
|
|
version number has been bumped accordingly.
|
|
|
|
Fixes: #740
|
|
|
|
UserNote: 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.
|
|
|
|
UpgradeNote: 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.
|
|
|
|
|
|
#### configure: Use . file rather than source file.
|
|
Author: Jaco Kroon
|
|
Date: 2024-08-05
|
|
|
|
source is a bash concept, so when /bin/sh points to another shell the
|
|
existing construct won't work.
|
|
|
|
Reference: https://bugs.gentoo.org/927055
|
|
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
|
|
|
|
#### res_stasis: fix intermittent delays on adding channel to bridge
|
|
Author: Mike Bradeen
|
|
Date: 2024-07-10
|
|
|
|
Previously, on command execution, the control thread was awoken by
|
|
sending a SIGURG. It was found that this still resulted in some
|
|
instances where the thread was not immediately awoken.
|
|
|
|
This change instead sends a null frame to awaken the control thread,
|
|
which awakens the thread more consistently.
|
|
|
|
Resolves: #801
|
|
|
|
#### res_pjsip_sdp_rtp.c: Fix DTMF Handling in Re-INVITE with dtmf_mode set to auto
|
|
Author: Tinet-mucw
|
|
Date: 2024-08-02
|
|
|
|
When the endpoint dtmf_mode is set to auto, a SIP request is sent to the UAC, and the SIP SDP from the UAC does not include the telephone-event. Later, the UAC sends an INVITE, and the SIP SDP includes the telephone-event. In this case, DTMF should be sent by RFC2833 rather than using inband signaling.
|
|
|
|
Resolves: asterisk#826
|
|
|
|
#### stir_shaken: CRL fixes and a new CLI command
|
|
Author: George Joseph
|
|
Date: 2024-07-19
|
|
|
|
* Fixed a bug in crypto_show_cli_store that was causing asterisk
|
|
to crash if there were certificate revocation lists in the
|
|
verification certificate store. We're also now prefixing
|
|
certificates with "Cert:" and CRLs with "CRL:" to distinguish them
|
|
in the list.
|
|
|
|
* Added 'untrusted_cert_file' and 'untrusted_cert_path' options
|
|
to both verification and profile objects. If you have CRLs that
|
|
are signed by a different CA than the incoming X5U certificate
|
|
(indirect CRL), you'll need to provide the certificate of the
|
|
CRL signer here. Thse will show up as 'Untrusted" when showing
|
|
the verification or profile objects.
|
|
|
|
* Fixed loading of crl_path. The OpenSSL API we were using to
|
|
load CRLs won't actually load them from a directory, only a file.
|
|
We now scan the directory ourselves and load the files one-by-one.
|
|
|
|
* Fixed the verification flags being set on the certificate store.
|
|
- Removed the CRL_CHECK_ALL flag as this was causing all certificates
|
|
to be checked for CRL extensions and failing to verify the cert if
|
|
there was none. This basically caused all certs to fail when a CRL
|
|
was provided via crl_file or crl_path.
|
|
- Added the EXTENDED_CRL_SUPPORT flag as it is required to handle
|
|
indirect CRLs.
|
|
|
|
* Added a new CLI command...
|
|
`stir_shaken verify certificate_file <certificate_file> [ <profile> ]`
|
|
which will assist troubleshooting certificate problems by allowing
|
|
the user to manually verify a certificate file against either the
|
|
global verification certificate store or the store for a specific
|
|
profile.
|
|
|
|
* Updated the XML documentation and the sample config file.
|
|
|
|
Resolves: #809
|
|
|
|
#### res_pjsip_config_wizard.c: Refactor load process
|
|
Author: George Joseph
|
|
Date: 2024-07-23
|
|
|
|
The way we have been initializing the config wizard prevented it
|
|
from registering its objects if res_pjsip happened to load
|
|
before it.
|
|
|
|
* We now use the object_type_registered sorcery observer to kick
|
|
things off instead of the wizard_mapped observer.
|
|
|
|
* The load_module function now checks if res_pjsip has been loaded
|
|
already and if it was it fires the proper observers so the objects
|
|
load correctly.
|
|
|
|
Resolves: #816
|
|
|
|
UserNote: The res_pjsip_config_wizard.so module can now be reloaded.
|
|
|
|
#### bridge_softmix: Fix queueing VIDUPDATE control frames
|
|
Author: George Joseph
|
|
Date: 2024-07-17
|
|
|
|
softmix_bridge_write_control() now calls ast_bridge_queue_everyone_else()
|
|
with the bridge_channel so the VIDUPDATE control frame isn't echoed back.
|
|
|
|
softmix_bridge_write_control() was setting bridge_channel to NULL
|
|
when calling ast_bridge_queue_everyone_else() for VIDUPDATE control
|
|
frames. This was causing the frame to be echoed back to the
|
|
channel it came from. In certain cases, like when two channels or
|
|
bridges are being recorded, this can cause a ping-pong effect that
|
|
floods the system with VIDUPDATE control frames.
|
|
|
|
Resolves: #780
|
|
|