]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
7 years agoloader: Rework of load_dynamic_module.
Corey Farrell [Tue, 21 Nov 2017 05:10:58 +0000 (00:10 -0500)] 
loader: Rework of load_dynamic_module.

* Split off load_dlopen to perform actual dlopen, check results and log
  warnings when needed.
* Use flags which minimize number of calls to dlopen required.  First
  attempt always uses RTLD_GLOBAL when global_symbols_only is enabled,
  RTLD_LOCAL when it is not.

This patch significantly reduces the number of dlopen's performed.  With
299 modules my system ran dlopen 857 times before this patch, 655 times
after this patch.

Change-Id: Ib2c9903cfddcc01aed3e01c1e7fe4a3fb9af0f8b

7 years agoloader: Minor fix to module registration.
Corey Farrell [Wed, 22 Nov 2017 02:34:56 +0000 (21:34 -0500)] 
loader: Minor fix to module registration.

This protects the module loader itself against crashing if dlopen is
called on a module from outside loader.c.

* Expand scope of lock inside ast_module_register to include reading of
  resource_being_loaded.
* NULL check resource_being_loaded.
* Set resource_being_loaded NULL as soon as dlopen returns.  This fixes
  some error paths where it was not NULL'ed.
* Create module_destroy function to deduplicate code from
  ast_module_unregister and modules_shutdown.
* Resolve leak that occured if a module did not successfully register.
* Simplify checking for successful registration.

Change-Id: I40f07a315e55b92df4fc7faf525ed6d4f396e7d2

7 years agoMerge "pjsip: Ignore state changes from old transactions." into 15
Jenkins2 [Fri, 15 Dec 2017 00:25:28 +0000 (18:25 -0600)] 
Merge "pjsip: Ignore state changes from old transactions." into 15

7 years agoMerge "res_pjsip_session: Reinvite using active stream topology if none requested...
Jenkins2 [Thu, 14 Dec 2017 21:30:11 +0000 (15:30 -0600)] 
Merge "res_pjsip_session: Reinvite using active stream topology if none requested." into 15

7 years agoMerge "configs: Comment out and change IP of iax.conf [demo]" into 15
Jenkins2 [Thu, 14 Dec 2017 20:45:40 +0000 (14:45 -0600)] 
Merge "configs: Comment out and change IP of iax.conf [demo]" into 15

7 years agores_pjsip_sdp_rtp: Add NULL check in add_crypto_to_stream
George Joseph [Thu, 14 Dec 2017 20:05:23 +0000 (13:05 -0700)] 
res_pjsip_sdp_rtp: Add NULL check in add_crypto_to_stream

add_crypto_to_stream wasn't checking for a NULL
session->inv_session->neg before calling pjmedia_sdp_neg_get_state.
This was causing a crash if the negotiation hadn't already been
completed and asterisk was compiled with --enable-dev-mode.

Change-Id: I57c6229954a38145da9810fc18657bfcc4d9d0c9

7 years agoconfigs: Comment out and change IP of iax.conf [demo]
Sean Bright [Thu, 14 Dec 2017 16:22:13 +0000 (11:22 -0500)] 
configs: Comment out and change IP of iax.conf [demo]

This no longer appears to exist, so no sense in causing confusion.

ASTERISK-27175 #close
Reported by: Tzafrir Cohen

Change-Id: Idde967924c69f6a741dc9a5ab7dacb44d22cf100

7 years agoMerge "menuselect: Tweak check for recently run configure." into 15
Joshua Colp [Thu, 14 Dec 2017 12:58:48 +0000 (06:58 -0600)] 
Merge "menuselect: Tweak check for recently run configure." into 15

7 years agoMerge "README: Remove outdated references to tex docs" into 15
Joshua Colp [Thu, 14 Dec 2017 12:36:20 +0000 (06:36 -0600)] 
Merge "README: Remove outdated references to tex docs" into 15

7 years agoMerge "res_pjsip: Assign support levels to a few modules" into 15
Joshua Colp [Wed, 13 Dec 2017 21:25:08 +0000 (15:25 -0600)] 
Merge "res_pjsip: Assign support levels to a few modules" into 15

7 years agoMerge "pjsip_options: contacts sometimes not being updated on reload" into 15
Jenkins2 [Wed, 13 Dec 2017 20:59:37 +0000 (14:59 -0600)] 
Merge "pjsip_options: contacts sometimes not being updated on reload" into 15

7 years agoREADME: Remove outdated references to tex docs
George Joseph [Wed, 13 Dec 2017 20:26:04 +0000 (13:26 -0700)] 
README: Remove outdated references to tex docs

Added links to the wiki to replace references to outdated
tex docs.

ASTERISK-27430
Reported by: Corey Farrell

Change-Id: I5007e732b30bc7b63d124c530ae8857c89991209

7 years agoMerge "pjsip_options: dynamic contact's fields not updated on reload" into 15
Jenkins2 [Wed, 13 Dec 2017 20:11:15 +0000 (14:11 -0600)] 
Merge "pjsip_options: dynamic contact's fields not updated on reload" into 15

7 years agoMerge "CLI: Fix 'core show sysinfo' function ordering." into 15
Jenkins2 [Wed, 13 Dec 2017 18:25:11 +0000 (12:25 -0600)] 
Merge "CLI: Fix 'core show sysinfo' function ordering." into 15

7 years agoMerge "chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)" into 15
Jenkins2 [Wed, 13 Dec 2017 16:25:22 +0000 (10:25 -0600)] 
Merge "chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)" into 15

7 years agoMerge "AST-2017-012: Place single RTCP report block at beginning of report." into 15
George Joseph [Wed, 13 Dec 2017 13:52:15 +0000 (07:52 -0600)] 
Merge "AST-2017-012: Place single RTCP report block at beginning of report." into 15

7 years agoAST-2017-012: Place single RTCP report block at beginning of report.
Joshua Colp [Thu, 30 Nov 2017 16:12:55 +0000 (16:12 +0000)] 
AST-2017-012: Place single RTCP report block at beginning of report.

When the RTCP code was transitioned over to Stasis a code change
was made to keep track of how many reports are present. This count
controlled where report blocks were placed in the RTCP report.

If a compound RTCP packet was received this logic would incorrectly
place a report block in the wrong location resulting in a write
to an invalid location.

This change removes this counting logic and always places the report
block at the first position. If in the future multiple reports are
supported the logic can be extended but for now keeping a count
serves no purpose.

ASTERISK-27382
ASTERISK-27429

Change-Id: Iad6c8a9985c4b608ef493e19c421211615485116

7 years agoMerge "chan_sip: Don't crash in Dial on invalid destination" into 15
Joshua Colp [Wed, 13 Dec 2017 13:26:38 +0000 (07:26 -0600)] 
Merge "chan_sip: Don't crash in Dial on invalid destination" into 15

7 years agores_pjsip_session: Reinvite using active stream topology if none requested.
Joshua Colp [Wed, 13 Dec 2017 12:54:58 +0000 (12:54 +0000)] 
res_pjsip_session: Reinvite using active stream topology if none requested.

When a connected line update is sent to an endpoint we do not request
a specific stream topology to be used. Previously this resulted in the
configured stream topology being used which may actually differ from the
currently negotiated topology. PJSIP is helpful in this regard in that
it will fill in any missing streams with removed ones. This results in
our own state not matching the SDP, though, and we do not apply the
negotiated SDP.

This change tweaks the code to use the actively negotiated stream
topology if it is present with a fallback to the configured one. This
results in the SDP and the state having matching information and the
world is happy.

ASTERISK*27397

Change-Id: I7a57117f0183479e6884b7bf3a53bb8c7464f604

7 years agoMerge "chan_sip: Don't send trailing \0 on keep alive packets" into 15
Jenkins2 [Wed, 13 Dec 2017 12:53:35 +0000 (06:53 -0600)] 
Merge "chan_sip: Don't send trailing \0 on keep alive packets" into 15

7 years agopjsip: Ignore state changes from old transactions.
Joshua Colp [Wed, 6 Dec 2017 14:24:03 +0000 (14:24 +0000)] 
pjsip: Ignore state changes from old transactions.

When we fail over to a new target we create a new transaction
and it becomes the current INVITE transaction. This does not
prevent the previous transaction from raising state changes
and causing the session to be prematurely disconnected if a
transport error occurs immediately.

This change backports a fix from PJSIP that eliminates the
incorrect state change and reduces when they would be raised
in the first place.

ASTERISK-27408

Change-Id: Id22d087591782eee31311753d11e7eca4b95ef34

7 years agochan_sip: Don't send trailing \0 on keep alive packets
Sean Bright [Tue, 12 Dec 2017 21:28:54 +0000 (16:28 -0500)] 
chan_sip: Don't send trailing \0 on keep alive packets

This is a partial fix for ASTERISK~25817 but does not address the
comments regarding RFC 5626.

Change-Id: I227e2d10c0035bbfa1c6e46ae2318fd1122d8420

7 years agochan_sip: Don't crash in Dial on invalid destination
Sean Bright [Tue, 12 Dec 2017 21:19:09 +0000 (16:19 -0500)] 
chan_sip: Don't crash in Dial on invalid destination

Stripping the DNID in a SIP dial string can result in attempting to call
the argument parsing macros on an empty string, causing a crash.

ASTERISK-26131 #close
Reported by: Dwayne Hubbard
Patches:
dw-asterisk-master-dnid-crash.patch (license #6257) patch
uploaded by Dwayne Hubbard

Change-Id: Ib84c1f740a9ec0539d582b09d847fc85ddca1c5e

7 years agomenuselect: Tweak check for recently run configure.
Corey Farrell [Tue, 12 Dec 2017 21:16:38 +0000 (16:16 -0500)] 
menuselect: Tweak check for recently run configure.

Recently menuselect has randomly produced an error stating that
configure was just run and make had to be restarted.  I believe this is
due to an incorrect menuselect/Makefile rule.  The original rule
produced an error if makeopts or autoconfig.h were older than
makeopts.in or autoconfig.h.in.  I believe this can create an issue if
makeopts is older than autoconfig.h.in or if autoconfig.h is older than
makeopts.in.  The new rules compare files independently.

Change-Id: Ibca155035fa1392c95e33cbf25f257902abba17b

7 years agochan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)
Richard Mudgett [Thu, 7 Dec 2017 23:51:08 +0000 (17:51 -0600)] 
chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)

This patch does three things associated with the initial incoming INVITE
request URI.

1) Add access to the full initial incoming INVITE request URI.

2) We were not setting DNID on incoming PJSIP channels.  The DNID is the
user portion of the initial incoming INVITE Request-URI.  The value is
accessed by reading CALLERID(dnid).

3) Fix CHANNEL(pjsip,target_uri) documentation.

* The initial incoming INVITE request URI is now available using
CHANNEL(pjsip,request_uri).

* Set the DNID on PJSIP channel creation so CALLERID(dnid) can return the
initial incoming INVITE request URI user portion.

* CHANNEL(pjsip,target_uri) now correctly documents that the target URI is
the contact URI.

* Refactored print_escaped_uri() out of channel_read_pjsip() to handle
pjsip_uri_print() error condition when the buffer is too small.

ASTERISK-27478

Change-Id: I512e60d1f162395c946451becb37af3333337b33

7 years agores_pjsip: Add TLSv1.1 and TLSv1.2 support
Sean Bright [Tue, 12 Dec 2017 15:28:45 +0000 (10:28 -0500)] 
res_pjsip: Add TLSv1.1 and TLSv1.2 support

Support for these protocols was added in the same commit as the 'proto'
field, so we can safely use the same ./configure check.

For reference: https://trac.pjsip.org/repos/changeset/4968

Change-Id: Icf4975d785d6bfb8f30ac7ffa695a0adf9382dac

7 years agores_pjsip: Assign support levels to a few modules
Sean Bright [Tue, 12 Dec 2017 14:06:32 +0000 (09:06 -0500)] 
res_pjsip: Assign support levels to a few modules

Change-Id: I51f6945c4023cb93fc7b87be5ab4c50e9e6ee27d

7 years agoCLI: Fix 'core show sysinfo' function ordering.
Corey Farrell [Sat, 9 Dec 2017 06:35:12 +0000 (01:35 -0500)] 
CLI: Fix 'core show sysinfo' function ordering.

Handle CLI initialization before any processing occurs.

Change-Id: I598b911d2e409214bbdfd0ba0882be1d602d221c

7 years agostasis_channels.c: Don't set channel snapshot caller_dnid twice.
Richard Mudgett [Fri, 8 Dec 2017 18:04:25 +0000 (12:04 -0600)] 
stasis_channels.c: Don't set channel snapshot caller_dnid twice.

Change-Id: Ib8d45bbdfbda81e65045f6dff874d189b74e5471

7 years agoMerge "codec_opus: Make libcurl a dependency in menuselect" into 15
George Joseph [Mon, 11 Dec 2017 19:06:43 +0000 (13:06 -0600)] 
Merge "codec_opus: Make libcurl a dependency in menuselect" into 15

7 years agoMerge "astdb: Improve prefix searches in astdb" into 15
Jenkins2 [Mon, 11 Dec 2017 18:00:07 +0000 (12:00 -0600)] 
Merge "astdb: Improve prefix searches in astdb" into 15

7 years agoMerge "loader: Refactor resource_name_match." into 15
Jenkins2 [Mon, 11 Dec 2017 17:29:45 +0000 (11:29 -0600)] 
Merge "loader: Refactor resource_name_match." into 15

7 years agoMerge "res_stasis and res_speech: Fix load order." into 15
Jenkins2 [Mon, 11 Dec 2017 16:47:06 +0000 (10:47 -0600)] 
Merge "res_stasis and res_speech: Fix load order." into 15

7 years agoMerge "utils: Add convenience function for setting fd flags" into 15
Jenkins2 [Mon, 11 Dec 2017 16:24:41 +0000 (10:24 -0600)] 
Merge "utils: Add convenience function for setting fd flags" into 15

7 years agocodec_opus: Make libcurl a dependency in menuselect
Sean Bright [Mon, 11 Dec 2017 15:45:17 +0000 (10:45 -0500)] 
codec_opus: Make libcurl a dependency in menuselect

ASTERISK-27475 #close

Change-Id: If7384bc6ed002ef140dec69798d14c52b7cfd800

7 years agoMerge "pjsip: Improve CLI completion performance" into 15
Jenkins2 [Mon, 11 Dec 2017 15:44:21 +0000 (09:44 -0600)] 
Merge "pjsip: Improve CLI completion performance" into 15

7 years agoMerge "CDR: Fix deadlock setting some CDR values." into 15
Jenkins2 [Mon, 11 Dec 2017 14:51:37 +0000 (08:51 -0600)] 
Merge "CDR: Fix deadlock setting some CDR values." into 15

7 years agopjsip: Improve CLI completion performance
Sean Bright [Fri, 8 Dec 2017 18:48:48 +0000 (13:48 -0500)] 
pjsip: Improve CLI completion performance

Use the new ast_cli_completion_add() function to improve completion
performance for commands like 'pjsip show endpoint.'

Change-Id: I76d802294d2ac1766110dc75f7d117c8541ce348

7 years agoastdb: Improve prefix searches in astdb
Sean Bright [Thu, 7 Dec 2017 20:19:40 +0000 (15:19 -0500)] 
astdb: Improve prefix searches in astdb

Using the LIKE operator requires a full table scan of 'astdb', whereas a
comparison operation is able to use the primary key index.

This patch adds a new function to the AstDB API for quick prefix matches
and updates res_sorcery_astdb to utilize it. This showed substantial
performance improvement in my test environment.

Related to ASTERISK~26806, but does not completely resolve it.

Change-Id: I7d37f9ba2aea139dabf2ca72d31fbe34bd9b2fa1

7 years agoloader: Refactor resource_name_match.
Corey Farrell [Sat, 9 Dec 2017 00:19:34 +0000 (19:19 -0500)] 
loader: Refactor resource_name_match.

Optimize resource_name_match.  This change eliminates use of
ast_strdupa, instead verifying that both basename's are the same length,
then using strncasecmp.

Change-Id: I477275c0e954c99d74be5abfc8bb6545b04e5a3d

7 years agopjsip_configuration: Add correct file header
Sean Bright [Fri, 8 Dec 2017 20:58:54 +0000 (15:58 -0500)] 
pjsip_configuration: Add correct file header

Change-Id: I25348c386a222bb704aff07f54375108a6402906

7 years agoutils: Add convenience function for setting fd flags
Sean Bright [Thu, 7 Dec 2017 15:52:39 +0000 (10:52 -0500)] 
utils: Add convenience function for setting fd flags

There are many places in the code base where we ignore the return value
of fcntl() when getting/setting file descriptior flags. This patch
introduces a convenience function that allows setting or clearing file
descriptor flags and will also log an error on failure for later
analysis.

Change-Id: I8b81901e1b1bd537ca632567cdb408931c6eded7

7 years agores_stasis and res_speech: Fix load order.
Corey Farrell [Fri, 8 Dec 2017 01:33:27 +0000 (20:33 -0500)] 
res_stasis and res_speech: Fix load order.

res_stasis was missing AST_MODFLAG_LOAD_ORDER.  Set res_stasis and
res_speech to start at (AST_MODPRI_APP_DEPEND - 1) so they are ready for
dependent modules.

Change-Id: I27f4f3810a95b6be8a5bfbf62be2ace6bfab6ff3

7 years agopjsip_options: contacts sometimes not being updated on reload
Kevin Harwell [Fri, 8 Dec 2017 00:22:34 +0000 (18:22 -0600)] 
pjsip_options: contacts sometimes not being updated on reload

For both dynamic and static contacts it was possible that potential AOR
changes were not being applied to all contacts. This was because the qualify
and schedule code was only retrieving AOR's, and contacts with frequencies
greater than zero.

For instance the following could happen: and AOR/contact has a frequency of 5,
it then gets set to 0, and then a reload occurs. All scheduled OPTIONS are
stopped, a list of AOR's is retrieved with frequency > 0, but none are
selected since in this scenario all are 0. The contact for the one previously
set to 5 though does not get updated, so it's status remains "AVAILABLE".

This patch makes it so all contacts (static and dynamic) are selected, and
appropriately updated if need be.

ASTERISK-27467 #close

Change-Id: I7a920170f89c683af9505d4723a44fc6841decdb

7 years agopjsip_options: dynamic contact's fields not updated on reload
Kevin Harwell [Fri, 8 Dec 2017 00:18:00 +0000 (18:18 -0600)] 
pjsip_options: dynamic contact's fields not updated on reload

Dynamic contacts were not being properly updated on reload. As a matter of
fact any changes to the AOR that a dynamic contact was associated with were
not being applied.

On reload, this patch makes it so for each dynamic contact, the associated
AOR is now retrieved and the AOR's fields are applied to the contact.

ASTERISK-27467

Change-Id: I8e3165dc6a745218c1c9db837f77fafa0516985d

7 years agoMerge "translate: Skip matrix_rebuild during shutdown." into 15
Jenkins2 [Thu, 7 Dec 2017 21:03:40 +0000 (15:03 -0600)] 
Merge "translate: Skip matrix_rebuild during shutdown." into 15

7 years agoMerge "CLI: Fix remote console completion." into 15
Joshua Colp [Thu, 7 Dec 2017 20:36:40 +0000 (14:36 -0600)] 
Merge "CLI: Fix remote console completion." into 15

7 years agoMerge "sounds_index: Avoid repeatedly reindexing." into 15
Jenkins2 [Thu, 7 Dec 2017 18:31:05 +0000 (12:31 -0600)] 
Merge "sounds_index: Avoid repeatedly reindexing." into 15

7 years agoMerge "media_index: Improve startup." into 15
Jenkins2 [Thu, 7 Dec 2017 18:06:34 +0000 (12:06 -0600)] 
Merge "media_index: Improve startup." into 15

7 years agoCLI: Fix remote console completion.
Corey Farrell [Thu, 7 Dec 2017 16:35:39 +0000 (11:35 -0500)] 
CLI: Fix remote console completion.

Duplicate checking was done incorrectly when parsing completion options
from a remote console causing all options to be ignored as duplicates.
Once fixed I had to separate processing of the best match to ensure it
was not identified as a duplicate when it is the only match.

ASTERISK-27465

Change-Id: Ibbdb29f88211742071836c9b3f4d2aa1221cd0f9

7 years agotranslate: Skip matrix_rebuild during shutdown.
Corey Farrell [Thu, 7 Dec 2017 05:35:14 +0000 (00:35 -0500)] 
translate: Skip matrix_rebuild during shutdown.

Change-Id: I1e5eef4029cba56e33d786c5a5ade8091e531a1e

7 years agosounds_index: Avoid repeatedly reindexing.
Corey Farrell [Wed, 6 Dec 2017 20:49:32 +0000 (15:49 -0500)] 
sounds_index: Avoid repeatedly reindexing.

The sounds index is rebuilt each time a format is registered or
unregistered.  This causes the index to be repeatedly rebuilt during
startup and shutdown.

This patch significantly reduces the work done by delaying sound index
initialization until after modules are loaded.  This way a reindex only
occurs if a format module is loaded after startup.  We also skip
reindexing when format modules are unloaded during shutdown.

Change-Id: I585fd6ee04200612ab1490dc804f76805f89cf0a

7 years agomedia_index: Improve startup.
Corey Farrell [Wed, 6 Dec 2017 18:42:55 +0000 (13:42 -0500)] 
media_index: Improve startup.

This eliminates some wasteful operations in media_index startup.

* Replace statically set string-fields with char[0].
* Eliminate pointless RAII_VAR's.
* alloc_variant: Avoid pointless ao2_find on new info->variant.
* Stop trying find_variant before alloc_variant.
* process_media_file: replace ast_str with ast_asprintf.  This avoids
  reallocation of file_id_str.

Overall sounds_index.c is about 27% of Asterisk startup time when using
sample configs.  This patch reduces it to 20%.  This is a half-fix.  The
real problem is that the media_index is regenerated repeatedly - 68
times in my test.

Change-Id: Ia50b752f8efb356f852b05c4be495a6631af8652

7 years agoCDR: Fix deadlock setting some CDR values.
Richard Mudgett [Wed, 6 Dec 2017 00:04:47 +0000 (18:04 -0600)] 
CDR: Fix deadlock setting some CDR values.

Setting channel variables with the AMI Originate action caused a deadlock
when you set CDR(amaflags) or CDR(accountcode).  This path has the channel
locked when the CDR function is called.  The CDR function then
synchronously passes the job to a stasis thread.  The stasis handling
function then attempts to lock the channel.  Deadlock results.

* Avoid deadlock by making the CDR function handle setting amaflags and
accountcode directly on the channel rather than passing it off to the CDR
processing code under a stasis thread to do it.

* Made the CHANNEL function and the CDR function process amaflags the same
way.

* Fixed referencing the wrong message type in cdr_prop_write().

ASTERISK-27460

Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f

7 years agobridge_basic.c: Update transfer diagnostic messages addendum.
Richard Mudgett [Wed, 6 Dec 2017 13:36:02 +0000 (07:36 -0600)] 
bridge_basic.c: Update transfer diagnostic messages addendum.

* Added start DTMF transfer verbose messages.
* Made associated transfer messages use a similar message format.
* Adjusted message verbose level as requested by initial reporter.

ASTERISK-27449

Change-Id: I2045714586414b3c5ef1f3cc56c1c4af4b31f551

7 years agoMerge "bridge_basic.c: Update transfer diagnostic messages." into 15
Joshua Colp [Wed, 6 Dec 2017 13:07:58 +0000 (07:07 -0600)] 
Merge "bridge_basic.c: Update transfer diagnostic messages." into 15

7 years agoMerge "Add new object for VoicemailUserEntry" into 15
Jenkins2 [Wed, 6 Dec 2017 01:59:59 +0000 (19:59 -0600)] 
Merge "Add new object for VoicemailUserEntry" into 15

7 years agoMerge "res_rtp_asterisk.c: Increase strictrtp learning timeout time." into 15
Jenkins2 [Wed, 6 Dec 2017 01:07:20 +0000 (19:07 -0600)] 
Merge "res_rtp_asterisk.c: Increase strictrtp learning timeout time." into 15

7 years agoMerge "pjproject: Clean up disabling of WebRTC support." into 15
Joshua Colp [Wed, 6 Dec 2017 00:24:16 +0000 (18:24 -0600)] 
Merge "pjproject: Clean up disabling of WebRTC support." into 15

7 years agobridge_basic.c: Update transfer diagnostic messages.
Niklas Larsson [Wed, 29 Nov 2017 12:21:42 +0000 (13:21 +0100)] 
bridge_basic.c: Update transfer diagnostic messages.

* Add the channel name to diagnostic messages so you will know which
channel failed to transfer.

* Promoted some debug messages to verbose 4 messages.

ASTERISK-27449 #close

Change-Id: Idac66b7628c99379cc9269158377fd87dc97a880

7 years agosecurity-events: Fix SuccessfulAuth using_password declaration.
Richard Mudgett [Fri, 1 Dec 2017 19:54:26 +0000 (13:54 -0600)] 
security-events: Fix SuccessfulAuth using_password declaration.

The SuccessfulAuth using_password field was declared as a pointer to a
uint32_t when the field was later read as a uint32_t value.  This resulted
in unnecessary casts and a non-portable field value reinterpret in
main/security_events.c:add_json_object().  i.e., It would work on a 32 bit
architecture but not on a 64 bit big endian architecture.

Change-Id: Ia08bc797613a62f07e5473425f9ccd8d77c80935

7 years agoAdd new object for VoicemailUserEntry
Sungtae Kim [Mon, 4 Dec 2017 09:40:18 +0000 (10:40 +0100)] 
Add new object for VoicemailUserEntry

Currently, when the app_voicemail sending VoicemailUserEntry AMI event, there's
no OldMessageCount info for default.
To check the OldMessageCount info, it required IMAP_STORAGE define, but this is
not correct.
Added OldMessageCount item as a default.

ASTERISK-27456

Change-Id: I5c71521c2d1daf8b7b161e31c34d28cca6aea4c7

7 years agoMerge "res_rtp_asterisk: Correct default in sample configuration file." into 15
Jenkins2 [Mon, 4 Dec 2017 17:41:15 +0000 (11:41 -0600)] 
Merge "res_rtp_asterisk: Correct default in sample configuration file." into 15

7 years agores_rtp_asterisk.c: Increase strictrtp learning timeout time.
Richard Mudgett [Thu, 30 Nov 2017 18:50:58 +0000 (12:50 -0600)] 
res_rtp_asterisk.c: Increase strictrtp learning timeout time.

More complicated direct media reinvite negotiations can result in longer
delays before direct media flows.  The strictrtp learning timeout time
was too short.  One log showed that the first RTP packet came in just
after three seconds.

* Increase the strictrtp learning timeout time from 1.5 to 5 seconds.

ASTERISK-27453

Change-Id: Ic5e711164cbb91b4d1c1e40c83697755640f138c

7 years agoMerge "README-SERIOUSLY.bestpractices.txt: Convert to markdown" into 15
Jenkins2 [Mon, 4 Dec 2017 16:43:16 +0000 (10:43 -0600)] 
Merge "README-SERIOUSLY.bestpractices.txt: Convert to markdown" into 15

7 years agoMerge "autoconf: Remove use of m4_ifblank." into 15
Jenkins2 [Mon, 4 Dec 2017 15:44:34 +0000 (09:44 -0600)] 
Merge "autoconf: Remove use of m4_ifblank." into 15

7 years agoMerge "config: Speed up config template lookup" into 15
Joshua Colp [Mon, 4 Dec 2017 14:51:26 +0000 (08:51 -0600)] 
Merge "config: Speed up config template lookup" into 15

7 years agores_rtp_asterisk: Correct default in sample configuration file.
Alexander Traud [Mon, 4 Dec 2017 14:33:16 +0000 (15:33 +0100)] 
res_rtp_asterisk: Correct default in sample configuration file.

With Asterisk 12 (commit 866d968), the default of "icesupport" changed to
- "yes" in the module "res_rtp_asterisk" and
- "no" in the module "chan_sip".
The latter was reflected in the sample configuration file for "sip.conf". The
former did not make it into "rtp.conf.sample".

ASTERISK-20643

Change-Id: I2a2e0a900455d0767a99ea576e30adc6d7608a36

7 years agoMerge "config: Speed up ACO & sorcery initialization" into 15
Joshua Colp [Mon, 4 Dec 2017 14:00:31 +0000 (08:00 -0600)] 
Merge "config: Speed up ACO & sorcery initialization" into 15

7 years agoMerge "res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION." into 15
Jenkins2 [Mon, 4 Dec 2017 13:27:14 +0000 (07:27 -0600)] 
Merge "res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION." into 15

7 years agopjproject: Clean up disabling of WebRTC support.
Joshua Colp [Mon, 4 Dec 2017 00:49:14 +0000 (00:49 +0000)] 
pjproject: Clean up disabling of WebRTC support.

The definition in config_site.h and the argument to the
configure script are not necessary to disable WebRTC
support. The correct argument, --disable-libwebrtc, is
already passed.

ASTERISK-26980

Change-Id: I27da2c894f87914956a72710222e17462d8a44bc

7 years agoautoconf: Remove use of m4_ifblank.
Corey Farrell [Sat, 2 Dec 2017 21:55:31 +0000 (16:55 -0500)] 
autoconf: Remove use of m4_ifblank.

The m4_ifblank macro is not available on CentOS 6, reverse conditionals
to allow use of m4_ifval instead.  ./bootstrap.sh was run but this patch
does not result in any difference to the generated configure script.

Change-Id: I280785deb872ed8d3339d99cce63a2b54d5f1438

7 years agoREADME-SERIOUSLY.bestpractices.txt: Convert to markdown
Corey Farrell [Fri, 1 Dec 2017 03:24:42 +0000 (22:24 -0500)] 
README-SERIOUSLY.bestpractices.txt: Convert to markdown

Follow-up to conversion of README.md.

Change-Id: I17ee7cf25bc027ece844efa2c1dfe613aff1e35b

7 years agoAST-2017-013: chan_skinny: Call pthread_detach when sess threads end
George Joseph [Thu, 30 Nov 2017 20:38:50 +0000 (13:38 -0700)] 
AST-2017-013: chan_skinny: Call pthread_detach when sess threads end

chan_skinny creates a new thread for each new session.  In trying
to be a good cleanup citizen, the threads are joinable and the
unload_module function does a pthread_cancel() and a pthread_join()
on any sessions that are active at that time.  This has an
unintended side effect though. Since you can call pthread_join on a
thread that's already terminated, pthreads keeps the thread's
storage around until you explicitly call pthread_join (or
pthread_detach()).   Since only the module_unload function was
calling pthread_join, and even then only on the ones active at the
tme, the storage for every thread/session ever created sticks
around until asterisk exits.

* A thread can detach itself so the session_destroy() function
  now calls pthread_detach() just before it frees the session
  memory allocation.  The module_unload function still takes care
  of the ones that are still active should the module be unloaded.

ASTERISK-27452
Reported by: Juan Sacco

Change-Id: I9af7268eba14bf76960566f891320f97b974e6dd

7 years agoconfig: Speed up config template lookup
Sean Bright [Fri, 1 Dec 2017 16:01:01 +0000 (11:01 -0500)] 
config: Speed up config template lookup

ast_category_get() has an (undocumented) implementation detail where it
tries to match the category name first by an explicit pointer comparison
and if that fails falls back to a normal match.

When initially building an ast_config during ast_config_load, this
pointer comparison can never succeed, but we will end up iterating all
categories twice. As the number of categories using a template
increases, this dual looping becomes quite expensive. So we pass a flag
to category_get_sep() indicating if a pointer match is even possible
before trying to do so, saving us a full pass over the list of current
categories.

In my tests, loading a file with 3 template categories and 12000
additional categories that use those 3 templates (this file configures
4000 PJSIP endpoints with AOR & Auth) takes 1.2 seconds. After this
change, that drops to 22ms.

Change-Id: I59b95f288e11eb6bb34f31ce4cc772136b275e4a

7 years agoconfig: Speed up ACO & sorcery initialization
Sean Bright [Fri, 1 Dec 2017 14:29:43 +0000 (09:29 -0500)] 
config: Speed up ACO & sorcery initialization

When starting Asterisk in the foreground, there is a perceptible delay
when loading modules that use the ACO and sorcery config frameworks.
For example, a lightly configured res_pjsip took 853ms to load on my
VM.

I tracked down the slowness to the XPath queries used to associate the
relevant documentation with the config options. One improvement was
adding a call to xmlXPathOrderDocElems after loading an XML document.
From the libxml2 docs:

  Call this routine to speed up XPath computation on static documents.

The second change was to remove recursive descent and wildcard
operators from the XPath queries. After these changes, res_pjsip takes
85ms to load on my VM and there is no longer a perceptible delay when
starting Asterisk in the foreground.

Change-Id: I45d457f1580e26bf5a2b0dab16e8e9ae46dcbd82

7 years agores_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION.
Joshua Colp [Fri, 1 Dec 2017 12:07:52 +0000 (08:07 -0400)] 
res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION.

This change makes the presence of the GMIME_MAJOR_VERSION
definition optional, as not all versions of gmime actually
define it.

ASTERISK-27454

Change-Id: I01d99590045971ed6787899147170a5954077238

7 years agoMerge "translate: Transcode siren14, speex32, silk24, and silk12 via slin16." into 15
Jenkins2 [Thu, 30 Nov 2017 16:06:25 +0000 (10:06 -0600)] 
Merge "translate: Transcode siren14, speex32, silk24, and silk12 via slin16." into 15

7 years agoMerge "autoconf: Use m4 conditionals where possible." into 15
Jenkins2 [Thu, 30 Nov 2017 15:27:05 +0000 (09:27 -0600)] 
Merge "autoconf: Use m4 conditionals where possible." into 15

7 years agoMerge "autoconf: Fix call to AC_CONFIG_AUX_DIR." into 15
Jenkins2 [Thu, 30 Nov 2017 14:50:15 +0000 (08:50 -0600)] 
Merge "autoconf: Fix call to AC_CONFIG_AUX_DIR." into 15

7 years agoMerge "translate: Show sample rate for silk, speex, and slin in translation table...
Jenkins2 [Tue, 28 Nov 2017 18:24:57 +0000 (12:24 -0600)] 
Merge "translate: Show sample rate for silk, speex, and slin in translation table." into 15

7 years agoautoconf: Use m4 conditionals where possible.
Corey Farrell [Fri, 17 Nov 2017 16:38:48 +0000 (11:38 -0500)] 
autoconf: Use m4 conditionals where possible.

Change-Id: I530c0a72f965437acef6a9a4fbfe5c487f078b65

7 years agoautoconf: Fix call to AC_CONFIG_AUX_DIR.
Corey Farrell [Fri, 17 Nov 2017 15:15:17 +0000 (10:15 -0500)] 
autoconf: Fix call to AC_CONFIG_AUX_DIR.

The `pwd` parameter to AC_CONFIG_AUX_DIR is unnecessary, the default
value is $srcdir.

Additionally remove the AC_REVISION call.  It only added a comment and
is pointless without SVN tag replacements.

Change-Id: I99299a3217f095bddcb2edefb3b9af0ab147bc29

7 years agoMerge "res_ari: Fix inverted test giving wrong error message." into 15
Joshua Colp [Mon, 27 Nov 2017 23:24:06 +0000 (17:24 -0600)] 
Merge "res_ari: Fix inverted test giving wrong error message." into 15

7 years agoMerge "res_rtp_asterisk.c: Fix rtp source address learning for broken clients" into 15
Joshua Colp [Mon, 27 Nov 2017 22:28:08 +0000 (16:28 -0600)] 
Merge "res_rtp_asterisk.c: Fix rtp source address learning for broken clients" into 15

7 years agoMerge "CLI: Finish conversion of completion handling to vectors." into 15
Joshua Colp [Mon, 27 Nov 2017 22:16:53 +0000 (16:16 -0600)] 
Merge "CLI: Finish conversion of completion handling to vectors." into 15

7 years agoMerge "features.conf.sample: Clarify ActivatedBy documentation wording." into 15
Jenkins2 [Mon, 27 Nov 2017 21:50:12 +0000 (15:50 -0600)] 
Merge "features.conf.sample: Clarify ActivatedBy documentation wording." into 15

7 years agoMerge "CLI: Refactor cli_complete." into 15
Jenkins2 [Mon, 27 Nov 2017 20:17:06 +0000 (14:17 -0600)] 
Merge "CLI: Refactor cli_complete." into 15

7 years agoMerge "CLI: Rewrite ast_el_strtoarr to use vector's internally." into 15
Jenkins2 [Mon, 27 Nov 2017 19:39:37 +0000 (13:39 -0600)] 
Merge "CLI: Rewrite ast_el_strtoarr to use vector's internally." into 15

7 years agoMerge "CLI: Refactor ast_cli_display_match_list." into 15
Jenkins2 [Mon, 27 Nov 2017 19:23:28 +0000 (13:23 -0600)] 
Merge "CLI: Refactor ast_cli_display_match_list." into 15

7 years agoMerge "CLI: Create ast_cli_completion_add function." into 15
George Joseph [Mon, 27 Nov 2017 18:29:10 +0000 (12:29 -0600)] 
Merge "CLI: Create ast_cli_completion_add function." into 15

7 years agoMerge "CLI: Remove calls to ast_cli_generator." into 15
George Joseph [Mon, 27 Nov 2017 17:31:24 +0000 (11:31 -0600)] 
Merge "CLI: Remove calls to ast_cli_generator." into 15

7 years agoMerge "add cmd connection creation on creation ooh323 call data structure" into 15
George Joseph [Mon, 27 Nov 2017 16:51:23 +0000 (10:51 -0600)] 
Merge "add cmd connection creation on creation ooh323 call data structure" into 15

7 years agoMerge "pjsip: 183 without To tag does not negotiate media" into 15
Joshua Colp [Mon, 27 Nov 2017 15:54:04 +0000 (09:54 -0600)] 
Merge "pjsip: 183 without To tag does not negotiate media" into 15

7 years agoMerge "Add defaultbranch to .gitreview." into 15
Joshua Colp [Mon, 27 Nov 2017 15:23:14 +0000 (09:23 -0600)] 
Merge "Add defaultbranch to .gitreview." into 15

7 years agotranslate: Transcode siren14, speex32, silk24, and silk12 via slin16.
Alexander Traud [Sun, 26 Nov 2017 17:47:17 +0000 (18:47 +0100)] 
translate: Transcode siren14, speex32, silk24, and silk12 via slin16.

When a format has no pre-recorded sound files, Asterisk has to transcode between
formats. For this, Asterisk has a fixed translation table. If the pre-recorded
sound files are not available in the same sample rate, Asterisk has not only to
transcode but also to resample.

Asterisk has pre-recorded files for SLN (8000 kHz) and SLN16 (16000 kHz).
However before this change, Asterisk did not take the sample rate into account,
because the translation paths to SLN and SLN16 got the same score/weight in the
table. Consequently, you might have got narrow-band audio with siren14, speex32,
silk24, and silk12 although those are (ultra) wide-band audio codecs.

With this change, the distance in sample-rates is taken into account. Now on the
Command-Line interface (CLI) 'core show channels', you should see:
(slin@16000)->(slin@32000)->(speex@32000).

ASTERISK-23735
Reported by: Richard Kenner

Change-Id: I9448295c1978be26f8633b6066395e7bbbe2e213

7 years agores_ari: Fix inverted test giving wrong error message.
Richard Mudgett [Sun, 26 Nov 2017 15:44:51 +0000 (09:44 -0600)] 
res_ari: Fix inverted test giving wrong error message.

The patch for ASTERISK_24560 inverted a test checking if the bridge name
is being updated to a different name.

* Fix the test to return "Changing bridge name is not implemented" when
someone attempts to change the bridge name.

ASTERISK-27445

Change-Id: I4b70bf08b0e02e016108b077ff75b345dec12fc9

7 years agotranslate: Show sample rate for silk, speex, and slin in translation table.
Alexander Traud [Sat, 25 Nov 2017 10:09:08 +0000 (11:09 +0100)] 
translate: Show sample rate for silk, speex, and slin in translation table.

ASTERISK-24662

Change-Id: I3822956984292c99c48bca8e97807e498ccc0e88

7 years agoMerge "res_parking: Make load_pri explicit." into 15
Joshua Colp [Thu, 23 Nov 2017 19:34:42 +0000 (13:34 -0600)] 
Merge "res_parking: Make load_pri explicit." into 15

7 years agofeatures.conf.sample: Clarify ActivatedBy documentation wording.
Richard Mudgett [Thu, 23 Nov 2017 19:27:28 +0000 (13:27 -0600)] 
features.conf.sample: Clarify ActivatedBy documentation wording.

Change-Id: Id2899331fe05d1909a862ea879742879d086bc64