Commit Graph

31176 Commits

Author SHA1 Message Date
Jenkins2
076ff479ac Merge "crypto.h: Repair ./configure --with-ssl=PATH." 2018-06-12 09:53:15 -05:00
Joshua Colp
782064852a Merge "res_crypto: Allow OpenSSL configured with no-deprecated." 2018-06-12 08:41:30 -05:00
Jenkins2
a46e658bc0 Merge "res_srtp: Repair ./configure --with-ssl=PATH." 2018-06-12 08:03:06 -05:00
Jenkins2
56ddc0bd80 Merge "func_odbc: NODATA if SQLNumResultCols returned 0 columns on readsql" 2018-06-12 07:51:26 -05:00
Jenkins2
200956dcc7 Merge "chan_pjsip: Register for "BEFORE_MEDIA" responses" 2018-06-11 18:14:14 -05:00
Kevin Harwell
7d01ac13a1 Merge "AST-2018-008: Fix enumeration of endpoints from ACL rejected addresses." 2018-06-11 14:34:36 -05:00
Sean Bright
b649682caa AST-2018-007: iostreams potential DoS when client connection closed prematurely
Before Asterisk sends an HTTP response (at least in the case of errors),
it attempts to read & discard the content of the request. If the client
lies about the Content-Length, or the connection is closed from the
client side before "Content-Length" bytes are sent, the request handling
thread will busy loop.

ASTERISK-27807

Change-Id: I945c5fc888ed92be625b8c35039fc6d2aa89c762
2018-06-11 09:28:43 -06:00
Richard Mudgett
81ac32a85f AST-2018-008: Fix enumeration of endpoints from ACL rejected addresses.
When endpoint specific ACL rules block a SIP request they respond with a
403 forbidden.  However, if an endpoint is not identified then a 401
unauthorized response is sent.  This vulnerability just discloses which
requests hit a defined endpoint.  The ACL rules cannot be bypassed to gain
access to the disclosed endpoints.

* Made endpoint specific ACL rules now respond with a 401 unauthorized
which is the same as if an endpoint were not identified.  The fix is
accomplished by replacing the found endpoint with the artificial endpoint
which always fails authentication.

ASTERISK-27818

Change-Id: Icb275a54ff8e2df6c671a6d9bda37b5d732b3b32
2018-06-11 09:28:43 -06:00
Alexander Traud
99aed78078 crypto.h: Repair ./configure --with-ssl=PATH.
ASTERISK-27908

Change-Id: Iac49d9f82faeb8a4611c6805906bd6d650b1b1d8
2018-06-08 13:01:53 +02:00
Alexander Traud
ca682f0030 res_crypto: Allow OpenSSL configured with no-deprecated.
The header <openssl/rsa.h> had to be included explicitly.

ASTERISK-27906

Change-Id: I41743801eed998c039d73db7a0762d104a4f75b2
2018-06-08 11:03:35 +02:00
Alexander Traud
234bf4b7ff res_srtp: Repair ./configure --with-ssl=PATH.
ASTERISK-27905

Change-Id: Ibb7dc148a0048f4f9c3b12937ba4240dff0d15e2
2018-06-08 09:41:01 +02:00
Alexei Gradinari
65ff2f057a func_odbc: NODATA if SQLNumResultCols returned 0 columns on readsql
The functions acf_odbc_read/cli_odbc_read ignore a number of columns
returned by the SQLNumResultCols.
If the number of columns is zero it means no data.
In this case, a SQLFetch function has to be not called,
because it will cause an error.

ASTERISK-27888 #close

Change-Id: Ie0f7bdac6c405aa5bbd38932c7b831f90729ee19
2018-06-07 08:39:39 -06:00
George Joseph
1725eaf8fb chan_pjsip: Register for "BEFORE_MEDIA" responses
chan_pjsip wasn't registering for "BEFORE_MEDIA" responses which meant
it was not updating HANGUPCAUSE for 4XX responses.  If the remote end
sent a "180 Ringing", then a "486 Busy", the hangup cause was left at
"180 Normal Clearing".

* Removed chan_pjsip_incoming_response from the original session
  supplement (which was handling only "AFTER MEDIA") and added it to a
  new session supplement which accepts both "BEFORE_MEDIA" and
  "AFTER_MEDIA".

* Also cleaned up some cleanup code in load module.

ASTERISK-27902

Change-Id: If9b860541887aca8ac2c9f2ed51ceb0550fb007a
2018-06-07 08:31:45 -06:00
Alexander Traud
9f2eb17005 ooh323c: GCC 8.1 warned about output truncated before terminating nul.
ASTERISK-27901

Change-Id: I5a8e894f4924ef52e3094f6870656a559d67f3d7
2018-06-07 14:19:39 +02:00
George Joseph
7b5fc5d20f Merge "pjsip_options: handle modification of qualify options in realtime" 2018-06-06 10:12:58 -05:00
George Joseph
fdc931ffc6 Merge "pjsip_options: show/reload AOR qualify options using CLI" 2018-06-06 10:11:06 -05:00
George Joseph
49196c3a7b Merge "app_confbridge: Add talking indicator for ConfBridgeList AMI response" 2018-06-06 09:47:19 -05:00
George Joseph
13ac76a230 Merge "cdr_mysql: my_connect_db(): reduce indentation" 2018-06-06 08:12:48 -05:00
George Joseph
5978883d13 Merge "cdr_mysql: split mysql init out of my_load_module" 2018-06-06 08:12:38 -05:00
Joshua Colp
c98c1b3f74 Merge "bridge_channel.c: Fix Deadlock when using Local channels and fax gateway" 2018-06-06 05:46:47 -05:00
Joshua Colp
2151903a16 Merge "tcptls: Allow OpenSSL configured with no-dh." 2018-06-06 04:36:06 -05:00
George Joseph
76339b1962 Merge "tcptls.h: Repair ./configure --with-ssl=PATH." 2018-06-05 14:21:15 -05:00
Alexei Gradinari
7af5e86821 pjsip_options: show/reload AOR qualify options using CLI
Currentrly pjsip_options code does not handle the situation when the
AOR qualify options were changed.

Also there is no way to find out what qualify options are using.

This patch add CLI commands to show and synchronize Aor qualify options:
pjsip show qualify endpoint <id>
    Show the current qualify options for all Aors on the PJSIP endpoint.
pjsip show qualify aor <id>
    Show the PJSIP Aor current qualify options.
pjsip reload qualify endpoint <id>
    Synchronize the qualify options for all Aors on the PJSIP endpoint.
pjsip reload qualify aor <id>
    Synchronize the PJSIP Aor qualify options.

ASTERISK-27872

Change-Id: I1746d10ef2b7954f2293f2e606cdd7428068c38c
2018-06-05 14:46:51 -04:00
Alexei Gradinari
e46b442e38 pjsip_options: handle modification of qualify options in realtime
Currentrly pjsip_options code does not handle the situation when the
qualify options were changed in realtime database.
Only 'module reload res_pjsip' helps.

This patch add a check on contact add/update observers if the contact
qualify options are different than local aor qualify options.
If the qualify options were modified then synchronize
the pjsip_options AOR local state.

ASTERISK-27872

Change-Id: Id55210a18e62ed5d35a88e408d5fe84a3c513c62
2018-06-05 12:35:24 -06:00
George Joseph
99aad2f0af Merge "tcptls: Allow OpenSSL 1.1.x configured with enable-ssl3-method no-deprecated." 2018-06-05 13:01:31 -05:00
Joshua Colp
8b08a8437e Merge "app_meetme: Fix manager event documentation for several events." 2018-06-05 06:54:00 -05:00
Pirmin Walthert
e078558038 bridge_channel.c: Fix Deadlock when using Local channels and fax gateway
ast_indicate is invoked with the bridge locked. As ast_indicate locks the
other end of the bridge as well this can lead to a deadlock in some situations.
(Especially when a different thread does the same in the reverse order).
This patch calls ast_indicate after unlocking the bridge which fixes the
deadlock. Calling ast_indicate with these parameters without locking the
bridge should be safe as this is done at different places without a
bridge lock.

ASTERISK-27094 #close
Reported-by: David Brillert

Change-Id: I5f86c1e2ce75b9929a36ab589b18c450e62ea35f
2018-06-05 05:37:54 -06:00
George Joseph
437ab41881 app_sendtext: Allow content types other than text/plain
There was no real reason to limit the conteny type to text/plain other
than that's what it was limited to before.  Now any text/* content
type will be allowed for channel drivers that don't support enhanced
messaging and any type will be allowed for channel drivers that do
support enhanced messaging.

Change-Id: I94a90cfee98b4bc8e22aa5c0b6afb7b862f979d9
2018-06-04 13:20:34 -06:00
William McCall
a7f4121238 app_confbridge: Add talking indicator for ConfBridgeList AMI response
When an AMI client connects, it cannot determine if a user was talking
prior to a transition in the user speaking state (which would generate
a ConfbridgeTalking event). This patch causes app_confbridge to track the
talking state and make this state available via ConfBridgeList.

ASTERISK-27877 #close

Change-Id: I19b5284f34966c3fda94f5b99a7e40e6b89767c6
2018-06-01 07:46:30 -06:00
Joshua Colp
227f59fdac Merge "ast_coredumper: Fix output directory and variable precedence" 2018-05-31 05:16:08 -05:00
Richard Mudgett
6bbede84fb app_meetme: Fix manager event documentation for several events.
The MeetmeJoin, MeetmeLeave, MeetmeEnd, MeetmeMute, MeetmeTalking, and
MeetmeTalkRequest AMI events were documented with sending out a Usernum
header when the User header was actually output.

* Change the online documentation to match reality.

ASTERISK-27873
ASTERISK-25261

Change-Id: I437bc70618d07c183c9624b7069c2fcae7f17a39
2018-05-29 11:39:12 -06:00
Joshua Colp
c63cd006ba Merge "libasteriskssl: Allow OpenSSL 1.0.2 configured with no-deprecated." 2018-05-29 12:07:51 -05:00
Alexander Traud
24503fb600 tcptls.h: Repair ./configure --with-ssl=PATH.
asterisk/tcptls.h was included (explicitly, implicitly, or transitively). Those
inclusions got replaced by forward declarations. As side effect, the inclusions
got completed.

ASTERISK-27878

Change-Id: I9d102728e30336d6522e5e4ae9e964013a0835f7
2018-05-28 17:29:23 +02:00
Alexander Traud
d36338ce2b tcptls: Allow OpenSSL configured with no-dh.
Additionally, this change allows auto-negotiation of the elliptic curve/group
for servers, not only with OpenSSL 1.0.2 but also with OpenSSL 1.1.0 and newer.
This enables X25519 (since OpenSSL 1.1.0) and X448 (since OpenSSL 1.1.1) as a
side-effect.

ASTERISK-27876

Change-Id: I62c2aba4a630aefc231b71f646207e8c027d9497
2018-05-25 16:55:26 +02:00
Alexander Traud
91616f4524 tcptls: Allow OpenSSL 1.1.x configured with enable-ssl3-method no-deprecated.
ASTERISK-27874

Change-Id: Ica65113511c7a1c13f7988e7d9e7d9e7f3f620dd
2018-05-25 14:22:14 +02:00
Joshua Colp
4ea98e49f1 Merge "rtp: Add support for RTP extension negotiation and abs-send-time." 2018-05-24 15:26:57 -05:00
Joshua Colp
1a11fd5187 Merge "res/res_rtp_asterisk: ensure marker bit is correctly set on ssrc change" 2018-05-24 15:09:58 -05:00
George Joseph
2bf26ce5ac ast_coredumper: Fix output directory and variable precedence
The OUTPUTDIR variable in ast_debug_tools.conf.sample is now set
to "/tmp" instead of "/some/directory".

Variables set on the command line or that are already in the
environment now take predecence over variables set in the config files.

ASTERISK-27846
Reported by: Ted G

Change-Id: Ie8baec52d531886bf5849ec1d59bb59dc87ad387
2018-05-24 12:59:37 -06:00
Joshua Colp
fbb33ba6e8 Merge "tcptls: Repair ./configure --with-ssl=PATH." 2018-05-24 06:20:15 -05:00
Joshua Colp
f5c1e74524 Merge "app_queue: Update year Copyright and fix missing tabs in documentation" 2018-05-24 05:49:41 -05:00
Joshua Colp
ca9120a1f0 Merge "config.c: Fix successful DELETE treated as failure" 2018-05-24 05:49:21 -05:00
Joshua Colp
7e655b26d1 Merge "channel.c: Fix off nominal channel allocation failure path." 2018-05-24 05:18:16 -05:00
Torrey Searle
c5d2bf05f4 res/res_rtp_asterisk: ensure marker bit is correctly set on ssrc change
Certain race conditions between changing bridge types and DTMF can
cause the current FLAG_NEED_MARKER_BIT to send the marker bit before
the actual first packet of native bridging.

This logic keeps track of the ssrc the bridge is currently sending
and will correctly ensure the marker bit is set if SSRC as changed
from the previous sent packet.

ASTERISK-27845

Change-Id: I01858bd0235f1e5e629e20de71b422b16f55759b
2018-05-23 20:18:32 -06:00
Joshua Colp
25764691b0 Merge "netsock2: Add ast_sockaddr_resolve_first_af to netsock2 public API" 2018-05-23 12:10:13 -05:00
Joshua Colp
a507c73a78 rtp: Add support for RTP extension negotiation and abs-send-time.
When RTP was originally created it had the ability to place a single
extension in an RTP packet. In practice people wanted to potentially
put multiple extensions in one and so RFC 5285 (obsoleted by RFC
8285) came into existence. This allows RTP extensions to be negotiated
with a unique identifier to be used in the RTP packet, allowing
multiple extensions to be present in the packet.

This change extends the RTP engine API to add support for this. A
user of it can enable extensions and the API provides the ability to
retrieve the information (to construct SDP for example) and to provide
negotiated information (from SDP). The end result is that the RTP
engine can then query to see if the extension has been negotiated and
what unique identifier is to be used. It is then up to the RTP engine
implementation to construct the packet appropriately.

The first extension to use this support is abs-send-time which is
defined in the REMB draft[1] and is a second timestamp placed in an
RTP packet which is for when the packet has left the sending system.
It is used to more accurately determine the available bandwidth.

ASTERISK-27831

[1] https://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03

Change-Id: I508deac557867b1e27fc7339be890c8018171588
2018-05-23 09:41:59 -06:00
Richard Mudgett
1bec0c73b3 channel.c: Fix off nominal channel allocation failure path.
__ast_channel_alloc_ap() had a failure exit path that hadn't setup the fd
descriptors to -1 yet.  The destructor would then attempt to close these
fd's that had never been opened.

Change-Id: Icf21093f36c60781e8cf6ee9d586536302af33e3
2018-05-22 16:41:42 -06:00
Rodrigo Ramírez Norambuena
d402594f74 app_queue: Update year Copyright and fix missing tabs in documentation
Change-Id: Ieb8faf37dc765463ee5dbca1d1343242c756b1c7
2018-05-22 13:10:59 -04:00
Alexei Gradinari
39632c7e00 config.c: Fix successful DELETE treated as failure
The config engine destroy_func callback function returns the number of
rows deleted or -1 on error.  But the function
ast_destroy_realtime_fields treated non-zero return values as error.

ASTERISK-27863

Change-Id: Ied02b38e8196cb03043e609a0679feebd288d17b
2018-05-22 08:29:29 -06:00
Matthew Fredrickson
9f9dce05b2 netsock2: Add ast_sockaddr_resolve_first_af to netsock2 public API
This function originally was used in chan_sip to enable some simplifying
assumptions and eventually was copy and pasted into res_pjsip_logger and
res_hep.  Since it's replicated in three places, it's probably best to
move it into the public netsock2 API for these modules to use.

Change-Id: Id52e23be885601c51d70259f62de1a5e59d38d04
2018-05-21 11:03:10 -05:00
Joshua Colp
21dd609e77 Merge "app_voicemail: Fix data-type mismatch between app_voicemail and database" 2018-05-21 09:05:19 -05:00