asterisk/asterisk.git
16 months agoMerge "install_prereq: Update FreeBSD libraries."
Jenkins2 [Wed, 14 Mar 2018 12:56:10 +0000 (07:56 -0500)]
Merge "install_prereq: Update FreeBSD libraries."

16 months agoMerge "core: Remove non-critical cleanup from startup aborts."
Jenkins2 [Wed, 14 Mar 2018 12:00:57 +0000 (07:00 -0500)]
Merge "core: Remove non-critical cleanup from startup aborts."

16 months agoMerge "BuildSystem: Enable IMAP storage on openSUSE and Arch Linux."
Jenkins2 [Wed, 14 Mar 2018 11:45:30 +0000 (06:45 -0500)]
Merge "BuildSystem: Enable IMAP storage on openSUSE and Arch Linux."

16 months agoMerge "BuildSystem: Add NetBSD."
Joshua Colp [Wed, 14 Mar 2018 11:17:01 +0000 (06:17 -0500)]
Merge "BuildSystem: Add NetBSD."

16 months agoMerge "res_srtp: Add support for libsrtp2.x on openSUSE."
Joshua Colp [Wed, 14 Mar 2018 11:16:40 +0000 (06:16 -0500)]
Merge "res_srtp: Add support for libsrtp2.x on openSUSE."

16 months agoMerge "install_prereq: Add NetBSD."
Jenkins2 [Tue, 13 Mar 2018 23:23:28 +0000 (18:23 -0500)]
Merge "install_prereq: Add NetBSD."

16 months agoMerge "BuildSystem: Re-check for another UUID library only when previous check failed."
Jenkins2 [Tue, 13 Mar 2018 23:17:22 +0000 (18:17 -0500)]
Merge "BuildSystem: Re-check for another UUID library only when previous check failed."

16 months agoMerge "BuildSystem: Enable PortAudio in NetBSD."
Jenkins2 [Tue, 13 Mar 2018 22:55:22 +0000 (17:55 -0500)]
Merge "BuildSystem: Enable PortAudio in NetBSD."

16 months agoBuildSystem: Enable IMAP storage on openSUSE and Arch Linux.
Alexander Traud [Mon, 12 Mar 2018 10:19:41 +0000 (11:19 +0100)]
BuildSystem: Enable IMAP storage on openSUSE and Arch Linux.

ASTERISK-27734

Change-Id: I8d6e6a1c08c031649764f5277fbbb85e57c3a9d4

16 months agoMerge "core: Remove ABI effects of MALLOC_DEBUG."
Jenkins2 [Tue, 13 Mar 2018 18:54:19 +0000 (13:54 -0500)]
Merge "core: Remove ABI effects of MALLOC_DEBUG."

16 months agocore: Remove non-critical cleanup from startup aborts.
Corey Farrell [Sat, 10 Mar 2018 09:33:33 +0000 (04:33 -0500)]
core: Remove non-critical cleanup from startup aborts.

When built-in components of Asterisk fail to start they cause the
Asterisk startup to abort.  In these cases only the most critical
cleanup should be performed - closing databases and terminating
proceses.  These cleanups are registered using ast_register_atexit, all
other cleanups should not be run during startup abort.

The main reason for this change is that these cleanup procedures are
untestable from the partially initialized states, if they fail it could
prevent us from ever running the critical cleanup with ast_run_atexits.

Create separate initialization for dns_core.c to be run unconditionally
during startup instead of being initialized by the first dns resolver to
be registered. This ensures that 'sched' is initialized before it can be
potentially used.

Replace ast_register_atexit with ast_register_cleanup in media_cache.c.
There is no reason for this cleanup to happen unconditionally.

Change-Id: Iecc2df98008b21509925ff16740bd5fa29527db3

16 months agoMerge "BuildSystem: For consistency, avoid double-checking via if clauses."
Jenkins2 [Tue, 13 Mar 2018 15:48:41 +0000 (10:48 -0500)]
Merge "BuildSystem: For consistency, avoid double-checking via if clauses."

16 months agoMerge "res_pjproject.c: Upgrade bundled PJPROJECT to 2.7.2"
Joshua Colp [Tue, 13 Mar 2018 15:38:00 +0000 (10:38 -0500)]
Merge "res_pjproject.c: Upgrade bundled PJPROJECT to 2.7.2"

16 months agoMerge "Replace direct checks of option_debug with DEBUG_ATLEAST macro."
Jenkins2 [Mon, 12 Mar 2018 15:44:46 +0000 (10:44 -0500)]
Merge "Replace direct checks of option_debug with DEBUG_ATLEAST macro."

16 months agoMerge "BuildSystem: Enable Lua in NetBSD."
Jenkins2 [Mon, 12 Mar 2018 14:13:51 +0000 (09:13 -0500)]
Merge "BuildSystem: Enable Lua in NetBSD."

16 months agoMerge "Complete deprecating legacy modules."
Jenkins2 [Mon, 12 Mar 2018 12:50:01 +0000 (07:50 -0500)]
Merge "Complete deprecating legacy modules."

16 months agoMerge "res_pjsip_session: properly handle SDP from a forked call with early media"
Jenkins2 [Mon, 12 Mar 2018 12:23:26 +0000 (07:23 -0500)]
Merge "res_pjsip_session: properly handle SDP from a forked call with early media"

16 months agoMerge "BuildSystem: Depend not implicitly but explicitly on external libraries."
Jenkins2 [Mon, 12 Mar 2018 12:08:14 +0000 (07:08 -0500)]
Merge "BuildSystem: Depend not implicitly but explicitly on external libraries."

16 months agoMerge "BuildSystem regression: Fix errors reported by clean targets."
Jenkins2 [Mon, 12 Mar 2018 11:54:30 +0000 (06:54 -0500)]
Merge "BuildSystem regression: Fix errors reported by clean targets."

16 months agoinstall_prereq: Update FreeBSD libraries.
Alexander Traud [Mon, 12 Mar 2018 11:40:11 +0000 (12:40 +0100)]
install_prereq: Update FreeBSD libraries.

Because the code review system Gerrit creates merge conflicts even when one line
apart another change happened, the previous update to the FreeBSD libraries had
to be rebased via Git. Because of a break for training of the original
contributor, this rebase was done by another contributor and the variant for
Asterisk 13 was cherry-picked to all branches. By this, dependencies for new
features added in newer Asterisk version got lost. This can be seen, when not
the original path set but a previous patch set is compared.

This change here fixes this by adding those (optional) dependencies for
Asterisk 15 and newer (again).

ASTERISK-27686

Change-Id: I6638a3d0dc37ad4ff5f94be15463e3dd8a2bfe74

16 months agores_srtp: Add support for libsrtp2.x on openSUSE.
Alexander Traud [Mon, 12 Mar 2018 09:11:15 +0000 (10:11 +0100)]
res_srtp: Add support for libsrtp2.x on openSUSE.

Since ASTERISK-27253, no symbols from the header srtp2/crypto_types.h are used
anymore. Therefore, its include statement can be removed. This allows to compile
Asterisk on platforms which do not offer this private header, like openSUSE.

ASTERISK-27733

Change-Id: I25c5cb8fa966043d1506ebef449e5a724412b4b6

16 months agoMerge "app_osplookup: Move header defines into the app."
Jenkins2 [Sun, 11 Mar 2018 22:24:29 +0000 (17:24 -0500)]
Merge "app_osplookup: Move header defines into the app."

16 months agoBuildSystem: Add NetBSD.
Alexander Traud [Thu, 8 Mar 2018 15:14:11 +0000 (16:14 +0100)]
BuildSystem: Add NetBSD.

Headers, libraries, and rpath.

ASTERISK-27728
ASTERISK-11015
Reported by: Curt Sampson

Change-Id: I50aa5fcd095937df32a2e33307caac7e79a8b5b7

16 months agoBuildSystem: For consistency, avoid double-checking via if clauses.
Alexander Traud [Fri, 9 Mar 2018 09:13:20 +0000 (10:13 +0100)]
BuildSystem: For consistency, avoid double-checking via if clauses.

In the script ./configure, AST_EXT_LIB_CHECK and AST_PKG_CONFIG_CHECK first test
whether parameter 1 was already found. Consequently, an if-test on PBX_ just a
line below is redundant, if exactly the same parameter 1 is used again.

No performance gain is expected by this change. However, because this strategy
is used all over in ./configure except for two places, this change aims to
create more consistency: Only do something different if there is a reason to do
so.

Change-Id: I4a6f48127b7af3a48168c917e888be1f70625027

16 months agoMerge "res_http_post: Enable GMime in NetBSD."
Jenkins2 [Fri, 9 Mar 2018 06:19:46 +0000 (00:19 -0600)]
Merge "res_http_post: Enable GMime in NetBSD."

16 months agoMerge "chan_sip: Fix improper RTP framing on outgoing calls"
Jenkins2 [Thu, 8 Mar 2018 21:53:35 +0000 (15:53 -0600)]
Merge "chan_sip: Fix improper RTP framing on outgoing calls"

16 months agoMerge "voicemail: Fixed wrong voicemail message count"
Kevin Harwell [Thu, 8 Mar 2018 21:26:37 +0000 (15:26 -0600)]
Merge "voicemail: Fixed wrong voicemail message count"

16 months agoComplete deprecating legacy modules.
Richard Mudgett [Thu, 8 Mar 2018 19:53:09 +0000 (13:53 -0600)]
Complete deprecating legacy modules.

The menuselect comment was updated to deprecate these modules but the
AST_MODULE_INFO block at the end of file was missed.

ASTERISK-27671

Change-Id: I63070b5c4d4f08af010c6034acd4793c1bcef839

16 months agoMerge "utils: In Solaris, avoid a warning about an unused variable."
Jenkins2 [Thu, 8 Mar 2018 19:30:30 +0000 (13:30 -0600)]
Merge "utils: In Solaris, avoid a warning about an unused variable."

16 months agores_pjproject.c: Upgrade bundled PJPROJECT to 2.7.2
Richard Mudgett [Wed, 7 Mar 2018 19:50:35 +0000 (13:50 -0600)]
res_pjproject.c: Upgrade bundled PJPROJECT to 2.7.2

Update patches included in bundled PJPROJECT for the new version.

ASTERISK-27730

Change-Id: Id3c8c8ad82126846bcd9768bc3d0a18d89be8944

16 months agoinstall_prereq: Add NetBSD.
Alexander Traud [Thu, 8 Mar 2018 18:02:16 +0000 (19:02 +0100)]
install_prereq: Add NetBSD.

ASTERISK-27729

Change-Id: I7a706d51375d54cf5e36d32397bfe09a48670804

16 months agoMerge "res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints"
Jenkins2 [Thu, 8 Mar 2018 16:16:03 +0000 (10:16 -0600)]
Merge "res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints"

16 months agoBuildSystem: Re-check for another UUID library only when previous check failed.
Alexander Traud [Thu, 8 Mar 2018 15:04:29 +0000 (16:04 +0100)]
BuildSystem: Re-check for another UUID library only when previous check failed.

As a side-effect, this avoids the ambiguous output:
 checking for uuid_generate_random... no
which was printed always previously.

ASTERISK-25586
Reported by: John Nemeth

Change-Id: I6d541dfcf453932a9856c5e251aa22e0e6c233c9

16 months agoBuildSystem: Enable PortAudio in NetBSD.
Alexander Traud [Tue, 6 Mar 2018 12:28:15 +0000 (13:28 +0100)]
BuildSystem: Enable PortAudio in NetBSD.

In NetBSD, PortAudio 1 is still the default version. PortAudio 2 can be
installed side by side but gets placed in a 'portaudio2' subdirectory. To
find PortAudio 2 even in a subdirectory, the tool pkg-config is queried via
AST_PKG_CONFIG_CHECK. For those platforms, which do not list PowerAudio 2
via pkg-config, the previous check remains and is executed thereafter.

ASTERISK-27721

Change-Id: I4175500126909ad1b181fff8e11bb4a3a6ae4fa9

16 months agoReplace direct checks of option_debug with DEBUG_ATLEAST macro.
Corey Farrell [Wed, 7 Mar 2018 20:36:17 +0000 (15:36 -0500)]
Replace direct checks of option_debug with DEBUG_ATLEAST macro.

Checking option_debug directly is incorrect as it ignores file/module
specific debug settings.  This system-wide change replaces nearly all
direct checks for option_debug with the DEBUG_ATLEAST macro.

Change-Id: Ic342d4799a945dbc40ac085ac142681094a4ebf0

16 months agoMerge "apps/app_amd.c: Fixed total time and silence calculations"
Jenkins2 [Wed, 7 Mar 2018 19:59:29 +0000 (13:59 -0600)]
Merge "apps/app_amd.c: Fixed total time and silence calculations"

16 months agoBuildSystem regression: Fix errors reported by clean targets.
Richard Mudgett [Wed, 7 Mar 2018 19:13:42 +0000 (13:13 -0600)]
BuildSystem regression: Fix errors reported by clean targets.

Doing a 'make clean', 'make distclean', or 'make dist-clean' gets errors
about an invalid shell option: "/bin/sh: 0: Illegal option -".

The clean targets do not include the makeopts file which defines GREP and
LDCONFIG because the file may not exist and the distclean/dist-clean
targets will delete it anyway.

ASTERISK-27715

Change-Id: I33d40acdb03862bc89aeb6fb1ff497894a8ea7f5

16 months agores_pjsip_rfc3326: Order of 'Reason' headers break many endpoints
Ross Beer [Tue, 6 Mar 2018 19:31:01 +0000 (19:31 +0000)]
res_pjsip_rfc3326: Order of 'Reason' headers break many endpoints

ASTERISK-27554

Change-Id: If61c7faab7d2fa1031c056ed6268fe928e2391cf

16 months agovoicemail: Fixed wrong voicemail message count
Sungtae Kim [Tue, 6 Mar 2018 14:14:54 +0000 (15:14 +0100)]
voicemail: Fixed wrong voicemail message count

Fixed wrong voicemail mailbox reference for Action: VoicemailUsersList.

ASTERISK-27703

Change-Id: Ie6578ad80bba2bfaf34b84f0be978f59045ce6cd

16 months agoutils: In Solaris, avoid a warning about an unused variable.
Alexander Traud [Wed, 7 Mar 2018 15:32:05 +0000 (16:32 +0100)]
utils: In Solaris, avoid a warning about an unused variable.

When HAVE_GETHOSTBYNAME_R_5 was set by the script ./configure, GCC 7.3.0 found
an unused variable. Actually, the variable was used (set to a dummy value) but
the compiler optimization might have removed that. Instead, this change ensures
that the variable 'res' is only used when it is really required.

Change-Id: Ic3ea23ccf84ac4bc2d501b514985b989030abab5

16 months agoapp_osplookup: Move header defines into the app.
Corey Farrell [Wed, 7 Mar 2018 07:45:24 +0000 (02:45 -0500)]
app_osplookup: Move header defines into the app.

astosp.h is leftover from when logic was split between app_osplookup and
res_osp.  All logic was moved into app_osplookup by 109737eb1c in 2006,
but astosp.h remained.  This moves the remaining defines into
app_osplookup and deletes astosp.h.

Change-Id: I0a6c4debd7c9543b608520b1765abfa4fab7b2fd

16 months agochan_sip: Fix improper RTP framing on outgoing calls
Jean Aunis [Wed, 14 Feb 2018 13:33:18 +0000 (14:33 +0100)]
chan_sip: Fix improper RTP framing on outgoing calls

The "ptime" SDP parameter received in a SIP response was not honoured.
Moreover, in the abscence of this "ptime" parameter, locally configured
framing was lost during response processing.

This patch systematically stores the framing information in the
ast_rtp_codecs structure, taking it from the response or from the
configuration as appropriate.

ASTERISK-27674

Change-Id: I828a6a98d27a45a8afd07236a2bd0aa3cbd3fb2c

16 months agores_pjsip_session: properly handle SDP from a forked call with early media
lvl [Tue, 20 Feb 2018 17:48:50 +0000 (18:48 +0100)]
res_pjsip_session: properly handle SDP from a forked call with early media

In handle_negotiated_sdp(), use session->active_media_state when
session->pending_media_state is empty.  The 200's SDP should be fed into
handle_negotiated_sdp_session_media() together with the already negotiated
state, which is now in session->active_media_state instead.  Only if both
the session's pending and active media are empty should
handle_negotiated_sdp() abort.

ASTERISK-27441

Change-Id: If0d5150ffe6f38d8a854831fef37942258d4629c

16 months agoMerge "BuildSystem: Cast any intptr_t explicitly to its proposed type."
Jenkins2 [Tue, 6 Mar 2018 19:17:54 +0000 (13:17 -0600)]
Merge "BuildSystem: Cast any intptr_t explicitly to its proposed type."

16 months agoMerge "BuildSystem: Install init scripts on openSUSE Tumbleweed."
Jenkins2 [Tue, 6 Mar 2018 17:13:53 +0000 (11:13 -0600)]
Merge "BuildSystem: Install init scripts on openSUSE Tumbleweed."

16 months agoBuildSystem: Enable Lua in NetBSD.
Alexander Traud [Mon, 5 Mar 2018 14:01:06 +0000 (15:01 +0100)]
BuildSystem: Enable Lua in NetBSD.

luaL_openlib got removed with Lua 5.2.
luaL_newstate is available in all versions.

ASTERISK-27718

Change-Id: I9c8c8880315ee36ab740d7c40153306c0bfd6f71

16 months agoMerge "BuildSystem: AC_PATH_PROG sets to colon character when not found."
Jenkins2 [Tue, 6 Mar 2018 16:35:54 +0000 (10:35 -0600)]
Merge "BuildSystem: AC_PATH_PROG sets to colon character when not found."

16 months agoMerge "BuildSystem: Enable autotools in NetBSD."
Jenkins2 [Tue, 6 Mar 2018 16:14:19 +0000 (10:14 -0600)]
Merge "BuildSystem: Enable autotools in NetBSD."

16 months agoBuildSystem: Depend not implicitly but explicitly on external libraries.
Alexander Traud [Tue, 6 Mar 2018 13:33:14 +0000 (14:33 +0100)]
BuildSystem: Depend not implicitly but explicitly on external libraries.

ASTERISK-27722

Change-Id: Ie7b8c30d86cb00a54d6ac4e09e6f28f42d2bd52c

16 months agoMerge "chan_unistim: NetBSD has an incompatible struct in_pktinfo."
Jenkins2 [Mon, 5 Mar 2018 18:42:56 +0000 (12:42 -0600)]
Merge "chan_unistim: NetBSD has an incompatible struct in_pktinfo."

16 months agoMerge "BuildSystem: Avoid == for comparison in ./configure."
Joshua Colp [Mon, 5 Mar 2018 18:14:44 +0000 (12:14 -0600)]
Merge "BuildSystem: Avoid == for comparison in ./configure."

16 months agoMerge "BuildSystem: Detect whether uselocale(.) is available."
Jenkins2 [Mon, 5 Mar 2018 17:49:11 +0000 (11:49 -0600)]
Merge "BuildSystem: Detect whether uselocale(.) is available."

16 months agoMerge "BuildSystem: Avoid re-defining of pthread_* on NetBSD."
Jenkins2 [Mon, 5 Mar 2018 17:29:44 +0000 (11:29 -0600)]
Merge "BuildSystem: Avoid re-defining of pthread_* on NetBSD."

16 months agoMerge "chan_sip: Emit a second ringing event to ensure channel is found."
Jenkins2 [Mon, 5 Mar 2018 15:09:29 +0000 (09:09 -0600)]
Merge "chan_sip: Emit a second ringing event to ensure channel is found."

16 months agoMerge "core: Fix handling of maximum length lines in config files."
Jenkins2 [Mon, 5 Mar 2018 14:32:35 +0000 (08:32 -0600)]
Merge "core: Fix handling of maximum length lines in config files."

16 months agores_http_post: Enable GMime in NetBSD.
Alexander Traud [Mon, 5 Mar 2018 14:15:03 +0000 (15:15 +0100)]
res_http_post: Enable GMime in NetBSD.

ASTERISK-27719

Change-Id: I230c5f9f316b2e9465c093c13580f72ebbaf67a7

16 months agoMerge "pjproject: Add cache_pools debugging option."
Jenkins2 [Mon, 5 Mar 2018 14:09:11 +0000 (08:09 -0600)]
Merge "pjproject: Add cache_pools debugging option."

16 months agoBuildSystem: Enable autotools in NetBSD.
Alexander Traud [Mon, 5 Mar 2018 10:16:12 +0000 (11:16 +0100)]
BuildSystem: Enable autotools in NetBSD.

ASTERISK-27716

Change-Id: I52525e35e1620341272219911d054a1e3d3ec01e

16 months agoBuildSystem: AC_PATH_PROG sets to colon character when not found.
Alexander Traud [Mon, 5 Mar 2018 09:42:10 +0000 (10:42 +0100)]
BuildSystem: AC_PATH_PROG sets to colon character when not found.

ASTERISK-27715
Reported by: Corey Farrell

Change-Id: I0d6d9572d1352dc7ad30c9917173f1e980d8c938

16 months agochan_unistim: NetBSD has an incompatible struct in_pktinfo.
Alexander Traud [Sat, 3 Mar 2018 15:06:13 +0000 (16:06 +0100)]
chan_unistim: NetBSD has an incompatible struct in_pktinfo.

ASTERISK-27714
Reported by: John Nemeth

Change-Id: I1b84a89315a5f61222123d21bf35c59224da8990

16 months agoBuildSystem: Cast any intptr_t explicitly to its proposed type.
Alexander Traud [Sat, 3 Mar 2018 14:30:47 +0000 (15:30 +0100)]
BuildSystem: Cast any intptr_t explicitly to its proposed type.

ASTERISK-27713

Change-Id: I90c769e3c7f8c26de8a3af11335862cec15a1b22

16 months agoBuildSystem: Detect whether uselocale(.) is available.
Alexander Traud [Sat, 3 Mar 2018 12:56:03 +0000 (13:56 +0100)]
BuildSystem: Detect whether uselocale(.) is available.

ASTERISK-27712
Reported by: Joerg Sonnenberger, D'Arcy Cain

Change-Id: Idf1c9d43617a3e13028b95b313415903d80ef807

16 months agoBuildSystem: Avoid re-defining of pthread_* on NetBSD.
Alexander Traud [Sat, 3 Mar 2018 09:53:12 +0000 (10:53 +0100)]
BuildSystem: Avoid re-defining of pthread_* on NetBSD.

ASTERISK-27711

Change-Id: Idc9194035b2958b99f6b01eb5b438d45a074565b

16 months agoBuildSystem: Install init scripts on openSUSE Tumbleweed.
Alexander Traud [Fri, 2 Mar 2018 13:05:25 +0000 (14:05 +0100)]
BuildSystem: Install init scripts on openSUSE Tumbleweed.

ASTERISK-27710

Change-Id: I4c777e41b31d4415bbe21cb435ad47b43ebb5467

16 months agoBuildSystem: Avoid == for comparison in ./configure.
Alexander Traud [Fri, 2 Mar 2018 11:12:17 +0000 (12:12 +0100)]
BuildSystem: Avoid == for comparison in ./configure.

ASTERISK-27709
Reported by: John Nemeth

Change-Id: I11b1ae8fd404c04066f1458f5d71f9536359d58d

16 months agocore: Remove ABI effects of MALLOC_DEBUG.
Richard Mudgett [Tue, 20 Feb 2018 01:55:50 +0000 (19:55 -0600)]
core: Remove ABI effects of MALLOC_DEBUG.

This allows asterisk to be compiled with MALLOC_DEBUG to load modules
built without MALLOC_DEBUG.  Now pre-compiled third-party modules will
still work regardless of MALLOC_DEBUG being enabled or not.

Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10

16 months agoMerge "gitreview: Reorder and add padding."
Jenkins2 [Thu, 1 Mar 2018 15:08:55 +0000 (09:08 -0600)]
Merge "gitreview: Reorder and add padding."

16 months agoMerge "res_pjsip_refer.c: Fix attended transfer race condition crash."
Jenkins2 [Thu, 1 Mar 2018 14:44:21 +0000 (08:44 -0600)]
Merge "res_pjsip_refer.c: Fix attended transfer race condition crash."

16 months agopjproject: Add cache_pools debugging option.
Richard Mudgett [Tue, 27 Feb 2018 21:40:18 +0000 (15:40 -0600)]
pjproject: Add cache_pools debugging option.

The pool cache gets in the way of finding use after free errors of memory
pool contents.  Tools like valgrind and MALLOC_DEBUG don't know when a
pool is released because it gets put into the cache instead of being
freed.

* Added the "cache_pools" option to pjproject.conf.  Disabling the option
helps track down pool content mismanagement when using valgrind or
MALLOC_DEBUG.  The cache gets in the way of determining if the pool
contents are used after free and who freed it.

To disable the pool caching simply disable the cache_pools option in
pjproject.conf and restart Asterisk.

Sample pjproject.conf setting:
[startup]
cache_pools=no

* Made current users of the caching pool factory initialization and
destruction calls call common routines to create and destroy cached pools.

ASTERISK-27704

Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828

16 months agoMerge "Add extended properties to rtp_engine for RTP retransmission support."
Jenkins2 [Mon, 26 Feb 2018 01:19:53 +0000 (19:19 -0600)]
Merge "Add extended properties to rtp_engine for RTP retransmission support."

16 months agogitreview: Reorder and add padding.
Corey Farrell [Wed, 31 Jan 2018 17:48:08 +0000 (12:48 -0500)]
gitreview: Reorder and add padding.

Change-Id: I459dc320a8c9452a01eed6f403d786741587c890

16 months agoapps/app_amd.c: Fixed total time and silence calculations
Michael Cargile [Sat, 24 Feb 2018 03:24:10 +0000 (22:24 -0500)]
apps/app_amd.c: Fixed total time and silence calculations

Between Asterisk 11 and Asterisk 13 there was a significant increase
in the number of AST_FRAME_NULL frames being processed by app_amd.c's
main loop. Each AST_FRAME_NULL frame was being counted as 100ms
towards the total time and silence. This may have been accurate
when app_amd.c was orginally added, but it is not in Asterisk 13.
As such the total analysis time and silence calculations were way
off effectively breaking app_amd.c

* Additional debug messages were added
* AST_FRAME_NULL are now ignored

ASTERISK-27610

Change-Id: I18aca01af98f87c1e168e6ae0d85c136d1df5ea9

16 months agoast_coredumper: Minor fixes
George Joseph [Fri, 23 Feb 2018 20:58:54 +0000 (13:58 -0700)]
ast_coredumper:  Minor fixes

* Fix --tarball-config so the option doesn't cause an error.

* Allow for missing /etc/os-release.

* Add a sleep between tarballing the coredump and removing the
  output directory to allow the filesystem to settle.

Change-Id: I73e03b13087978bcc7f6bc9f45753990f82d9d77

16 months agoAdd extended properties to rtp_engine for RTP retransmission support.
Ben Ford [Thu, 22 Feb 2018 20:27:26 +0000 (14:27 -0600)]
Add extended properties to rtp_engine for RTP retransmission support.

A couple of additional properties are needed in rtp_engine to enable
support for packet retransmission: AST_RTP_PROPERTY_RETRANS_RECV and
AST_RTP_PROPERTY_RETRANS_SEND. These will both be enabled automatically
if an endpoint has the webrtc option enabled. While this adds no
functionality currently, it will serve as a building block for future
changes for RTP retransmission support.

For more information, refer to the wiki page:
https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements

Change-Id: Ic598acd042a045f9d10e5bdccb66f4efc9e587cc

16 months agocore: Fix handling of maximum length lines in config files.
Corey Farrell [Fri, 23 Feb 2018 16:09:46 +0000 (11:09 -0500)]
core: Fix handling of maximum length lines in config files.

When a line is the maximum length "\n" is found at sizeof(buf) - 2 since
the last character is actually the null terminator.  In addition if a
line was exactly 8190 plus a multiple of 8192 characters long the config
parser would skip the following line.

Additionally fix comment in voicemail.conf sample config.  It previously
stated that emailbody can only contain up to 512 characters which is
always wrong.  The buffer is normally 8192 characters unless LOW_MEMORY
is enabled then it is 512 characters.  The updated comment states that
the line can be up to 8190 or 510 characters since the line feed and
NULL terminator each use a character.

ASTERISK-26688 #close

Change-Id: I80864a0d40d2e2d8cd79d72af52a8f0a3a99c015

16 months agoMerge "install_prereq: Update FreeBSD libraries."
Jenkins2 [Fri, 23 Feb 2018 15:19:06 +0000 (09:19 -0600)]
Merge "install_prereq: Update FreeBSD libraries."

16 months agoMerge "func_audiohookinherit: Remove deprecated module."
Joshua Colp [Fri, 23 Feb 2018 15:02:08 +0000 (09:02 -0600)]
Merge "func_audiohookinherit: Remove deprecated module."

16 months agoMerge "res_rtp_asterisk: Fix ICE candidate nomination"
George Joseph [Fri, 23 Feb 2018 14:26:50 +0000 (08:26 -0600)]
Merge "res_rtp_asterisk: Fix ICE candidate nomination"

16 months agores_pjsip_refer.c: Fix attended transfer race condition crash.
Richard Mudgett [Thu, 22 Feb 2018 19:53:20 +0000 (13:53 -0600)]
res_pjsip_refer.c: Fix attended transfer race condition crash.

The transferrer's session channel was destroyed by the transferrer's
serializer thread in a race condition with the transfer target's
serializer thread during an attended transfer.  The transfer target's
serializer was attempting to clean up a deferred end status on behalf of
the transferrer's channel when it should have passed the action to the
transferrer's serializer.  When the transfer target's serializer lost the
race then both threads wind up trying to end the transferrer's session.

* Push the ast_sip_session_end_if_deferred() call onto the transferrer's
serializer to avoid a race condition that results in a crash.  The
session_end() function that could be called by
ast_sip_session_end_if_deferred() really must be executed by the
transferrer's serializer to avoid this kind of crash.

ASTERISK-27568

Change-Id: Iacda724e7cb24d7520e49b2fd7e504aa398d7238

16 months agoMerge "bridge_simple.c: Fix stream topology handling."
Jenkins2 [Thu, 22 Feb 2018 19:34:41 +0000 (13:34 -0600)]
Merge "bridge_simple.c: Fix stream topology handling."

16 months agoinstall_prereq: Update FreeBSD libraries.
Alexander Traud [Sat, 17 Feb 2018 09:28:46 +0000 (10:28 +0100)]
install_prereq: Update FreeBSD libraries.

deleted
 autoconf gcc libsamplerate sqlite

changed
 binutils to libbfd
 freetds-devel to freetds
 gmime2 to gmime26
 mysql55-client to mysql57-client

added
 alsa-lib bison bzip2 cclient corosync doxygen libedit flex graphviz
 libhoard libical libilbc libltdl lua neon newt net-snmp
 openldap-client openssl patch pkgconf portaudio postgresql10-client
 python radcli speexdsp subversion uriparser xmlstarlet libzip

ASTERISK-27686

Change-Id: Ibe88c9b26e59c30d26cdb313a3ef01c9f37ac80d

16 months agofunc_audiohookinherit: Remove deprecated module.
Sean Bright [Thu, 22 Feb 2018 16:54:33 +0000 (11:54 -0500)]
func_audiohookinherit: Remove deprecated module.

Change-Id: Id52f719078a65c4b2eee7ab99d761eba6b6aed94

16 months agoMerge "manager.c: Fix lseek() parameter order."
Jenkins2 [Thu, 22 Feb 2018 00:42:18 +0000 (18:42 -0600)]
Merge "manager.c: Fix lseek() parameter order."

16 months agoMerge "AST-2018-006: Properly handle WebSocket frames with 0 length payload."
Kevin Harwell [Wed, 21 Feb 2018 20:11:50 +0000 (14:11 -0600)]
Merge "AST-2018-006: Properly handle WebSocket frames with 0 length payload."

16 months agoMerge "AST-2018-003: Crash with an invalid SDP fmtp attribute"
Kevin Harwell [Wed, 21 Feb 2018 20:11:39 +0000 (14:11 -0600)]
Merge "AST-2018-003: Crash with an invalid SDP fmtp attribute"

16 months agoMerge "AST-2018-002: Crash with an invalid SDP media format description"
Kevin Harwell [Wed, 21 Feb 2018 20:11:29 +0000 (14:11 -0600)]
Merge "AST-2018-002: Crash with an invalid SDP media format description"

16 months agomanager.c: Fix lseek() parameter order.
Richard Mudgett [Wed, 21 Feb 2018 18:52:39 +0000 (12:52 -0600)]
manager.c: Fix lseek() parameter order.

ASTERISK-27659

Change-Id: I04a2705d2cb7df250769967bc59e2b397a49b797

16 months agobridge_simple.c: Fix stream topology handling.
Richard Mudgett [Tue, 20 Feb 2018 19:11:23 +0000 (13:11 -0600)]
bridge_simple.c: Fix stream topology handling.

The handling of stream topologies was not protected by channel locks in
simple_bridge_request_stream_topology_change().

* Fixed topology handling to be protected by channel locks where needed in
simple_bridge_request_stream_topology_change().

ASTERISK-27692

Change-Id: Ica5d78a6c7ecf4f0b95fb16de28d3889b32c4776

16 months agoMerge "AST-2018-005: res_pjsip_transport_management: Move to core"
George Joseph [Wed, 21 Feb 2018 16:42:28 +0000 (10:42 -0600)]
Merge "AST-2018-005: res_pjsip_transport_management:  Move to core"

16 months agoMerge "AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)"
George Joseph [Wed, 21 Feb 2018 16:42:19 +0000 (10:42 -0600)]
Merge "AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)"

16 months agoMerge "AST-2018-005: Add a check for NULL tdata in ast_sip_failover_request"
George Joseph [Wed, 21 Feb 2018 16:42:07 +0000 (10:42 -0600)]
Merge "AST-2018-005: Add a check for NULL tdata in ast_sip_failover_request"

16 months agoMerge "AST-2018-001: rtp / channel: Don't allow an unnegotiated format to be passed...
Joshua Colp [Wed, 21 Feb 2018 16:38:49 +0000 (10:38 -0600)]
Merge "AST-2018-001: rtp / channel: Don't allow an unnegotiated format to be passed up."

16 months agoAST-2018-006: Properly handle WebSocket frames with 0 length payload.
Sean Bright [Mon, 5 Feb 2018 22:46:26 +0000 (17:46 -0500)]
AST-2018-006: Properly handle WebSocket frames with 0 length payload.

In ast_websocket_read() we were not adequately checking that the
payload_len was non-zero before passing it to ws_safe_read(). Calling
ws_safe_read with a len argument of 0 will result in a busy loop until
the underlying socket is closed.

ASTERISK-27658 #close

Change-Id: I9d59f83bc563f711df1a6197c57de473f6b0663a

16 months agoAST-2018-003: Crash with an invalid SDP fmtp attribute
Kevin Harwell [Wed, 31 Jan 2018 19:37:54 +0000 (13:37 -0600)]
AST-2018-003: Crash with an invalid SDP fmtp attribute

pjproject's fmtp retrieval function failed to catch invalid fmtp attributes.
Because of this Asterisk would crash if given an SDP with an invalid fmtp
attribute.

When retrieving the format this patch now makes sure the fmtp attribute is
available. If not available it now returns an error status.

ASTERISK-27583 #close

Change-Id: I5cebe000ce2d846cae3af33b6d72c416e51caf2f

16 months agoAST-2018-002: Crash with an invalid SDP media format description
Kevin Harwell [Wed, 31 Jan 2018 19:33:16 +0000 (13:33 -0600)]
AST-2018-002: Crash with an invalid SDP media format description

pjproject's media format parsing algorithm failed to catch invalid values.
Because of this Asterisk would crash if given an SDP with a invalid media
format description.

When parsing the media format description this patch now properly parses the
value and returns an error status if it can't successfully parse/convert the
value.

ASTERISK-27582 #close

Change-Id: I883b3a4ef85b6972397f7b56bf46c5779c55fdd6

16 months agoAST-2018-005: res_pjsip_transport_management: Move to core
George Joseph [Tue, 6 Feb 2018 18:07:18 +0000 (11:07 -0700)]
AST-2018-005: res_pjsip_transport_management:  Move to core

Since res_pjsip_transport_management provides several attack
mitigation features, its functionality moved to res_pjsip and
this module has been removed.  This way the features will always
be available if res_pjsip is loaded.

ASTERISK-27618
Reported By: Sandro Gauci

Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d

16 months agoAST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)
George Joseph [Tue, 6 Feb 2018 17:28:49 +0000 (10:28 -0700)]
AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)

pjsip_distributor:
   authenticate() creates a tdata and uses it to send a challenge or
   failure response.  When pjsip_endpt_send_response2() succeeds, it
   automatically decrements the tdata ref count but when it fails, it
   doesn't.  Since we weren't checking for a return status, we weren't
   decrementing the count ourselves on error and were therefore leaking
   tdatas.

res_pjsip_session:
   session_reinvite_on_rx_request wasn't decrementing the ref count
   if an error happened while sending a 491 response.
   pre_session_setup wasn't decrementing the ref count if
   while sending an error after a pjsip_inv_verify_request failure.

res_pjsip:
   ast_sip_send_response wasn't decrementing the ref count on error.

ASTERISK-27618
Reported By: Sandro Gauci

Change-Id: Iab33a6c7b6fba96148ed465b690ba8534ac961bf

16 months agoAST-2018-005: Add a check for NULL tdata in ast_sip_failover_request
George Joseph [Tue, 6 Feb 2018 17:21:32 +0000 (10:21 -0700)]
AST-2018-005: Add a check for NULL tdata in ast_sip_failover_request

It was discovered that there are some corner cases where a pjsip tsx
might have no last_tx so calling ast_sip_failover_request with
a NULL last_tx as its tdata would cause a crash.

ASTERISK-27618
Reported By:  Sandro Gauci

Change-Id: Ic2b63f6d4ae617c4c19dcdec2a7a6156b54fd15b

16 months agoAST-2018-004: Restrict the number of Accept headers in a SUBSCRIBE.
Joshua Colp [Wed, 7 Feb 2018 14:09:14 +0000 (14:09 +0000)]
AST-2018-004: Restrict the number of Accept headers in a SUBSCRIBE.

When receiving a SUBSCRIBE request the Accept headers from it are
stored locally. This operation has a fixed limit of 32 Accept headers
but this limit was not enforced. As a result it was possible for
memory outside of the allocated space to get written to resulting
in a crash.

This change enforces the limit so only 32 Accept headers are
processed.

ASTERISK-27640
Reported By: Sandro Gauci

Change-Id: I99a814b10b554b13a6021ccf41111e5bc95e7301

16 months agoAST-2018-001: rtp / channel: Don't allow an unnegotiated format to be passed up.
Joshua Colp [Sat, 13 Jan 2018 14:04:33 +0000 (14:04 +0000)]
AST-2018-001: rtp / channel: Don't allow an unnegotiated format to be passed up.

When an RTP packet is received by an RTP engine it has to map the
payload into the Asterisk format. The code was incorrectly checking
our own static list for ALL payloads if it couldn't find a negotiated one.
This included dynamic payloads. If the payload mapped to a format
of a different type (for example receiving a video packet on an audio
RTP instance) then the core stream code could cause a crash if a legacy
channel driver was in use as no stream would be present.

To provide further protection the core stream code will no longer assume
that a video or audio frame will always have a stream for legacy channel
drivers. If no stream is present the frame is dropped.

ASTERISK-27488

Change-Id: I022556f524ad8379ee73f14037040af17ea3316a