1610 lines
59 KiB
Markdown
1610 lines
59 KiB
Markdown
|
|
Change Log for Release asterisk-20.6.0
|
|
========================================
|
|
|
|
Links:
|
|
----------------------------------------
|
|
|
|
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-20.6.0.md)
|
|
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/20.5.2...20.6.0)
|
|
- [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20.6.0.tar.gz)
|
|
- [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
|
|
|
|
Summary:
|
|
----------------------------------------
|
|
|
|
- logger: Fix linking regression.
|
|
- Revert "core & res_pjsip: Improve topology change handling."
|
|
- menuselect: Use more specific error message.
|
|
- res_pjsip_nat: Fix potential use of uninitialized transport details
|
|
- app_if: Fix faulty EndIf branching.
|
|
- manager.c: Fix regression due to using wrong free function.
|
|
- config_options.c: Fix truncation of option descriptions.
|
|
- manager.c: Improve clarity of "manager show connected".
|
|
- make_xml_documentation: Really collect LOCAL_MOD_SUBDIRS documentation.
|
|
- general: Fix broken links.
|
|
- MergeApproved.yml: Remove unneeded concurrency
|
|
- app_dial: Add option "j" to preserve initial stream topology of caller
|
|
- ast_coredumper: Increase reliability
|
|
- logger.c: Move LOG_GROUP documentation to dedicated XML file.
|
|
- res_odbc.c: Allow concurrent access to request odbc connections
|
|
- res_pjsip_header_funcs.c: Check URI parameter length before copying.
|
|
- config.c: Log #exec include failures.
|
|
- make_xml_documentation: Properly handle absolute LOCAL_MOD_SUBDIRS.
|
|
- app_voicemail.c: Completely resequence mailbox folders.
|
|
- sig_analog: Fix channel leak when mwimonitor is enabled.
|
|
- res_rtp_asterisk.c: Update for OpenSSL 3+.
|
|
- alembic: Update list of TLS methods available on ps_transports.
|
|
- func_channel: Expose previously unsettable options.
|
|
- app.c: Allow ampersands in playback lists to be escaped.
|
|
- uri.c: Simplify ast_uri_make_host_with_port()
|
|
- func_curl.c: Remove CURLOPT() plaintext documentation.
|
|
- res_http_websocket.c: Set hostname on client for certificate validation.
|
|
- live_ast: Add astcachedir to generated asterisk.conf.
|
|
- SECURITY.md: Update with correct documentation URL
|
|
- func_lock: Add missing see-also refs to documentation.
|
|
- app_followme.c: Grab reference on nativeformats before using it
|
|
- configs: Improve documentation for bandwidth in iax.conf.
|
|
- logger: Add channel-based filtering.
|
|
- chan_iax2.c: Don't send unsanitized data to the logger.
|
|
- codec_ilbc: Disable system ilbc if version >= 3.0.0
|
|
- resource_channels.c: Explicit codec request when creating UnicastRTP.
|
|
- doc: Update IP Quality of Service links.
|
|
- chan_pjsip: Add PJSIPHangup dialplan app and manager action
|
|
- chan_iax2.c: Ensure all IEs are displayed when dumping frame contents.
|
|
- chan_dahdi: Warn if nonexistent cadence is requested.
|
|
- stasis: Update the snapshot after setting the redirect
|
|
- ari: Provide the caller ID RDNIS for the channels
|
|
- main/utils: Implement ast_get_tid() for OpenBSD
|
|
- res_rtp_asterisk.c: Fix runtime issue with LibreSSL
|
|
- app_directory: Add ADSI support to Directory.
|
|
- core_local: Fix local channel parsing with slashes.
|
|
- Remove files that are no longer updated
|
|
- app_voicemail: Add AMI event for mailbox PIN changes.
|
|
- app_queue.c: Emit unpause reason with PauseQueueMember event.
|
|
- bridge_simple: Suppress unchanged topology change requests
|
|
- res_pjsip: Include cipher limit in config error message.
|
|
- res_speech: allow speech to translate input channel
|
|
- res_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
|
|
- res_pjsip_dtmf_info.c: Add 'INFO' to Allow header.
|
|
- api.wiki.mustache: Fix indentation in generated markdown
|
|
- pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
|
|
- configs: Fix typo in pjsip.conf.sample.
|
|
- res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
|
|
- res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
|
|
- .github: PRSubmitActions: Fix adding reviewers to PR
|
|
- .github: New PR Submit workflows
|
|
- .github: New PR Submit workflows
|
|
- res_stasis: signal when new command is queued
|
|
- ari/stasis: Indicate progress before playback on a bridge
|
|
- func_curl.c: Ensure channel is locked when manipulating datastores.
|
|
- .github: Fix job prereqs in PROpenedUpdated
|
|
- .github: Block PR tests until approved
|
|
- Update config.yml
|
|
- logger.h: Add ability to change the prefix on SCOPE_TRACE output
|
|
- Add libjwt to third-party
|
|
- res_pjsip: update qualify_timeout documentation with DNS note
|
|
- chan_dahdi: Clarify scope of callgroup/pickupgroup.
|
|
- func_json: Fix crashes for some types
|
|
- res_speech_aeap: add aeap error handling
|
|
- app_voicemail: Disable ADSI if unavailable.
|
|
- codec_builtin: Use multiples of 20 for maximum_ms
|
|
- lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
|
|
- asterisk.c: Use the euid's home directory to read/write cli history
|
|
- res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.
|
|
- cel: add publish user event helper
|
|
- chan_console: Fix deadlock caused by unclean thread exit.
|
|
- file.c: Add ability to search custom dir for sounds
|
|
- chan_iax2: Improve authentication debugging.
|
|
- res_rtp_asterisk: fix wrong counter management in ioqueue objects
|
|
- make_buildopts_h, et. al. Allow adding all cflags to buildopts.h
|
|
- func_periodic_hook: Add hangup step to avoid timeout
|
|
- res_stasis_recording.c: Save recording state when unmuted.
|
|
- res_speech_aeap: check for null format on response
|
|
- func_periodic_hook: Don't truncate channel name
|
|
- safe_asterisk: Change directory permissions to 755
|
|
- chan_rtp: Implement RTP glue for UnicastRTP channels
|
|
- app_queue: periodic announcement configurable start time.
|
|
- variables: Add additional variable dialplan functions.
|
|
- Restore CHANGES and UPGRADE.txt to allow cherry-picks to work
|
|
|
|
User Notes:
|
|
----------------------------------------
|
|
|
|
- ### 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/<lang> 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.
|
|
|
|
- ### app_queue: periodic announcement configurable start time.
|
|
Introduce a new queue configuration option called
|
|
'periodic-announce-startdelay' which will vary the normal (historic)
|
|
behavior of starting the periodic announcement cycle at
|
|
periodic-announce-frequency seconds after entering the queue to start
|
|
the periodic announcement cycle at period-announce-startdelay seconds
|
|
after joining the queue. The default behavior if this config option is
|
|
not set remains unchanged.
|
|
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
|
|
|
|
- ### 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.
|
|
|
|
|
|
Upgrade Notes:
|
|
----------------------------------------
|
|
|
|
- ### 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.
|
|
|
|
|
|
Closed Issues:
|
|
----------------------------------------
|
|
|
|
- #84: [bug]: codec_ilbc: Fails to build with ilbc version 3.0.4
|
|
- #129: [bug]: res_speech_aeap: Crash due to NULL format on setup
|
|
- #242: [new-feature]: logger: Allow filtering logs in CLI by channel
|
|
- #248: [bug]: core_local: Local channels cannot have slashes in the destination
|
|
- #260: [bug]: maxptime must be changed to multiples of 20
|
|
- #286: [improvement]: chan_iax2: Improve authentication debugging
|
|
- #289: [new-feature]: Add support for deleting channel and global variables
|
|
- #294: [improvement]: chan_dahdi: Improve call pickup documentation
|
|
- #298: [improvement]: chan_rtp: Implement RTP glue
|
|
- #301: [bug]: Number of ICE TURN threads continually growing
|
|
- #303: [bug]: SpeechBackground never exits
|
|
- #308: [bug]: chan_console: Deadlock when hanging up console channels
|
|
- #315: [improvement]: Search /var/lib/asterisk/sounds/custom for sound files before /var/lib/asterisk/sounds/<lang>
|
|
- #316: [bug]: Privilege Escalation in Astrisk's Group permissions.
|
|
- #319: [bug]: func_periodic_hook truncates long channel names when setting EncodedChannel
|
|
- #321: [bug]: Performance suffers unnecessarily when debugging deadlocks
|
|
- #325: [bug]: hangup after beep to avoid waiting for timeout
|
|
- #330: [improvement]: Add cel user event helper function
|
|
- #337: [bug]: asterisk.c: The CLI history file is written to the wrong directory in some cases
|
|
- #341: [bug]: app_if.c : nested EndIf incorrectly exits parent If
|
|
- #345: [improvement]: Increase pj_sip Realm Size to 255 Characters for Improved Functionality
|
|
- #349: [improvement]: Add libjwt to third-party
|
|
- #352: [bug]: Update qualify_timeout documentation to include DNS note
|
|
- #354: [improvement]: app_voicemail: Disable ADSI if unavailable on a line
|
|
- #356: [new-feature]: app_directory: Add ADSI support.
|
|
- #360: [improvement]: Update documentation for CHANGES/UPGRADE files
|
|
- #362: [improvement]: Speed up ARI command processing
|
|
- #379: [bug]: Orphaned taskprocessors cause shutdown delays
|
|
- #384: [bug]: Unnecessary re-INVITE after answer
|
|
- #388: [bug]: Crash in app_followme.c due to not acquiring a reference to nativeformats
|
|
- #396: [improvement]: res_pjsip: Specify max ciphers allowed if too many provided
|
|
- #398: [new-feature]: app_voicemail: Add AMI event for password change
|
|
- #409: [improvement]: chan_dahdi: Emit warning if specifying nonexistent cadence
|
|
- #423: [improvement]: func_lock: Add missing see-also refs
|
|
- #425: [improvement]: configs: Improve documentation for bandwidth in iax.conf.sample
|
|
- #428: [bug]: cli: Output is truncated from "config show help"
|
|
- #430: [bug]: Fix broken links
|
|
- #442: [bug]: func_channel: Some channel options are not settable
|
|
- #445: [bug]: ast_coredumper isn't figuring out file locations properly in all cases
|
|
- #458: [bug]: Memory leak in chan_dahdi when mwimonitor=yes on FXO
|
|
- #462: [new-feature]: app_dial: Add new option to preserve initial stream topology of caller
|
|
- #465: [improvement]: Change res_odbc connection pool request logic to not lock around blocking operations
|
|
- #482: [improvement]: manager.c: Improve clarity of "manager show connected" output
|
|
- #509: [bug]: res_pjsip: Crash when looking up transport state in use
|
|
- #513: [bug]: manager.c: Crash due to regression using wrong free function when built with MALLOC_DEBUG
|
|
- #520: [improvement]: menuselect: Use more specific error message.
|
|
- #530: [bug]: bridge_channel.c: Stream topology change amplification with multiple layers of Local channels
|
|
- #539: [bug]: Existence of logger.xml causes linking failure
|
|
|
|
Commits By Author:
|
|
----------------------------------------
|
|
|
|
- ### Asterisk Development Team (2):
|
|
- Update for 20.6.0-rc1
|
|
- Update for 20.6.0-rc2
|
|
|
|
- ### Bastian Triller (1):
|
|
- func_json: Fix crashes for some types
|
|
|
|
- ### Brad Smith (2):
|
|
- res_rtp_asterisk.c: Fix runtime issue with LibreSSL
|
|
- main/utils: Implement ast_get_tid() for OpenBSD
|
|
|
|
- ### Eduardo (1):
|
|
- codec_builtin: Use multiples of 20 for maximum_ms
|
|
|
|
- ### George Joseph (23):
|
|
- Restore CHANGES and UPGRADE.txt to allow cherry-picks to work
|
|
- safe_asterisk: Change directory permissions to 755
|
|
- func_periodic_hook: Don't truncate channel name
|
|
- make_buildopts_h, et. al. Allow adding all cflags to buildopts.h
|
|
- file.c: Add ability to search custom dir for sounds
|
|
- asterisk.c: Use the euid's home directory to read/write cli history
|
|
- lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
|
|
- Add libjwt to third-party
|
|
- logger.h: Add ability to change the prefix on SCOPE_TRACE output
|
|
- .github: Block PR tests until approved
|
|
- .github: Fix job prereqs in PROpenedUpdated
|
|
- .github: New PR Submit workflows
|
|
- .github: New PR Submit workflows
|
|
- .github: PRSubmitActions: Fix adding reviewers to PR
|
|
- res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
|
|
- api.wiki.mustache: Fix indentation in generated markdown
|
|
- bridge_simple: Suppress unchanged topology change requests
|
|
- chan_pjsip: Add PJSIPHangup dialplan app and manager action
|
|
- codec_ilbc: Disable system ilbc if version >= 3.0.0
|
|
- SECURITY.md: Update with correct documentation URL
|
|
- ast_coredumper: Increase reliability
|
|
- MergeApproved.yml: Remove unneeded concurrency
|
|
- Revert "core & res_pjsip: Improve topology change handling."
|
|
|
|
- ### Holger Hans Peter Freyther (3):
|
|
- ari/stasis: Indicate progress before playback on a bridge
|
|
- ari: Provide the caller ID RDNIS for the channels
|
|
- stasis: Update the snapshot after setting the redirect
|
|
|
|
- ### Jaco Kroon (1):
|
|
- app_queue: periodic announcement configurable start time.
|
|
|
|
- ### Joshua C. Colp (2):
|
|
- variables: Add additional variable dialplan functions.
|
|
- Update config.yml
|
|
|
|
- ### Mark Murawski (1):
|
|
- Remove files that are no longer updated
|
|
|
|
- ### Matthew Fredrickson (2):
|
|
- app_followme.c: Grab reference on nativeformats before using it
|
|
- res_odbc.c: Allow concurrent access to request odbc connections
|
|
|
|
- ### Maximilian Fridrich (3):
|
|
- chan_rtp: Implement RTP glue for UnicastRTP channels
|
|
- app_dial: Add option "j" to preserve initial stream topology of caller
|
|
- res_pjsip_nat: Fix potential use of uninitialized transport details
|
|
|
|
- ### Mike Bradeen (7):
|
|
- res_speech_aeap: check for null format on response
|
|
- func_periodic_hook: Add hangup step to avoid timeout
|
|
- cel: add publish user event helper
|
|
- res_speech_aeap: add aeap error handling
|
|
- res_pjsip: update qualify_timeout documentation with DNS note
|
|
- res_stasis: signal when new command is queued
|
|
- res_speech: allow speech to translate input channel
|
|
|
|
- ### Naveen Albert (21):
|
|
- chan_iax2: Improve authentication debugging.
|
|
- chan_console: Fix deadlock caused by unclean thread exit.
|
|
- app_voicemail: Disable ADSI if unavailable.
|
|
- chan_dahdi: Clarify scope of callgroup/pickupgroup.
|
|
- res_pjsip: Include cipher limit in config error message.
|
|
- app_voicemail: Add AMI event for mailbox PIN changes.
|
|
- core_local: Fix local channel parsing with slashes.
|
|
- app_directory: Add ADSI support to Directory.
|
|
- chan_dahdi: Warn if nonexistent cadence is requested.
|
|
- logger: Add channel-based filtering.
|
|
- configs: Improve documentation for bandwidth in iax.conf.
|
|
- func_lock: Add missing see-also refs to documentation.
|
|
- func_channel: Expose previously unsettable options.
|
|
- sig_analog: Fix channel leak when mwimonitor is enabled.
|
|
- general: Fix broken links.
|
|
- manager.c: Improve clarity of "manager show connected".
|
|
- config_options.c: Fix truncation of option descriptions.
|
|
- manager.c: Fix regression due to using wrong free function.
|
|
- app_if: Fix faulty EndIf branching.
|
|
- menuselect: Use more specific error message.
|
|
- logger: Fix linking regression.
|
|
|
|
- ### Samuel Olaechea (1):
|
|
- configs: Fix typo in pjsip.conf.sample.
|
|
|
|
- ### Sean Bright (23):
|
|
- res_stasis_recording.c: Save recording state when unmuted.
|
|
- func_curl.c: Ensure channel is locked when manipulating datastores.
|
|
- pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
|
|
- res_pjsip_dtmf_info.c: Add 'INFO' to Allow header.
|
|
- res_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
|
|
- app_queue.c: Emit unpause reason with PauseQueueMember event.
|
|
- chan_iax2.c: Ensure all IEs are displayed when dumping frame contents.
|
|
- doc: Update IP Quality of Service links.
|
|
- resource_channels.c: Explicit codec request when creating UnicastRTP.
|
|
- chan_iax2.c: Don't send unsanitized data to the logger.
|
|
- live_ast: Add astcachedir to generated asterisk.conf.
|
|
- res_http_websocket.c: Set hostname on client for certificate validation.
|
|
- func_curl.c: Remove CURLOPT() plaintext documentation.
|
|
- uri.c: Simplify ast_uri_make_host_with_port()
|
|
- app.c: Allow ampersands in playback lists to be escaped.
|
|
- alembic: Update list of TLS methods available on ps_transports.
|
|
- res_rtp_asterisk.c: Update for OpenSSL 3+.
|
|
- app_voicemail.c: Completely resequence mailbox folders.
|
|
- make_xml_documentation: Properly handle absolute LOCAL_MOD_SUBDIRS.
|
|
- config.c: Log #exec include failures.
|
|
- res_pjsip_header_funcs.c: Check URI parameter length before copying.
|
|
- logger.c: Move LOG_GROUP documentation to dedicated XML file.
|
|
- make_xml_documentation: Really collect LOCAL_MOD_SUBDIRS documentation.
|
|
|
|
- ### Tinet-mucw (1):
|
|
- res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.
|
|
|
|
- ### Vitezslav Novy (1):
|
|
- res_rtp_asterisk: fix wrong counter management in ioqueue objects
|
|
|
|
- ### sungtae kim (1):
|
|
- res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
|
|
|
|
|
|
Detail:
|
|
----------------------------------------
|
|
|
|
- ### logger: Fix linking regression.
|
|
Author: Naveen Albert
|
|
Date: 2024-01-16
|
|
|
|
Commit 008731b0a4b96c4e6c340fff738cc12364985b64
|
|
caused a regression by resulting in logger.xml
|
|
being compiled and linked into the asterisk
|
|
binary in lieu of logger.c on certain platforms
|
|
if Asterisk was compiled in dev mode.
|
|
|
|
To fix this, we ensure the file has a unique
|
|
name without the extension. Most existing .xml
|
|
files have been named differently from any
|
|
.c files in the same directory or did not
|
|
pose this issue.
|
|
|
|
channels/pjsip/dialplan_functions.xml does not
|
|
pose this issue but is also being renamed
|
|
to adhere to this policy.
|
|
|
|
Resolves: #539
|
|
|
|
- ### Revert "core & res_pjsip: Improve topology change handling."
|
|
Author: George Joseph
|
|
Date: 2024-01-12
|
|
|
|
This reverts commit 315eb551dbd18ecd424a2f32179d4c1f6f6edd26.
|
|
|
|
Over the past year, we've had several reports of "topology storms"
|
|
occurring where 2 external facing channels connected by one or more
|
|
local channels and bridges will get themselves in a state where
|
|
they continually send each other topology change requests. This
|
|
usually manifests itself in no-audio calls and a flood of
|
|
"Exceptionally long queue length" messages. It appears that this
|
|
commit is the cause so we're reverting it for now until we can
|
|
determine a more appropriate solution.
|
|
|
|
Resolves: #530
|
|
|
|
- ### menuselect: Use more specific error message.
|
|
Author: Naveen Albert
|
|
Date: 2024-01-04
|
|
|
|
Instead of using the same error message for
|
|
missing dependencies and conflicts, be specific
|
|
about what actually went wrong.
|
|
|
|
Resolves: #520
|
|
|
|
- ### res_pjsip_nat: Fix potential use of uninitialized transport details
|
|
Author: Maximilian Fridrich
|
|
Date: 2024-01-08
|
|
|
|
The ast_sip_request_transport_details must be zero initialized,
|
|
otherwise this could lead to a SEGV.
|
|
|
|
Resolves: #509
|
|
|
|
- ### app_if: Fix faulty EndIf branching.
|
|
Author: Naveen Albert
|
|
Date: 2023-12-23
|
|
|
|
This fixes faulty branching logic for the
|
|
EndIf application. Instead of computing
|
|
the next priority, which should be done
|
|
for false conditionals or ExitIf, we should
|
|
simply advance to the next priority.
|
|
|
|
Resolves: #341
|
|
|
|
- ### manager.c: Fix regression due to using wrong free function.
|
|
Author: Naveen Albert
|
|
Date: 2023-12-26
|
|
|
|
Commit 424be345639d75c6cb7d0bd2da5f0f407dbd0bd5 introduced
|
|
a regression by calling ast_free on memory allocated by
|
|
realpath. This causes Asterisk to abort when executing this
|
|
function. Since the memory is allocated by glibc, it should
|
|
be freed using ast_std_free.
|
|
|
|
Resolves: #513
|
|
|
|
- ### config_options.c: Fix truncation of option descriptions.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-09
|
|
|
|
This increases the format width of option descriptions
|
|
to avoid needless truncation for longer descriptions.
|
|
|
|
Resolves: #428
|
|
|
|
- ### manager.c: Improve clarity of "manager show connected".
|
|
Author: Naveen Albert
|
|
Date: 2023-12-05
|
|
|
|
Improve the "manager show connected" CLI command
|
|
to clarify that the last two columns are permissions
|
|
related, not counts, and use sufficient widths
|
|
to consistently display these values.
|
|
|
|
ASTERISK-30143 #close
|
|
Resolves: #482
|
|
|
|
|
|
- ### make_xml_documentation: Really collect LOCAL_MOD_SUBDIRS documentation.
|
|
Author: Sean Bright
|
|
Date: 2023-12-01
|
|
|
|
Although `make_xml_documentation`'s `print_dependencies` command was
|
|
corrected by the previous fix (#461) for #142, the `create_xml` was
|
|
not properly handling `LOCAL_MOD_SUBDIRS` XML documentation.
|
|
|
|
|
|
- ### general: Fix broken links.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-09
|
|
|
|
This fixes a number of broken links throughout the
|
|
tree, mostly caused by wiki.asterisk.org being replaced
|
|
with docs.asterisk.org, which should eliminate the
|
|
need for sporadic fixes as in f28047db36a70e81fe373a3d19132c43adf3f74b.
|
|
|
|
Resolves: #430
|
|
|
|
- ### MergeApproved.yml: Remove unneeded concurrency
|
|
Author: George Joseph
|
|
Date: 2023-12-06
|
|
|
|
The concurrency parameter on the MergeAndCherryPick job has
|
|
been rmeoved. It was a hold-over from earlier days.
|
|
|
|
|
|
- ### app_dial: Add option "j" to preserve initial stream topology of caller
|
|
Author: Maximilian Fridrich
|
|
Date: 2023-11-30
|
|
|
|
Resolves: #462
|
|
|
|
UserNote: The option "j" is now available for the Dial application which
|
|
uses the initial stream topology of the caller to create the outgoing
|
|
channels.
|
|
|
|
|
|
- ### ast_coredumper: Increase reliability
|
|
Author: George Joseph
|
|
Date: 2023-11-11
|
|
|
|
Instead of searching for the asterisk binary and the modules in the
|
|
filesystem, we now get their locations, along with libdir, from
|
|
the coredump itself...
|
|
|
|
For the binary, we can use `gdb -c <coredump> ... "info proc exe"`.
|
|
gdb can print this even without having the executable and symbols.
|
|
|
|
Once we have the binary, we can get the location of the modules with
|
|
`gdb ... "print ast_config_AST_MODULE_DIR`
|
|
|
|
If there was no result then either it's not an asterisk coredump
|
|
or there were no symbols loaded. Either way, it's not usable.
|
|
|
|
For libdir, we now run "strings" on the note0 section of the
|
|
coredump (which has the shared library -> memory address xref) and
|
|
search for "libasteriskssl|libasteriskpj", then take the dirname.
|
|
|
|
Since we're now getting everything from the coredump, it has to be
|
|
correct as long as we're not crossing namespace boundaries like
|
|
running asterisk in a docker container but trying to run
|
|
ast_coredumper from the host using a shared file system (which you
|
|
shouldn't be doing).
|
|
|
|
There is still a case for using --asterisk-bin and/or --libdir: If
|
|
you've updated asterisk since the coredump was taken, the binary,
|
|
libraries and modules won't match the coredump which will render it
|
|
useless. If you can restore or rebuild the original files that
|
|
match the coredump and place them in a temporary directory, you can
|
|
use --asterisk-bin, --libdir, and a new --moddir option to point to
|
|
them and they'll be correctly captured in a tarball created
|
|
with --tarball-coredumps. If you also use --tarball-config, you can
|
|
use a new --etcdir option to point to what normally would be the
|
|
/etc/asterisk directory.
|
|
|
|
Also addressed many "shellcheck" findings.
|
|
|
|
Resolves: #445
|
|
|
|
- ### logger.c: Move LOG_GROUP documentation to dedicated XML file.
|
|
Author: Sean Bright
|
|
Date: 2023-12-01
|
|
|
|
The `get_documentation` awk script will only extract the first
|
|
DOCUMENTATION block that it finds in a given file. This is by design
|
|
(9bc2127) to prevent AMI event documentation from being pulled in to
|
|
the core.xml documentation file.
|
|
|
|
Because of this, the `LOG_GROUP` documentation added in 89709e2 was
|
|
not being properly extracted and was missing fom the resulting XML
|
|
documentation file. This commit moves the `LOG_GROUP` documentation to
|
|
a separate `logger.xml` file.
|
|
|
|
|
|
- ### res_odbc.c: Allow concurrent access to request odbc connections
|
|
Author: Matthew Fredrickson
|
|
Date: 2023-11-30
|
|
|
|
There are valid scenarios where res_odbc's connection pool might have some dead
|
|
or stuck connections while others are healthy (imagine network
|
|
elements/firewalls/routers silently timing out connections to a single DB and a
|
|
single IP address, or a heterogeneous connection pool connected to potentially
|
|
multiple IPs/instances of a replicated DB using a DNS front end for load
|
|
balancing and one replica fails).
|
|
|
|
In order to time out those unhealthy connections without blocking access to
|
|
other parts of Asterisk that may attempt access to the connection pool, it would
|
|
be beneficial to not lock/block access around the entire pool in
|
|
_ast_odbc_request_obj2 while doing potentially blocking operations on connection
|
|
pool objects such as the connection_dead() test, odbc_obj_connect(), or by
|
|
dereferencing a struct odbc_obj for the last time and triggering a
|
|
odbc_obj_disconnect().
|
|
|
|
This would facilitate much quicker and concurrent timeout of dead connections
|
|
via the connection_dead() test, which could block potentially for a long period
|
|
of time depending on odbc.ini or other odbc connector specific timeout settings.
|
|
|
|
This also would make rapid failover (in the clustered DB scenario) much quicker.
|
|
|
|
This patch changes the locking in _ast_odbc_request_obj2() to not lock around
|
|
odbc_obj_connect(), _disconnect(), and connection_dead(), while continuing to
|
|
lock around truly shared, non-immutable state like the connection_cnt member and
|
|
the connections list on struct odbc_class.
|
|
|
|
Fixes: #465
|
|
|
|
- ### res_pjsip_header_funcs.c: Check URI parameter length before copying.
|
|
Author: Sean Bright
|
|
Date: 2023-12-04
|
|
|
|
Fixes #477
|
|
|
|
|
|
- ### config.c: Log #exec include failures.
|
|
Author: Sean Bright
|
|
Date: 2023-11-22
|
|
|
|
If the script referenced by `#exec` does not exist, writes anything to
|
|
stderr, or exits abnormally or with a non-zero exit status, we log
|
|
that to Asterisk's error logging channel.
|
|
|
|
Additionally, write out a warning if the script produces no output.
|
|
|
|
Fixes #259
|
|
|
|
|
|
- ### make_xml_documentation: Properly handle absolute LOCAL_MOD_SUBDIRS.
|
|
Author: Sean Bright
|
|
Date: 2023-11-27
|
|
|
|
If LOCAL_MOD_SUBDIRS contains absolute paths, do not prefix them with
|
|
the path to Asterisk's source tree.
|
|
|
|
Fixes #142
|
|
|
|
|
|
- ### app_voicemail.c: Completely resequence mailbox folders.
|
|
Author: Sean Bright
|
|
Date: 2023-11-27
|
|
|
|
Resequencing is a process that occurs when we open a voicemail folder
|
|
and discover that there are gaps between messages (e.g. `msg0000.txt`
|
|
is missing but `msg0001.txt` exists). Resequencing involves shifting
|
|
the existing messages down so we end up with a sequential list of
|
|
messages.
|
|
|
|
Currently, this process stops after reaching a threshold based on the
|
|
message limit (`maxmsg`) configured on the current folder. However, if
|
|
`maxmsg` is lowered when a voicemail folder contains more than
|
|
`maxmsg + 10` messages, resequencing will not run completely leaving
|
|
the mailbox in an inconsistent state.
|
|
|
|
We now resequence up to the maximum number of messages permitted by
|
|
`app_voicemail` (currently hard-coded at 9999 messages).
|
|
|
|
Fixes #86
|
|
|
|
|
|
- ### sig_analog: Fix channel leak when mwimonitor is enabled.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-24
|
|
|
|
When mwimonitor=yes is enabled for an FXO port,
|
|
the do_monitor thread will launch mwi_thread if it thinks
|
|
there could be MWI on an FXO channel, due to the noise
|
|
threshold being satisfied. This, in turns, calls
|
|
analog_ss_thread_start in sig_analog. However, unlike
|
|
all other instances where __analog_ss_thread is called
|
|
in sig_analog, this call path does not properly set
|
|
pvt->ss_astchan to the Asterisk channel, which means
|
|
that the Asterisk channel is NULL when __analog_ss_thread
|
|
starts executing. As a result, the thread exits and the
|
|
channel is never properly cleaned up by calling ast_hangup.
|
|
|
|
This caused issues with do_monitor on incoming calls,
|
|
as it would think the channel was still owned even while
|
|
receiving events, leading to an infinite barrage of
|
|
warning messages; additionally, the channel would persist
|
|
improperly.
|
|
|
|
To fix this, the assignment is added to the call path
|
|
where it is missing (which is only used for mwi_thread).
|
|
A warning message is also added since previously there
|
|
was no indication that __analog_ss_thread was exiting
|
|
abnormally. This resolves both the channel leak and the
|
|
condition that led to the warning messages.
|
|
|
|
Resolves: #458
|
|
|
|
- ### res_rtp_asterisk.c: Update for OpenSSL 3+.
|
|
Author: Sean Bright
|
|
Date: 2023-11-20
|
|
|
|
In 5ac5c2b0 we defined `OPENSSL_SUPPRESS_DEPRECATED` to silence
|
|
deprecation warnings. This commit switches over to using
|
|
non-deprecated API.
|
|
|
|
|
|
- ### alembic: Update list of TLS methods available on ps_transports.
|
|
Author: Sean Bright
|
|
Date: 2023-11-14
|
|
|
|
Related to #221 and #222.
|
|
|
|
Also adds `*.ini` to the `.gitignore` file in ast-db-manage for
|
|
convenience.
|
|
|
|
|
|
- ### func_channel: Expose previously unsettable options.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-11
|
|
|
|
Certain channel options are not set anywhere or
|
|
exposed in any way to users, making them unusable.
|
|
This exposes some of these options which make sense
|
|
for users to manipulate at runtime.
|
|
|
|
Resolves: #442
|
|
|
|
- ### app.c: Allow ampersands in playback lists to be escaped.
|
|
Author: Sean Bright
|
|
Date: 2023-11-07
|
|
|
|
Any function or application that accepts a `&`-separated list of
|
|
filenames can now include a literal `&` in a filename by wrapping the
|
|
entire filename in single quotes, e.g.:
|
|
|
|
```
|
|
exten = _X.,n,Playback('https://example.com/sound.cgi?a=b&c=d'&hello-world)
|
|
```
|
|
|
|
Fixes #172
|
|
|
|
UpgradeNote: 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`.
|
|
|
|
|
|
- ### uri.c: Simplify ast_uri_make_host_with_port()
|
|
Author: Sean Bright
|
|
Date: 2023-11-09
|
|
|
|
|
|
- ### func_curl.c: Remove CURLOPT() plaintext documentation.
|
|
Author: Sean Bright
|
|
Date: 2023-11-13
|
|
|
|
I assume this was missed when initially converting to XML
|
|
documentation and we've been kicking the can down the road since.
|
|
|
|
|
|
- ### res_http_websocket.c: Set hostname on client for certificate validation.
|
|
Author: Sean Bright
|
|
Date: 2023-11-09
|
|
|
|
Additionally add a `assert()` to in the TLS client setup code to
|
|
ensure that hostname is set when it is supposed to be.
|
|
|
|
Fixes #433
|
|
|
|
|
|
- ### live_ast: Add astcachedir to generated asterisk.conf.
|
|
Author: Sean Bright
|
|
Date: 2023-11-09
|
|
|
|
`astcachedir` (added in b0842713) was not added to `live_ast` so
|
|
continued to point to the system `/var/cache` directory instead of the
|
|
one in the live environment.
|
|
|
|
|
|
- ### SECURITY.md: Update with correct documentation URL
|
|
Author: George Joseph
|
|
Date: 2023-11-09
|
|
|
|
|
|
- ### func_lock: Add missing see-also refs to documentation.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-09
|
|
|
|
Resolves: #423
|
|
|
|
- ### app_followme.c: Grab reference on nativeformats before using it
|
|
Author: Matthew Fredrickson
|
|
Date: 2023-10-25
|
|
|
|
Fixes a crash due to a lack of proper reference on the nativeformats
|
|
object before passing it into ast_request(). Also found potentially
|
|
similar use case bugs in app_chanisavail.c, bridge.c, and bridge_basic.c
|
|
|
|
Fixes: #388
|
|
|
|
- ### configs: Improve documentation for bandwidth in iax.conf.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-09
|
|
|
|
This improves the documentation for the bandwidth setting
|
|
in iax.conf by making it clearer what the ramifications
|
|
of this setting are. It also changes the sample default
|
|
from low to high, since only high is compatible with good
|
|
codecs that people will want to use in the vast majority
|
|
of cases, and this is a common gotcha that trips up new users.
|
|
|
|
Resolves: #425
|
|
|
|
- ### logger: Add channel-based filtering.
|
|
Author: Naveen Albert
|
|
Date: 2023-08-09
|
|
|
|
This adds the ability to filter console
|
|
logging by channel or groups of channels.
|
|
This can be useful on busy systems where
|
|
an administrator would like to analyze certain
|
|
calls in detail. A dialplan function is also
|
|
included for the purpose of assigning a channel
|
|
to a group (e.g. by tenant, or some other metric).
|
|
|
|
ASTERISK-30483 #close
|
|
|
|
Resolves: #242
|
|
|
|
UserNote: The console log can now be filtered by
|
|
channels or groups of channels, using the
|
|
logger filter CLI commands.
|
|
|
|
|
|
- ### chan_iax2.c: Don't send unsanitized data to the logger.
|
|
Author: Sean Bright
|
|
Date: 2023-11-08
|
|
|
|
This resolves an issue where non-printable characters could be sent to
|
|
the console/log files.
|
|
|
|
|
|
- ### codec_ilbc: Disable system ilbc if version >= 3.0.0
|
|
Author: George Joseph
|
|
Date: 2023-11-07
|
|
|
|
Fedora 37 started shipping ilbc 3.0.4 which we don't yet support.
|
|
configure.ac now checks the system for "libilbc < 3" instead of
|
|
just "libilbc". If true, the system version of ilbc will be used.
|
|
If not, the version included at codecs/ilbc will be used.
|
|
|
|
Resolves: #84
|
|
|
|
- ### resource_channels.c: Explicit codec request when creating UnicastRTP.
|
|
Author: Sean Bright
|
|
Date: 2023-11-06
|
|
|
|
Fixes #394
|
|
|
|
|
|
- ### doc: Update IP Quality of Service links.
|
|
Author: Sean Bright
|
|
Date: 2023-11-07
|
|
|
|
Fixes #328
|
|
|
|
|
|
- ### chan_pjsip: Add PJSIPHangup dialplan app and manager action
|
|
Author: George Joseph
|
|
Date: 2023-10-31
|
|
|
|
See UserNote below.
|
|
|
|
Exposed the existing Hangup AMI action in manager.c so we can use
|
|
all of it's channel search and AMI protocol handling without
|
|
duplicating that code in dialplan_functions.c.
|
|
|
|
Added a lookup function to res_pjsip.c that takes in the
|
|
string represenation of the pjsip_status_code enum and returns
|
|
the actual status code. I.E. ast_sip_str2rc("DECLINE") returns
|
|
603. This allows the caller to specify PJSIPHangup(decline) in
|
|
the dialplan, just like Hangup(call_rejected).
|
|
|
|
Also extracted the XML documentation to its own file since it was
|
|
almost as large as the code itself.
|
|
|
|
UserNote: 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.
|
|
|
|
|
|
- ### chan_iax2.c: Ensure all IEs are displayed when dumping frame contents.
|
|
Author: Sean Bright
|
|
Date: 2023-11-06
|
|
|
|
When IAX2 debugging was enabled (`iax2 set debug on`), if the last IE
|
|
in a frame was one that may not have any data - such as the CALLTOKEN
|
|
IE in an NEW request - it was not getting displayed.
|
|
|
|
|
|
- ### chan_dahdi: Warn if nonexistent cadence is requested.
|
|
Author: Naveen Albert
|
|
Date: 2023-11-02
|
|
|
|
If attempting to ring a channel using a nonexistent cadence,
|
|
emit a warning, before falling back to the default cadence.
|
|
|
|
Resolves: #409
|
|
|
|
- ### stasis: Update the snapshot after setting the redirect
|
|
Author: Holger Hans Peter Freyther
|
|
Date: 2023-10-21
|
|
|
|
The previous commit added the caller_rdnis attribute. Make it
|
|
avialble during a possible ChanngelHangupRequest.
|
|
|
|
|
|
- ### ari: Provide the caller ID RDNIS for the channels
|
|
Author: Holger Hans Peter Freyther
|
|
Date: 2023-10-14
|
|
|
|
Provide the caller ID RDNIS when available. This will allow an
|
|
application to follow the redirect.
|
|
|
|
|
|
- ### main/utils: Implement ast_get_tid() for OpenBSD
|
|
Author: Brad Smith
|
|
Date: 2023-11-01
|
|
|
|
Implement the ast_get_tid() function for OpenBSD. OpenBSD supports
|
|
getting the TID via getthrid().
|
|
|
|
|
|
- ### res_rtp_asterisk.c: Fix runtime issue with LibreSSL
|
|
Author: Brad Smith
|
|
Date: 2023-11-02
|
|
|
|
The module will fail to load. Use proper function DTLS_method() with LibreSSL.
|
|
|
|
|
|
- ### app_directory: Add ADSI support to Directory.
|
|
Author: Naveen Albert
|
|
Date: 2023-09-27
|
|
|
|
This adds optional ADSI support to the Directory
|
|
application, which allows callers with ADSI CPE
|
|
to navigate the Directory system significantly
|
|
faster than is possible using the audio prompts.
|
|
Callers can see the directory name (and optionally
|
|
extension) on their screenphone and confirm or
|
|
reject a match immediately rather than waiting
|
|
for it to be spelled out, enhancing usability.
|
|
|
|
Resolves: #356
|
|
|
|
- ### core_local: Fix local channel parsing with slashes.
|
|
Author: Naveen Albert
|
|
Date: 2023-08-09
|
|
|
|
Currently, trying to call a Local channel with a slash
|
|
in the extension will fail due to the parsing of characters
|
|
after such a slash as being dial modifiers. Additionally,
|
|
core_local is inconsistent and incomplete with
|
|
its parsing of Local dial strings in that sometimes it
|
|
uses the first slash and at other times it uses the last.
|
|
|
|
For instance, something like DAHDI/5 or PJSIP/device
|
|
is a perfectly usable extension in the dialplan, but Local
|
|
channels in particular prevent these from being called.
|
|
|
|
This creates inconsistent behavior for users, since using
|
|
a slash in an extension is perfectly acceptable, and using
|
|
a Goto to accomplish this works fine, but if specified
|
|
through a Local channel, the parsing prevents this.
|
|
|
|
This fixes this by explicitly parsing options from the
|
|
last slash in the extension, rather than the first one,
|
|
which doesn't cause an issue for extensions with slashes.
|
|
|
|
ASTERISK-30013 #close
|
|
|
|
Resolves: #248
|
|
|
|
- ### Remove files that are no longer updated
|
|
Author: Mark Murawski
|
|
Date: 2023-10-30
|
|
|
|
Fixes: #360
|
|
|
|
- ### app_voicemail: Add AMI event for mailbox PIN changes.
|
|
Author: Naveen Albert
|
|
Date: 2023-10-30
|
|
|
|
This adds an AMI event that is emitted whenever a
|
|
mailbox password is successfully changed, allowing
|
|
AMI consumers to process these.
|
|
|
|
UserNote: The VoicemailPasswordChange event is
|
|
now emitted whenever a mailbox password is updated,
|
|
containing the mailbox information and the new
|
|
password.
|
|
|
|
Resolves: #398
|
|
|
|
- ### app_queue.c: Emit unpause reason with PauseQueueMember event.
|
|
Author: Sean Bright
|
|
Date: 2023-10-30
|
|
|
|
Fixes #395
|
|
|
|
|
|
- ### bridge_simple: Suppress unchanged topology change requests
|
|
Author: George Joseph
|
|
Date: 2023-10-30
|
|
|
|
In simple_bridge_join, we were sending topology change requests
|
|
even when the new and old topologies were the same. In some
|
|
circumstances, this can cause unnecessary re-invites and even
|
|
a re-invite flood. We now suppress those.
|
|
|
|
Resolves: #384
|
|
|
|
- ### res_pjsip: Include cipher limit in config error message.
|
|
Author: Naveen Albert
|
|
Date: 2023-10-30
|
|
|
|
If too many ciphers are specified in the PJSIP config,
|
|
include the maximum number of ciphers that may be
|
|
specified in the user-facing error message.
|
|
|
|
Resolves: #396
|
|
|
|
- ### res_speech: allow speech to translate input channel
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-07
|
|
|
|
* Allow res_speech to translate the input channel if the
|
|
format is translatable to a format suppored by the
|
|
speech provider.
|
|
|
|
Resolves: #129
|
|
|
|
UserNote: 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_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
|
|
Author: Sean Bright
|
|
Date: 2023-10-25
|
|
|
|
Fixes #386
|
|
|
|
|
|
- ### res_pjsip_dtmf_info.c: Add 'INFO' to Allow header.
|
|
Author: Sean Bright
|
|
Date: 2023-10-17
|
|
|
|
Fixes #376
|
|
|
|
|
|
- ### api.wiki.mustache: Fix indentation in generated markdown
|
|
Author: George Joseph
|
|
Date: 2023-10-25
|
|
|
|
The '*' list indicator for default values and allowable values for
|
|
path, query and POST parameters need to be indented 4 spaces
|
|
instead of 2.
|
|
|
|
Should resolve issue 38 in the documentation repo.
|
|
|
|
|
|
- ### pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
|
|
Author: Sean Bright
|
|
Date: 2023-10-23
|
|
|
|
Per RFC8827:
|
|
|
|
Implementations MUST NOT implement DTLS renegotiation and MUST
|
|
reject it with a "no_renegotiation" alert if offered.
|
|
|
|
So we disable it when webrtc=yes is set.
|
|
|
|
Fixes #378
|
|
|
|
UpgradeNote: The dtls_rekey will be disabled if webrtc support is
|
|
requested on an endpoint. A warning will also be emitted.
|
|
|
|
|
|
- ### configs: Fix typo in pjsip.conf.sample.
|
|
Author: Samuel Olaechea
|
|
Date: 2023-10-12
|
|
|
|
|
|
- ### res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
|
|
Author: George Joseph
|
|
Date: 2023-10-19
|
|
|
|
Commit f66f77f last year prevents the res_pjsip_exten_state and
|
|
res_pjsip_mwi modules from unloading due to possible pjproject
|
|
asserts if the modules are reloaded. A side effect of the
|
|
implementation is that the taskprocessors these modules use aren't
|
|
being released. When asterisk is doing a graceful shutdown, it
|
|
waits AST_TASKPROCESSOR_SHUTDOWN_MAX_WAIT seconds for all
|
|
taskprocessors to stop but since those 2 modules don't release
|
|
theirs, the shutdown hangs for that amount of time.
|
|
|
|
This change allows the modules to be unloaded and their resources to
|
|
be released when ast_shutdown_final is true.
|
|
|
|
Resolves: #379
|
|
|
|
- ### res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
|
|
Author: sungtae kim
|
|
Date: 2023-09-23
|
|
|
|
This commit introduces an extension to the endpoint and relevant
|
|
resource sizes for PJSIP, transitioning from its current 40-character
|
|
constraint to a more versatile 255-character capacity. This enhancement
|
|
significantly overcomes limitations related to domain qualification and
|
|
practical usage, ultimately delivering improved functionality. In
|
|
addition, it includes adjustments to accommodate the expanded realm size
|
|
within the ARI, specifically enhancing the maximum realm length.
|
|
|
|
Resolves: #345
|
|
|
|
UserNote: With this update, the PJSIP realm lengths have been extended
|
|
to support up to 255 characters.
|
|
|
|
UpgradeNote: 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.
|
|
|
|
|
|
- ### .github: PRSubmitActions: Fix adding reviewers to PR
|
|
Author: George Joseph
|
|
Date: 2023-10-19
|
|
|
|
|
|
- ### .github: New PR Submit workflows
|
|
Author: George Joseph
|
|
Date: 2023-10-17
|
|
|
|
The workflows that get triggered when PRs are submitted or updated
|
|
have been replaced with ones that are more secure and have
|
|
a higher level of parallelism.
|
|
|
|
|
|
- ### .github: New PR Submit workflows
|
|
Author: George Joseph
|
|
Date: 2023-10-17
|
|
|
|
The workflows that get triggered when PRs are submitted or updated
|
|
have been replaced with ones that are more secure and have
|
|
a higher level of parallelism.
|
|
|
|
|
|
- ### res_stasis: signal when new command is queued
|
|
Author: Mike Bradeen
|
|
Date: 2023-10-02
|
|
|
|
res_statsis's app loop sleeps for up to .2s waiting on input
|
|
to a channel before re-checking the command queue. This can
|
|
cause delays between channel setup and bridge.
|
|
|
|
This change is to send a SIGURG on the sleeping thread when
|
|
a new command is enqueued. This exits the sleeping thread out
|
|
of the ast_waitfor() call triggering the new command being
|
|
processed on the channel immediately.
|
|
|
|
Resolves: #362
|
|
|
|
UserNote: Call setup times should be significantly improved
|
|
when using ARI.
|
|
|
|
|
|
- ### ari/stasis: Indicate progress before playback on a bridge
|
|
Author: Holger Hans Peter Freyther
|
|
Date: 2023-10-02
|
|
|
|
Make it possible to start a playback and the calling party
|
|
to receive audio on a bridge before the call is connected.
|
|
|
|
Model the implementation after play_on_channel and deliver a
|
|
AST_CONTROL_PROGRESS before starting the playback.
|
|
|
|
For a PJSIP channel this will result in sending a SIP 183
|
|
Session Progress.
|
|
|
|
|
|
- ### func_curl.c: Ensure channel is locked when manipulating datastores.
|
|
Author: Sean Bright
|
|
Date: 2023-10-09
|
|
|
|
|
|
- ### .github: Fix job prereqs in PROpenedUpdated
|
|
Author: George Joseph
|
|
Date: 2023-10-09
|
|
|
|
|
|
- ### .github: Block PR tests until approved
|
|
Author: George Joseph
|
|
Date: 2023-10-05
|
|
|
|
|
|
- ### Update config.yml
|
|
Author: Joshua C. Colp
|
|
Date: 2023-06-15
|
|
|
|
|
|
- ### logger.h: Add ability to change the prefix on SCOPE_TRACE output
|
|
Author: George Joseph
|
|
Date: 2023-10-05
|
|
|
|
You can now define the _TRACE_PREFIX_ macro to change the
|
|
default trace line prefix of "file:line function" to
|
|
something else. Full documentation in logger.h.
|
|
|
|
|
|
- ### Add libjwt to third-party
|
|
Author: George Joseph
|
|
Date: 2023-09-21
|
|
|
|
The current STIR/SHAKEN implementation is not currently usable due
|
|
to encryption issues. Rather than trying to futz with OpenSSL and
|
|
the the current code, we can take advantage of the existing
|
|
capabilities of libjwt but we first need to add it to the
|
|
third-party infrastructure already in place for jansson and
|
|
pjproject.
|
|
|
|
A few tweaks were also made to the third-party infrastructure as
|
|
a whole. The jansson "dest" install directory was renamed "dist"
|
|
to better match convention, and the third-party Makefile was updated
|
|
to clean all product directories not just the ones currently in
|
|
use.
|
|
|
|
Resolves: #349
|
|
|
|
- ### res_pjsip: update qualify_timeout documentation with DNS note
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-26
|
|
|
|
The documentation on qualify_timeout does not explicitly state that the timeout
|
|
includes any time required to perform any needed DNS queries on the endpoint.
|
|
|
|
If the OPTIONS response is delayed due to the DNS query, it can still render an
|
|
endpoint as Unreachable if the net time is enough for qualify_timeout to expire.
|
|
|
|
Resolves: #352
|
|
|
|
- ### chan_dahdi: Clarify scope of callgroup/pickupgroup.
|
|
Author: Naveen Albert
|
|
Date: 2023-09-04
|
|
|
|
Internally, chan_dahdi only applies callgroup and
|
|
pickupgroup to FXO signalled channels, but this is
|
|
not documented anywhere. This is now documented in
|
|
the sample config, and a warning is emitted if a
|
|
user tries configuring these settings for channel
|
|
types that do not support these settings, since they
|
|
will not have any effect.
|
|
|
|
Resolves: #294
|
|
|
|
- ### func_json: Fix crashes for some types
|
|
Author: Bastian Triller
|
|
Date: 2023-09-21
|
|
|
|
This commit fixes crashes in JSON_DECODE() for types null, true, false
|
|
and real numbers.
|
|
|
|
In addition it ensures that a path is not deeper than 32 levels.
|
|
|
|
Also allow root object to be an array.
|
|
|
|
Add unit tests for above cases.
|
|
|
|
|
|
- ### res_speech_aeap: add aeap error handling
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-21
|
|
|
|
res_speech_aeap previously did not register an error handler
|
|
with aeap, so it was not notified of a disconnect. This resulted
|
|
in SpeechBackground never exiting upon a websocket disconnect.
|
|
|
|
Resolves: #303
|
|
|
|
- ### app_voicemail: Disable ADSI if unavailable.
|
|
Author: Naveen Albert
|
|
Date: 2023-09-27
|
|
|
|
If ADSI is available on a channel, app_voicemail will repeatedly
|
|
try to use ADSI, even if there is no CPE that supports it. This
|
|
leads to many unnecessary delays during the session. If ADSI is
|
|
available but ADSI setup fails, we now disable it to prevent
|
|
further attempts to use ADSI during the session.
|
|
|
|
Resolves: #354
|
|
|
|
- ### codec_builtin: Use multiples of 20 for maximum_ms
|
|
Author: Eduardo
|
|
Date: 2023-07-28
|
|
|
|
Some providers require a multiple of 20 for the maxptime or fail to complete calls,
|
|
e.g. Vivo in Brazil. To increase compatibility, only multiples of 20 are now used.
|
|
|
|
Resolves: #260
|
|
|
|
- ### lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
|
|
Author: George Joseph
|
|
Date: 2023-09-13
|
|
|
|
Previously, DETECT_DEADLOCKS depended on DEBUG_THREADS.
|
|
Unfortunately, DEBUG_THREADS adds a lot of lock tracking overhead
|
|
to all of the lock lifecycle calls whereas DETECT_DEADLOCKS just
|
|
causes the lock calls to loop over trylock in 200us intervals until
|
|
the lock is obtained and spits out log messages if it takes more
|
|
than 5 seconds. From a code perspective, the only reason they were
|
|
tied together was for logging. So... The ifdefs in lock.c were
|
|
refactored to allow DETECT_DEADLOCKS to be enabled without
|
|
also enabling DEBUG_THREADS.
|
|
|
|
Resolves: #321
|
|
|
|
UserNote: 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.
|
|
|
|
|
|
- ### asterisk.c: Use the euid's home directory to read/write cli history
|
|
Author: George Joseph
|
|
Date: 2023-09-15
|
|
|
|
The CLI .asterisk_history file is read from/written to the directory
|
|
specified by the HOME environment variable. If the root user starts
|
|
asterisk with the -U/-G options, or with runuser/rungroup set in
|
|
asterisk.conf, the asterisk process is started as root but then it
|
|
calls setuid/setgid to set the new user/group. This does NOT reset
|
|
the HOME environment variable to the new user's home directory
|
|
though so it's still left as "/root". In this case, the new user
|
|
will almost certainly NOT have access to read from or write to the
|
|
history file.
|
|
|
|
* Added function process_histfile() which calls
|
|
getpwuid(geteuid()) and uses pw->dir as the home directory
|
|
instead of the HOME environment variable.
|
|
* ast_el_read_default_histfile() and ast_el_write_default_histfile()
|
|
have been modified to use the new process_histfile()
|
|
function.
|
|
|
|
Resolves: #337
|
|
|
|
- ### res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.
|
|
Author: Tinet-mucw
|
|
Date: 2023-09-13
|
|
|
|
From the gdb information, ast_websocket_read reads a message successfully,
|
|
then transport_read is called in the serializer. During execution of pjsip_transport_down,
|
|
ws_session->stream->fd is closed; ast_websocket_read encounters an error and exits the while loop.
|
|
After executing transport_shutdown, the transport's reference count becomes 0, causing a crash when sending SIP messages.
|
|
This was due to pjsip_transport_dec_ref executing earlier than pjsip_rx_data_clone, leading to this issue.
|
|
In websocket_cb executeing pjsip_transport_add_ref, this we now ensure the transport is not destroyed while in the loop.
|
|
|
|
Resolves: asterisk#299
|
|
|
|
- ### cel: add publish user event helper
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-14
|
|
|
|
Add a wrapper function around ast_cel_publish_event that
|
|
packs event and extras into a blob before publishing
|
|
|
|
Resolves:#330
|
|
|
|
- ### chan_console: Fix deadlock caused by unclean thread exit.
|
|
Author: Naveen Albert
|
|
Date: 2023-09-09
|
|
|
|
To terminate a console channel, stop_stream causes pthread_cancel
|
|
to make stream_monitor exit. However, commit 5b8fea93d106332bc0faa4b7fa8a6ea71e546cac
|
|
added locking to this function which results in deadlock due to
|
|
the stream_monitor thread being killed while it's holding the pvt lock.
|
|
|
|
To resolve this, a flag is now set and read to indicate abort, so
|
|
the use of pthread_cancel and pthread_kill can be avoided altogether.
|
|
|
|
Resolves: #308
|
|
|
|
- ### file.c: Add ability to search custom dir for sounds
|
|
Author: George Joseph
|
|
Date: 2023-09-11
|
|
|
|
To better co-exist with sounds files that may be managed by
|
|
packages, custom sound files may now be placed in
|
|
AST_DATA_DIR/sounds/custom instead of the standard
|
|
AST_DATA_DIR/sounds/<lang> directory. If the new
|
|
"sounds_search_custom_dir" option in asterisk.conf is set
|
|
to "true", asterisk will search the custom directory for sounds
|
|
files before searching the standard directory. For performance
|
|
reasons, the "sounds_search_custom_dir" defaults to "false".
|
|
|
|
Resolves: #315
|
|
|
|
UserNote: 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/<lang> directory.
|
|
|
|
|
|
- ### chan_iax2: Improve authentication debugging.
|
|
Author: Naveen Albert
|
|
Date: 2023-08-30
|
|
|
|
Improves and adds some logging to make it easier
|
|
for users to debug authentication issues.
|
|
|
|
Resolves: #286
|
|
|
|
- ### res_rtp_asterisk: fix wrong counter management in ioqueue objects
|
|
Author: Vitezslav Novy
|
|
Date: 2023-09-05
|
|
|
|
In function rtp_ioqueue_thread_remove counter in ioqueue object is not decreased
|
|
which prevents unused ICE TURN threads from being removed.
|
|
|
|
Resolves: #301
|
|
|
|
- ### make_buildopts_h, et. al. Allow adding all cflags to buildopts.h
|
|
Author: George Joseph
|
|
Date: 2023-09-13
|
|
|
|
The previous behavior of make_buildopts_h was to not add the
|
|
non-ABI-breaking MENUSELECT_CFLAGS like DETECT_DEADLOCKS,
|
|
REF_DEBUG, etc. to the buildopts.h file because "it caused
|
|
ccache to invalidate files and extended compile times". They're
|
|
only defined by passing them on the gcc command line with '-D'
|
|
options. In practice, including them in the include file rarely
|
|
causes any impact because the only time ccache cares is if you
|
|
actually change an option so the hit occurrs only once after
|
|
you change it.
|
|
|
|
OK so why would we want to include them? Many IDEs follow the
|
|
include files to resolve defines and if the options aren't in an
|
|
include file, it can cause the IDE to mark blocks of "ifdeffed"
|
|
code as unused when they're really not.
|
|
|
|
So...
|
|
|
|
* Added a new menuselect compile option ADD_CFLAGS_TO_BUILDOPTS_H
|
|
which tells make_buildopts_h to include the non-ABI-breaking
|
|
flags in buildopts.h as well as the ABI-breaking ones. The default
|
|
is disabled to preserve current behavior. As before though,
|
|
only the ABI-breaking flags appear in AST_BUILDOPTS and only
|
|
those are used to calculate AST_BUILDOPT_SUM.
|
|
A new AST_BUILDOPT_ALL define was created to capture all of the
|
|
flags.
|
|
|
|
* make_version_c was streamlined to use buildopts.h and also to
|
|
create asterisk_build_opts_all[] and ast_get_build_opts_all(void)
|
|
|
|
* "core show settings" now shows both AST_BUILDOPTS and
|
|
AST_BUILDOPTS_ALL.
|
|
|
|
UserNote: 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.
|
|
|
|
|
|
- ### func_periodic_hook: Add hangup step to avoid timeout
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-12
|
|
|
|
func_periodic_hook does not hangup after playback, relying on hangup
|
|
which keeps the channel alive longer than necessary.
|
|
|
|
Resolves: #325
|
|
|
|
- ### res_stasis_recording.c: Save recording state when unmuted.
|
|
Author: Sean Bright
|
|
Date: 2023-09-12
|
|
|
|
Fixes #322
|
|
|
|
|
|
- ### res_speech_aeap: check for null format on response
|
|
Author: Mike Bradeen
|
|
Date: 2023-09-08
|
|
|
|
* Fixed issue in res_speech_aeap when unable to provide an
|
|
input format to check against.
|
|
|
|
|
|
- ### func_periodic_hook: Don't truncate channel name
|
|
Author: George Joseph
|
|
Date: 2023-09-11
|
|
|
|
func_periodic_hook was truncating long channel names which
|
|
causes issues when you need to run other dialplan functions/apps
|
|
on the channel.
|
|
|
|
Resolves: #319
|
|
|
|
- ### safe_asterisk: Change directory permissions to 755
|
|
Author: George Joseph
|
|
Date: 2023-09-11
|
|
|
|
If the safe_asterisk script detects that the /var/lib/asterisk
|
|
directory doesn't exist, it now creates it with 755 permissions
|
|
instead of 770. safe_asterisk needing to create that directory
|
|
should be extremely rare though because it's normally created
|
|
by 'make install' which already sets the permissions to 755.
|
|
|
|
Resolves: #316
|
|
|
|
- ### chan_rtp: Implement RTP glue for UnicastRTP channels
|
|
Author: Maximilian Fridrich
|
|
Date: 2023-09-05
|
|
|
|
Resolves: #298
|
|
|
|
UserNote: The dial string option 'g' was added to the UnicastRTP channel
|
|
which enables RTP glue and therefore native RTP bridges with those
|
|
channels.
|
|
|
|
|
|
- ### app_queue: periodic announcement configurable start time.
|
|
Author: Jaco Kroon
|
|
Date: 2023-02-21
|
|
|
|
This newly introduced periodic-announce-startdelay makes it possible to
|
|
configure the initial start delay of the first periodic announcement
|
|
after which periodic-announce-frequency takes over.
|
|
|
|
UserNote: Introduce a new queue configuration option called
|
|
'periodic-announce-startdelay' which will vary the normal (historic)
|
|
behavior of starting the periodic announcement cycle at
|
|
periodic-announce-frequency seconds after entering the queue to start
|
|
the periodic announcement cycle at period-announce-startdelay seconds
|
|
after joining the queue. The default behavior if this config option is
|
|
not set remains unchanged.
|
|
|
|
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
|
|
|
|
- ### variables: Add additional variable dialplan functions.
|
|
Author: Joshua C. Colp
|
|
Date: 2023-08-31
|
|
|
|
Using the Set dialplan application does not actually
|
|
delete channel or global variables. Instead the
|
|
variables are set to an empty value.
|
|
|
|
This change adds two dialplan functions,
|
|
GLOBAL_DELETE and DELETE which can be used to
|
|
delete global and channel variables instead
|
|
of just setting them to empty.
|
|
|
|
There is also no ability within the dialplan to
|
|
determine if a global or channel variable has
|
|
actually been set or not.
|
|
|
|
This change also adds two dialplan functions,
|
|
GLOBAL_EXISTS and VARIABLE_EXISTS which can be
|
|
used to determine if a global or channel variable
|
|
has been set or not.
|
|
|
|
Resolves: #289
|
|
|
|
UserNote: 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.
|
|
|
|
|
|
- ### Restore CHANGES and UPGRADE.txt to allow cherry-picks to work
|
|
Author: George Joseph
|
|
Date: 2024-01-12
|
|
|
|
|