]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
2 years agoapply_patches: Use globbing instead of file/sort.
Sean Bright [Thu, 6 Jul 2023 17:51:32 +0000 (13:51 -0400)] 
apply_patches: Use globbing instead of file/sort.

This accomplishes the same thing as a `find ... | sort` but with the
added benefit of clarity and avoiding a call to a subshell.

Additionally drop the -s option from call to patch as it is not POSIX.

2 years agoapply_patches: Sort patch list before applying
George Joseph [Thu, 6 Jul 2023 12:37:50 +0000 (06:37 -0600)] 
apply_patches: Sort patch list before applying

The apply_patches script wasn't sorting the list of patches in
the "patches" directory before applying them. This left the list
in an indeterminate order. In most cases, the list is actually
sorted but rarely, they can be out of order and cause dependent
patches to fail to apply.

We now sort the list but the "sort" program wasn't in the
configure scripts so we needed to add that and regenerate
the scripts as well.

Resolves: #193

2 years agopjsip: Upgrade bundled version to pjproject 2.13.1
Stanislav Abramenkov [Wed, 5 Jul 2023 08:08:35 +0000 (11:08 +0300)] 
pjsip: Upgrade bundled version to pjproject 2.13.1

2 years ago.github: Updates for AsteriskReleaser
George Joseph [Fri, 30 Jun 2023 13:01:36 +0000 (07:01 -0600)] 
.github: Updates for AsteriskReleaser

2 years agoapp_voicemail: fix imap compilation errors
Mike Bradeen [Mon, 26 Jun 2023 15:40:03 +0000 (09:40 -0600)] 
app_voicemail: fix imap compilation errors

Fixes two compilation errors in app_voicemail_imap, one due to an unsed
variable and one due to a new variable added in the incorrect location
in _163.

Resolves: #174

2 years agores_musiconhold: avoid moh state access on unlocked chan
Mike Bradeen [Wed, 31 May 2023 16:37:53 +0000 (10:37 -0600)] 
res_musiconhold: avoid moh state access on unlocked chan

Move channel unlock to after moh state access to avoid
potential unlocked access to state.

Resolves: #133

2 years agoutils: add lock timestamps for DEBUG_THREADS
Mike Bradeen [Tue, 23 May 2023 18:33:55 +0000 (12:33 -0600)] 
utils: add lock timestamps for DEBUG_THREADS

Adds last locked and unlocked timestamps as well as a
counter for the number of times the lock has been
attempted (vs locked/unlocked) to debug output printed
using the DEBUG_THREADS option.

Resolves: #110

2 years ago.github: Back out triggering PROpenedOrUpdated by label
George Joseph [Thu, 29 Jun 2023 15:06:41 +0000 (09:06 -0600)] 
.github: Back out triggering PROpenedOrUpdated by label

2 years ago.github: Move publish docs to new file CreateDocs.yml
George Joseph [Tue, 27 Jun 2023 14:07:53 +0000 (08:07 -0600)] 
.github: Move publish docs to new file CreateDocs.yml

2 years agorest-api: Updates for new documentation site
George Joseph [Mon, 26 Jun 2023 12:55:49 +0000 (06:55 -0600)] 
rest-api: Updates for new documentation site

The new documentation site uses traditional markdown instead
of the Confluence flavored version.  This required changes in
the mustache templates and the python that generates the files.

2 years agorest-api: Ran make ari stubs to fix resource_endpoints inconsistency
George Joseph [Tue, 27 Jun 2023 13:18:00 +0000 (07:18 -0600)] 
rest-api: Ran make ari stubs to fix resource_endpoints inconsistency

2 years ago.github: Remove result check from PROpenUpdateGateTests
George Joseph [Tue, 27 Jun 2023 11:17:45 +0000 (05:17 -0600)] 
.github: Remove result check from PROpenUpdateGateTests

2 years ago.github: Fix use of 'contains'
George Joseph [Mon, 26 Jun 2023 14:45:16 +0000 (08:45 -0600)] 
.github: Fix use of 'contains'

2 years ago.github: Add recheck label test to additional jobs
George Joseph [Mon, 26 Jun 2023 13:46:03 +0000 (07:46 -0600)] 
.github: Add recheck label test to additional jobs

2 years ago.github: Fix recheck label typos
George Joseph [Mon, 26 Jun 2023 13:21:53 +0000 (07:21 -0600)] 
.github: Fix recheck label typos

2 years ago.github: Fix recheck label manipulation
George Joseph [Mon, 26 Jun 2023 13:11:20 +0000 (07:11 -0600)] 
.github: Fix recheck label manipulation

2 years ago.github: Allow PR submit checks to be re-run by label
George Joseph [Mon, 26 Jun 2023 13:06:37 +0000 (07:06 -0600)] 
.github: Allow PR submit checks to be re-run by label

2 years agoapp_voicemail_imap: Fix message count when IMAP server is unavailable
Olaf Titz [Thu, 15 Jun 2023 15:36:26 +0000 (17:36 +0200)] 
app_voicemail_imap: Fix message count when IMAP server is unavailable

Some callers of __messagecount did not correctly handle error return,
instead returning a -1 message count.
This caused a notification with "Messages-Waiting: yes" and
"Voice-Message: -1/0 (0/0)" if the IMAP server was unavailable.

Fixes: #64
2 years agores_pjsip_rfc3326: Prefer Q.850 cause code over SIP.
Sean Bright [Mon, 12 Jun 2023 15:31:33 +0000 (11:31 -0400)] 
res_pjsip_rfc3326: Prefer Q.850 cause code over SIP.

Resolves: #116

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

2 years agores_pjsip_session: Added new function calls to avoid ABI issues.
Ben Ford [Mon, 5 Jun 2023 19:13:16 +0000 (14:13 -0500)] 
res_pjsip_session: Added new function calls to avoid ABI issues.

Added two new functions (ast_sip_session_get_dialog and
ast_sip_session_get_pjsip_inv_state) that retrieve the dialog and the
pjsip_inv_state respectively from the pjsip_inv_session on the
ast_sip_session struct. This is due to pjproject adding a new field to
the pjsip_inv_session struct that caused crashes when trying to access
fields that were no longer where they were expected to be if a module
was compiled against a different version of pjproject.

Resolves: #145

2 years agoapp_queue: Add force_longest_waiting_caller option.
Nathan Bruning [Tue, 24 Jan 2023 13:50:39 +0000 (14:50 +0100)] 
app_queue: Add force_longest_waiting_caller option.

This adds an option 'force_longest_waiting_caller' which changes the
global behavior of the queue engine to prevent queue callers from
'jumping ahead' when an agent is in multiple queues.

Resolves: #108

Also closes old asterisk issues:
- ASTERISK-17732
- ASTERISK-17570

Change-Id: I0f84e27903fefbe2018d0afa2d67b23aa0b321ce

2 years agopjsip_transport_events.c: Use %zu printf specifier for size_t.
Sean Bright [Mon, 5 Jun 2023 14:50:13 +0000 (10:50 -0400)] 
pjsip_transport_events.c: Use %zu printf specifier for size_t.

Partially resolves #143.

2 years agores_crypto.c: Gracefully handle potential key filename truncation.
Sean Bright [Mon, 5 Jun 2023 14:49:11 +0000 (10:49 -0400)] 
res_crypto.c: Gracefully handle potential key filename truncation.

Partially resolves #143.

2 years agoconfigure: Remove obsolete and deprecated constructs.
Sean Bright [Thu, 1 Jun 2023 18:53:43 +0000 (18:53 +0000)] 
configure: Remove obsolete and deprecated constructs.

These were uncovered when trying to run `bootstrap.sh` with Autoconf
2.71:

* AC_CONFIG_HEADER() is deprecated in favor of AC_CONFIG_HEADERS().
* AC_HEADER_TIME is obsolete.
* $as_echo is deprecated in favor of AS_ECHO() which requires an update
  to ax_pthread.m4.

Note that the generated artifacts in this commit are from Autoconf 2.69.

Resolves #139

2 years agores_fax_spandsp.c: Clean up a spaces/tabs issue
zhou_jiajian [Fri, 26 May 2023 01:53:19 +0000 (09:53 +0800)] 
res_fax_spandsp.c: Clean up a spaces/tabs issue

2 years agoast-db-manage: Synchronize revisions between comments and code.
Sean Bright [Tue, 6 Jun 2023 13:42:58 +0000 (09:42 -0400)] 
ast-db-manage: Synchronize revisions between comments and code.

In a handful of migrations, the comment header that indicates the
current and previous revisions has drifted from the identifiers
revision and down_revision variables. This updates the comment headers
to match the code.

2 years agotest_statis_endpoints: Fix channel_messages test again
George Joseph [Mon, 12 Jun 2023 14:34:16 +0000 (08:34 -0600)] 
test_statis_endpoints:  Fix channel_messages test again

2 years agores_crypto.c: Avoid using the non-portable ALLPERMS macro.
Sean Bright [Mon, 5 Jun 2023 22:17:47 +0000 (18:17 -0400)] 
res_crypto.c: Avoid using the non-portable ALLPERMS macro.

ALLPERMS is not POSIX and it's trivial enough to not jump through
autoconf hoops to check for it.

Fixes #149.

2 years agotcptls: when disabling a server port, we should set the accept_fd to -1.
Jaco Kroon [Fri, 2 Jun 2023 07:11:22 +0000 (09:11 +0200)] 
tcptls: when disabling a server port, we should set the accept_fd to -1.

If we don't set this to -1 if the structure can be potentially re-used
later then it's possible that we'll issue a close() on an unrelated file
descriptor, breaking asterisk in other interesting ways.

I believe this to be an unlikely scenario, but it costs nothing to be
safe.

Signed-off-by: Jaco Kroon <jaco@uls.co.za>
2 years agoAMI: Add parking position parameter to Park action
Jiajian Zhou [Fri, 19 May 2023 02:48:11 +0000 (10:48 +0800)] 
AMI: Add parking position parameter to Park action

Add a parking space extension parameter (ParkingSpace) to the Park action.
Park action will attempt to park the call to that extension.
If the extension is already in use, then execution will continue at the next priority.

UserNote: New ParkingSpace parameter has been added to AMI action Park.

2 years agotest_stasis_endpoints.c: Make channel_messages more stable
George Joseph [Fri, 9 Jun 2023 16:41:13 +0000 (10:41 -0600)] 
test_stasis_endpoints.c: Make channel_messages more stable

The channel_messages test was assuming that stasis would return
messages in a specific order.  This is an incorrect assumption as
message ordering was never guaranteed.  This was causing the test
to fail occasionally.  We now test all the messages for the
required message types instead of testing one by one.

Resolves: #158

2 years agobuild: Fix a few gcc 13 issues
George Joseph [Fri, 9 Jun 2023 14:41:32 +0000 (08:41 -0600)] 
build: Fix a few gcc 13 issues

* gcc 13 is now catching when a function is declared as returning
  an enum but defined as returning an int or vice versa.  Fixed
  a few in app.h, loader.c, stasis_message.c.

* gcc 13 is also now (incorrectly) complaining of dangling pointers
  when assigning a pointer to a local char array to a char *. Had
  to change that to an ast_alloca.

Resolves: #155

2 years ago.github: Rework for merge approval
George Joseph [Tue, 6 Jun 2023 12:08:34 +0000 (06:08 -0600)] 
.github: Rework for merge approval

2 years agoast-db-manage: Fix alembic branching error caused by #122.
Sean Bright [Mon, 5 Jun 2023 20:13:55 +0000 (16:13 -0400)] 
ast-db-manage: Fix alembic branching error caused by #122.

Fixes #147.

2 years agosounds: Update download URL to use HTTPS.
Sean Bright [Thu, 1 Jun 2023 15:18:36 +0000 (11:18 -0400)] 
sounds: Update download URL to use HTTPS.

Related to #136

2 years agoconfigure: Makefile downloader enable follow redirects.
Miguel Angel Nubla [Thu, 1 Jun 2023 00:09:39 +0000 (02:09 +0200)] 
configure: Makefile downloader enable follow redirects.

If curl is used for building, any download such as a sounds package
will fail to follow HTTP redirects and will download wrong data.

Resolves: #136

2 years agores_musiconhold: Add option to loop last file.
Naveen Albert [Thu, 25 May 2023 23:58:41 +0000 (23:58 +0000)] 
res_musiconhold: Add option to loop last file.

Adds the loop_last option to res_musiconhold,
which allows the last audio file in the directory
to be looped perpetually once reached, rather than
circling back to the beginning again.

Resolves: #122
ASTERISK-30462

UserNote: The loop_last option in musiconhold.conf now
allows the last file in the directory to be looped once reached.

2 years agochan_dahdi: Fix Caller ID presentation for FXO ports.
Naveen Albert [Thu, 25 May 2023 23:49:35 +0000 (23:49 +0000)] 
chan_dahdi: Fix Caller ID presentation for FXO ports.

Currently, the presentation for incoming channels is
always available, because it is never actually set,
meaning the channel presentation can be nonsensical.
If the presentation from the incoming Caller ID spill
is private or unavailable, we now update the channel
presentation to reflect this.

Resolves: #120
ASTERISK-30333
ASTERISK-21741

2 years agoAMI: Add CoreShowChannelMap action.
Ben Ford [Thu, 18 May 2023 21:00:16 +0000 (16:00 -0500)] 
AMI: Add CoreShowChannelMap action.

Adds a new AMI action (CoreShowChannelMap) that takes in a channel name
and provides a list of all channels that are connected to that channel,
following local channel connections as well.

Resolves: #104

UserNote: New AMI action CoreShowChannelMap has been added.

2 years agosig_analog: Add fuller Caller ID support.
Naveen Albert [Thu, 18 May 2023 16:29:35 +0000 (16:29 +0000)] 
sig_analog: Add fuller Caller ID support.

A previous change, ASTERISK_29991, made it possible
to send additional Caller ID parameters that were
not previously supported.

This change adds support for analog DAHDI channels
to now be able to receive these parameters for
on-hook Caller ID, in order to enhance the usability
of CPE that support these parameters.

Resolves: #94
ASTERISK-30331

UserNote: Additional Caller ID properties are now supported on
incoming calls to FXS stations, namely the
redirecting reason and call qualifier.

2 years agores_stasis.c: Add new type 'sdp_label' for bridge creation.
Joe Searle [Thu, 25 May 2023 09:58:45 +0000 (10:58 +0100)] 
res_stasis.c: Add new type 'sdp_label' for bridge creation.

Add new type 'sdp_label' when creating a bridge using the ARI. This will
add labels to the SDP for each stream, the label is set to the
corresponding channel id.

Resolves: #91

UserNote: When creating a bridge using the ARI the 'type' argument now
accepts a new value 'sdp_label' which will configure the bridge to add
labels for each stream in the SDP with the corresponding channel id.

2 years agoapp_followme: fix issue with enable_callee_prompt=no (#88)
alex2grad [Mon, 5 Jun 2023 18:23:03 +0000 (14:23 -0400)] 
app_followme: fix issue with enable_callee_prompt=no (#88)

* app_followme: fix issue with enable_callee_prompt=no

If the FollowMe option 'enable_callee_prompt' is set to 'no' then Asterisk
incorrectly sets a winner channel to the channel from which any control frame was read.

This fix sets the winner channel only to the answered channel.

Resolves: #87

ASTERISK-30326

2 years agoapp_queue: Preserve reason for realtime queues
Niklas Larsson [Fri, 5 May 2023 13:30:13 +0000 (15:30 +0200)] 
app_queue: Preserve reason for realtime queues

When Asterisk is restarted it does not preserve paused reason for
members of realtime queues. This was fixed for non-realtime queues in
ASTERISK_25732

Resolves: #66

UpgradeNote: Add a new column to the queue_member table:
reason_paused VARCHAR(80) so the reason can be preserved.

UserNote: Make paused reason in realtime queues persist an
Asterisk restart. This was fixed for non-realtime
queues in ASTERISK_25732.

2 years ago.github: Fix issues with cherry-pick-reminder
George Joseph [Mon, 5 Jun 2023 16:37:41 +0000 (10:37 -0600)] 
.github: Fix issues with cherry-pick-reminder

2 years agoindications: logging changes
Mike Bradeen [Tue, 16 May 2023 18:43:37 +0000 (12:43 -0600)] 
indications: logging changes

Increase verbosity to indicate failure due to missing country
and to specify default on CLI dump

Resolves: #89

2 years ago.github Ignore error when adding reviewrs to PR
George Joseph [Mon, 5 Jun 2023 13:16:17 +0000 (07:16 -0600)] 
.github Ignore error when adding reviewrs to PR

2 years ago.github: Update field descriptions for AsteriskReleaser
George Joseph [Fri, 26 May 2023 14:51:41 +0000 (08:51 -0600)] 
.github: Update field descriptions for AsteriskReleaser

2 years agocallerid: Allow specifying timezone for date/time.
Naveen Albert [Thu, 18 May 2023 17:31:14 +0000 (17:31 +0000)] 
callerid: Allow specifying timezone for date/time.

The Caller ID generation routine currently is hardcoded
to always use the system time zone. This makes it possible
to optionally specify any TZ-format time zone.

Resolves: #98
ASTERISK-30330

2 years agologrotate: Fix duplicate log entries.
Naveen Albert [Thu, 18 May 2023 16:55:45 +0000 (16:55 +0000)] 
logrotate: Fix duplicate log entries.

The Asterisk logrotate script contains explicit
references to files with the .log extension,
which are also included when *log is expanded.
This causes issues with newer versions of logrotate.
This fixes this by ensuring that a log file cannot
be referenced multiple times after expansion occurs.

Resolves: #96
ASTERISK-30442
Reported by: EN Barnett
Tested by: EN Barnett

2 years agoapp_sla: Migrate SLA applications out of app_meetme.
Naveen Albert [Tue, 2 May 2023 14:15:02 +0000 (14:15 +0000)] 
app_sla: Migrate SLA applications out of app_meetme.

This removes the dependency of the SLAStation and SLATrunk
applications on app_meetme, in anticipation of the imminent
removal of the deprecated app_meetme module.

The user interface for the SLA applications is exactly the
same, and in theory, users should not notice a difference.
However, the SLA applications now use ConfBridge under the
hood, rather than MeetMe, and they are now contained within
their own module.

Resolves: #50
ASTERISK-30309

UpgradeNote: The SLAStation and SLATrunk applications have been moved
from app_meetme to app_sla. If you are using these applications and have
autoload=no, you will need to explicitly load this module in modules.conf.

2 years agochan_pjsip: Allow topology/session refreshes in early media state (#74)
Maximilian Fridrich [Thu, 25 May 2023 15:14:47 +0000 (17:14 +0200)] 
chan_pjsip: Allow topology/session refreshes in early media state (#74)

With this change, session modifications in the early media state are
possible if the SDP was sent reliably and confirmed by a PRACK. For
details, see RFC 6337, escpecially section 3.2.

Resolves: #73

2 years agochan_dahdi: Fix broken hidecallerid setting. (#101)
InterLinked1 [Thu, 25 May 2023 14:48:54 +0000 (10:48 -0400)] 
chan_dahdi: Fix broken hidecallerid setting. (#101)

The hidecallerid setting in chan_dahdi.conf currently
is broken for a couple reasons.

First, the actual code in sig_analog to "allow" or "block"
Caller ID depending on this setting improperly used
ast_set_callerid instead of updating the presentation.
This issue was mostly fixed in ASTERISK_29991, and that
fix is carried forward to this code as well.

Secondly, the hidecallerid setting is set on the DAHDI
pvt but not carried forward to the analog pvt properly.
This is because the chan_dahdi config loading code improperly
set permhidecallerid to permhidecallerid from the config file,
even though hidecallerid is what is actually set from the config
file. (This is done correctly for call waiting, a few lines above.)
This is fixed to read the proper value.

Thirdly, in sig_analog, hidecallerid is set to permhidecallerid
only on hangup. This can lead to potential security vulnerabilities
as an allowed Caller ID from an initial call can "leak" into subsequent
calls if no hangup occurs between them. This is fixed by setting
hidecallerid to permcallerid when calls begin, rather than when they end.
This also means we don't need to also set hidecallerid in chan_dahdi.c
when copying from the config, as we would have to otherwise.

Fourthly, sig_analog currently only allows dialing *67 or *82 if
that would actually toggle the presentation. A comment is added
clarifying that this behavior is okay.

Finally, a couple log messages are updated to be more accurate.

Resolves: #100
ASTERISK-30349 #close

2 years ago.github: Change title of AsteriskReleaser job
George Joseph [Tue, 23 May 2023 14:04:42 +0000 (08:04 -0600)] 
.github: Change title of AsteriskReleaser job

2 years agoasterisk.c: Fix option warning for remote console. (#103)
InterLinked1 [Mon, 22 May 2023 18:59:56 +0000 (14:59 -0400)] 
asterisk.c: Fix option warning for remote console. (#103)

Commit 09e989f972e2583df4e9bf585c246c37322d8d2f
categorized the T option as not being compatible
with remote consoles, but they do affect verbose
messages with remote console. This fixes this.

Resolves: #102

2 years ago.github: Don't add cherry-pick reminder if it's already present
George Joseph [Mon, 22 May 2023 18:54:42 +0000 (12:54 -0600)] 
.github: Don't add cherry-pick reminder if it's already present

2 years agores_pjsip_pubsub: Add new pubsub module capabilities. (#82)
InterLinked1 [Thu, 18 May 2023 17:41:38 +0000 (13:41 -0400)] 
res_pjsip_pubsub: Add new pubsub module capabilities. (#82)

The existing res_pjsip_pubsub APIs are somewhat limited in
what they can do. This adds a few API extensions that make
it possible for PJSIP pubsub modules to implement richer
features than is currently possible.

* Allow pubsub modules to get a handle to pjsip_rx_data on subscription
* Allow pubsub modules to run a callback when a subscription is renewed
* Allow pubsub modules to run a callback for outgoing NOTIFYs, with
  a handle to the tdata, so that modules can append their own headers
  to the NOTIFYs

This change does not add any features directly, but makes possible
several new features that will be added in future changes.

Resolves: #81
ASTERISK-30485 #close

Master-Only: True

2 years ago.github: Fix quoting in PROpenedOrUpdated
George Joseph [Tue, 16 May 2023 22:11:08 +0000 (16:11 -0600)] 
.github: Fix quoting in PROpenedOrUpdated

2 years ago.github: Add cherry-pick reminder to new PRs
George Joseph [Mon, 15 May 2023 15:32:15 +0000 (09:32 -0600)] 
.github: Add cherry-pick reminder to new PRs

2 years agoconfigure: fix test code to match gethostbyname_r prototype. (#75)
Jaco Kroon [Mon, 15 May 2023 12:50:36 +0000 (14:50 +0200)] 
configure: fix test code to match gethostbyname_r prototype. (#75)

This enables the test to work with CC=clang.

Without this the test for 6 args would fail with:

utils.c:99:12: error: static declaration of 'gethostbyname_r' follows non-static declaration
static int gethostbyname_r (const char *name, struct hostent *ret, char *buf,
           ^
/usr/include/netdb.h:177:12: note: previous declaration is here
extern int gethostbyname_r (const char *__restrict __name,
           ^

Fixing the expected return type to int sorts this out.

Signed-off-by: Jaco Kroon <jaco@uls.co.za>
2 years agores_pjsip_pubsub.c: Use pjsip version for pending NOTIFY check. (#47)
Sean Bright [Thu, 11 May 2023 20:23:49 +0000 (16:23 -0400)] 
res_pjsip_pubsub.c: Use pjsip version for pending NOTIFY check. (#47)

The functionality we are interested in is present only in pjsip 2.13
and newer.

Resolves: #45

2 years agores_sorcery_memory_cache.c: Fix memory leak (#56)
zhengsh [Thu, 11 May 2023 20:21:57 +0000 (04:21 +0800)] 
res_sorcery_memory_cache.c: Fix memory leak (#56)

Replace the original call to ast_strdup with a call to ast_strdupa to fix the leak issue.

Resolves: #55
ASTERISK-30429

2 years agoutils.h: Deprecate `ast_gethostbyname()`. (#79)
Sean Bright [Thu, 11 May 2023 19:05:49 +0000 (15:05 -0400)] 
utils.h: Deprecate `ast_gethostbyname()`. (#79)

Deprecate `ast_gethostbyname()` in favor of `ast_sockaddr_resolve()` and
`ast_sockaddr_resolve_first_af()`. `ast_gethostbyname()` has not been
used by any in-tree code since 2021.

This function will be removed entirely in Asterisk 23.

Resolves: #78

UpgradeNote: ast_gethostbyname() has been deprecated and will be removed
in Asterisk 23. New code should use `ast_sockaddr_resolve()` and
`ast_sockaddr_resolve_first_af()`.

2 years agoxml.c: Process XML Inclusions recursively. (#69)
Sean Bright [Thu, 11 May 2023 19:03:33 +0000 (15:03 -0400)] 
xml.c: Process XML Inclusions recursively. (#69)

If processing an XInclude results in new <xi:include> elements, we
need to run XInclude processing again. This continues until no
replacement occurs or an error is encountered.

There is a separate issue with dynamic strings (ast_str) that will be
addressed separately.

Resolves: #65

2 years ago.github: Tweak improvement issue type language.
Joshua C. Colp [Tue, 9 May 2023 13:47:05 +0000 (10:47 -0300)] 
.github: Tweak improvement issue type language.

2 years ago.github: Tweak new feature language, and move feature requests elsewhere.
Gitea [Tue, 9 May 2023 13:42:45 +0000 (10:42 -0300)] 
.github: Tweak new feature language, and move feature requests elsewhere.

2 years ago.github: Fix staleness check to only run on certain labels.
Joshua C. Colp [Tue, 9 May 2023 09:17:17 +0000 (06:17 -0300)] 
.github: Fix staleness check to only run on certain labels.

2 years ago.github: Add AsteriskReleaser
George Joseph [Fri, 5 May 2023 18:30:08 +0000 (12:30 -0600)] 
.github: Add AsteriskReleaser

2 years agochan_pjsip: also return all codecs on empty re-INVITE for late offers (#59)
Henning Westerholt [Thu, 4 May 2023 14:55:37 +0000 (16:55 +0200)] 
chan_pjsip: also return all codecs on empty re-INVITE for late offers (#59)

We should also return all codecs on an re-INVITE without SDP for a
call that used late offer (e.g. no SDP in the initial INVITE, SDP
in the ACK). Bugfix for feature introduced in ASTERISK-30193
(https://issues.asterisk.org/jira/browse/ASTERISK-30193)

Migration from previous gerrit change that was not merged.

2 years agocel: add local optimization begin event (#54)
Mike Bradeen [Thu, 4 May 2023 14:51:55 +0000 (08:51 -0600)] 
cel: add local optimization begin event (#54)

The current AST_CEL_LOCAL_OPTIMIZE event is and has been
triggered on a local optimization end to serve as a flag
indicating the event occurred.  This change adds a second
AST_CEL_LOCAL_OPTIMIZE_BEGIN event for further detail.

Resolves: #52

UpgradeNote: The existing AST_CEL_LOCAL_OPTIMIZE can continue
to be used as-is and the AST_CEL_LOCAL_OPTIMIZE_BEGIN event
can be ignored if desired.

UserNote: The new AST_CEL_LOCAL_OPTIMIZE_BEGIN can be used
by itself or in conert with the existing
AST_CEL_LOCAL_OPTIMIZE to book-end local channel optimizaion.

2 years agocore: Cleanup gerrit and JIRA references. (#58)
Sean Bright [Wed, 3 May 2023 15:37:57 +0000 (11:37 -0400)] 
core: Cleanup gerrit and JIRA references. (#58)

* Remove .gitreview and switch to pulling the main asterisk branch
  version from configure.ac instead.

* Replace references to JIRA with GitHub.

* Other minor cleanup found along the way.

Resolves: #39

2 years ago.github: Fix CherryPickTest to only run when it should
George Joseph [Wed, 3 May 2023 15:27:57 +0000 (09:27 -0600)] 
.github: Fix CherryPickTest to only run when it should

Fixed CherryPickTest so it triggers only on the
"cherry-pick-test" label instead of all labels.

2 years ago.github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS
George Joseph [Tue, 2 May 2023 20:09:47 +0000 (14:09 -0600)] 
.github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS

2 years ago.github: Remove separate set labels step from new PR
George Joseph [Tue, 2 May 2023 18:11:24 +0000 (12:11 -0600)] 
.github: Remove separate set labels step from new PR

2 years ago.github: Refactor CP progress and add new PR test progress
George Joseph [Tue, 2 May 2023 18:04:22 +0000 (12:04 -0600)] 
.github: Refactor CP progress and add new PR test progress

2 years agores_pjsip: mediasec: Add Security-Client headers after 401 (#49)
Maximilian Fridrich [Tue, 2 May 2023 15:18:42 +0000 (17:18 +0200)] 
res_pjsip: mediasec: Add Security-Client headers after 401 (#49)

When using mediasec, requests sent after a 401 must still contain the
Security-Client header according to
draft-dawes-sipcore-mediasec-parameter.

Resolves: #48

2 years ago.github: Add cherry-pick test progress labels
George Joseph [Tue, 2 May 2023 14:56:37 +0000 (08:56 -0600)] 
.github: Add cherry-pick test progress labels

2 years agoLICENSE: Update link to trademark policy. (#44)
Joshua C. Colp [Tue, 2 May 2023 14:17:00 +0000 (11:17 -0300)] 
LICENSE: Update link to trademark policy. (#44)

Resolves: #43

2 years agosay.c: Fix French time playback. (#42)
InterLinked1 [Tue, 2 May 2023 14:09:42 +0000 (09:09 -0500)] 
say.c: Fix French time playback. (#42)

ast_waitstream was not called after ast_streamfile,
resulting in "o'clock" being skipped in French.

Additionally, the minute announcements should be
feminine.

Reported-by: Danny Lloyd
Resolves: #41
ASTERISK-30488

2 years agochan_dahdi: Add dialmode option for FXS lines.
Naveen Albert [Fri, 28 Apr 2023 18:57:37 +0000 (18:57 +0000)] 
chan_dahdi: Add dialmode option for FXS lines.

Currently, both pulse and tone dialing are always enabled
on all FXS lines, with no way of disabling one or the other.

In some circumstances, it is desirable or necessary to
disable one of these, and this behavior can be problematic.

A new "dialmode" option is added which allows setting the
methods to support on a per channel basis for FXS (FXO
signalled lines). The four options are "both", "pulse",
"dtmf"/"tone", and "none".

Additionally, integration with the CHANNEL function is
added so that this setting can be updated for a channel
during a call.

Resolves: #35
ASTERISK-29992

UserNote: A "dialmode" option has been added which allows
specifying, on a per-channel basis, what methods of
subscriber dialing (pulse and/or tone) are permitted.

Additionally, this can be changed on a channel
at any point during a call using the CHANNEL
function.

2 years ago.github: Update issue templates
George Joseph [Mon, 1 May 2023 15:37:29 +0000 (09:37 -0600)] 
.github: Update issue templates

2 years ago.github: Remove unnecessary parameter in CherryPickTest
George Joseph [Mon, 1 May 2023 12:48:32 +0000 (06:48 -0600)] 
.github: Remove unnecessary parameter in CherryPickTest

2 years agoInitial GitHub PRs
George Joseph [Fri, 28 Apr 2023 18:31:03 +0000 (12:31 -0600)] 
Initial GitHub PRs

2 years agoInitial GitHub Issue Templates
George Joseph [Fri, 28 Apr 2023 17:17:21 +0000 (11:17 -0600)] 
Initial GitHub Issue Templates

2 years agopbx_dundi: Fix PJSIP endpoint configuration check.
Joshua C. Colp [Thu, 13 Apr 2023 09:35:17 +0000 (06:35 -0300)] 
pbx_dundi: Fix PJSIP endpoint configuration check.

ASTERISK-28233

Change-Id: I0f11c096b307a6178e22ca49d9c756343f0e1fdc

2 years agoRevert "app_queue: periodic announcement configurable start time."
Joshua Colp [Tue, 11 Apr 2023 23:37:30 +0000 (18:37 -0500)] 
Revert "app_queue: periodic announcement configurable start time."

This reverts commit 71e317f68f246939bde469609bbe573937232c7d.

Reason for revert: Causes segmentation fault.

Change-Id: I3beeda83249bffec2a8f246aa50a6b2f1b59ef59

2 years agores_pjsip_stir_shaken: Fix JSON field ordering and disallowed TN characters.
Naveen Albert [Fri, 17 Feb 2023 13:45:16 +0000 (13:45 +0000)] 
res_pjsip_stir_shaken: Fix JSON field ordering and disallowed TN characters.

The current STIR/SHAKEN signing process is inconsistent with the
RFCs in a couple ways that can cause interoperability issues.

RFC8225 specifies that the keys must be ordered lexicographically, but
currently the fields are simply ordered according to the order
in which they were added to the JSON object, which is not
compliant with the RFC and can cause issues with some carriers.

To fix this, we now leverage libjansson's ability to dump a JSON
object sorted by key value, yielding the correct field ordering.

Additionally, telephone numbers must have any leading + prefix removed
and must not contain characters outside of 0-9, *, and # in order
to comply with the RFCs. Numbers are now properly formatted as such.

ASTERISK-30407 #close

Change-Id: Iab76d39447c4b8cf133de85657dba02fda07f9a2

2 years agopbx_dundi: Add PJSIP support.
Naveen Albert [Fri, 9 Dec 2022 14:18:26 +0000 (14:18 +0000)] 
pbx_dundi: Add PJSIP support.

Adds PJSIP as a supported technology to DUNDi.

To facilitate this, we now allow an endpoint to be specified
for outgoing PJSIP calls. We also allow users to force a specific
channel technology for outgoing SIP-protocol calls.

ASTERISK-28109 #close
ASTERISK-28233 #close

Change-Id: I2e28e5a5d007bd49e3df113ad567b011103899bf

2 years agochan_pjsip: fix music on hold continues after INVITE with replaces
Henning Westerholt [Tue, 21 Mar 2023 07:48:38 +0000 (07:48 +0000)] 
chan_pjsip: fix music on hold continues after INVITE with replaces

In a three party scenario with INVITE with replaces, we need to
unhold the call, otherwise one party continues to get music on
hold, and the call is not properly bridged between them.

ASTERISK-30428

Change-Id: I5675df11e739be5226b328f8828d4b8d81fbefb4

2 years agoinstall_prereq: Add Linux Mint support.
The_Blode [Fri, 17 Mar 2023 15:51:57 +0000 (15:51 +0000)] 
install_prereq: Add Linux Mint support.

ASTERISK-30359 #close

Change-Id: I9c140c7f12ca7dafe65c317f2a26122cf2c72556

2 years agovoicemail.conf: Fix incorrect comment about #include.
Naveen Albert [Tue, 28 Mar 2023 13:37:55 +0000 (13:37 +0000)] 
voicemail.conf: Fix incorrect comment about #include.

A comment at the top of voicemail.conf says that #include
cannot be used in voicemail.conf because this breaks
the ability for app_voicemail to auto-update passwords.
This is factually incorrect, since Asterisk has no problem
updating files that are #include'd in the main configuration
file, and this does work in voicemail.conf as well.

ASTERISK-30479 #close

Change-Id: I3bf7d275849ab83f55f7fb6702a75a3077ee1df3

2 years agoapp_queue: Fix minor xmldoc duplication and vagueness.
Naveen Albert [Mon, 3 Apr 2023 14:16:59 +0000 (14:16 +0000)] 
app_queue: Fix minor xmldoc duplication and vagueness.

The F option in the xmldocs for the Queue application
was erroneously duplicated, causing it to display
twice on the wiki. The two sections are now merged into one.

Additionally, the description for the d option was quite
vague. Some more details are added to provide context
as to what this actually does.

ASTERISK-30486 #close

Change-Id: I6706cea708b5cc781f59f8652c2cb377e55aed7e

2 years agotest.c: Fix counting of tests and add 2 new tests
George Joseph [Tue, 28 Mar 2023 14:07:09 +0000 (08:07 -0600)] 
test.c: Fix counting of tests and add 2 new tests

The unit test XML output was counting all registered tests as "run"
even when only a subset were actually requested to be run and
the "failures" attribute was missing.

* The "tests" attribute of the "testsuite" element in the
  output XML now reflects only the tests actually requested
  to be executed instead of all the tests registered.

* The "failures" attribute was added to the "testsuite"
  element.

Also added 2 new unit tests that just pass and fail to be
used for CI testing.

Change-Id: Ia137814b5aeb0e1a44c75034bd3615c26021da69

2 years agores_pjsip_pubsub: subscription cleanup changes
Mike Bradeen [Wed, 29 Mar 2023 18:49:51 +0000 (12:49 -0600)] 
res_pjsip_pubsub: subscription cleanup changes

There are two main parts of the change associated with this
commit. These are driven by the change in call order of
pubsub_on_rx_refresh and pubsub_on_evsub_state by pjproject
when an in-dialog SUBSCRIBE is received.

First, the previous behavior was for pjproject to call
pubsub_on_rx_refresh before calling pubsub_on_evsub_state
when an in-dialog SUBSCRIBE was received that changes the
subscription state.

If that change was a termination due to a re-SUBSCRIBE with
an expires of 0, we used to use the call to pubsub_on_rx_refresh
to set the substate of the evsub to TERMINATE_PENDING before
pjproject could call pubsub_on_evsub_state.

This substate let pubsub_on_evsub_state know that the
subscription TERMINATED event could be ignored as there was
still a subsequent NOTIFY that needed to be generated and
another call to pubsub_on_evsub_state to come with it.

That NOTIFY was sent via serialized_pubsub_on_refresh_timeout
which would see the TERMINATE_PENDING state and transition it
to TERMINATE_IN_PROGRESS before triggering another call to
pubsub_on_evsub_state (which now would clean up the evsub.)

The new pjproject behavior is to call pubsub_on_evsub_state
before pubsub_on_rx_refresh. This means we no longer can set
the state to TERMINATE_PENDING to tell pubsub_on_evsub_state
that it can ignore the first TERMINATED event.

To handle this, we now look directly at the event type,
method type and the expires value to determine whether we
want to ignore the event or use it to trigger the evsub
cleanup.

Second, pjproject now expects the NOTIFY to actually be sent
during pubsub_on_rx_refresh and avoids the protocol violation
inherent in sending a NOTIFY before the SUBSCRIBE is
acknowledged by caching the sent NOTIFY then sending it
after responding to the SUBSCRIBE.

This requires we send the NOTIFY using the non-serialized
pubsub_on_refresh_timeout directly and let pjproject handle
the protocol violation.

ASTERISK-30469

Change-Id: I05c1d91a44fe28244ae93faa4a2268a3332b5fd7

2 years agores_calendar: output busy state as part of show calendar.
Jaco Kroon [Thu, 23 Mar 2023 08:20:51 +0000 (10:20 +0200)] 
res_calendar: output busy state as part of show calendar.

Change-Id: I894e4ecc3e93db4ff7783d46266ba3c5e6ccda10
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
2 years agoael: Regenerate lexers and parsers.
Sean Bright [Tue, 21 Mar 2023 13:24:59 +0000 (09:24 -0400)] 
ael: Regenerate lexers and parsers.

Various changes to ensure that the lexers and parsers can be correctly
generated when REBUILD_PARSERS is enabled.

Some notes:

* Because of the version of flex we are using to generate the lexers
  (2.5.35) some post-processing in the Makefile is still required.

* The generated lexers do not contain the problematic C99 check that
  was being replaced by the call to sed in the respective Makefiles so
  it was removed.

* Since these files are generated, they will include trailing
  whitespace in some places. This does not need to be corrected.

Change-Id: Ibbd343606fcf5c0d285b1599e6e8e59f514f2e4e

2 years agoloader.c: Minor module key check simplification.
Sean Bright [Thu, 23 Mar 2023 15:08:15 +0000 (11:08 -0400)] 
loader.c: Minor module key check simplification.

Change-Id: I65aefd4434a783096165c179b5f94f2e4810dffe

2 years agoRevert "pbx_ael: Global variables are not expanded."
Sean Bright [Sun, 19 Mar 2023 21:30:50 +0000 (16:30 -0500)] 
Revert "pbx_ael: Global variables are not expanded."

This reverts commit c448dcd2f0e67acf527662574193994559ae853a.

Reason for revert: Behavior change that breaks existing dialplan.

ASTERISK-30472 #close

Change-Id: I20e44b4081d6ee0fe54cde44ac71dcf2d146f909

2 years agobridge_builtin_features: add beep via touch variable
Mike Bradeen [Wed, 1 Mar 2023 22:39:15 +0000 (15:39 -0700)] 
bridge_builtin_features: add beep via touch variable

Add periodic beep option to one-touch recording by setting
the touch variable TOUCH_MONITOR_BEEP or
TOUCH_MIXMONITOR_BEEP to the desired interval in seconds.

If the interval is less than 5 seconds, a minimum of 5
seconds will be imposed.  If the interval is set to an
invalid value, it will default to 15 seconds.

A new test event PERIODIC_HOOK_ENABLED was added to the
func_periodic_hook hook_on function to indicate when
a hook is started.  This is so we can test that the touch
variable starts the hook as expected.

ASTERISK-30446

Change-Id: I800e494a789ba7a930bbdcd717e89d86040d6661

2 years agores_mixmonitor: MixMonitorMute by MixMonitor ID
Mike Bradeen [Mon, 13 Mar 2023 19:27:06 +0000 (13:27 -0600)] 
res_mixmonitor: MixMonitorMute by MixMonitor ID

While it is possible to create multiple mixmonitor instances
on a channel, it was not previously possible to mute individual
instances.

This change includes the ability to specify the MixMonitorID
when calling the manager action: MixMonitorMute.  This will
allow an individual MixMonitor instance to be muted via id.
This id can be stored as a channel variable using the 'i'
MixMonitor option.

As part of this change, if no MixMonitorID is specified in
the manager action MixMonitorMute, Asterisk will set the mute
flag on all MixMonitor spy-type audiohooks on the channel.
This is done via the new audiohook function:
ast_audiohook_set_mute_all.

ASTERISK-30464

Change-Id: Ibba8c7e750577aa1595a24b23316ef445245be98