asterisk/asterisk.git
18 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"

18 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"

18 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."

18 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"

18 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"

18 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

18 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

18 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

18 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

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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."

18 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

18 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

18 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

18 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

18 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

18 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

18 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

18 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

18 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."

18 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."

18 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

18 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."

18 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

18 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

18 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

18 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

18 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

18 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."

18 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."

18 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"

18 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

18 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."

18 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

18 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

18 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."

18 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."

18 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"

18 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"

18 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

18 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

18 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"

18 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)"

18 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"

18 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."

18 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

18 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

18 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

18 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

18 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

18 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

18 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

18 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

18 months agoMerge "channel.c: Fix typo."
Jenkins2 [Wed, 21 Feb 2018 12:47:33 +0000 (06:47 -0600)]
Merge "channel.c: Fix typo."

18 months agoMerge "res_http_websocket: Don't leak memory on read failure"
Jenkins2 [Tue, 20 Feb 2018 19:55:58 +0000 (13:55 -0600)]
Merge "res_http_websocket: Don't leak memory on read failure"

18 months agochannel.c: Fix typo.
Richard Mudgett [Tue, 20 Feb 2018 19:11:11 +0000 (13:11 -0600)]
channel.c: Fix typo.

Change-Id: I4eeedf89085697e81c354eb92d546686c67b0b5b

18 months agochan_sip: Emit a second ringing event to ensure channel is found.
Joshua Colp [Tue, 20 Feb 2018 16:33:43 +0000 (12:33 -0400)]
chan_sip: Emit a second ringing event to ensure channel is found.

When constructing a dialog-info+xml NOTIFY message a ringing channel
is found if the state is ringing and further information is placed into
the message. Due to the migration to the Stasis message bus this did
not always work as expected.

This change raises a second ringing event in such a way to guarantee
that the event is received by chan_sip and another lookup is done to
find the ringing channel.

ASTERISK-24488

Change-Id: I547a458fc59721c918cb48be060cbfc3c88bcf9c

18 months agoMerge "doc/lang/language-criteria.txt: Link to wiki."
Jenkins2 [Tue, 20 Feb 2018 16:34:37 +0000 (10:34 -0600)]
Merge "doc/lang/language-criteria.txt: Link to wiki."

18 months agoMerge "core: Rename sounds_index.c to sounds.c."
Jenkins2 [Tue, 20 Feb 2018 13:05:55 +0000 (07:05 -0600)]
Merge "core: Rename sounds_index.c to sounds.c."

18 months agoMerge "BuildSystem: Allow newer autotools on OpenBSD."
Joshua Colp [Tue, 20 Feb 2018 12:20:52 +0000 (06:20 -0600)]
Merge "BuildSystem: Allow newer autotools on OpenBSD."

18 months agoMerge "config: Fix locking for extconfig reload."
Jenkins2 [Tue, 20 Feb 2018 12:14:08 +0000 (06:14 -0600)]
Merge "config: Fix locking for extconfig reload."

18 months agoMerge "BuildSystem: Use single bootstrap.sh for Asterisk and menuselect."
Joshua Colp [Tue, 20 Feb 2018 11:11:29 +0000 (05:11 -0600)]
Merge "BuildSystem: Use single bootstrap.sh for Asterisk and menuselect."

18 months agoMerge "BuildSystem: Fix a typo related to ./configure --prefix=<path> on OpenBSD."
Joshua Colp [Tue, 20 Feb 2018 11:11:14 +0000 (05:11 -0600)]
Merge "BuildSystem: Fix a typo related to ./configure --prefix=<path> on OpenBSD."

18 months agodoc/lang/language-criteria.txt: Link to wiki.
Corey Farrell [Tue, 20 Feb 2018 10:31:26 +0000 (05:31 -0500)]
doc/lang/language-criteria.txt: Link to wiki.

This document is out of date and is superseded by content on the
Asterisk wiki.

ASTERISK-24386 #close

Change-Id: Idbf95b27b096c205251e1bbb560c79224ba81822

18 months agoMerge "optional_api: Refactor to use vector's and standard allocators."
Jenkins2 [Tue, 20 Feb 2018 02:40:20 +0000 (20:40 -0600)]
Merge "optional_api: Refactor to use vector's and standard allocators."

18 months agoMerge "rtp_engine: Load format name / mime type in uppercase again."
Jenkins2 [Tue, 20 Feb 2018 02:00:24 +0000 (20:00 -0600)]
Merge "rtp_engine: Load format name / mime type in uppercase again."

18 months agoMerge "install_prereq: Update OpenBSD libraries."
Jenkins2 [Tue, 20 Feb 2018 01:19:32 +0000 (19:19 -0600)]
Merge "install_prereq: Update OpenBSD libraries."

18 months agoMerge "BuildSystem: Enable IMAP storage on OpenBSD."
Jenkins2 [Tue, 20 Feb 2018 00:09:11 +0000 (18:09 -0600)]
Merge "BuildSystem: Enable IMAP storage on OpenBSD."

18 months agoMerge "res_pjsip_header_funcs: Various cleanups"
Jenkins2 [Tue, 20 Feb 2018 00:02:32 +0000 (18:02 -0600)]
Merge "res_pjsip_header_funcs: Various cleanups"

18 months agoMerge "res_pjsip: Use pjsip_sip_uri.user_param instead of other_param"
Jenkins2 [Mon, 19 Feb 2018 14:54:56 +0000 (08:54 -0600)]
Merge "res_pjsip: Use pjsip_sip_uri.user_param instead of other_param"

18 months agores_rtp_asterisk: Fix ICE candidate nomination
Thomas Guebels [Mon, 19 Feb 2018 10:21:30 +0000 (11:21 +0100)]
res_rtp_asterisk: Fix ICE candidate nomination

If the ICE role is not set right away, we might have a role conflict
that stays undetected and ICE finishing with successful tests and no
candidate nominated. This was introduced by ASTERISK-27088.

To avoid this, we set the role as soon as before but only if the ICE
state permits it: still checking and not yet nominating candidates or
completed.

ASTERISK-27646

Change-Id: I5dbc69ad63cacbb067922850fbb113d479bd729c

18 months agores_http_websocket: Don't leak memory on read failure
Sean Bright [Sun, 18 Feb 2018 16:27:38 +0000 (11:27 -0500)]
res_http_websocket: Don't leak memory on read failure

Change-Id: Ic449ea832bc81a1671c0e910c5fbe8c683e3da89

18 months agoMerge "Deprecate legacy modules."
Jenkins2 [Mon, 19 Feb 2018 12:59:00 +0000 (06:59 -0600)]
Merge "Deprecate legacy modules."

18 months agoMerge "manager: Add AMI event Load/Unload"
Jenkins2 [Mon, 19 Feb 2018 12:43:27 +0000 (06:43 -0600)]
Merge "manager: Add AMI event Load/Unload"

18 months agoMerge "contrib/script/sip_to_pjsip: add support for realtime"
Jenkins2 [Mon, 19 Feb 2018 12:33:24 +0000 (06:33 -0600)]
Merge "contrib/script/sip_to_pjsip: add support for realtime"

18 months agoMerge "res_pjsip: Endpoint destruction does not free DTLS configuration"
Jenkins2 [Mon, 19 Feb 2018 12:23:35 +0000 (06:23 -0600)]
Merge "res_pjsip: Endpoint destruction does not free DTLS configuration"

18 months agocore: Rename sounds_index.c to sounds.c.
Corey Farrell [Mon, 19 Feb 2018 09:57:45 +0000 (04:57 -0500)]
core: Rename sounds_index.c to sounds.c.

This will make the source filename match the 'module reload sounds'
command.  This will allow conversion to a built-in module in Asterisk 16
without needing to redefine AST_MODULE.

Change-Id: Ifb8e489575b27eb33d8c0b6a531f266670557f6e

18 months agoconfig: Fix locking for extconfig reload.
Corey Farrell [Mon, 19 Feb 2018 08:49:45 +0000 (03:49 -0500)]
config: Fix locking for extconfig reload.

Expand locking to include full reload process for extconfig to ensure
nothing can read the config mappings between clearing and reloading.

Change-Id: I378316bad04f1b599ea82d0fef62b8978a644b92

18 months agores_pjsip_header_funcs: Various cleanups
Sean Bright [Thu, 15 Feb 2018 20:09:33 +0000 (15:09 -0500)]
res_pjsip_header_funcs: Various cleanups

 * Prefer strcasecmp() over stricmp()
 * Use a list with no lock since we never actually lock
 * Minor cleanups to error messages

Change-Id: I8446f44795ee8f3072e1c1f9193c6912dfc0c42b

18 months agortp_engine: Load format name / mime type in uppercase again.
Alexander Traud [Sat, 17 Feb 2018 14:49:15 +0000 (15:49 +0100)]
rtp_engine: Load format name / mime type in uppercase again.

This reverts a previous change partly.

ASTERISK-27689

Change-Id: Ia3d2f282db6995be8c1c253b5d52f6038761e8af

18 months agoBuildSystem: Use single bootstrap.sh for Asterisk and menuselect.
Corey Farrell [Fri, 16 Feb 2018 23:58:35 +0000 (18:58 -0500)]
BuildSystem: Use single bootstrap.sh for Asterisk and menuselect.

This causes the root bootstrap.sh script to generate configure scripts
for both Asterisk and menuselect.  This ensures that both configure
scripts are generated with the same version of autotools and avoids
situations where shared autoconf macros get modified without
regenerating the menuselect script.

Change-Id: I2bfd8537bbb63b3d46b11efabbb15eaaf9ef731a

18 months agoMerge "bridge_roles: Use a non-locking linked list where appropriate"
Jenkins2 [Fri, 16 Feb 2018 23:48:54 +0000 (17:48 -0600)]
Merge "bridge_roles: Use a non-locking linked list where appropriate"

19 months agores_pjsip: Endpoint destruction does not free DTLS configuration
Sean Bright [Fri, 16 Feb 2018 19:33:06 +0000 (14:33 -0500)]
res_pjsip: Endpoint destruction does not free DTLS configuration

ASTERISK-27679 #close
Reported by: Mak Dee

Change-Id: I89a2783a11be0763bf123d1619ed176b6225cf42

19 months agoinstall_prereq: Update OpenBSD libraries.
Alexander Traud [Fri, 16 Feb 2018 18:42:01 +0000 (19:42 +0100)]
install_prereq: Update OpenBSD libraries.

deleted
 jack sqlite

renamed
 freetds-0.63p1-msdblib to freetds
 mysql-client to mariadb-client

added
 bison bzip2 c-client doxygen e2fsprogs graphviz gsm libical jansson libltdl
 lua neon net-snmp libsrtp portaudio-svn postgresql-client python speexdsp
 subversion uriparser xmlstarlet
 fftw3 libsndfile

ASTERISK-27684

Change-Id: I26bdcb0a1d0e484a8dad1052da97f194aefd3370

19 months agoBuildSystem: Allow newer autotools on OpenBSD.
Alexander Traud [Fri, 16 Feb 2018 18:30:45 +0000 (19:30 +0100)]
BuildSystem: Allow newer autotools on OpenBSD.

ASTERISK-27683

Change-Id: I5ec9dafbb0c16b6f2740c641980bc2eaaf995624

19 months agoMerge "res_calendar: Specialized calendars depend on symbols of general calendar."
Jenkins2 [Fri, 16 Feb 2018 16:40:31 +0000 (10:40 -0600)]
Merge "res_calendar: Specialized calendars depend on symbols of general calendar."

19 months agocontrib/script/sip_to_pjsip: add support for realtime
Torrey Searle [Mon, 16 Oct 2017 12:36:50 +0000 (14:36 +0200)]
contrib/script/sip_to_pjsip: add support for realtime

Add a new script that can read from legacy realtime peers & generate
an sql file for populating pjsip endpoints, identify, and aor records.

ASTERISK-27348 #close

Change-Id: Idd3d7968a3c9c3ee7936d21acbdaf001b429bf65

19 months agoMerge "BuildSystem: Invoke ldconfig with previous path."
Jenkins2 [Fri, 16 Feb 2018 14:46:12 +0000 (08:46 -0600)]
Merge "BuildSystem: Invoke ldconfig with previous path."

19 months agoMerge "BuildSystem: Enable system provided libedit on OpenBSD."
Jenkins2 [Fri, 16 Feb 2018 14:02:30 +0000 (08:02 -0600)]
Merge "BuildSystem: Enable system provided libedit on OpenBSD."

19 months agoBuildSystem: Fix a typo related to ./configure --prefix=<path> on OpenBSD.
Alexander Traud [Fri, 16 Feb 2018 13:52:36 +0000 (14:52 +0100)]
BuildSystem: Fix a typo related to ./configure --prefix=<path> on OpenBSD.

Reported by: Stuart Henderson

Change-Id: Ieae8624f48b6ae78cf29930b9a45a3c842c7a764

19 months agoMerge "BuildSystem: Remove chan_h323 leftovers."
Jenkins2 [Fri, 16 Feb 2018 13:37:23 +0000 (07:37 -0600)]
Merge "BuildSystem: Remove chan_h323 leftovers."