]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
18 months agoari: Provide the caller ID RDNIS for the channels
Holger Hans Peter Freyther [Sat, 14 Oct 2023 07:48:10 +0000 (15:48 +0800)] 
ari: Provide the caller ID RDNIS for the channels

Provide the caller ID RDNIS when available. This will allow an
application to follow the redirect.

(cherry picked from commit 157389bc59f4a655a9fe75a409828d13e4af7eee)

18 months agomain/utils: Implement ast_get_tid() for OpenBSD
Brad Smith [Thu, 2 Nov 2023 00:22:58 +0000 (20:22 -0400)] 
main/utils: Implement ast_get_tid() for OpenBSD

Implement the ast_get_tid() function for OpenBSD. OpenBSD supports
getting the TID via getthrid().

(cherry picked from commit e7943dd4d98e29760319c19e6200ba5ee3f5c7d5)

18 months agores_rtp_asterisk.c: Fix runtime issue with LibreSSL
Brad Smith [Thu, 2 Nov 2023 06:26:09 +0000 (02:26 -0400)] 
res_rtp_asterisk.c: Fix runtime issue with LibreSSL

The module will fail to load. Use proper function DTLS_method() with LibreSSL.

(cherry picked from commit 65d38c8104c0c4feff48fc5de9f0d6aa51c16942)

18 months agoapp_directory: Add ADSI support to Directory.
Naveen Albert [Wed, 27 Sep 2023 12:49:07 +0000 (08:49 -0400)] 
app_directory: Add ADSI support to Directory.

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
(cherry picked from commit 5046620fa393237fc8f20f8e662960293ca517dd)

18 months agocore_local: Fix local channel parsing with slashes.
Naveen Albert [Wed, 9 Aug 2023 22:57:41 +0000 (22:57 +0000)] 
core_local: Fix local channel parsing with slashes.

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
(cherry picked from commit 2191a0d33fce2a595e258e7e2ba561bd18ee0ff3)

18 months agoRemove files that are no longer updated
Mark Murawski [Mon, 30 Oct 2023 15:38:22 +0000 (11:38 -0400)] 
Remove files that are no longer updated

Fixes: #360
(cherry picked from commit 2ed8daa3cba33d97642da851862b31a9be46c823)

18 months agoapp_voicemail: Add AMI event for mailbox PIN changes.
Naveen Albert [Mon, 30 Oct 2023 13:27:20 +0000 (09:27 -0400)] 
app_voicemail: Add AMI event for mailbox PIN changes.

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
(cherry picked from commit cf9d7fa9f6c696e56a208ff1fad0b6ba7fa32158)

18 months agoapp_queue.c: Emit unpause reason with PauseQueueMember event.
Sean Bright [Mon, 30 Oct 2023 14:13:56 +0000 (10:13 -0400)] 
app_queue.c: Emit unpause reason with PauseQueueMember event.

Fixes #395

(cherry picked from commit fb937d1d897d2befd169aeb33110cd192178db07)

18 months agobridge_simple: Suppress unchanged topology change requests
George Joseph [Mon, 30 Oct 2023 18:01:04 +0000 (12:01 -0600)] 
bridge_simple: Suppress unchanged topology change requests

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
(cherry picked from commit f301d4559e71c2be147c9491044ebae60f71ddb4)

18 months agores_pjsip: Include cipher limit in config error message.
Naveen Albert [Mon, 30 Oct 2023 11:09:54 +0000 (07:09 -0400)] 
res_pjsip: Include cipher limit in config error message.

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
(cherry picked from commit 8d9d0d37385ad55dca7726ab9203bd32155b6f27)

18 months agores_speech: allow speech to translate input channel
Mike Bradeen [Thu, 7 Sep 2023 17:21:32 +0000 (11:21 -0600)] 
res_speech: allow speech to translate input channel

* 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.

(cherry picked from commit c3e2bff36ee28cff680f1b591015fd2af98d2527)

18 months agores_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.
Sean Bright [Wed, 25 Oct 2023 22:19:13 +0000 (18:19 -0400)] 
res_rtp_asterisk.c: Fix memory leak in ephemeral certificate creation.

Fixes #386

(cherry picked from commit deeb1acffef4ecab7b797b10fa8f37f781a2d9b3)

18 months agores_pjsip_dtmf_info.c: Add 'INFO' to Allow header.
Sean Bright [Tue, 17 Oct 2023 15:33:41 +0000 (11:33 -0400)] 
res_pjsip_dtmf_info.c: Add 'INFO' to Allow header.

Fixes #376

(cherry picked from commit d4e4942cf5d6825c6f0891cd4c533abf286c838c)

18 months agoapi.wiki.mustache: Fix indentation in generated markdown
George Joseph [Wed, 25 Oct 2023 11:06:26 +0000 (05:06 -0600)] 
api.wiki.mustache: Fix indentation in generated markdown

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.

(cherry picked from commit b619b6413765b9795e33c774db96c132ed29f8ad)

18 months agopjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.
Sean Bright [Mon, 23 Oct 2023 19:53:08 +0000 (15:53 -0400)] 
pjsip_configuration.c: Disable DTLS renegotiation if WebRTC is enabled.

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.

(cherry picked from commit 9d329da346c77c2227680f9e896b5235002da006)

18 months agoconfigs: Fix typo in pjsip.conf.sample.
Samuel Olaechea [Thu, 12 Oct 2023 22:15:37 +0000 (18:15 -0400)] 
configs: Fix typo in pjsip.conf.sample.

(cherry picked from commit ebc78a83be59e3217eac75e771a65e4c7ebefd05)

18 months agores_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown
George Joseph [Thu, 19 Oct 2023 13:40:26 +0000 (07:40 -0600)] 
res_pjsip_exten_state,res_pjsip_mwi: Allow unload on shutdown

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
(cherry picked from commit 9efc4bdfbcf6d1ec641bbf87f44abdd2f9d18126)

18 months agores_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters
sungtae kim [Fri, 22 Sep 2023 17:32:43 +0000 (02:32 +0900)] 
res_pjsip: Expanding PJSIP endpoint ID and relevant resource length to 255 characters

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.

(cherry picked from commit f89e56c178a30db81de90da184baa0e922544b60)

18 months ago.github: PRSubmitActions: Fix adding reviewers to PR
George Joseph [Thu, 19 Oct 2023 15:54:43 +0000 (09:54 -0600)] 
.github: PRSubmitActions: Fix adding reviewers to PR

(cherry picked from commit be1e83a6ac33940d323756242f547dd8d6128627)

18 months ago.github: New PR Submit workflows
George Joseph [Tue, 17 Oct 2023 12:59:43 +0000 (06:59 -0600)] 
.github: New PR Submit workflows

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.

(cherry picked from commit 289aa1840e28b8fd8e7bec54598a968688a4ba36)

18 months ago.github: New PR Submit workflows
George Joseph [Tue, 17 Oct 2023 12:59:43 +0000 (06:59 -0600)] 
.github: New PR Submit workflows

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.

(cherry picked from commit 0c1c6e9ada090ac642f30f6045dc661b2a7199f1)

18 months agores_stasis: signal when new command is queued
Mike Bradeen [Mon, 2 Oct 2023 18:35:32 +0000 (12:35 -0600)] 
res_stasis: signal when new command is queued

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.

(cherry picked from commit 79220e3f0c09a007b0dc62ba95b3e4b41b0851ab)

18 months agoari/stasis: Indicate progress before playback on a bridge
Holger Hans Peter Freyther [Mon, 2 Oct 2023 12:03:03 +0000 (20:03 +0800)] 
ari/stasis: Indicate progress before playback on a bridge

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.

(cherry picked from commit 1171dcee02e10263cda5532f466a662c3917d792)

18 months agofunc_curl.c: Ensure channel is locked when manipulating datastores.
Sean Bright [Mon, 9 Oct 2023 13:32:57 +0000 (09:32 -0400)] 
func_curl.c: Ensure channel is locked when manipulating datastores.

(cherry picked from commit acb2348f906a454796635ac606dafe613a1a0d47)

18 months ago.github: Fix job prereqs in PROpenedUpdated
George Joseph [Mon, 9 Oct 2023 13:22:49 +0000 (07:22 -0600)] 
.github: Fix job prereqs in PROpenedUpdated

(cherry picked from commit 20398e8e955bca868797ea0122337f36d60d51a5)

18 months ago.github: Block PR tests until approved
George Joseph [Thu, 5 Oct 2023 16:23:13 +0000 (10:23 -0600)] 
.github: Block PR tests until approved

(cherry picked from commit e9abf11a26ea34f5324757c9426ac52eaaf0462c)

18 months agoUpdate config.yml
Joshua C. Colp [Thu, 15 Jun 2023 12:48:13 +0000 (09:48 -0300)] 
Update config.yml

(cherry picked from commit ef7b0f4c3bf93f121bb3973f82cc9636b13f0381)

18 months agologger.h: Add ability to change the prefix on SCOPE_TRACE output
George Joseph [Thu, 5 Oct 2023 14:18:17 +0000 (08:18 -0600)] 
logger.h: Add ability to change the prefix on SCOPE_TRACE output

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.

(cherry picked from commit b52e07ee1b7f82f597fa7925fdfe69125ea762d1)

18 months agoAdd libjwt to third-party
George Joseph [Thu, 21 Sep 2023 17:12:31 +0000 (11:12 -0600)] 
Add libjwt to third-party

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
(cherry picked from commit a9d4175e1d400ace6274b55958a1a0775b288636)

18 months agores_pjsip: update qualify_timeout documentation with DNS note
Mike Bradeen [Tue, 26 Sep 2023 19:19:27 +0000 (13:19 -0600)] 
res_pjsip: update qualify_timeout documentation with DNS note

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
(cherry picked from commit 933490b7586f10fff46ae4dbdc80b38c8821da47)

18 months agochan_dahdi: Clarify scope of callgroup/pickupgroup.
Naveen Albert [Mon, 4 Sep 2023 11:58:23 +0000 (07:58 -0400)] 
chan_dahdi: Clarify scope of callgroup/pickupgroup.

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
(cherry picked from commit 945babf25c0249357dc63b1b9a0de3ede9b5cbe0)

18 months agofunc_json: Fix crashes for some types
Bastian Triller [Thu, 21 Sep 2023 06:24:37 +0000 (08:24 +0200)] 
func_json: Fix crashes for some types

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.

(cherry picked from commit e6d5b8d8cf784a554c4c04a68e2a226b14bdd890)

18 months agores_speech_aeap: add aeap error handling
Mike Bradeen [Thu, 21 Sep 2023 18:54:45 +0000 (12:54 -0600)] 
res_speech_aeap: add aeap error handling

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
(cherry picked from commit 8c934fb7eddb126bc5a3f7c4333414e7bde28d63)

18 months agoapp_voicemail: Disable ADSI if unavailable.
Naveen Albert [Wed, 27 Sep 2023 12:28:50 +0000 (08:28 -0400)] 
app_voicemail: Disable ADSI if unavailable.

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
(cherry picked from commit c04923fcdace74cf4e0af3c6906a9f6761d39cdf)

18 months agocodec_builtin: Use multiples of 20 for maximum_ms
Eduardo [Fri, 28 Jul 2023 18:01:46 +0000 (15:01 -0300)] 
codec_builtin: Use multiples of 20 for maximum_ms

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
(cherry picked from commit 11d87713ebc3d2953a441e68c0edba05c561387b)

18 months agolock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS
George Joseph [Wed, 13 Sep 2023 15:18:04 +0000 (09:18 -0600)] 
lock.c: Separate DETECT_DEADLOCKS from DEBUG_THREADS

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.

(cherry picked from commit 7e2243f9e1f1ccfe766ea27a0d31329cf016a8eb)

18 months agoasterisk.c: Use the euid's home directory to read/write cli history
George Joseph [Fri, 15 Sep 2023 17:19:18 +0000 (11:19 -0600)] 
asterisk.c: Use the euid's home directory to read/write cli history

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
(cherry picked from commit 07cf37531a5cd5d6deb70fd6d71507c0ff6d9fd3)

18 months agores_pjsip_transport_websocket: Prevent transport from being destroyed before message...
Tinet-mucw [Wed, 13 Sep 2023 09:12:12 +0000 (17:12 +0800)] 
res_pjsip_transport_websocket: Prevent transport from being destroyed before message finishes.

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
(cherry picked from commit edc674a6cadea9ab9d8eaf82c962eaa9f92a08a5)

18 months agocel: add publish user event helper
Mike Bradeen [Thu, 14 Sep 2023 17:00:19 +0000 (11:00 -0600)] 
cel: add publish user event helper

Add a wrapper function around ast_cel_publish_event that
packs event and extras into a blob before publishing

Resolves:#330
(cherry picked from commit 248b92563cdb5de0c8a96bc6e754d1e379069c27)

18 months agochan_console: Fix deadlock caused by unclean thread exit.
Naveen Albert [Sat, 9 Sep 2023 15:24:37 +0000 (11:24 -0400)] 
chan_console: Fix deadlock caused by unclean thread exit.

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
(cherry picked from commit 71215561d8d41b9b7993e66e0ab672f38e75eb48)

18 months agofile.c: Add ability to search custom dir for sounds
George Joseph [Mon, 11 Sep 2023 14:27:41 +0000 (08:27 -0600)] 
file.c: Add ability to search custom dir for sounds

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.

(cherry picked from commit 4493d2b2fc53ebf69226d7b8cbf1cb5e762c5beb)

18 months agochan_iax2: Improve authentication debugging.
Naveen Albert [Wed, 30 Aug 2023 13:12:38 +0000 (09:12 -0400)] 
chan_iax2: Improve authentication debugging.

Improves and adds some logging to make it easier
for users to debug authentication issues.

Resolves: #286
(cherry picked from commit 833ee80789c6e8abf41dc59651772ab17a69ec6e)

18 months agores_rtp_asterisk: fix wrong counter management in ioqueue objects
Vitezslav Novy [Tue, 5 Sep 2023 11:51:26 +0000 (13:51 +0200)] 
res_rtp_asterisk: fix wrong counter management in ioqueue objects

In function  rtp_ioqueue_thread_remove counter in ioqueue object is not decreased
which prevents unused ICE TURN threads from being removed.

Resolves: #301
(cherry picked from commit 5179f1af243bc1d3a3caa28baeae93ac85e15730)

18 months agomake_buildopts_h, et. al. Allow adding all cflags to buildopts.h
George Joseph [Wed, 13 Sep 2023 20:08:02 +0000 (14:08 -0600)] 
make_buildopts_h, et. al.  Allow adding all cflags to buildopts.h

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.

(cherry picked from commit 06da7b342e7d362813d3390daea8a320ec31a633)

18 months agofunc_periodic_hook: Add hangup step to avoid timeout
Mike Bradeen [Tue, 12 Sep 2023 19:24:57 +0000 (13:24 -0600)] 
func_periodic_hook: Add hangup step to avoid timeout

func_periodic_hook does not hangup after playback, relying on hangup
which keeps the channel alive longer than necessary.

Resolves: #325
(cherry picked from commit dd817c270871eddb356246b33a5653a943c6cab7)

18 months agores_stasis_recording.c: Save recording state when unmuted.
Sean Bright [Tue, 12 Sep 2023 15:26:45 +0000 (11:26 -0400)] 
res_stasis_recording.c: Save recording state when unmuted.

Fixes #322

(cherry picked from commit 3fafd7c0b7e82f22900bde7351ecf293f2c5f910)

18 months agores_speech_aeap: check for null format on response
Mike Bradeen [Fri, 8 Sep 2023 19:04:10 +0000 (13:04 -0600)] 
res_speech_aeap: check for null format on response

* Fixed issue in res_speech_aeap when unable to provide an
  input format to check against.

(cherry picked from commit b53e946b5981246a7a43314b502d31837f4fd491)

18 months agofunc_periodic_hook: Don't truncate channel name
George Joseph [Mon, 11 Sep 2023 16:52:05 +0000 (10:52 -0600)] 
func_periodic_hook: Don't truncate channel name

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
(cherry picked from commit 9e2433f73f0cd1d88a218ebce98e7a953f43d6e8)

18 months agosafe_asterisk: Change directory permissions to 755
George Joseph [Mon, 11 Sep 2023 16:19:41 +0000 (10:19 -0600)] 
safe_asterisk: Change directory permissions to 755

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
(cherry picked from commit c929146c61d8866bbab9af2f6b7def99e2d40b98)

18 months agochan_rtp: Implement RTP glue for UnicastRTP channels
Maximilian Fridrich [Tue, 5 Sep 2023 07:32:53 +0000 (09:32 +0200)] 
chan_rtp: Implement RTP glue for UnicastRTP channels

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.

(cherry picked from commit 98ffcfebda222ed858ff39d96a174031f1411a29)

18 months agoapp_queue: periodic announcement configurable start time.
Jaco Kroon [Tue, 21 Feb 2023 12:24:36 +0000 (14:24 +0200)] 
app_queue: periodic announcement configurable start time.

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>
(cherry picked from commit a4cb63e231222b9214ee5e0ab986391576f151e4)

18 months agovariables: Add additional variable dialplan functions.
Joshua C. Colp [Thu, 31 Aug 2023 10:31:20 +0000 (07:31 -0300)] 
variables: Add additional variable dialplan functions.

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.

(cherry picked from commit abe4f62554921ee4f5e13a325233d4724de06a54)

18 months agoRestore CHANGES and UPGRADE.txt to allow cherry-picks to work
George Joseph [Fri, 12 Jan 2024 18:04:57 +0000 (11:04 -0700)] 
Restore CHANGES and UPGRADE.txt to allow cherry-picks to work

19 months agoUpdate for 20.5.2 20.5.2
Asterisk Development Team [Wed, 20 Dec 2023 16:23:39 +0000 (16:23 +0000)] 
Update for 20.5.2

19 months agores_rtp_asterisk: Fix regression issues with DTLS client check
George Joseph [Fri, 15 Dec 2023 16:37:54 +0000 (09:37 -0700)] 
res_rtp_asterisk: Fix regression issues with DTLS client check

* Since ICE candidates are used for the check and pjproject is
  required to use ICE, res_rtp_asterisk was failing to compile
  when pjproject wasn't available.  The check is now wrapped
  with an #ifdef HAVE_PJPROJECT.

* The rtp->ice_active_remote_candidates container was being
  used to check the address on incoming packets but that
  container doesn't contain peer reflexive candidates discovered
  during negotiation. This was causing the check to fail
  where it shouldn't.  We now check against pjproject's
  real_ice->rcand array which will contain those candidates.

* Also fixed a bug in ast_sockaddr_from_pj_sockaddr() where
  we weren't zeroing out sin->sin_zero before returning.  This
  was causing ast_sockaddr_cmp() to always return false when
  one of the inputs was converted from a pj_sockaddr, even
  if both inputs had the same address and port.

Resolves: #500
Resolves: #503
Resolves: #505

19 months agoUpdate for 20.5.1 20.5.1
Asterisk Development Team [Thu, 14 Dec 2023 20:02:23 +0000 (20:02 +0000)] 
Update for 20.5.1

19 months agores_pjsip_header_funcs: Duplicate new header value, don't copy.
Gitea [Mon, 10 Jul 2023 15:43:06 +0000 (12:43 -0300)] 
res_pjsip_header_funcs: Duplicate new header value, don't copy.

When updating an existing header the 'update' code incorrectly
just copied the new value into the existing buffer. If the
new value exceeded the available buffer size memory outside
of the buffer would be written into, potentially causing
a crash.

This change makes it so that the 'update' now duplicates
the new header value instead of copying it into the existing
buffer.

19 months agores_pjsip: disable raw bad packet logging
Mike Bradeen [Tue, 25 Jul 2023 16:23:12 +0000 (10:23 -0600)] 
res_pjsip: disable raw bad packet logging

Add patch to split the log level for invalid packets received on the
signaling port.  The warning regarding the packet will move to level 2
so that it can still be displayed, while the raw packet will be at level
4.

19 months agores_rtp_asterisk.c: Check DTLS packets against ICE candidate list
George Joseph [Thu, 9 Nov 2023 16:14:03 +0000 (09:14 -0700)] 
res_rtp_asterisk.c: Check DTLS packets against ICE candidate list

When ICE is in use, we can prevent a possible DOS attack by allowing
DTLS protocol messages (client hello, etc) only from sources that
are in the active remote candidates list.

Resolves: GHSA-hxj9-xwr8-w8pq

19 months agomanager.c: Prevent path traversal with GetConfig.
Ben Ford [Mon, 13 Nov 2023 17:08:50 +0000 (11:08 -0600)] 
manager.c: Prevent path traversal with GetConfig.

When using AMI GetConfig, it was possible to access files outside of the
Asterisk configuration directory by using filenames with ".." and "./"
even while live_dangerously was not enabled. This change resolves the
full path and ensures we are still in the configuration directory before
attempting to access the file.

21 months agoUpdate for 20.5.0 20.5.0
Asterisk Development Team [Wed, 18 Oct 2023 17:10:25 +0000 (17:10 +0000)] 
Update for 20.5.0

23 months agoUpdate for 20.5.0-rc1 20.5.0-rc1
Asterisk Development Team [Wed, 6 Sep 2023 16:56:09 +0000 (16:56 +0000)] 
Update for 20.5.0-rc1

23 months agoari-stubs: Fix more local anchor references
George Joseph [Tue, 5 Sep 2023 19:02:19 +0000 (13:02 -0600)] 
ari-stubs: Fix more local anchor references

Also allow CreateDocs job to be run manually with default branches.

(cherry picked from commit a64718c32cddeec8b4b56394046e467616174b3d)

23 months agoari-stubs: Fix more local anchor references
George Joseph [Tue, 5 Sep 2023 19:02:19 +0000 (13:02 -0600)] 
ari-stubs: Fix more local anchor references

Also allow CreateDocs job to be run manually with default branches.

(cherry picked from commit b7dae87d1ddc92c0b408199fd8c331b253709c0c)

23 months agoari-stubs: Fix broken documentation anchors
George Joseph [Tue, 5 Sep 2023 15:51:19 +0000 (09:51 -0600)] 
ari-stubs: Fix broken documentation anchors

All of the links that reference page anchors with capital letters in
the ids (#Something) have been changed to lower case to match the
anchors that are generated by mkdocs.

(cherry picked from commit c06f938851810ad34dc764a7dba28a600d9537b4)

23 months agores_pjsip_session: Send Session Interval too small response
Bastian Triller [Mon, 28 Aug 2023 07:16:43 +0000 (09:16 +0200)] 
res_pjsip_session: Send Session Interval too small response

Handle session interval lower than endpoint's configured minimum timer
when sending first answer. Timer setting is checked during this step and
needs to handled appropriately.
Before this change, no response was sent at all. After this change a
response with 422 Session Interval too small is sent to UAC.

(cherry picked from commit 0c0b99c5a11acbab3acf773aeafaf57f56af55af)

23 months ago.github: Update workflow-application-token-action to v2
George Joseph [Thu, 31 Aug 2023 13:23:56 +0000 (07:23 -0600)] 
.github: Update workflow-application-token-action to v2

(cherry picked from commit ddbc56505ed603482e375da499c3ff09ef2949b7)

23 months agoapp_dial: Fix infinite loop when sending digits.
Naveen Albert [Mon, 28 Aug 2023 17:51:23 +0000 (13:51 -0400)] 
app_dial: Fix infinite loop when sending digits.

If the called party hangs up while digits are being
sent, -1 is returned to indicate so, but app_dial
was not checking the return value, resulting in
the hangup being lost and looping forever until
the caller manually hangs up the channel. We now
abort if digit sending fails.

ASTERISK-29428 #close

Resolves: #281
(cherry picked from commit 4542ffe5d53aa3a7417d504ce391926be0f148ae)

23 months agoapp_voicemail: Fix for loop declarations
Mike Bradeen [Tue, 29 Aug 2023 15:35:46 +0000 (09:35 -0600)] 
app_voicemail: Fix for loop declarations

Resolve for loop initial declarations added in cli changes.

Resolves: #275
(cherry picked from commit 36b749ddf8d346730685b082ad37ddcfa25eff1d)

23 months agoalembic: Fix quoting of the 100rel column
George Joseph [Mon, 28 Aug 2023 13:11:27 +0000 (07:11 -0600)] 
alembic: Fix quoting of the 100rel column

Add quoting around the ps_endpoints 100rel column in the ALTER
statements.  Although alembic doesn't complain when generating
sql statements, postgresql does (rightly so).

Resolves: #274
(cherry picked from commit cb9223cdb98807b79aa4ad1f7d6343e0184e50df)

23 months agopbx.c: Fix gcc 12 compiler warning.
Naveen Albert [Sun, 27 Aug 2023 10:32:07 +0000 (10:32 +0000)] 
pbx.c: Fix gcc 12 compiler warning.

Resolves: #277
(cherry picked from commit 5077301de6da6e914c7cb2e7cc06f67fdd697022)

23 months agoapp_audiosocket: Fixed timeout with -1 to avoid busy loop.
zhengsh [Thu, 24 Aug 2023 09:27:14 +0000 (17:27 +0800)] 
app_audiosocket: Fixed timeout with -1 to avoid busy loop.

Resolves: asterisk#234
(cherry picked from commit afe461419e9d0788148bace5c19a908b369fd37e)

23 months agodownload_externals: Fix a few version related issues
George Joseph [Fri, 18 Aug 2023 16:20:47 +0000 (10:20 -0600)] 
download_externals:  Fix a few version related issues

* Fixed issue with the script not parsing the new tag format for
  certified releases.  The format changed from certified/18.9-cert5
  to certified-18.9-cert5.

* Fixed issue where the asterisk version wasn't being considered
  when looking for cached versions.

Resolves: #263
(cherry picked from commit 715594767dbdc3a21e9656548789dfc4f356ba84)

23 months agomain/refer.c: Fix double free in refer_data_destructor + potential leak
Maximilian Fridrich [Mon, 21 Aug 2023 16:28:42 +0000 (18:28 +0200)] 
main/refer.c: Fix double free in refer_data_destructor + potential leak

Resolves: #267
(cherry picked from commit fcdffe0074a07c8b296801908c66118feeff0116)

23 months agosig_analog: Add Called Subscriber Held capability.
Naveen Albert [Wed, 9 Aug 2023 22:04:23 +0000 (22:04 +0000)] 
sig_analog: Add Called Subscriber Held capability.

This adds support for Called Subscriber Held for FXS
lines, which allows users to go on hook when receiving
a call and resume the call later from another phone on
the same line, without disconnecting the call. This is
a convenience mechanism that most real PSTN telephone
switches support.

ASTERISK-30372 #close

Resolves: #240

UserNote: Called Subscriber Held is now supported for analog
FXS channels, using the calledsubscriberheld option. This allows
a station  user to go on hook when receiving an incoming call
and resume from another phone on the same line by going on hook,
without disconnecting the call.

(cherry picked from commit 52283301e8d4e7e8bf980499bd381b53adcedbe3)

23 months agoapp_macro: Fix locking around datastore access
Matthew Fredrickson [Mon, 21 Aug 2023 16:02:57 +0000 (11:02 -0500)] 
app_macro: Fix locking around datastore access

app_macro sometimes would crash due to datastore list corruption on the
channel because of lack of locking around find and create process for
the macro datastore. This patch locks the channel lock prior to protect
against this problem.

Resolves: #265
(cherry picked from commit 9a28531362d747fd9dd987ad8328fc7917e7995e)

23 months agoRevert "app_stack: Print proper exit location for PBXless channels."
Matthew Fredrickson [Thu, 10 Aug 2023 16:51:12 +0000 (11:51 -0500)] 
Revert "app_stack: Print proper exit location for PBXless channels."

This reverts commit 617dad4cba1513dddce87b8e95a61415fb587cf1.

apps/app_stack.c: Revert buggy gosub patch

This seems to break the case when a predial macro calls a gosub.
When the gosub calls return, the Return function outputs:

app_stack.c:423 return_exec: Return without Gosub: stack is empty

This returns -1 to the calling macro, which returns to app_dial
and causes the call to hangup instead of proceeding with the macro
that invoked the gosub.

Resolves: #253
(cherry picked from commit c8f2698ec6d317cf3a97ee7053ebc4d99f313e9c)

23 months ago.github: Use generic releaser
George Joseph [Tue, 15 Aug 2023 19:04:38 +0000 (13:04 -0600)] 
.github: Use generic releaser

(cherry picked from commit d9494ca392b8c855b3d12afec11e720683f00c06)

23 months agoinstall_prereq: Fix dependency install on aarch64.
Jason D. McCormick [Fri, 28 Apr 2023 20:14:50 +0000 (16:14 -0400)] 
install_prereq: Fix dependency install on aarch64.

Fixes dependency solutions in install_prereq for Debian aarch64
platforms. install_prereq was attempting to forcibly install 32-bit
armhf packages due to the aptitude search for dependencies.

Resolves: #37
(cherry picked from commit fc57dca50dff7dfc44c6aac19d3c1655f0344b04)

23 months agores_pjsip.c: Set contact_user on incoming call local Contact header
MikeNaso [Tue, 8 Aug 2023 14:23:37 +0000 (10:23 -0400)] 
res_pjsip.c: Set contact_user on incoming call local Contact header

If the contact_user is configured on the endpoint it will now be set on the local Contact header URI for incoming calls. The contact_user has already been set on the local Contact header URI for outgoing calls.

Resolves: #226
(cherry picked from commit b286d1cca2bf70f2cdafe77b11810c7be098bfa9)

23 months agoextconfig: Allow explicit DB result set ordering to be disabled.
Sean Bright [Wed, 12 Jul 2023 16:03:59 +0000 (12:03 -0400)] 
extconfig: Allow explicit DB result set ordering to be disabled.

Added a new boolean configuration flag -
`order_multi_row_results_by_initial_column` - to both res_pgsql.conf
and res_config_odbc.conf that allows the administrator to disable the
explicit `ORDER BY` that was previously being added to all generated
SQL statements that returned multiple rows.

Fixes: #179
(cherry picked from commit 29eb4fe6203c75dd903d5128da47a51473a93297)

23 months agorest-api: Run make ari-stubs
George Joseph [Wed, 9 Aug 2023 19:10:22 +0000 (13:10 -0600)] 
rest-api: Run make ari-stubs

An earlier cherry-pick that involved rest-api somehow didn't include
a comment change in res/ari/resource_endpoints.h.  This commit
corrects that.  No changes other than the comment.

(cherry picked from commit 64b29be70214677ee0ba36ccd7bb9434e9b46487)

23 months agores_pjsip_header_funcs: Make prefix argument optional.
Naveen Albert [Wed, 9 Aug 2023 23:17:26 +0000 (23:17 +0000)] 
res_pjsip_header_funcs: Make prefix argument optional.

The documentation for PJSIP_HEADERS claims that
prefix is optional, but in the code it is actually not.
However, there is no inherent reason for this, as users
may want to retrieve all header names, not just those
beginning with a certain prefix.

This makes the prefix optional for this function,
simply fetching all header names if not specified.
As a result, the documentation is now correct.

Resolves: #230

UserNote: The prefix argument to PJSIP_HEADERS is now
optional. If not specified, all header names will be
returned.

(cherry picked from commit 8be503b66361f3b4b3bc28265ca01f5d883e00d7)

23 months agopjproject_bundled: Increase PJSIP_MAX_MODULE to 38
George Joseph [Fri, 11 Aug 2023 13:10:18 +0000 (07:10 -0600)] 
pjproject_bundled: Increase PJSIP_MAX_MODULE to 38

The default is 32 with 8 being used by pjproject itself.  Recent
commits have put us over the limit resulting in assertions in
pjproject.  Since this value is used in invites, dialogs,
transports and subscriptions as well as the global pjproject
endpoint, we don't want to increase it too much.

Resolves: #255
(cherry picked from commit caf51592e7ddca081edb39aaa2e694fb49453589)

23 months agomanager: Tolerate stasis messages with no channel snapshot.
Joshua C. Colp [Wed, 9 Aug 2023 10:57:33 +0000 (07:57 -0300)] 
manager: Tolerate stasis messages with no channel snapshot.

In some cases I have yet to determine some stasis messages may
be created without a channel snapshot. This change adds some
tolerance to this scenario, preventing a crash from occurring.

(cherry picked from commit 07d798875d35630c6925096702b4faf51b863255)

23 months agocore/ari/pjsip: Add refer mechanism
Maximilian Fridrich [Wed, 10 May 2023 13:53:33 +0000 (15:53 +0200)] 
core/ari/pjsip: Add refer mechanism

This change adds support for refers that are not session based. It
includes a refer implementation for the PJSIP technology which results
in out-of-dialog REFERs being sent to a PJSIP endpoint. These can be
triggered using the new ARI endpoint `/endpoints/refer`.

Resolves: #71

UserNote: There is a new ARI endpoint `/endpoints/refer` for referring
an endpoint to some URI or endpoint.

(cherry picked from commit 8824b845c469ea88a30cb2fa5ee5a91058cf08ae)

23 months agochan_dahdi: Allow autoreoriginating after hangup.
Naveen Albert [Fri, 4 Aug 2023 17:26:05 +0000 (17:26 +0000)] 
chan_dahdi: Allow autoreoriginating after hangup.

Currently, if an FXS channel is still off hook when
all calls on the line have hung up, the user is provided
reorder tone until going back on hook again.

In addition to not reflecting what most commercial switches
actually do, it's very common for switches to automatically
reoriginate for the user so that dial tone is provided without
the user having to depress and release the hookswitch manually.
This can increase convenience for users.

This behavior is now supported for kewlstart FXS channels.
It's supported only for kewlstart (FXOKS) mainly because the
behavior doesn't make any sense for ground start channels,
and loop start signalling doesn't provide the necessary DAHDI
event that makes this easy to implement. Likely almost everyone
is using FXOKS over FXOLS anyways since FXOLS is pretty useless
these days.

ASTERISK-30357 #close

Resolves: #224

UserNote: The autoreoriginate setting now allows for kewlstart FXS
channels to automatically reoriginate and provide dial tone to the
user again after all calls on the line have cleared. This saves users
from having to manually hang up and pick up the receiver again before
making another call.

(cherry picked from commit c16cc93a4b9a79a7586b63baf58edad1388c2915)

23 months agoaudiohook: Unlock channel in mute if no audiohooks present.
Joshua C. Colp [Wed, 9 Aug 2023 08:39:17 +0000 (05:39 -0300)] 
audiohook: Unlock channel in mute if no audiohooks present.

In the case where mute was called on a channel that had no
audiohooks the code was not unlocking the channel, resulting
in a deadlock.

Resolves: #233
(cherry picked from commit 5ebe1b61bd8f8a5aa2bda96542b070c1346e3d12)

23 months agosig_analog: Allow three-way flash to time out to silence.
Naveen Albert [Mon, 10 Jul 2023 18:53:43 +0000 (18:53 +0000)] 
sig_analog: Allow three-way flash to time out to silence.

sig_analog allows users to flash and use the three-way dial
tone as a primitive hold function, simply by never timing
it out.

Some systems allow this dial tone to time out to silence,
so the user is not annoyed by a persistent dial tone.
This option allows the dial tone to time out normally to
silence.

ASTERISK-30004 #close
Resolves: #205

UserNote: The threewaysilenthold option now allows the three-way
dial tone to time out to silence, rather than continuing forever.

(cherry picked from commit 5516763e57d00e4c50be61ac0029fcd903bd10ee)

23 months agores_prometheus: Do not generate broken metrics
Holger Hans Peter Freyther [Fri, 7 Apr 2023 09:44:44 +0000 (17:44 +0800)] 
res_prometheus: Do not generate broken metrics

In 8d6fdf9c3adede201f0ef026dab201b3a37b26b6 invisible bridges were
skipped but that lead to producing metrics with no name and no help.

Keep track of the number of metrics configured and then only emit these.
Add a basic testcase that verifies that there is no '(NULL)' in the
output.

ASTERISK-30474

(cherry picked from commit a10de8bc720b537a8ae7fa713b660aef7b0974d2)

23 months agores_pjsip: Enable TLS v1.3 if present.
Sean Bright [Wed, 2 Aug 2023 13:56:49 +0000 (09:56 -0400)] 
res_pjsip: Enable TLS v1.3 if present.

Fixes #221

UserNote: res_pjsip now allows TLS v1.3 to be enabled if supported by
the underlying PJSIP library. The bundled version of PJSIP supports
TLS v1.3.

(cherry picked from commit b5762cd54e8c169646f3c52f522512f4bed53ac1)

23 months agofunc_cut: Add example to documentation.
phoneben [Tue, 18 Jul 2023 22:05:15 +0000 (01:05 +0300)] 
func_cut: Add example to documentation.

This adds an example to the XML documentation clarifying usage
of the CUT function to address a common misusage.

(cherry picked from commit c0b8adfe4dc05c23cd939811790911b6c183c2f2)

23 months agoextensions.conf.sample: Remove reference to missing context.
Sean Bright [Sun, 16 Jul 2023 15:49:53 +0000 (11:49 -0400)] 
extensions.conf.sample: Remove reference to missing context.

c3ff4648 removed the [iaxtel700] context but neglected to remove
references to it.

This commit addresses that and also removes iaxtel and freeworlddialup
references from other config files.

(cherry picked from commit df87ada8ac457b37d7d30c8159aa886adcc7bb7c)

23 months agofunc_export: Use correct function argument as variable name.
Sean Bright [Wed, 12 Jul 2023 18:17:04 +0000 (14:17 -0400)] 
func_export: Use correct function argument as variable name.

Fixes #208

(cherry picked from commit b8aee4a2c63cee4ea35828c83ec412656d9b42fe)

23 months agoapp_queue: Add support for applying caller priority change immediately.
Joshua C. Colp [Fri, 7 Jul 2023 14:29:07 +0000 (11:29 -0300)] 
app_queue: Add support for applying caller priority change immediately.

The app_queue module provides both an AMI action and a CLI command
to change the priority of a caller in a queue. Up to now this change
of priority has only been reflected to new callers into the queue.

This change adds an "immediate" option to both the AMI action and
CLI command which immediately applies the priority change respective
to the other callers already in the queue. This can allow, for example,
a caller to be placed at the head of the queue immediately if their
priority is sufficient.

Resolves: #202

UserNote: The 'queue priority caller' CLI command and
'QueueChangePriorityCaller' AMI action now have an 'immediate'
argument which allows the caller priority change to be reflected
immediately, causing the position of a caller to move within the
queue depending on the priorities of the other callers.

(cherry picked from commit 879d4ff56a738d7b1c9bcd86fbc01f92296c4fcb)

23 months ago.github: Fix cherry-pick reminder issues
George Joseph [Mon, 17 Jul 2023 15:23:08 +0000 (09:23 -0600)] 
.github: Fix cherry-pick reminder issues

(cherry picked from commit 12f231c717c795993674e2ace1acd23a7ffc83b5)

23 months agochan_iax2.c: Avoid crash with IAX2 switch support.
Sean Bright [Fri, 7 Jul 2023 19:57:39 +0000 (15:57 -0400)] 
chan_iax2.c: Avoid crash with IAX2 switch support.

A change made in 82cebaa0 did not properly handle the case when a
channel was not provided, triggering a crash. ast_check_hangup(...)
does not protect against NULL pointers.

Fixes #180

(cherry picked from commit d26a00ef3484f7fa602044e73e31bcefc8ca1917)

23 months agores_geolocation: Ensure required 'location_info' is present.
Sean Bright [Fri, 7 Jul 2023 14:11:44 +0000 (10:11 -0400)] 
res_geolocation: Ensure required 'location_info' is present.

Fixes #189

(cherry picked from commit e120694711933f32cf5b64f7ee41f022dc7bca75)

23 months agoAdds manager actions to allow move/remove/forward individual messages
Mike Bradeen [Thu, 29 Jun 2023 18:20:53 +0000 (12:20 -0600)] 
Adds manager actions to allow move/remove/forward individual messages
in a particular mailbox folder. The forward command can be used
to copy a message within a mailbox or to another mailbox. Also adds
a VoicemailBoxSummarry, required to retrieve message ID's.

Resolves: #181

UserNote: The following manager actions have been added

VoicemailBoxSummary - Generate message list for a given mailbox

VoicemailRemove - Remove a message from a mailbox folder

VoicemailMove - Move a message from one folder to another within a mailbox

VoicemailForward - Copy a message from one folder in one mailbox
to another folder in another or the same mailbox.

(cherry picked from commit b8db3dda7eb99253544f45a13ebaf016e4862ced)

23 months agoapp_voicemail: add CLI commands for message manipulation
Mike Bradeen [Tue, 20 Jun 2023 16:32:14 +0000 (10:32 -0600)] 
app_voicemail: add CLI commands for message manipulation

Adds CLI commands to allow move/remove/forward individual messages
from a particular mailbox folder. The forward command can be used
to copy a message within a mailbox or to another mailbox. Also adds
a show mailbox, required to retrieve message ID's.

Resolves: #170

UserNote: The following CLI commands have been added to app_voicemail

voicemail show mailbox <mailbox> <context>
Show contents of mailbox <mailbox>@<context>

voicemail remove <mailbox> <context> <from_folder> <messageid>
Remove message <messageid> from <from_folder> in mailbox <mailbox>@<context>

voicemail move <mailbox> <context> <from_folder> <messageid> <to_folder>
Move message <messageid> in mailbox <mailbox>&<context> from <from_folder> to <to_folder>

voicemail forward <from_mailbox> <from_context> <from_folder> <messageid> <to_mailbox> <to_context> <to_folder>
Forward message <messageid> in mailbox <mailbox>@<context> <from_folder> to
mailbox <mailbox>@<context> <to_folder>

(cherry picked from commit 9b5c29d9435155e2c1a1a21158c3b38eb19ee52b)