Commit Graph

33676 Commits

Author SHA1 Message Date
Joshua C. Colp
f549da4cf2 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 a75035be55)
2023-09-06 18:21:30 +00:00
George Joseph
f7ea380b04 Remove unneeded CHANGES and UPGRADE files
(cherry picked from commit ea7e719d71)
2023-09-06 18:21:30 +00:00
George Joseph
68349125a8 Update version for Asterisk 21 21.0.0-pre1 2023-08-09 18:58:48 +00:00
Maximilian Fridrich
51a7b18038 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.
2023-08-09 15:10:46 +00:00
Naveen Albert
d16046e41f 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.
2023-08-09 14:51:35 +00:00
Joshua C. Colp
806515597e 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
2023-08-09 14:50:07 +00:00
Naveen Albert
e1a1ae933b 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.
2023-08-04 14:31:18 +00:00
Holger Hans Peter Freyther
f335da6b74 res_prometheus: Do not generate broken metrics
In 8d6fdf9c3a 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
2023-08-04 14:21:23 +00:00
Sean Bright
c52b4ce11c 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.
2023-08-04 14:20:56 +00:00
phoneben
83dd36ba13 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.
2023-08-04 10:57:13 +00:00
Sean Bright
5c4cbeff87 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.
2023-07-21 17:49:34 +00:00
Sean Bright
b22aabe64a func_export: Use correct function argument as variable name.
Fixes #208
2023-07-18 14:55:39 +00:00
Joshua C. Colp
6b6880072b 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.
2023-07-18 13:03:06 +00:00
George Joseph
d0e5f2f6be .github: Fix cherry-pick reminder issues 2023-07-17 09:23:08 -06:00
George Joseph
8a864bcdba app.h: Move declaration of ast_getdata_result before its first use
The ast_app_getdata() and ast_app_getdata_terminator() declarations
in app.h were changed recently to return enum ast_getdata_result
(which is how they were defined in app.c).  The existing
declaration of ast_getdata_result in app.h was about 1000 lines
after those functions however so under certain circumstances,
a "use before declaration" error was thrown by the compiler.
The declaration of the enum was therefore moved to before those
functions.

Resolves: #200
2023-07-12 17:44:50 +00:00
Sean Bright
508657879e 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
2023-07-12 17:40:07 +00:00
Sean Bright
fe467d595c res_geolocation: Ensure required 'location_info' is present.
Fixes #189
2023-07-12 17:39:11 +00:00
Mike Bradeen
eef5a0b7bf 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.
2023-07-12 17:37:40 +00:00
Mike Bradeen
48c6e3fb1d 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>
2023-07-12 17:36:58 +00:00
zhengsh
d3c4f93ca6 res_rtp_asterisk: Move ast_rtp_rtcp_report_alloc using rtp->themssrc_valid into the scope of the rtp_instance lock.
From the gdb information, it was found that when calling __ast_free, the size of the
allocated space pointed to by the pointer matches the size created when rtp->themssrc_valid
is equal to 0. However, in reality, when reading the value of rtp->themssrc_valid in gdb,
it is found to be 1.

Within ast_rtcp_write(), the call to ast_rtp_rtcp_report_alloc() uses rtp->themssrc_valid,
which is outside the protection of the rtp_instance lock. However,
ast_rtcp_generate_report(), which is called by ast_rtcp_generate_compound_prefix(), uses
rtp->themssrc_valid within the protection of the rtp_instance lock.

This can lead to the possibility that the value of rtp->themssrc_valid used in the call to
ast_rtp_rtcp_report_alloc() may be different from the value of rtp->themssrc_valid used
within ast_rtcp_generate_report().

Resolves: asterisk#63
2023-07-12 15:56:24 +00:00
Naveen Albert
dd171a44b7 users.conf: Deprecate users.conf configuration.
This deprecates the users.conf config file, which
is no longer as widely supported but still integrated
with a number of different modules.

Because there is no real mechanism for marking a
configuration file as "deprecated", and users.conf
is not just used in a single place, this now emits
a warning to the user when the PBX loads to notify
about the deprecation.

This configuration mechanism has been widely criticized
and discouraged since its inception, and is no longer
relevant to the configuration that most users are doing
today. Removing it will allow for some simplification
and cleanup in the codebase.

Resolves: #183

UpgradeNote: The users.conf config is now deprecated
and will be removed in a future version of Asterisk.
2023-07-12 14:09:28 +00:00
George Joseph
016ff87349 .github: Minor tweak to Asterisk Releaser 2023-07-12 06:39:58 -06:00
George Joseph
6a4f2a7cf7 .github: Suppress cherry-pick reminder for some situations
In PROpenedOrUpdated, the cherry-pick reminder will now be
suppressed if there are already valid 'cherry-pick-to' comments
in the PR or the PR contained a 'cherry-pick-to: none' comment.
2023-07-11 06:31:04 -06:00
Naveen Albert
8cd7548e43 sig_analog: Allow immediate fake ring to be suppressed.
When immediate=yes on an FXS channel, sig_analog will
start fake audible ringback that continues until the
channel is answered. Even if it answers immediately,
the ringback is still audible for a brief moment.
This can be disruptive and unwanted behavior.

This adds an option to disable this behavior, though
the default behavior remains unchanged.

ASTERISK-30003 #close
Resolves: #118

UserNote: The immediatering option can now be set to no to suppress
the fake audible ringback provided when immediate=yes on FXS channels.
2023-07-10 14:16:26 +00:00
George Joseph
a4e21eeb5c .github: Update AsteriskReleaser for security releases 2023-07-07 11:06:24 -06:00
Sean Bright
e75c69b59e 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.
2023-07-07 15:12:12 +00:00
George Joseph
05bdaab643 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
2023-07-06 14:04:13 +00:00
Stanislav Abramenkov
18e6daf0a4 pjsip: Upgrade bundled version to pjproject 2.13.1 2023-07-05 15:41:18 +00:00
George Joseph
b2cdb530dd .github: Updates for AsteriskReleaser 2023-06-30 07:01:40 -06:00
Mike Bradeen
250b3a2f3c 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
2023-06-29 16:08:14 +00:00
Mike Bradeen
e84fe59cb2 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
2023-06-29 15:15:15 +00:00
Mike Bradeen
a55fd5e471 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
2023-06-29 15:13:55 +00:00
George Joseph
1f435d8c55 .github: Back out triggering PROpenedOrUpdated by label 2023-06-29 09:06:41 -06:00
George Joseph
32fd0fb1e0 .github: Move publish docs to new file CreateDocs.yml 2023-06-27 10:21:47 -06:00
George Joseph
359f9434de 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.
2023-06-27 14:28:44 +00:00
George Joseph
b974a8f9eb rest-api: Ran make ari stubs to fix resource_endpoints inconsistency 2023-06-27 07:18:37 -06:00
George Joseph
f0ca38901e .github: Remove result check from PROpenUpdateGateTests 2023-06-27 05:17:45 -06:00
George Joseph
8bf917852c .github: Fix use of 'contains' 2023-06-26 08:45:16 -06:00
George Joseph
10876b2bfc .github: Add recheck label test to additional jobs 2023-06-26 07:46:03 -06:00
George Joseph
76bb010ef7 .github: Fix recheck label typos 2023-06-26 07:21:53 -06:00
George Joseph
41c360dc98 .github: Fix recheck label manipulation 2023-06-26 07:11:20 -06:00
George Joseph
d20ac0e2cb .github: Allow PR submit checks to be re-run by label 2023-06-26 07:06:56 -06:00
Olaf Titz
128a9969a1 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
2023-06-26 13:03:23 +00:00
Sean Bright
153095dd91 res_pjsip_rfc3326: Prefer Q.850 cause code over SIP.
Resolves: #116
2023-06-21 13:25:00 +00:00
Joshua C. Colp
492638409c Update config.yml 2023-06-15 09:48:13 -03:00
Ben Ford
61f37faf6d 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
2023-06-13 17:59:05 +00:00
Nathan Bruning
292834d1ba 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
2023-06-12 18:20:33 +00:00
Sean Bright
642b84c9c9 pjsip_transport_events.c: Use %zu printf specifier for size_t.
Partially resolves #143.
2023-06-12 17:20:31 +00:00
Sean Bright
7e1f0b8e1f res_crypto.c: Gracefully handle potential key filename truncation.
Partially resolves #143.
2023-06-12 17:20:31 +00:00
Sean Bright
baa4a0669e 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
2023-06-12 17:19:58 +00:00