Commit Graph

33373 Commits

Author SHA1 Message Date
George Joseph
6ba174263f .github: Update field descriptions for AsteriskReleaser 2023-07-07 13:31:53 -06:00
George Joseph
f26641b997 .github: Change title of AsteriskReleaser job 2023-07-07 13:31:53 -06:00
George Joseph
1971b06e04 .github: Don't add cherry-pick reminder if it's already present 2023-07-07 13:31:53 -06:00
George Joseph
8d59e19fce .github: Fix quoting in PROpenedOrUpdated 2023-07-07 13:31:53 -06:00
George Joseph
729542902d .github: Add cherry-pick reminder to new PRs 2023-07-07 13:31:53 -06:00
Sean Bright
a554cfe062 core: Cleanup gerrit and JIRA references. (#40) (#61)
* 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
2023-07-07 13:31:53 -06:00
Joshua C. Colp
31eeb9d068 .github: Tweak improvement issue type language. 2023-07-07 13:31:53 -06:00
Gitea
08c709d7c5 .github: Tweak new feature language, and move feature requests elsewhere. 2023-07-07 13:31:53 -06:00
Joshua C. Colp
1908567695 .github: Fix staleness check to only run on certain labels. 2023-07-07 13:31:53 -06:00
George Joseph
5cca713eda .github: Add AsteriskReleaser 2023-07-07 13:31:53 -06:00
Mike Bradeen
5d225cfa1c cel: add local optimization begin event
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.
2023-07-07 13:31:53 -06:00
George Joseph
1ab4a01397 .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.
2023-07-07 13:31:53 -06:00
George Joseph
d34fb9d393 .github: Fix reference to CHERRY_PICK_TESTING_IN_PROGRESS 2023-07-07 13:31:53 -06:00
George Joseph
96b5db5d2c .github: Remove separate set labels step from new PR 2023-07-07 13:31:53 -06:00
George Joseph
2be80ff944 .github: Refactor CP progress and add new PR test progress 2023-07-07 13:31:53 -06:00
George Joseph
e3d18b6f45 .github: Add cherry-pick test progress labels 2023-07-07 13:31:52 -06:00
George Joseph
9875f3472e .github: Update issue templates 2023-07-07 13:31:52 -06:00
George Joseph
f0789ba2cb .github: Remove unnecessary parameter in CherryPickTest 2023-07-07 13:31:52 -06:00
George Joseph
21a2ee2a48 Initial GitHub PRs 2023-07-07 13:31:52 -06:00
George Joseph
8bcf6c298c Initial GitHub Issue Templates 2023-07-07 13:31:52 -06:00
George Joseph
730bf4a8b4 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
2023-07-07 13:31:52 -06:00
Mike Bradeen
c8c528e9d3 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
2023-07-07 13:31:52 -06:00
Mike Bradeen
266c79dbfc format_sln: add .slin as supported file extension
Adds '.slin' to existing supported file extensions:
.sln and .raw

ASTERISK-30465

Change-Id: Ice848addc03a64c8404b87cb5d3b13399c57e496
2023-07-07 13:31:52 -06:00
Mike Bradeen
d94555b4f4 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
2023-07-07 13:31:52 -06:00
Mike Bradeen
ba51bb6089 cli: increase channel column width
For 'core show channels', the Channel name field is increased
to 64 characters and the Location name field is increased to
32 characters.

For 'core show channels verbose', the Channel name field is
increased to 80 characters, the Context is increased to 24
characters and the Extension is increased to 24 characters.

ASTERISK-30455

Change-Id: Ibec3742ce360ffc93bc56e9984c2a21dabc4d5e1
2023-07-07 13:31:52 -06:00
Mike Bradeen
5b76e3cdee app_senddtmf: Add option to answer target channel.
Adds a new option to SendDTMF() which will answer the specified
channel if it is not already up. If no channel is specified, the
current channel will be answered instead.

ASTERISK-30422

Change-Id: Iddcbd501fcdf9fef0f453b7a8115a90b11f1d085
(cherry picked from commit f015d3e0cc)
2023-07-07 13:31:52 -06:00
Mike Bradeen
59bcdad4d5 app_directory: Add a 'skip call' option.
Adds 's' option to skip calling the extension and instead set the
extension as DIRECTORY_EXTEN channel variable.

ASTERISK-30405

Change-Id: Ib9d9db1ba5b7524594c640461b4aa8f752db8299
2023-07-07 13:31:52 -06:00
Mike Bradeen
8e8a188a8c app_read: Add an option to return terminator on empty digits.
Adds 'e' option to allow Read() to return the terminator as the
dialed digits in the case where only the terminator is entered.

ie; if "#" is entered, return "#" if the 'e' option is set and ""
if it is not.

ASTERISK-30411

Change-Id: I49f3221824330a193a20c660f99da0f1fc2cbbc5
2023-07-07 13:31:52 -06:00
Mike Bradeen
64afaeb72a app_directory: add ability to specify configuration file
Adds option to app_directory to specify a filename from which to
read configuration instead of voicemail.conf ie;

same => n,Directory(,,c(directory.conf))

This configuration should contain a list of extensions using the
voicemail.conf format, ie;

2020=2020,Dog Dog,,,,attach=no|saycid=no|envelope=no|delete=no

ASTERISK-30404

Change-Id: Id58ccb1344ad1e563fa10db12f172fbd104a9d13
(cherry picked from commit ef6901e137)
2023-07-07 13:31:52 -06:00
Asterisk Development Team
8a6ee89571 Update for certified/18.9-cert4 certified-18.9-cert4 certified/18.9-cert4 2023-01-19 06:33:44 -05:00
George Joseph
dda609c9df res_pjsip_transport_websocket: Add remote port to transport
When Asterisk receives a new websocket conenction, it creates a new
pjsip transport for it and copies connection data into it.  The
transport manager then uses the remote IP address and port on the
transport to create a monitor for each connection.  However, the
remote port wasn't being copied, only the IP address which meant
that the transport manager was creating only 1 monitoring entry for
all websocket connections from the same IP address. Therefore, if
one of those connections failed, it deleted the transport taking
all the the connections from that same IP address with it.

* We now copy the remote port into the created transport and the
  transport manager behaves correctly.

ASTERISK-30369

Change-Id: Ib506d40897ea6286455ac0be4dfbb0ed43b727e1
2022-12-23 05:32:04 -07:00
Joshua C. Colp
c20750bbaf res_pjsip_transport_websocket: Also set the remote name.
As part of PJSIP 2.11 a behavior change was done to require
a matching remote hostname on an established transport for
secure transports. Since the Websocket transport is considered
a secure transport this caused the existing connection to not
be found and used.

We now set the remote hostname and the transport can be found.

ASTERISK-30065

Change-Id: Ia1cdef33e1411f927985b4b852c95e163c080e94
2022-12-23 05:31:55 -07:00
Alexandre Fournier
646a9a7ec6 res_geoloc: fix NULL pointer dereference bug
The `ast_geoloc_datastore_add_eprofile` function does not return 0 on
success, it returns the size of the underlying datastore. This means
that the datastore will be freed and its pointer set to NULL when no
error occured at all.

ASTERISK-30346

Change-Id: Iea9b209bd1244cc57b903b9496cb680c356e4bb9
2022-12-13 10:32:27 -05:00
Asterisk Development Team
1196d4b5d3 Update for certified/18.9-cert3 certified/18.9-cert3 2022-12-01 15:11:36 -05:00
Asterisk Development Team
4e9c0bc880 Update CHANGES and UPGRADE.txt for certified/18.9-cert3 2022-12-01 14:54:03 -05:00
Asterisk Development Team
28a23f6595 Update for certified/18.9-cert3 2022-12-01 13:52:55 -06:00
Mike Bradeen
de142180a3 ooh323c: not checking for IE minimum length
When decoding q.931 encoded calling/called number
now checking for length being less than minimum required.

ASTERISK-30103

Change-Id: I3dcfce0f35eca258dc450f87c92d4d7af402c2e7
2022-12-01 11:55:57 -06:00
Mike Bradeen
2285ffd5eb manager: prevent file access outside of config dir
Add live_dangerously flag to manager and use this flag to
determine if a configuation file outside of AST_CONFIG_DIR
should be read.

ASTERISK-30176

Change-Id: I46b26af4047433b49ae5c8a85cb8cda806a07404
2022-12-01 11:54:17 -06:00
Ben Ford
9d74efa30f pjproject: 2.13 security fixes
Backports two security fixes (c4d3498 and 450baca) from pjproject 2.13.
The first one was modified due to merge conflicts specifically with
certified.

ASTERISK-30338

Change-Id: I86fdc003d5d22cb66e7cc6dc3313a8194f27eb69
2022-12-01 11:53:36 -06:00
George Joseph
dd76b53ca6 pjsip_transport_events: Fix possible use after free on transport
It was possible for a module that registered for transport monitor
events to pass in a pjsip_transport that had already been freed.
This caused pjsip_transport_events to crash when looking up the
monitor for the transport.  The fix is a two pronged approach.

1. We now increment the reference count on pjsip_transports when we
create monitors for them, then decrement the count when the
transport is going to be destroyed.

2. There are now APIs to register and unregister monitor callbacks
by "transport key" which is a string concatenation of the remote ip
address and port.  This way the module needing to monitor the
transport doesn't have to hold on to the transport object itself to
unregister.  It just has to save the transport_key.

* Added the pjsip_transport reference increment and decrement.

* Changed the internal transport monitor container key from the
  transport->obj_name (which may not be unique anyway) to the
  transport_key.

* Added a helper macro AST_SIP_MAKE_REMOTE_IPADDR_PORT_STR() that
  fills a buffer with the transport_key using a passed-in
  pjsip_transport.

* Added the following functions:
  ast_sip_transport_monitor_register_key
  ast_sip_transport_monitor_register_replace_key
  ast_sip_transport_monitor_unregister_key
  and marked their non-key counterparts as deprecated.

* Updated res_pjsip_pubsub and res_pjsip_outbound_register to use
  the new "key" monitor functions.

NOTE: res_pjsip_registrar also uses the transport monitor
functionality but doesn't have a persistent object other than
contact to store a transport key.  At this time, it continues to
use the non-key monitor functions.

ASTERISK-30244

Change-Id: I1a20baf2a8643c272dcf819871d6c395f148f00b
2022-12-01 11:10:27 -06:00
Jaco Kroon
ed798d30f8 Build system: Avoid executable stack.
Found in res_geolocation, but I believe others may have similar issues,
thus not linking to a specific issue.

Essentially gcc doesn't mark the stack for being non-executable unless
it's compiling the source, this informs ld via gcc to mark the object as
not requiring an executable stack (which a binary blob obviously
doesn't).

ASTERISK-30321

Change-Id: I71bcc2fd1fe0c82a28b3257405d6f2b566fd9bfc
Signed-off-by: Jaco Kroon <jaco@uls.co.za>
2022-11-21 08:30:56 -06:00
Joshua C. Colp
e50b2bfad9 res_agi: Respect "transmit_silence" option for "RECORD FILE".
The "RECORD FILE" command in res_agi has its own
implementation for actually doing the recording. This
has resulted in it not actually obeying the option
"transmit_silence" when recording.

This change causes it to now send silence if the
option is enabled.

ASTERISK-30314

Change-Id: Ib3a85601ff35d1b904f836691bad8a4b7e957174
2022-11-16 06:45:40 -05:00
Mike Bradeen
1a72025c35 res_pjsip: prevent crash on websocket disconnect
When a websocket (or potentially any stateful connection) is quickly
created then destroyed, it is possible that the qualify thread will
destroy the transaction before the initialzing thread is finished
with it.

Depending on the timing, this can cause an assertion within pjsip.

To prevent this, ast_send_stateful_response will now create the group
lock and add a reference to it before creating the transaction.

While this should resolve the crash, there is still the potential that
the contact will not be cleaned up properly, see:ASTERISK~29286. As a
result, the contact has to 'time out' before it will be removed.

ASTERISK-28689

Change-Id: Id050fded2247a04d8f0fc5b8a2cf3e5482cb8cee
2022-10-31 10:10:14 -05:00
Mike Bradeen
f107e4fd87 audiohook: add directional awareness
Add enum to allow setting optional direction. If set to only one
direction, only feed matching-direction frames to the associated
slin factory.

This prevents mangling the transcoder on non-mixed frames when the
READ and WRITE frames would have otherwise required it.  Also
removes the need to mute or discard the un-wanted frames as they
are no longer added in the first place.

res_stasis_snoop is changed to use this addition to set direction
on audiohook based on spy direction.

If no direction is set, the ast_audiohook_init will init this enum
to BOTH which maintains existing functionality.

ASTERISK-30252

Change-Id: If8716bad334562a5d812be4eeb2a92e4f3be28eb
2022-10-10 09:57:17 -05:00
George Joseph
6e842ae100 res_geolocation: Update wiki documentation
Also added a note to the geolocation.conf.sample file
and added a README to the res/res_geolocation/wiki
directory.

Change-Id: I89c3c5db8c0701b33127993622d5e4f904bddfbc
2022-10-03 06:29:50 -05:00
Asterisk Development Team
3167634a5b Update for certified/18.9-cert2 certified/18.9-cert2 2022-09-28 07:57:59 -05:00
Asterisk Development Team
e21d1e7695 Update CHANGES and UPGRADE.txt for certified/18.9-cert2 2022-09-28 07:47:42 -05:00
Naveen Albert
29495aafce res_pjsip_geolocation: Change some notices to debugs.
If geolocation is not in use for an endpoint, the NOTICE
log level is currently spammed with messages about this,
even though nothing is wrong and these messages provide
no real value. These log messages are therefore changed
to debugs.

ASTERISK-30241 #close

Change-Id: I656b355d812f67cc0f0fdf09b00b0e1458598bb4
2022-09-26 13:18:35 -05:00
George Joseph
002272ad8b res_geolocation: Fix issues exposed by compiling with -O2
Fixed "may be used uninitialized" errors in geoloc_config.c.

ASTERISK-30234

Change-Id: I1ea336bf7abbc16fa59b75720f0db8f1d960b3d4
2022-09-16 08:43:14 -06:00
Mike Bradeen
fc2f8368e5 res_pjsip: Add user=phone on From and PAID for usereqphone=yes
Adding user=phone to local-side uri's when user_eq_phone=yes is set for
an endpoint. Previously this would only add the header to the To and R-URI.

ASTERISK-30178

Change-Id: Id3bfb5d225d762e7d2668c023fe09e4541ae8600
2022-09-14 06:54:51 -05:00