]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
8 years agoMerge "format_mp3: Don't try to build format_mp3 if we don't have sources" into 13
Joshua Colp [Tue, 30 May 2017 10:53:33 +0000 (05:53 -0500)] 
Merge "format_mp3: Don't try to build format_mp3 if we don't have sources" into 13

8 years agomanager: Clear the flag on the other channel.
Joshua Colp [Fri, 26 May 2017 16:41:59 +0000 (16:41 +0000)] 
manager: Clear the flag on the other channel.

During the channel flag audit an incorrect change was
done. The flag should be cleared on the second channel.

ASTERISK-26469

Change-Id: I770c5a389550a2fb5a6ade942fccbb2e1d9199c8

8 years agoMerge "asterisk: Audit locking of channel when manipulating flags." into 13
Jenkins2 [Fri, 26 May 2017 14:12:11 +0000 (09:12 -0500)] 
Merge "asterisk: Audit locking of channel when manipulating flags." into 13

8 years agoMerge "res_agi: Fix malformed AGI usage response" into 13
Jenkins2 [Fri, 26 May 2017 13:00:49 +0000 (08:00 -0500)] 
Merge "res_agi: Fix malformed AGI usage response" into 13

8 years agoMerge "res_agi: Allow configuration of audio format of EAGI pipe" into 13
George Joseph [Fri, 26 May 2017 00:01:19 +0000 (19:01 -0500)] 
Merge "res_agi: Allow configuration of audio format of EAGI pipe" into 13

8 years agoMerge "unittests: Add a unit test that causes a SEGV and..." into 13
George Joseph [Thu, 25 May 2017 20:06:15 +0000 (15:06 -0500)] 
Merge "unittests:  Add a unit test that causes a SEGV and..." into 13

8 years agoMerge "res_agi: Prevent crash when SET VARIABLE called without arguments" into 13
Jenkins2 [Thu, 25 May 2017 19:44:11 +0000 (14:44 -0500)] 
Merge "res_agi: Prevent crash when SET VARIABLE called without arguments" into 13

8 years agoformat_mp3: Don't try to build format_mp3 if we don't have sources
Sean Bright [Thu, 25 May 2017 16:10:00 +0000 (12:10 -0400)] 
format_mp3: Don't try to build format_mp3 if we don't have sources

ASTERISK-23951 #close
Reported by: Tzafrir Cohen

Change-Id: Iebf181d44bb735787fde4b5be863c4d7e2478a30

8 years agoMerge "res_agi: Clarify 'RECORD FILE' documentation" into 13
Jenkins2 [Wed, 24 May 2017 22:58:57 +0000 (17:58 -0500)] 
Merge "res_agi: Clarify 'RECORD FILE' documentation" into 13

8 years agounittests: Add a unit test that causes a SEGV and...
George Joseph [Wed, 24 May 2017 20:50:56 +0000 (14:50 -0600)] 
unittests:  Add a unit test that causes a SEGV and...

...that can only be run by explicitly calling it with
'test execute category /DO_NOT_RUN/ name RAISE_SEGV'

This allows us to more easily test CI and debugging tools that
should do certain things when asterisk coredumps.

To allow this a new member was added to the ast_test_info
structure named 'explicit_only'.  If set by a test, the test
will be skipped during a 'test execute all' or
'test execute category ...'.

Change-Id: Ia3a11856aae4887df9a02b6b081cc777b36eb6ed

8 years agoMerge "chan_sip: Better ICE handling for RTCP-MUX" into 13
Joshua Colp [Wed, 24 May 2017 16:41:30 +0000 (11:41 -0500)] 
Merge "chan_sip: Better ICE handling for RTCP-MUX" into 13

8 years agoMerge "res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm" into 13
Jenkins2 [Wed, 24 May 2017 16:12:11 +0000 (11:12 -0500)] 
Merge "res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm" into 13

8 years agoMerge "res_format_attr_h26x: Trim blanks in fmtp attributes" into 13
Jenkins2 [Wed, 24 May 2017 14:39:40 +0000 (09:39 -0500)] 
Merge "res_format_attr_h26x: Trim blanks in fmtp attributes" into 13

8 years agoMerge "app_queue: Fix members showing as being in call when not." into 13
Jenkins2 [Wed, 24 May 2017 13:38:37 +0000 (08:38 -0500)] 
Merge "app_queue: Fix members showing as being in call when not." into 13

8 years agores_agi: Allow configuration of audio format of EAGI pipe
Sean Bright [Tue, 23 May 2017 20:42:04 +0000 (16:42 -0400)] 
res_agi: Allow configuration of audio format of EAGI pipe

This change allows the format of the EAGI audio pipe to be changed by
setting the dialplan variable 'EAGI_AUDIO_FORMAT' to the name of one of
the loaded formats.

ASTERISK-26124 #close

Change-Id: I7a10fad401ad2a21c68c2e7246fa357d5cee5bbd

8 years agores_agi: Clarify 'RECORD FILE' documentation
Sean Bright [Tue, 23 May 2017 18:33:16 +0000 (14:33 -0400)] 
res_agi: Clarify 'RECORD FILE' documentation

Documented the 'beep' option in both the parameters list and the command
description.

ASTERISK-23839 #close

Change-Id: I4970395c922dbdce3f7cf0f56d5b065ec9aa53ea

8 years agores_agi: Prevent crash when SET VARIABLE called without arguments
Sean Bright [Tue, 23 May 2017 18:06:22 +0000 (14:06 -0400)] 
res_agi: Prevent crash when SET VARIABLE called without arguments

Explicitly check that the appropriate number of arguments were passed to
SET VARIABLE before attempting to reference them. Also initialize the
arguments array to zeroes before populating it.

ASTERISK-22432 #close

Change-Id: I5143607d80a2724f749c1674f3126b04ed32ea97

8 years agores_agi: Fix malformed AGI usage response
Sean Bright [Tue, 23 May 2017 17:35:25 +0000 (13:35 -0400)] 
res_agi: Fix malformed AGI usage response

If the generated XML documentation for a command does not end with a \n,
the postamble of the usage message does not appear on its own line.

ASTERISK-25662 #close

Change-Id: If190f1e9e37fe215fed95897d78d4a6e142b0020

8 years agores_format_attr_h26x: Trim blanks in fmtp attributes
Sean Bright [Tue, 23 May 2017 15:06:02 +0000 (11:06 -0400)] 
res_format_attr_h26x: Trim blanks in fmtp attributes

Some devices separate format attributes with a semicolon followed by a
space, so trim blanks before trying to match them.

ASTERISK-27008 #close

Change-Id: Ia44cb2e4fef5c73dc541a29da79cb0e19c22d9cc

8 years agoapp_queue: Fix members showing as being in call when not.
Joshua Colp [Mon, 15 May 2017 20:03:36 +0000 (20:03 +0000)] 
app_queue: Fix members showing as being in call when not.

A change was done which added an 'in_call' flag to queue
members that was set to true while talking to an agent.
Unfortunately in practice this does not accurately reflect
whether they are talking to an agent or not. If a Local
channel is involved and a transfer is performed then the
app_queue application would incorrectly think the agent
was still in a call with the caller. This was done to
fix a race condition between an agent becoming available
by device state and the checking of the last call information
for the wrapup time. There was a small window where the
last call information would be the previous value instead
of the new one.

This change goes about fixing the original issue in a
different way by considering the call completed if device
state is received which would make the agent available
and if they are currently in a call. If this occurs the
last call information is updated before the agent becomes
available ensuring that old information is not present
when checking if the member should be called. This also
improves the transfer situation by actually updating
and enforcing the wrapup time.

ASTERISK-26399
ASTERISK-26400
ASTERISK-26715
ASTERISK-26975

Change-Id: Ife1cb686e3173b3a6d368601adef9aff69d4beea

8 years agoMerge "res_pjsip_session : fixed wrong From Header number On Re-invite" into 13
Jenkins2 [Tue, 23 May 2017 14:07:20 +0000 (09:07 -0500)] 
Merge "res_pjsip_session : fixed wrong From Header number On Re-invite" into 13

8 years agores_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm
Kevin Harwell [Mon, 22 May 2017 18:51:40 +0000 (13:51 -0500)] 
res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm

When using rtcp mux if an rtcp payload came in it would still use the srtp
unprotect algorithm instead of the srtp unprotect rtcp method. Since rtcp
data was being passed to the rtp unprotect method this would result in an
error.

This patch ensures that the correct unprotect method is chosen by making
sure the passed in rtcp flag is appropriately set when rtcp mux is enabled
and an rtcp payload is received.

ASTERISK-26979 #close

Change-Id: Ic5409f9d1a267f1d4785fc5aed867daaecca6241

8 years agochan_sip: Better ICE handling for RTCP-MUX
Sean Bright [Fri, 19 May 2017 15:05:36 +0000 (15:05 +0000)] 
chan_sip: Better ICE handling for RTCP-MUX

If we are offered or are offering RTCP-MUX, don't consider RTCP ICE
candidates. This confuses certain browsers (current Firefox for
example) and causes intial audio setup delays.

ASTERISK-26982 #close

Change-Id: Ifeaf47e83972fe8dbe58b7fb3d6d1823400cfb91

8 years agoMerge "app_queue: Fix duplicate queue_log entries for EXITEMPTY and ABANDON" into 13
Jenkins2 [Mon, 22 May 2017 09:52:35 +0000 (04:52 -0500)] 
Merge "app_queue: Fix duplicate queue_log entries for EXITEMPTY and ABANDON" into 13

8 years agores_pjsip_session : fixed wrong From Header number On Re-invite
Yasin CANER [Wed, 26 Apr 2017 14:22:41 +0000 (17:22 +0300)] 
res_pjsip_session : fixed wrong From Header number On Re-invite

ASTERISK-26964 #close

Change-Id: I55a9caa7dc90e6c4c219cb09b5c2ec08af84a302

8 years agoMerge "res_hep_rtcp: Add support level to module info" into 13
Jenkins2 [Fri, 19 May 2017 23:10:33 +0000 (18:10 -0500)] 
Merge "res_hep_rtcp: Add support level to module info" into 13

8 years agoMerge "AST-2017-004: chan_skinny: Add EOF check in skinny_session" into 13
Jenkins2 [Fri, 19 May 2017 19:55:04 +0000 (14:55 -0500)] 
Merge "AST-2017-004: chan_skinny:  Add EOF check in skinny_session" into 13

8 years agoMerge "AST-2017-003: Handle zero-length body parts correctly." into 13
Jenkins2 [Fri, 19 May 2017 19:23:32 +0000 (14:23 -0500)] 
Merge "AST-2017-003: Handle zero-length body parts correctly." into 13

8 years agoAST-2017-002: Ensure transaction key buffer is large enough.
Mark Michelson [Thu, 13 Apr 2017 22:16:42 +0000 (17:16 -0500)] 
AST-2017-002: Ensure transaction key buffer is large enough.

ASTERISK-26938 #close

Change-Id: I266490792fd8896a23be7cb92f316b7e69356413

8 years agoAST-2017-003: Handle zero-length body parts correctly.
Mark Michelson [Thu, 13 Apr 2017 22:17:36 +0000 (17:17 -0500)] 
AST-2017-003: Handle zero-length body parts correctly.

ASTERISK-26939 #close

Change-Id: I7ea235ab39833a187db4e078f0788bd0af0a24fd

8 years agoAST-2017-004: chan_skinny: Add EOF check in skinny_session
George Joseph [Thu, 13 Apr 2017 16:14:48 +0000 (10:14 -0600)] 
AST-2017-004: chan_skinny:  Add EOF check in skinny_session

The while(1) loop in skinny_session wasn't checking for EOF so
a packet that was longer than a header but still truncated
would spin the while loop infinitely.  Not only does this
permanently tie up a thread and drive a core to 100% utilization,
the call of ast_log() in such a tight loop eats all available
process memory.

Added poll with timeout to top of read loop

ASTERISK-26940 #close
Reported-by: Sandro Gauci
Change-Id: I2ce65f3c5cb24b4943a9f75b64d545a1e2cd2898

8 years agores_hep_rtcp: Add support level to module info
Sean Bright [Thu, 18 May 2017 21:35:21 +0000 (17:35 -0400)] 
res_hep_rtcp: Add support level to module info

Change-Id: I5661478f9cf12d431f730e42be79323b62831e92

8 years agoapp_queue: Fix duplicate queue_log entries for EXITEMPTY and ABANDON
Ivan Poddubny [Thu, 11 May 2017 05:25:44 +0000 (07:25 +0200)] 
app_queue: Fix duplicate queue_log entries for EXITEMPTY and ABANDON

There are 2 places in app_queue.c that log EXITEMPTY event: one in
wait_our_turn, and another one in queue_exec in the loop trying to
call an agent after wait_our_turn.

In most cases it leads to logging EXITEMPTY twice.

ABANDON is also logged on two places, and in the rare case when an agent
and caller hang up simultaneously it's also possible to get duplicates
in queue_log.

This commit changes wait_our_turn to return -1 ("the caller should exit
the queue") instead of 0 ("the caller's turn has arrived") in case of
leaving when empty, so queue_exec skips the agent calling loop.

Also, leave_queue is now executed only once in this case, because 2nd
time is just a noop when the queue entry has already been removed.

Also, it sets qe->handled to -1 to indicate that the call was not
answered by an agent, but the necessary handling has already been done
in order to avoid logging an extra ABANDON entry.

ASTERISK-25665 #close
Reported by: Ove Aursand

Change-Id: I4578dd383bf2ac41589cf167865e8aaebcd4c11e

8 years agoMerge "res_pjsip_session.c: Process initial INVITE sooner. (key exists)" into 13
Jenkins2 [Wed, 17 May 2017 16:31:27 +0000 (11:31 -0500)] 
Merge "res_pjsip_session.c: Process initial INVITE sooner. (key exists)" into 13

8 years agoFix spelling queues.conf.sample file
Rodrigo Ramírez Norambuena [Sun, 14 May 2017 05:37:09 +0000 (01:37 -0400)] 
Fix spelling queues.conf.sample file

Change-Id: Ie1c2d83af66f27a449da09a68d987e0992627fee

8 years agoasterisk: Audit locking of channel when manipulating flags.
Joshua Colp [Sat, 13 May 2017 16:40:00 +0000 (16:40 +0000)] 
asterisk: Audit locking of channel when manipulating flags.

When manipulating flags on a channel the channel has to be
locked to guarantee that nothing else is also manipulating
the flags. This change introduces locking where necessary to
guarantee this. It also adds helper functions that manipulate
channel flags and lock to reduce repeated code.

ASTERISK-26789

Change-Id: I489280662dba0f4c50981bfc5b5a7073fef2db10

8 years agores_pjsip_session.c: Process initial INVITE sooner. (key exists)
Richard Mudgett [Sat, 13 May 2017 02:04:59 +0000 (21:04 -0500)] 
res_pjsip_session.c: Process initial INVITE sooner. (key exists)

Retransmissions of an initial INVITE could be queued in the serializer
before we have processed the first INVITE message.  If the first INVITE
message doesn't get completely processed before the retransmissions are
seen then we could try to setup the same call from the retransmissions.  A
symptom of this is seeing a (key exists) message associated with an
INVITE.  An earlier change attempted to address this kind of problem by
calculating a distributor serializer to use for unassociated messages.
Part of that change also made incoming calls keep using that distributor
serializer.  (ASTERISK-26088) However, some leftover code was still
deferring the INVITE processing to the session's serializer even though we
were already in that serializer.  This not only is unnecessary but would
cause the same call resetup problem.

* Removed the code to defer processing the initial INVITE to the session's
serializer because we are already running in that serializer.

ASTERISK-26998 #close

Change-Id: I1e822d82dcc650e508bc2d40d545d5de4f3421f6

8 years agoMerge "res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages." into 13
Jenkins2 [Thu, 11 May 2017 21:33:55 +0000 (16:33 -0500)] 
Merge "res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages." into 13

8 years agoMerge "logger: Added logger_queue_limit to the configuration options." into 13
Jenkins2 [Thu, 11 May 2017 16:55:29 +0000 (11:55 -0500)] 
Merge "logger:  Added logger_queue_limit to the configuration options." into 13

8 years agoMerge "tcptls: Improve error messages for TLS connections." into 13
Jenkins2 [Thu, 11 May 2017 15:49:04 +0000 (10:49 -0500)] 
Merge "tcptls: Improve error messages for TLS connections." into 13

8 years agoMerge "Prevent Undefined Capath Crash" into 13
Jenkins2 [Thu, 11 May 2017 15:35:05 +0000 (10:35 -0500)] 
Merge "Prevent Undefined Capath Crash" into 13

8 years agoMerge "cel_odbc: Fix timestamp processing for microseconds" into 13
Jenkins2 [Wed, 10 May 2017 11:32:56 +0000 (06:32 -0500)] 
Merge "cel_odbc:  Fix timestamp processing for microseconds" into 13

8 years agotcptls: Improve error messages for TLS connections.
Joshua Colp [Tue, 9 May 2017 15:34:49 +0000 (15:34 +0000)] 
tcptls: Improve error messages for TLS connections.

This change uses the functions provided by OpenSSL to query
and better construct error messages for situations where
the connection encounters a problem.

ASTERISK-26606

Change-Id: I7ae40ce88c0dc4e185c4df1ceb3a6ccc198f075b

8 years agoPrevent Undefined Capath Crash
Joshua Elson [Thu, 4 May 2017 22:28:55 +0000 (18:28 -0400)] 
Prevent Undefined Capath Crash

It is possible to initialize a valid config without a capath
or cafile definition. This will cause a crash on a reload.

This fix ensures capath is always allocated.

ASTERISK-26983 #close

Change-Id: I63ff715d9d9023427543a5b8a4ba7b0d82533c12

8 years agocel_odbc: Fix timestamp processing for microseconds
George Joseph [Fri, 5 May 2017 16:33:34 +0000 (10:33 -0600)] 
cel_odbc:  Fix timestamp processing for microseconds

When a column is of type timestamp, the fraction part of the event
field's seconds was frequently parsed incorrectly especially if
there were leading zeros.  For instance "2017-05-23 23:55:03.023"
would be parsed into an int as "23" then when the timestamp was
formatted again to be inserted into the database column it'd be
"2017-05-23 23:55:03.23" which is now 230 milliseconds instead of
23 milliseconds.  "03.000001" would be transformed to "03.1", etc.

* If the event field is 'eventtime' and the db column is timestamp,
  then existing processing has already correctly formatted the
  timestamp so now we simply use it rather than parsing it and
  re-printing it. This is the most common use case anyway.

* If the event field is other than 'eventtime' and the db column
  is timestamp, we now parse the seconds, including the fractional
  part into a double rather than 2 ints.  This preserves the
  magnitude and precision of the fractional part.  When we print
  it, we now print it as a "%09.6lf" which correctly represents the
  input.

To be honest, why we parse the string timestamp into components,
test the components, then print the components back into a string
timestamp is beyond me.  We should use parse it, test it, then if
it passes, use the original string representation in the database
call.  Maybe someone thought that some implementations wouldn't
take a partial timestamp string like "2017-05-06" and decided to
always produce a full timestamp string even if an abbreviated one
was supplied.  Anyway, I'm leaving it as it is.

ASTERISK-25032 #close
Reported-by: Etienne Lessard
Change-Id: Id407e6221f79a5c1120e1a70bc7e893bbcaf1938

8 years agores_hep_rtcp: Provide chan_sip Call-ID for RTCP messages.
Joshua Colp [Tue, 9 May 2017 10:25:29 +0000 (10:25 +0000)] 
res_hep_rtcp: Provide chan_sip Call-ID for RTCP messages.

This change adds the required logic to allow the SIP
Call-ID to be placed into the HEP RTCP traffic if the
chan_sip module is used. In cases where the option is
enabled but the channel is not either SIP or PJSIP then
the code will fallback to the channel name as done
previously.

Based on the change on Nir's branch at:
team/nirs/hep-chan-sip-support

ASTERISK-26427

Change-Id: I09ffa5f6e2fdfd99ee999650ba4e0a7aad6dc40d

8 years agoMerge "func_cdr: Allow empty value for CDR dialplan function." into 13
Joshua Colp [Mon, 8 May 2017 23:21:15 +0000 (18:21 -0500)] 
Merge "func_cdr: Allow empty value for CDR dialplan function." into 13

8 years agologger: Added logger_queue_limit to the configuration options.
George Joseph [Mon, 8 May 2017 21:11:19 +0000 (15:11 -0600)] 
logger:  Added logger_queue_limit to the configuration options.

All log messages go to a queue serviced by a single thread
which does all the IO.  This setting controls how big that
queue can get (and therefore how much memory is allocated)
before new messages are discarded. The default is 1000.
Should something go bezerk and log tons of messages in a tight
loop, this will prevent memory escalation.

When the limit is reached, a WARNING is logged to that effect
and messages are discarded until the queue is empty again.  At
that time another WARNING will be logged with the count of
discarded messages.  There's no "low water mark" for this queue
because the logger thread empties the entire queue and processes it
in 1 batch before going back and waiting on the queue again.
Implementing a low water mark would mean additional locking as
the thread processes each message and it's not worth it.

A "test" was added to test_logger.c but since the outcome is
non-deterministic, it's really just a cli command, not a unit
test.

Change-Id: Ib4520c95e1ca5325dbf584c7989ce391649836d1

8 years agochan_sip: Change sip_get_codec() to return correct codec list
Vitezslav Novy [Mon, 8 May 2017 18:40:47 +0000 (20:40 +0200)] 
chan_sip: Change sip_get_codec() to return correct codec list

Return cahnnel nativeformats to fix bridge technology selection process.
Same approach as in pjsip module.

ASTERISK-26143
Reported-by: Henning Holtschneider
Change-Id: I64e863753954d6ad67a9e722df2ebc328705ad48

8 years agoMerge "netsock2.c: Made get/set addr port avoid potential uninitialized memory."...
Joshua Colp [Mon, 8 May 2017 13:46:57 +0000 (08:46 -0500)] 
Merge "netsock2.c: Made get/set addr port avoid potential uninitialized memory." into 13

8 years agoMerge "bridge: Fix returning to dialplan when executing Bridge() from AMI." into 13
Joshua Colp [Mon, 8 May 2017 12:33:02 +0000 (07:33 -0500)] 
Merge "bridge: Fix returning to dialplan when executing Bridge() from AMI." into 13

8 years agonetsock2.c: Made get/set addr port avoid potential uninitialized memory.
Richard Mudgett [Thu, 4 May 2017 22:32:03 +0000 (17:32 -0500)] 
netsock2.c: Made get/set addr port avoid potential uninitialized memory.

Change-Id: I532052bd7cd95a4b3565485fc01e2a1ea07ee647

8 years agoMerge "app_confbridge: Fix reference to cfg in menu_template_handler" into 13
Jenkins2 [Fri, 5 May 2017 15:34:17 +0000 (10:34 -0500)] 
Merge "app_confbridge:  Fix reference to cfg in menu_template_handler" into 13

8 years agofunc_cdr: Allow empty value for CDR dialplan function.
Joshua Colp [Fri, 5 May 2017 13:48:34 +0000 (13:48 +0000)] 
func_cdr: Allow empty value for CDR dialplan function.

A regression was introduced in 12 where passing an empty value
to the CDR dialplan function was not longer allowed. This
change returns to the behavior of 11 where it is permitted.

ASTERISK-26173

Change-Id: I3f148203b54ec088007e29e30005a5de122e51c5

8 years agoapp_confbridge: Fix reference to cfg in menu_template_handler
George Joseph [Thu, 4 May 2017 21:04:46 +0000 (15:04 -0600)] 
app_confbridge:  Fix reference to cfg in menu_template_handler

menu_template_handler wasn't properly accounting for the fact that
it might be called both during a load/reload (which isn't really
valid but not prevented) and by a dialplan function.  In both cases
it was attempting to use the "pending" config which wasn't valid in
the latter case.  aco_process_config is also partly to blame because
it wasn't properly cleaning "pending" up when a reload was done and
no changes were made.  Both of these contributed to a crash if
CONFBRIDGE(menu,template) was called in a dialplan after a reload.

* aco_process_config now sets info->internal->pending to NULL
  after it unrefs it although this isn't strictly necessary in the
  context of this fix.
* menu_template_handler now uses the "current" config and silently
  ignores any attempt to be called as a result of someone uses the
  "template" parameter in the conf file.

Luckily there's no other place in the codebase where
aco_pending_config is used outside of aco_process_config.

ASTERISK-25506 #close
Reported-by: Frederic LE FOLL
Change-Id: Ib349a17d3d088f092480b19addd7122fcaac21a7

8 years agoMerge "res_rtp_asterisk: Clearing the remote RTCP address causes RTCP failures" into 13
Joshua Colp [Thu, 4 May 2017 23:28:08 +0000 (18:28 -0500)] 
Merge "res_rtp_asterisk: Clearing the remote RTCP address causes RTCP failures" into 13

8 years agobridge: Fix returning to dialplan when executing Bridge() from AMI.
Joshua Colp [Sun, 30 Apr 2017 21:40:16 +0000 (21:40 +0000)] 
bridge: Fix returning to dialplan when executing Bridge() from AMI.

When using the Bridge AMI action on the same channel multiple times
it was possible for the channel to return to the wrong location in
the dialplan if the other party hung up. This happened because the
priority of the channel was not preserved across each action
invocation and it would fail to move on to the next priority in
other cases.

This change makes it so that the priority of a channel is preserved
when taking control of it from another thread and it is incremented
as appropriate such that the priority reflects where the channel
should next be executed in the dialplan, not where it may or may not
currently be.

The Bridge AMI action was also changed to ensure that it too
starts the channels at the next location in the dialplan.

ASTERISK-24529

Change-Id: I52406669cf64208aef7252a65b63ade31fbf7a5a

8 years agores_rtp_asterisk: Clearing the remote RTCP address causes RTCP failures
Kevin Harwell [Mon, 1 May 2017 18:04:16 +0000 (13:04 -0500)] 
res_rtp_asterisk: Clearing the remote RTCP address causes RTCP failures

When a call gets put on hold RTP is temporarily stopped and Asterisk was
setting the remote RTCP address to NULL. Then when RTCP data was received
from the remote endpoint, Asterisk would be missing this information when
publishing the rtcp_message stasis event. Consequently, message subscribers
(in this case res_hep_rtcp) trying to parse the "from" field output the
following error:

"ast_sockaddr_split_hostport: Port missing in (null)"

This patch makes it so the remote RTCP address is no longer set to NULL when
stopping RTP. There was only one place that appeared to check if the remote
RTCP address was NULL as a way to tell if RTCP was running. This patch added
an additional check on the RTCP schedid for that case to make sure RTCP was
truly not running.

ASTERISK-26860 #close

Change-Id: I6be200fb20db647e48b5138ea4b81dfa7962974b

8 years agoMerge "channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections...
Jenkins2 [Wed, 3 May 2017 15:18:02 +0000 (10:18 -0500)] 
Merge "channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections" into 13

8 years agocleanup: Change severity of fread short-read warning
Sean Bright [Tue, 2 May 2017 16:34:24 +0000 (12:34 -0400)] 
cleanup: Change severity of fread short-read warning

Many sound files don't have a full frame's worth of data at EOF, so the
warning messages were a bit too noisy. So we demote them to debug
messages.

Change-Id: I6b617467d687658adca39170a81797a11cc766f6

8 years agoMerge "rtp_engine.c: Fix deadlock potential copying RTP payload maps." into 13
Jenkins2 [Tue, 2 May 2017 14:15:11 +0000 (09:15 -0500)] 
Merge "rtp_engine.c: Fix deadlock potential copying RTP payload maps." into 13

8 years agoMerge "res_pjsip_t38.c: Fix deadlock in T.38 framehook." into 13
Jenkins2 [Tue, 2 May 2017 14:13:25 +0000 (09:13 -0500)] 
Merge "res_pjsip_t38.c: Fix deadlock in T.38 framehook." into 13

8 years agochannels/chan_sip.c: use binding IP address for outgoing TCP SIP connections
Thierry Magnien [Wed, 26 Apr 2017 12:58:44 +0000 (14:58 +0200)] 
channels/chan_sip.c: use binding IP address for outgoing TCP SIP connections

For outgoing TCP connections, Asterisk uses the first IP address of the
interface instead of the IP address we asked him to bind to.

ASTERISK-26922 #close
Reported-by: Ksenia
Change-Id: I43c71ca89211dbf1838e5bcdb9be8d06d98e54eb

8 years agortp_engine.c: Fix deadlock potential copying RTP payload maps.
Richard Mudgett [Sat, 29 Apr 2017 21:18:22 +0000 (16:18 -0500)] 
rtp_engine.c: Fix deadlock potential copying RTP payload maps.

There is a theoretical potential to deadlock in
ast_rtp_codecs_payloads_copy() because it locks two different
ast_rtp_codecs locks.  It is theoretical because the callers of the
function are either copying between a local ast_rtp_codecs struct and a
RTP instance of the ast_rtp_codecs struct.  Or they are copying between
the caller and callee channel RTP instances before initiating the call to
the callee.  Neither of these situations could actually result in a
deadlock because there cannot be another thread involved at the time.

* Add deadlock avoidance code to ast_rtp_codecs_payloads_copy() since it
locks two ast_rtp_codecs locks to perform a copy.

This only affects v13 since this deadlock avoidance code is already in
newer branches.

Change-Id: I1aa0b168f94049bd59bbd74a85bd1e78718f09e5

8 years agores_pjsip_t38.c: Fix deadlock in T.38 framehook.
Richard Mudgett [Sat, 29 Apr 2017 21:11:21 +0000 (16:11 -0500)] 
res_pjsip_t38.c: Fix deadlock in T.38 framehook.

A deadlock can happen between a channel lock and a pjsip session media
container lock.  One thread is processing a reINVITE's SDP and walking
through the session's media container when it waits for the channel lock
to put the determined format capabilities onto the channel.  The other
thread is writing a frame to the channel and processing the T.38 frame
hook.  The T.38 frame hook then waits for the pjsip session's media
container lock.  The two threads are now deadlocked.

* Made the T.38 frame hook release the channel lock before searching the
session's media container.  This fix has been done to several other
frame hooks to fix deadlocks.

ASTERISK-26974 #close

Change-Id: Ie984a76ce00bef6ec9aa239010e51e8dd74c8186

8 years agores_pjsip_outbound_authenticator_digest: Add context to log messages
George Joseph [Fri, 28 Apr 2017 15:56:20 +0000 (09:56 -0600)] 
res_pjsip_outbound_authenticator_digest: Add context to log messages

There was no context info in this module's log messages so it was
impossible to toubleshoot.

Added endpoint or host to all messages and added the realms in the
challenge for the "No auth credentials for any realm" message.

Change-Id: Ifeed2786f35fbea7d141237ae15625e472acff9b

8 years agoMerge "frame: Better handle interpolated frames." into 13
Jenkins2 [Thu, 27 Apr 2017 22:35:48 +0000 (17:35 -0500)] 
Merge "frame: Better handle interpolated frames." into 13

8 years agoMerge "res_pjsip_session: Add cleanup to ast_sip_session_terminate" into 13
Jenkins2 [Thu, 27 Apr 2017 21:46:17 +0000 (16:46 -0500)] 
Merge "res_pjsip_session:  Add cleanup to ast_sip_session_terminate" into 13

8 years agoMerge "res_pjsip/res_pjsip_callerid: NULL check on caller id name string" into 13
Jenkins2 [Thu, 27 Apr 2017 21:16:47 +0000 (16:16 -0500)] 
Merge "res_pjsip/res_pjsip_callerid: NULL check on caller id name string" into 13

8 years agoMerge "chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK" into 13
Jenkins2 [Thu, 27 Apr 2017 21:01:55 +0000 (16:01 -0500)] 
Merge "chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK" into 13

8 years agoMerge "vector: defaults and indexes" into 13
Jenkins2 [Thu, 27 Apr 2017 20:39:06 +0000 (15:39 -0500)] 
Merge "vector: defaults and indexes" into 13

8 years agoMerge "res_rtp_asterisk.c: Fix crash in RTCP DTLS operation." into 13
Joshua Colp [Thu, 27 Apr 2017 18:58:38 +0000 (13:58 -0500)] 
Merge "res_rtp_asterisk.c: Fix crash in RTCP DTLS operation." into 13

8 years agoMerge "cleanup: Fix fread() and fwrite() error handling" into 13
Jenkins2 [Thu, 27 Apr 2017 17:08:14 +0000 (12:08 -0500)] 
Merge "cleanup: Fix fread() and fwrite() error handling" into 13

8 years agoMerge "pjproject_bundled: Add --disable-libwebrtc to configure" into 13
Jenkins2 [Thu, 27 Apr 2017 16:45:53 +0000 (11:45 -0500)] 
Merge "pjproject_bundled:  Add --disable-libwebrtc to configure" into 13

8 years agores_pjsip_session: Add cleanup to ast_sip_session_terminate
George Joseph [Thu, 27 Apr 2017 13:02:12 +0000 (07:02 -0600)] 
res_pjsip_session:  Add cleanup to ast_sip_session_terminate

If you use ast_request to create a PJSIP channel but then hang it
up without causing a transaction to be sent, the session will
never be destroyed.  This is due ot the fact that it's pjproject
that triggers the session cleanup when the transaction ends.
app_chanisavail was doing this to get more granular channel state
and it's also possible for this to happen via ARI.

* ast_sip_session_terminate was modified to explicitly call the
  cleanup tasks and unreference session if the invite state is NULL
  AND invite_tsx is NULL (meaning we never sent a transaction).

* chan_pjsip/hangup was modified to bump session before it calls
  ast_sip_session_terminate to insure that session stays valid
  while it does its own cleanup.

* Added test events to session_destructor for a future testsuite
  test.

ASTERISK-26908 #close
Reported-by: Richard Mudgett
Change-Id: I52daf6f757184e5544c261f64f6fe9602c4680a9

8 years agores_pjsip/res_pjsip_callerid: NULL check on caller id name string
Kevin Harwell [Wed, 26 Apr 2017 19:20:00 +0000 (14:20 -0500)] 
res_pjsip/res_pjsip_callerid: NULL check on caller id name string

It's possible for a name in a party id structure to be marked as valid, but the
name string itself be NULL (for instance this is possible to do by using the
dialplan CALLERID function). There were a couple of places where the name was
validated, but the string itself was not checked before passing it to functions
like 'strlen'. This of course caused a crashed.

This patch adds in a NULL check before attempting to pass it into a function
that is not NULL tolerant.

ASTERISK-25823 #close

Change-Id: Iaa6ffe9d92f598fe9e3c8ae373fadbe3dfbf1d4a

8 years agovector: defaults and indexes
Kevin Harwell [Tue, 25 Apr 2017 16:43:26 +0000 (11:43 -0500)] 
vector: defaults and indexes

Added an pre-defined integer vector declaration. This makes integer vectors
easier to declare and pass around. Also, added the ability to default a vector
up to a given size with a default value. Lastly, added functionality that
returns the "nth" index of a matching value.

Also, updated a unit test to test these changes.

Change-Id: Iaf4b51b2540eda57cb43f67aa59cf1d96cdbcaa5

8 years agochan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK
Jean Aunis [Thu, 20 Apr 2017 07:13:13 +0000 (09:13 +0200)] 
chan_sip: Trigger reinvite if the SDP answer is included in the SIP ACK

Some equipments may send a re-INVITE containing an SDP in the final ACK
request. If this happens in the context of direct media, the remote end
should be updated with a re-INVITE.
This patch queues an "update RTP peer" frame to trigger the re-INVITE,
instead of the "source change" frame wich was used previously.

ASTERISK-26951

Change-Id: I3644d2025f20e086ea9f8f62b486172c52b5b2e6

8 years agopjproject_bundled: Add --disable-libwebrtc to configure
George Joseph [Wed, 26 Apr 2017 13:45:31 +0000 (07:45 -0600)] 
pjproject_bundled:  Add --disable-libwebrtc to configure

Without the disable, pjproject tries to build it's internal
webrtc implementation which requires sse2.  This fails on
platforms without sse2.

ASTERISK-26930 #close
Reported-by: abelbeck
Change-Id: I07231f9160c35cfa42b194d3aad4e7d51fd9a410

8 years agoMerge "alembic: Add table for 'resource_list' PJSIP RLS type." into 13
Jenkins2 [Wed, 26 Apr 2017 13:45:38 +0000 (08:45 -0500)] 
Merge "alembic: Add table for 'resource_list' PJSIP RLS type." into 13

8 years agoframe: Better handle interpolated frames.
Joshua Colp [Wed, 26 Apr 2017 10:38:31 +0000 (10:38 +0000)] 
frame: Better handle interpolated frames.

Interpolated frames are frames which contain a number of
samples but have no actual data. Audiohooks did not
handle this case when translating an incoming frame into
signed linear. It assumed that a frame would always contain
media when it may not. If this occurs audiohooks will now
immediately return and not act on the frame.

As well for users of ast_trans_frameout the function has
been changed to be a bit more sane and ensure that the data
pointer on a frame is set to NULL if no data is actually
on the frame. This allows the various spots in Asterisk that
check for an interpolated frame based on the presence of a
data pointer to work as expected.

ASTERISK-26926

Change-Id: I7fa22f631fa28d540722ed789ce28e84c7f8662b

8 years agoMerge "res_pjsip_session.c: Send 100 Trying out earlier to prevent retransmissions...
George Joseph [Tue, 25 Apr 2017 21:41:01 +0000 (16:41 -0500)] 
Merge "res_pjsip_session.c: Send 100 Trying out earlier to prevent retransmissions." into 13

8 years agoMerge "res_hep: Add additional config initialization and validation" into 13
George Joseph [Tue, 25 Apr 2017 21:36:36 +0000 (16:36 -0500)] 
Merge "res_hep: Add additional config initialization and validation" into 13

8 years agocleanup: Fix fread() and fwrite() error handling
Sean Bright [Fri, 21 Apr 2017 17:04:44 +0000 (13:04 -0400)] 
cleanup: Fix fread() and fwrite() error handling

Cleaned up some of the incorrect uses of fread() and fwrite(), mostly in
the format modules. Neither of these functions will ever return a value
less than 0, which we were checking for in some cases.

I've introduced a fair amount of duplication in the format modules, but
I plan to change how format modules work internally in a subsequent
patch set, so this is simply a stop-gap.

Change-Id: I8ca1cd47c20b2c0b72088bd13b9046f6977aa872

8 years agoMerge "res_pjsip_session.c: Restructure ast_sip_session_alloc()" into 13
George Joseph [Tue, 25 Apr 2017 20:38:25 +0000 (15:38 -0500)] 
Merge "res_pjsip_session.c: Restructure ast_sip_session_alloc()" into 13

8 years agoalembic: Add table for 'resource_list' PJSIP RLS type.
Joshua Colp [Tue, 25 Apr 2017 12:52:48 +0000 (12:52 +0000)] 
alembic: Add table for 'resource_list' PJSIP RLS type.

This change adds an Alembic migration which adds a
ps_resource_list table that can contain resource_list
RLS configuration objects.

ASTERISK-26929

Change-Id: I7c888fafc67b3e87012de974f71ca7a5b8b1ec05

8 years agores_hep: Add additional config initialization and validation
Sean Bright [Mon, 24 Apr 2017 18:16:45 +0000 (14:16 -0400)] 
res_hep: Add additional config initialization and validation

* Initialize hepv3_runtime_data.sockfd to -1 so that our ao2 destructor
  does not close fd 0

* Add logging output when the required option - capture_address - is not
  specified.

* Remove a no longer relevant #define and correct related documentation

* Pass appropriate flags to aco_option_register so that capture_address
  cannot be the empty string.

ASTERISK-26953 #close

Change-Id: Ief08441bc6596d6f1718fa810e54a5048124f076

8 years agocore: Use eventfd for alert pipes on Linux when possible
Sean Bright [Tue, 18 Apr 2017 00:06:10 +0000 (20:06 -0400)] 
core: Use eventfd for alert pipes on Linux when possible

The primary win of switching to eventfd when possible is that it only
uses a single file descriptor while pipe() will use two. This means for
each bridge channel we're reducing the number of required file
descriptors by 1, and - if you're using timerfd - we also now have 1
less file descriptor per Asterisk channel.

The API is not ideal (passing int arrays), but this is the cleanest
approach I could come up with to maintain API/ABI.

I've also removed what I believe to be an erroneous code block that
checked the non-blocking flag on the pipe ends for each read. If the
file descriptor is 'losing' its non-blocking mode, it is because of a
bug somewhere else in our code.

In my testing I haven't seen any measurable difference in performance.

Change-Id: Iff0fb1573e7f7a187d5211ddc60aa8f3da3edb1d

8 years agoMerge "pbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified" into 13
George Joseph [Fri, 21 Apr 2017 20:48:14 +0000 (15:48 -0500)] 
Merge "pbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified" into 13

8 years agores_pjsip_session.c: Send 100 Trying out earlier to prevent retransmissions.
Richard Mudgett [Fri, 21 Apr 2017 17:33:34 +0000 (12:33 -0500)] 
res_pjsip_session.c: Send 100 Trying out earlier to prevent retransmissions.

If ICE is enabled and a STUN server does not respond then we will block
until we give up on the STUN response.  This will take nine seconds.  In
the mean time the peer that sent the INVITE will send retransmissions.

* Restructure res_pjsip_session.c:new_invite() to send a 100 Trying out
earlier to prevent these retransmissions.

ASTERISK-26890

Change-Id: Ie3fc611e53a0eff6586ad55e4aacad81cf6319a8

8 years agores_pjsip_session.c: Restructure ast_sip_session_alloc()
Richard Mudgett [Fri, 21 Apr 2017 17:07:39 +0000 (12:07 -0500)] 
res_pjsip_session.c: Restructure ast_sip_session_alloc()

* Restructure ast_sip_session_alloc() to need less cleanup on off nominal
error paths.

* Made ast_sip_session_alloc() and ast_sip_session_create_outgoing() avoid
unnecessary ref manipulation to return a session.  This is faster than
calling a function.  That function may do logging of the ref changes with
REF_DEBUG enabled.

Change-Id: I2a0affc4be51013d3f0485782c96b8fee3ddb00a

8 years agoMerge "rtp_engine/res_rtp_asterisk: Fix RTP struct reentrancy crashes." into 13
George Joseph [Fri, 21 Apr 2017 18:11:07 +0000 (13:11 -0500)] 
Merge "rtp_engine/res_rtp_asterisk: Fix RTP struct reentrancy crashes." into 13

8 years agoMerge "build: Update config.guess and config.sub" into 13
George Joseph [Thu, 20 Apr 2017 18:34:26 +0000 (13:34 -0500)] 
Merge "build: Update config.guess and config.sub" into 13

8 years agoMerge "res_stun_monitor: Don't fail to load if DNS resolution fails" into 13
George Joseph [Thu, 20 Apr 2017 12:19:19 +0000 (07:19 -0500)] 
Merge "res_stun_monitor: Don't fail to load if DNS resolution fails" into 13

8 years agoMerge "make ari-stubs so doc periodic jobs can run" into 13
George Joseph [Thu, 20 Apr 2017 12:18:26 +0000 (07:18 -0500)] 
Merge "make ari-stubs so doc periodic jobs can run" into 13

8 years agopbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified
Sean Bright [Wed, 19 Apr 2017 20:08:39 +0000 (16:08 -0400)] 
pbx: Use same thread if AST_OUTGOING_WAIT_COMPLETE specified

Both ast_pbx_outgoing_app() and ast_pbx_outgoing_exten() cause the core
to spawn a new thread to perform the dial. When AST_OUTGOING_WAIT_COMPLETE
is passed to these functions, the calling thread will be blocked until
the newly created channel has been hung up.

After this patch, we run the dial on the current thread rather than
spawning a new one. The only in-tree code that passes
AST_OUTGOING_WAIT_COMPLETE is pbx_spool, so you should see reduced
thread usage if you are using .call files.

Change-Id: I512735d243f0a9da2bcc128f7a96dece71f2d913

8 years agores_rtp_asterisk.c: Fix crash in RTCP DTLS operation.
Richard Mudgett [Wed, 19 Apr 2017 18:23:55 +0000 (13:23 -0500)] 
res_rtp_asterisk.c: Fix crash in RTCP DTLS operation.

Occasionally a crash happens when processing the RTCP DTLS timeout
handler.  The RTCP DTLS timeout timer could be left running if we have not
completed the DTLS handshake before we place the call on hold or we
attempt direct media.

* Made ast_rtp_prop_set() stop the RTCP DTLS timer when disabling RTCP.

* Made some sanity tweaks to ast_rtp_prop_set() when switching from
standard RTCP mode to RTCP multiplexed mode.

ASTERISK-26692 #close

Change-Id: If6c64c79129961acfa4b3d63a864e8f6b664acc0

8 years agortp_engine/res_rtp_asterisk: Fix RTP struct reentrancy crashes.
Richard Mudgett [Wed, 22 Mar 2017 21:05:49 +0000 (16:05 -0500)] 
rtp_engine/res_rtp_asterisk: Fix RTP struct reentrancy crashes.

The struct ast_rtp_instance has historically been indirectly protected
from reentrancy issues by the channel lock because early channel drivers
held the lock for really long times.  Holding the channel lock for such a
long time has caused many deadlock problems in the past.  Along comes
chan_pjsip/res_pjsip which doesn't necessarily hold the channel lock
because sometimes there may not be an associated channel created yet or
the channel pointer isn't available.

In the case of ASTERISK-26835 a pjsip serializer thread was processing a
message's SDP body while another thread was reading a RTP packet from the
socket.  Both threads wound up changing the rtp->rtcp->local_addr_str
string and interfering with each other.  The classic reentrancy problem
resulted in a crash.

In the case of ASTERISK-26853 a pjsip serializer thread was processing a
message's SDP body while another thread was reading a RTP packet from the
socket.  Both threads wound up processing ICE candidates in PJPROJECT and
interfering with each other.  The classic reentrancy problem resulted in a
crash.

* rtp_engine.c: Make the ast_rtp_instance_xxx() calls lock the RTP
instance struct.

* rtp_engine.c: Make ICE and DTLS wrapper functions to lock the RTP
instance struct for the API call.

* res_rtp_asterisk.c: Lock the RTP instance to prevent a reentrancy
problem with rtp->rtcp->local_addr_str in the scheduler thread running
ast_rtcp_write().

* res_rtp_asterisk.c: Avoid deadlock when local RTP bridging in
bridge_p2p_rtp_write() because there are two RTP instance structs
involved.

* res_rtp_asterisk.c: Avoid deadlock when trying to stop scheduler
callbacks.  We cannot hold the instance lock when trying to stop a
scheduler callback.

* res_rtp_asterisk.c: Remove the lock in struct dtls_details and use the
struct ast_rtp_instance ao2 object lock instead.  The lock was used to
synchronize two threads to prevent a race condition between starting and
stopping a timeout timer.  The race condition is no longer present between
dtls_perform_handshake() and __rtp_recvfrom() because the instance lock
prevents these functions from overlapping each other with regards to the
timeout timer.

* res_rtp_asterisk.c: Remove the lock in struct ast_rtp and use the struct
ast_rtp_instance ao2 object lock instead.  The lock was used to
synchronize two threads using a condition signal to know when TURN
negotiations complete.

* res_rtp_asterisk.c: Avoid deadlock when trying to stop the TURN
ioqueue_worker_thread().  We cannot hold the instance lock when trying to
create or shut down the worker thread without a risk of deadlock.

This patch exposed a race condition between a PJSIP serializer thread
setting up an ICE session in ice_create() and another thread reading RTP
packets.

* res_rtp_asterisk.c:ice_create(): Set the new rtp->ice pointer after we
have re-locked the RTP instance to prevent the other thread from trying to
process ICE packets on an incomplete ICE session setup.

A similar race condition is between a PJSIP serializer thread resetting up
an ICE session in ice_create() and the timer_worker_thread() processing
the completion of the previous ICE session.

* res_rtp_asterisk.c:ast_rtp_on_ice_complete(): Protect against an
uninitialized/null remote_address after calling
update_address_with_ice_candidate().

* res_rtp_asterisk.c: Eliminate the chance of ice_reset_session()
destroying and setting the rtp->ice pointer to NULL while other threads
are using it by adding an ao2 wrapper around the PJPROJECT ice pointer.
Now when we have to unlock the RTP instance object to call a PJPROJECT ICE
function we will hold a ref to the wrapper.  Also added some rtp->ice NULL
checks after we relock the RTP instance and have to do something with the
ICE structure.

ASTERISK-26835 #close
ASTERISK-26853 #close

Change-Id: I780b39ec935dcefcce880d50c1a7261744f1d1b4

8 years agobuild: Update config.guess and config.sub
Sean Bright [Wed, 19 Apr 2017 13:39:00 +0000 (09:39 -0400)] 
build: Update config.guess and config.sub

Change-Id: Id078a1df07a771808775e1053cdfe1d99c8fb172

8 years agoMerge "format_wav: Read 16khz wav samples properly" into 13
Joshua Colp [Wed, 19 Apr 2017 13:38:41 +0000 (08:38 -0500)] 
Merge "format_wav: Read 16khz wav samples properly" into 13