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.
		
		
		
		
		
			
		
			
				
					
					
						
							1610 lines
						
					
					
						
							59 KiB
						
					
					
				
			
		
		
	
	
							1610 lines
						
					
					
						
							59 KiB
						
					
					
				| 
 | |
| 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  
 | |
| 
 | |
| 
 |