Currently the file sound_only_person is not played when a marked
user (with announce_only_user=yes) joins an empty conference.
This patch fixes it.
ASTERISK-28201 #close
Change-Id: I85b67687e6b220939c3af8091d83a70a7b174cf4
A subscriber can now indicate that it only wants messages
that have formatters of a specific type. For instance,
manager can indicate that it only wants messages that have a
"to_ami" formatter. You can combine this with the existing
filter for message type to get only messages with specific
formatters or messages of specific types.
ASTERISK-28186
Change-Id: Ifdb7a222a73b6b56c6bb9e4ee93dc8a394a5494c
Some platforms provide an implementation of socket() and pipe2() that allow the
caller to specify that the resulting file descriptors should be non-blocking.
Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
calls to fcntl() to set the O_NONBLOCK flag afterwards.
In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
wrapper if it is available.
Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0
* Added ---no-configure, --no-menuselect, --no-make and --no-alembic
options that prevent those actions from being performed. Useful
for testing and re-running portions of the build after fixing
earlier failures.
* Added "set -e" to abort the script on command failure.
Not sure why this wasn't there in the first place.
* Fixed a few echos that were redirecting to stderr when they shouldn't
have been.
* Catch more alembic failures by actually trying to generate the SQL.
Change-Id: I9f395fa4e9254be7299e7c1014f1a13db78faffb
This adds documentation to handle_cli_malloc_trim() indicating how it
can be useful when debugging OOM conditions.
Change-Id: I1936185e78035bf123cd5e097b793a55eeebdc78
We've had multiple opportunities where Richard Mudgett's
malloc_trim patch has been useful. Let's get it
pushed up to gerrit and merged.
Since malloc_trim is only available in libc, an entry is
added to configure.ac to create a definition for
HAVE_MALLOC_TRIM.
Change-Id: Ia38308c550149d9d6eae4ca414a649957de9700c
This test was occasionally failing, with:
WARNING[5812]: http.c:1939 httpd_helper_thread: Failed to set
TCP_NODELAY on HTTP connection: Bad file descriptor
ERROR[5812]: iostream.c:91 ast_iostream_nonblock: Failed to get
fcntl() flags for file descriptor: Bad file descriptor
ERROR[5812]: iostream.c:569 ast_iostream_close: close() failed: Bad
file descriptor
Disabled for now by making the test explicit only.
Change-Id: I778f6cbb6104c6b4e89737a2eaf1a9540888d351
This reverts commit 1843b0e2b5.
That commit closed a long standing hole which allowed subscriptions
to mailboxes that weren't configured in voicemail.conf. This
caused an issue with FreePBX which depdended on that behavior.
The commit is being reverted until FreePBX can handle the new
behavior.
ASTERISK-28151
Reported by: Ronald Raikes
Change-Id: I57b7b85e75d7dd97c742b5c69d718a0f61260c15
In ASTERISK-27095 an issue had been fixed because of which chan_pjsip was not
trying to send UPDATE messages when connected_line_method was set to invite.
However this only solved the issue for incoming INVITES. For outgoing INVITES
(important when transferring calls) the options variable needs to be updated
at a different place.
ASTERISK-28182 #close
Reported-by: nappsoft
Change-Id: I76cc06da4ca76ddd6dce814a8b97cc66b98aaf29
These are only a few of the leaks. The large number of macros
and return paths in this file would make a weeks worth of work
to plug them all.
Change-Id: Ie2369fa944023d44767871c5c30974cb077ffb56
This brings in jansson-2.12, removes all patches that were merged
upstream. README is created in third-party/jansson/patches to explain
how to add patches but also because the patches folder must exist for
the build process to succeed.
Change-Id: If0f2d541c50997690660c21fb7b03d625a5cdadd
Replace usage of ao2_container_alloc with ao2_container_alloc_hash or
ao2_container_alloc_list.
ao2_container_alloc is now restricted to modules only and is being
removed from Asterisk 17.
Change-Id: I0907d78bc66efc775672df37c8faad00f2f6c088
This patch makes it so only matching non-empty key names, and keys created by
the HASH function are eligible for inclusion in the comma separated string. It
also fixes a bug where it was possible to write to a negative index if the
result buffer was empty.
ASTERISK-28159
patches:
ASTERISK-28159.diff submitted by Michael Walton (license 6502)
Change-Id: I6e57fe7307dfd856271753aed5ba64c59b511487
The job timeouts were hard coded in the jenkinsfiles which
means changes had to go through gerrit. Now they are taken
from the following environment variables (and their defaults) that
can be set in Jenkins configuration...
TIMEOUT_GATES = "60 MINUTES"
TIMEOUT_DAILIES = "3 HOURS"
TIMEOUT_REF_DEBUG = "24 HOURS"
TIMEOUT_UNITTESTS = "30 MINUTES"
Change-Id: I673a551c1780bf665a3bc160b245da574aa4bbab
When a subscribe or unsubscribe occurs a message is published
containing this information. This change makes it so that the
message no longer uses stringfields or a lock, as both are not
really needed for the message.
Change-Id: I3f4831931d79f94fd979baf48048738df5dc1632
We've been seeing crashes in libbfd when we attempt to generate
a stack trace from multiple threads. It turns out that libbfd
is NOT thread-safe. It can cache the bfd structure and give it to
multiple threads without protecting itself. To get around this,
we've added a global mutex around the bfd functions and also have
refactored the use of those functions to be more efficient and
to provide more information about inlined functions.
Also added a few more tests to test_pbx.c. One just calls
ast_assert() and the other calls ast_log_backtrace(). Neither are
run by default.
WARNING: This change necessitated changing the return value of
ast_bt_get_symbols() from an array of strings to a VECTOR of
strings. However, the use of this function outside Asterisk is not
likely.
ASTERISK-28140
Change-Id: I79d02862ddaa2423a0809caa4b3b85c128131621
New dialplan function PJSIP_PARSE_URI added to parse an URI and return
a specified part of the URI.
This is useful when need to get part of the URI instead of cutting it
using a CUT function.
For example to get 'user' part of Remote URI
${PJSIP_PARSE_URI(${CHANNEL(pjsip,remote_uri)},user)}
ASTERISK-28144 #close
Change-Id: I5d828fb87f6803b6c1152bb7b44835f027bb9d5a
This change adds the ability for subscriptions to indicate
which message types they are interested in accepting. By
doing so the filtering is done before being dispatched
to the subscriber, reducing the amount of work that has
to be done.
This is optional and if a subscriber does not add
message types they wish to accept and set the subscription
to selective filtering the previous behavior is preserved
and they receive all messages.
There is also the ability to explicitly force the reception
of all messages for cases such as AMI or ARI where a large
number of messages are expected that are then generically
converted into a different format.
ASTERISK-28103
Change-Id: I99bee23895baa0a117985d51683f7963b77aa190
The testsuite can now use a user-specified work directory for
all it's temp files. This allows the docker containers to use
a tmpfs backed directory for the temp files instead of it's
own write-layer image.
* runTestsuite.sh now accepts a --work-dir command line argument
that gets exported as AST_WORK_DIR before running the testsuite.
* gates.jenkinsfile now specifies --work-dir to be
<testsuite_dir>/astroot.
Since the Asterisk CI docker hosts now mount /srv/jenkins/workspace
on a tmpfs, asterisk should be compiled and the testsuite run all in
memory.
Change-Id: If5ee905a15821296c355bb84cda38950ad8edc45
There seems to be a race condition between starting the asterisk
daemon and attempting to use 'asterisk -r' that can cause the
control socket file to not be created. Since all of the Jenkins
slaves have 'expect' installed, the runUnittests script can use
it to start asterisk in the forground and issue the commands
interactively. This is much more reliable and it can also make
startup errors more visible since they'll be in the Jenkins console
output.
If 'expect' isn't installed, the original daemon/asterisk -r
process is used.
Also added a "core show settings" before running the tests
and added "notice,warning,error" to the console log.
Change-Id: Idd656085f854afede813ac241b9e312b31358160
Task processors are retrieved using a 'get or create' pattern. The
singleton container was unlocked between the get and create steps so
it's possible that two threads could create task processors with the
same name at the same time.
Change-Id: Id64fae94a6a1e940ddf38fde622dcd4391635382