asterisk/asterisk.git
20 months agoMerge "partial-inlining: disable partial-inlining if gcc>=8.2.1"
Joshua C. Colp [Wed, 13 Mar 2019 12:24:47 +0000 (07:24 -0500)]
Merge "partial-inlining: disable partial-inlining if gcc>=8.2.1"

20 months agoMakefile.moddir_rules: Pass PJPROJECT_BUNDLED to download_externals
George Joseph [Tue, 12 Mar 2019 18:25:33 +0000 (12:25 -0600)]
Makefile.moddir_rules: Pass PJPROJECT_BUNDLED to download_externals

The download_externals script wasn't getting the PJPROJECT_BUNDLED
environment variable passed down to it so it wasn't downloading
the appropriate variant of res_digium_phone.  This could cause
crashes in the DPMA.

Change-Id: I5daa9369c7af1fd556d892e89a85f279a2533425

20 months agoMerge "chan_pjsip: add a flag to ignore 183 responses if no SDP present"
Friendly Automation [Tue, 12 Mar 2019 15:10:12 +0000 (10:10 -0500)]
Merge "chan_pjsip: add a flag to ignore 183 responses if no SDP present"

20 months agopartial-inlining: disable partial-inlining if gcc>=8.2.1
Chris-Savinovich [Thu, 7 Mar 2019 19:48:04 +0000 (13:48 -0600)]
partial-inlining: disable partial-inlining if gcc>=8.2.1

Apply flag -fno-partial-inlining on default optimization if and only if
gcc version >= 8.2.1 (this is the current ver on Fedora and Ubuntu).
This is done to avoid a bug that causes arithmetic calculations to fail
if the following conditions are met:
1. TEST_FRAMEWORK on
2. DONT_OPTIMIZE off
3. Fedora and Ubuntu
4. GCC 8.2.1
5. There must exist a certain combination of multithreading.
6. Optimization level -O2 and -O3
7. Flag -fpartial-inline activated (default when optimization level>=2)
The following link points to a similar gcc bug reported in 2015. This leads me
to believe the bug has regressed. Note I am not able to replicate this bug
in an environment other than Asterisk + Test Framework + Test_cel because the
multithreading combination that causes it seems to be unique. Therefore I
am temporarily abandoning any thoughts of reporting the new occurrence of this
bug to gcc.gnu.org.  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65307

Change-Id: Ibd1afe60e0a38b88e85fdcd9b051004601c2f102

20 months agoMerge "app_meetme: Don't mute joining admins if conference is muted"
George Joseph [Mon, 11 Mar 2019 14:49:03 +0000 (09:49 -0500)]
Merge "app_meetme: Don't mute joining admins if conference is muted"

20 months agoMerge "res/res_rtp_asterisk.c: Fixing possible divide by zero"
Friendly Automation [Mon, 11 Mar 2019 14:45:28 +0000 (09:45 -0500)]
Merge "res/res_rtp_asterisk.c: Fixing possible divide by zero"

20 months agores/res_rtp_asterisk.c: Fixing possible divide by zero
sungtae kim [Sun, 3 Mar 2019 15:20:24 +0000 (16:20 +0100)]
res/res_rtp_asterisk.c: Fixing possible divide by zero

Currently, when the Asterisk calculates rtp statistics, it uses
sample_count as a unsigned integer parameter. This would be fine
for most of cases, but in case of large enough number of sample_count,
this might be causing the divide by zero error.

ASTERISK-28321

Change-Id: If7e0629abaceddd2166eb012456c53033ea26249

20 months agochan_pjsip: add a flag to ignore 183 responses if no SDP present
Torrey Searle [Mon, 4 Mar 2019 07:50:18 +0000 (08:50 +0100)]
chan_pjsip: add a flag to ignore 183 responses if no SDP present

chan_sip will always ignore 183 responses that do not contain SDP
however, chan_pjsip will currently always translate it into a
183 with SDP.  This new flag allows chan_pjsip to have the same
behavior as chan_sip.

ASTERISK-28322 #close

Change-Id: If81cfaa17c11b6ac703e3d71696f259d86c6be4a

20 months agojansson: json_pack with new format to verify required runtime version.
Corey Farrell [Thu, 7 Mar 2019 23:17:49 +0000 (18:17 -0500)]
jansson: json_pack with new format to verify required runtime version.

Add a json_pack at startup that will fail if runtime links against a
library older than jansson-2.11.

Change-Id: I101aebafe0f9407650206f7c552dad3d69377b5a

20 months agoMerge "res_stasis: Add ability to switch applications."
George Joseph [Fri, 8 Mar 2019 18:43:45 +0000 (12:43 -0600)]
Merge "res_stasis: Add ability to switch applications."

20 months agoMerge "Replace calls to strtok() with strtok_r()"
George Joseph [Fri, 8 Mar 2019 18:42:44 +0000 (12:42 -0600)]
Merge "Replace calls to strtok() with strtok_r()"

20 months agoMerge "samples: Fix comment typo in pjsip.conf.sample"
Friendly Automation [Fri, 8 Mar 2019 18:11:42 +0000 (12:11 -0600)]
Merge "samples: Fix comment typo in pjsip.conf.sample"

20 months agoMerge "bridging: Add creation timestamps"
George Joseph [Fri, 8 Mar 2019 17:11:36 +0000 (11:11 -0600)]
Merge "bridging: Add creation timestamps"

20 months agoapp_meetme: Don't mute joining admins if conference is muted
Sean Bright [Thu, 7 Mar 2019 23:15:05 +0000 (18:15 -0500)]
app_meetme: Don't mute joining admins if conference is muted

ASTERISK-28328 #close

Change-Id: I4f6069fb34923b7521520c2a205a1e56227e592b

20 months agoReplace calls to strtok() with strtok_r()
Sean Bright [Wed, 6 Mar 2019 21:04:57 +0000 (16:04 -0500)]
Replace calls to strtok() with strtok_r()

strtok() uses a static buffer, making it not thread safe.

Also add a #define to cause a compile failure if strtok is used.

Change-Id: Icce265153e1e65adafa8849334438ab6d190e541

20 months agosamples: Fix comment typo in pjsip.conf.sample
Sean Bright [Thu, 7 Mar 2019 22:05:42 +0000 (17:05 -0500)]
samples: Fix comment typo in pjsip.conf.sample

Change-Id: I84a45c3d9fd26ca61aca99927eec83b57f1de857

20 months agores_stasis: Add ability to switch applications.
Ben Ford [Thu, 7 Mar 2019 13:52:20 +0000 (07:52 -0600)]
res_stasis: Add ability to switch applications.

Added the ability to move between Stasis applications within Stasis.
This can be done by calling 'move' in an application, providing (at
minimum) the channel's id and the application to switch to. If the
application is not registered or active, nothing will happen and the
channel will remain in the current application, and an event will be
triggered to let the application know that the move failed. The event
name is "ApplicationMoveFailed", and provides the "destination" that the
channel was attempting to move to, as well as the usual channel
information. Optionally, a list of arguments can be passed to the
function call for the receiving application. A full example of a 'move'
call would look like this:

client.channels.move(channelId, app, appArgs)

The control object used to control the channel in Stasis can now switch
which application it belongs to, rather than belonging to one Stasis
application for its lifetime. This allows us to use the same control
object instead of having to tear down the current one and create
another.

ASTERISK-28267 #close

Change-Id: I43d12b10045a98a8d42541889b85695be26f288a

21 months agoMerge "sip_to_pjsip: Make multiline comment parsing consistent with Asterisk"
Friendly Automation [Tue, 5 Mar 2019 15:17:38 +0000 (09:17 -0600)]
Merge "sip_to_pjsip: Make multiline comment parsing consistent with Asterisk"

21 months agoMerge "app_queue: Handle empty 'interface' in queue member config"
Friendly Automation [Tue, 5 Mar 2019 14:50:57 +0000 (08:50 -0600)]
Merge "app_queue: Handle empty 'interface' in queue member config"

21 months agoMerge "res_pjsip_registrar: blocked threads on reliable transport shutdown take 3"
Joshua Colp [Tue, 5 Mar 2019 13:16:05 +0000 (07:16 -0600)]
Merge "res_pjsip_registrar: blocked threads on reliable transport shutdown take 3"

21 months agoMerge "basic-pbx: Update configuration to work with current modules."
Joshua Colp [Tue, 5 Mar 2019 13:04:50 +0000 (07:04 -0600)]
Merge "basic-pbx: Update configuration to work with current modules."

21 months agoapp_queue: Handle empty 'interface' in queue member config
Sean Bright [Mon, 4 Mar 2019 22:05:30 +0000 (17:05 -0500)]
app_queue: Handle empty 'interface' in queue member config

While the 'interface' column is a NOT NULL, the empty string is still
allowed. res_config_odbc treats the empty string as a NULL and we crash
when trying to dereference.

Also cleaned up an adjacent error message for consistency.

ASTERISK-28168 #close

Change-Id: I55e012b540fbcda99bb40bede3099b7ae5db8202

21 months agosip_to_pjsip: Make multiline comment parsing consistent with Asterisk
Sean Bright [Mon, 4 Mar 2019 18:36:01 +0000 (13:36 -0500)]
sip_to_pjsip: Make multiline comment parsing consistent with Asterisk

In Asterisk configuration, a multiline comment starts with ;-- as long as it is
not followed by another dash (i.e. ;--- is not a multiline comment).

ASTERISK-28323 #close

Change-Id: I32dc38e0fac01d3c0805d27d35d2365a7c37ca72

21 months agoMerge "res_pjsip_diversion: Use static pj_str_t for Diversion header names"
Friendly Automation [Mon, 4 Mar 2019 12:13:48 +0000 (06:13 -0600)]
Merge "res_pjsip_diversion: Use static pj_str_t for Diversion header names"

21 months agoMerge "CHANGES: Document addition of 'wrapuptime' argument to AddQueueMember()"
Joshua Colp [Mon, 4 Mar 2019 11:50:47 +0000 (05:50 -0600)]
Merge "CHANGES: Document addition of 'wrapuptime' argument to AddQueueMember()"

21 months agobasic-pbx: Update configuration to work with current modules.
Joshua Colp [Thu, 28 Feb 2019 12:24:59 +0000 (12:24 +0000)]
basic-pbx: Update configuration to work with current modules.

The res_pjsip_websocket module requires the res_http_websocket
module so ensure it is loaded. As well the res_pjsip_notify
module needs the pjsip_notify.conf configuration file so
ensure it is installed.

ASTERISK-28272

Change-Id: I261659b84e7a6ac4cb49990d9badb4b2ad01bacd

21 months agobridging: Add creation timestamps
sungtae kim [Fri, 8 Feb 2019 21:32:18 +0000 (22:32 +0100)]
bridging: Add creation timestamps

This small feature will help to checking the bridge's status to
figure out which bridge is in old/zombie or not. Also added
detail items for the 'bridge show *' cli to provide more detail
info. And added creation item to the ARI as well.

ASTERISK-28279

Change-Id: I460238c488eca4d216b9176576211cb03286e040

21 months agores_pjsip_diversion: Use static pj_str_t for Diversion header names
Sean Bright [Thu, 28 Feb 2019 16:01:15 +0000 (11:01 -0500)]
res_pjsip_diversion: Use static pj_str_t for Diversion header names

PJSIP assumes that these header names are not allocated, and does not
clone the name strings when reusing headers.

Block unload of res_pjsip_diversion until shutdown to ensure static
memory stays valid.

ASTERISK-28312 #close

Change-Id: Ibd6ea55ec4a604bbd43ac07f8d0b54da2c39b8b9

21 months agoMerge "res_config_odbc: Avoid deadlock when max_connections = 1"
Kevin Harwell [Fri, 1 Mar 2019 22:20:45 +0000 (16:20 -0600)]
Merge "res_config_odbc: Avoid deadlock when max_connections = 1"

21 months agoCHANGES: Document addition of 'wrapuptime' argument to AddQueueMember()
Rodrigo Ramírez Norambuena [Fri, 1 Mar 2019 21:17:30 +0000 (18:17 -0300)]
CHANGES: Document addition of 'wrapuptime' argument to AddQueueMember()

Change-Id: Ieb332d018ae3f2fc82b9465381fde0f299af1611

21 months agoMerge "menuselect: Add license header to menuselect_gtk.c"
Friendly Automation [Fri, 1 Mar 2019 21:01:00 +0000 (15:01 -0600)]
Merge "menuselect: Add license header to menuselect_gtk.c"

21 months agoMerge "Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses.""
Joshua Colp [Fri, 1 Mar 2019 14:02:21 +0000 (08:02 -0600)]
Merge "Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses.""

21 months agomenuselect: Add license header to menuselect_gtk.c
Sean Bright [Thu, 28 Feb 2019 21:36:36 +0000 (16:36 -0500)]
menuselect: Add license header to menuselect_gtk.c

This file was added to the Subversion repository on 2007-03-15 by
Russell Bryant, a Digium employee at the time.

ASTERISK-24173 #close

Change-Id: Ie866fa9d31d550467613d362b35b03c031ee594d

21 months agores_config_odbc: Avoid deadlock when max_connections = 1
Sean Bright [Thu, 28 Feb 2019 01:09:03 +0000 (20:09 -0500)]
res_config_odbc: Avoid deadlock when max_connections = 1

Rather than calling ast_odbc_find_table() in the prepare callback, call
it beforehand and pass it in to the callback to avoid the need for a
second connection.

ASTERISK-28166 #close

Change-Id: I6f8a0b9990d636fd6bc1a92ed70f7050d2436202

21 months agores_pjsip_sdp_rtp: Fix return code from apply_negotiated_sdp_stream
George Joseph [Wed, 30 Jan 2019 19:25:55 +0000 (12:25 -0700)]
res_pjsip_sdp_rtp:  Fix return code from apply_negotiated_sdp_stream

apply_negotiated_sdp_stream was returning a "1" when no joint
capabilities were found on an outgoing call instead of a "-1".
This indicated to res_pjsip_session that the handler DID handle
the sdp when in fact it didn't.  Without the appropriate setup,
a subsequent media frame coming in would have an invalid stream_num
and cause a seg fault when the stream was attempted to be retrieved.

apply_negotiated_sdp_stream now returns the correct "-1" and any
media is now discarded before it reaches the core stream processing.

ASTERISK-28260
Reported by: Sotiris Ganouris

Change-Id: Ia095cb16b4862f2f6ad6d2d2a77453fa2542371f

21 months agoMerge "res_pjsip_config_wizard: Don't crash if misconfigured"
Joshua Colp [Thu, 28 Feb 2019 13:47:51 +0000 (07:47 -0600)]
Merge "res_pjsip_config_wizard: Don't crash if misconfigured"

21 months agoRevert "pjsip_message_filter: Only do interface lookup for wildcard addresses."
Sean Bright [Thu, 28 Feb 2019 12:51:07 +0000 (06:51 -0600)]
Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses."

This reverts commit d524ad523d0d32babba309810b5bccd09cb7f467.

Reason for revert: This causes Contact and Via headers to have the wrong
transport address.

ASTERISK-28309 #close

Change-Id: Ibba4d6176f68e39279fcd9a545f81d56e747bed8

21 months agoMerge "res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen"
Friendly Automation [Thu, 28 Feb 2019 11:44:47 +0000 (05:44 -0600)]
Merge "res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen"

21 months agores_pjsip_config_wizard: Don't crash if misconfigured
Sean Bright [Thu, 28 Feb 2019 01:52:26 +0000 (20:52 -0500)]
res_pjsip_config_wizard: Don't crash if misconfigured

If both send_registrations and send_auth are both set to yes,
outbound_auth/username must be set or we crash.

ASTERISK-27992 #close

Change-Id: I6418d56de1ae53f80393b314c2584048fbf7f11d

21 months agoMerge "res_mwi_devstate.c: New module to allow presence subs to VM boxes"
Friendly Automation [Wed, 27 Feb 2019 23:40:32 +0000 (17:40 -0600)]
Merge "res_mwi_devstate.c: New module to allow presence subs to VM boxes"

21 months agores_pjsip_registrar: blocked threads on reliable transport shutdown take 3
Kevin Harwell [Wed, 20 Feb 2019 17:03:01 +0000 (11:03 -0600)]
res_pjsip_registrar: blocked threads on reliable transport shutdown take 3

When a contact was removed by the registrar it did not always check to see if
the circumstances involved a monitored reliable transport. For instance, if the
'remove_existing' option was set to 'true' then when existing contacts were
removed due to 'max_contacts' being reached, those existing contacts being
removed did not unregister the transport monitor.

Also, it was possible to add more than one monitor on a reliable transport for
a given aor and contact.

This patch makes it so all contact removals done by the registrar also remove
any associated transport monitors if necessary. It also makes it so duplicate
monitors cannot be added for a given transport.

ASTERISK-28213

Change-Id: I94b06f9026ed177d6adfd538317c784a42c1b17a

21 months agoCI: Update jenkinsfiles with new Gerrit URLs
George Joseph [Wed, 27 Feb 2019 16:37:14 +0000 (09:37 -0700)]
CI: Update jenkinsfiles with new Gerrit URLs

The recent upgrade of Gerrit to 2.16 elimiated referencing a
repository in a way the jenkinsfiles were relying on so
the URL references were changed to a more consistent and supported
format.

Change-Id: I2e8e3f213b9a96bb1b27665eca4a9a24bc49820e
(cherry picked from commit 5ce084579f897096163b4e0c2ed4e8e1a8558cca)

21 months agoMerge "rest-api-templates/asterisk_processor - replace http line breaks with line...
Joshua C. Colp [Tue, 26 Feb 2019 15:14:02 +0000 (09:14 -0600)]
Merge "rest-api-templates/asterisk_processor - replace http line breaks with line feed"

21 months agores_mwi_devstate.c: New module to allow presence subs to VM boxes
George Joseph [Wed, 20 Feb 2019 19:15:10 +0000 (12:15 -0700)]
res_mwi_devstate.c: New module to allow presence subs to VM boxes

This module allows presence subscriptions to voicemail boxes.  This
allows common BLF keys to act as voicemail waiting indicators.

ASTERISK-28301

Change-Id: I62a246c24f3d7d432e33e22d7a4a57c15c292fdd

21 months agores/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen
Torrey Searle [Mon, 25 Feb 2019 15:41:44 +0000 (16:41 +0100)]
res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen

Delivery timeval in the smoother object will fall behind while a DTMF is
being generated.  This can eventually lead to invalid rtp timestamps.
To prevent this from happening the smoother needs to be reset after every
DTMF to keep the timing up to date.

ASTERISK-28303 #close

Change-Id: Iaba3f7b428ebd72a4caa90e13b829ab4f088310f

21 months agoMerge "http.c: Support separated HTTP request"
Friendly Automation [Tue, 26 Feb 2019 13:17:53 +0000 (07:17 -0600)]
Merge "http.c: Support separated HTTP request"

21 months agoMerge "taskprocessor: Enable subsystems and overload by subsystem"
Joshua C. Colp [Tue, 26 Feb 2019 13:04:15 +0000 (07:04 -0600)]
Merge "taskprocessor:  Enable subsystems and overload by subsystem"

21 months agoMerge "app_queue: Enable set the wrapuptime from AddQueueMember application"
Friendly Automation [Tue, 26 Feb 2019 12:52:06 +0000 (06:52 -0600)]
Merge "app_queue: Enable set the wrapuptime from AddQueueMember application"

21 months agoMerge "res_ari_applications: Fix incorrect call to ao2_lock."
Joshua C. Colp [Tue, 26 Feb 2019 12:26:16 +0000 (06:26 -0600)]
Merge "res_ari_applications: Fix incorrect call to ao2_lock."

21 months agoMerge "Core: Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY"
Joshua C. Colp [Tue, 26 Feb 2019 12:08:45 +0000 (06:08 -0600)]
Merge "Core:  Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY"

21 months agorest-api-templates/asterisk_processor - replace http line breaks with line feed
Kevin Harwell [Mon, 25 Feb 2019 21:32:27 +0000 (15:32 -0600)]
rest-api-templates/asterisk_processor - replace http line breaks with line feed

Including line breaks (<br>, <br/>, <br />) in certain parts of the rest-api
json definition (e.g. summary, notes) displays them correctly in swagger.
However, when the field gets converted to the wiki format those breaks get
escaped and show up in the text as the actual string literal "<br>" etc...

This patch makes it so when converting to the wiki format it replaces all line
break values (<br>, etc...) with line feeds ('\n').

Change-Id: Ie1c9faa0d1c5d622804cc0a21ce769095b08aa3d

21 months agores_ari_applications: Fix incorrect call to ao2_lock.
Joshua C. Colp [Mon, 25 Feb 2019 12:10:59 +0000 (08:10 -0400)]
res_ari_applications: Fix incorrect call to ao2_lock.

When listing the applications the apps lock was incorrectly
locked twice instead of being locked and then unlocked.

ASTERISK-28302

Change-Id: If7d064592a9e88c0f1049214c50e02be6dabf79e

21 months agores_pjsip_sdp_rtp: Allow only single ssrc attribute.
Joshua Colp [Thu, 21 Feb 2019 18:06:23 +0000 (18:06 +0000)]
res_pjsip_sdp_rtp: Allow only single ssrc attribute.

When processing SSRC attributes we were iterating through
all of them, even though we only need to know the remote
SSRC once. This was problematic because some browsers group
SSRCs together on a stream, and due to our negotiation only
end up using the first one. Since we set the second one as
the remote SSRC we would drop the received media from them
instead of allowing it through.

In the future this may be extended to allow SSRC groups
and to use information from the attributes.

Change-Id: I4dc87087dbe56a83aa65f0f897bbd4ca75ec1270

21 months agoMerge "stasis: Store subscriber uniqueids with topic statistics."
Joshua C. Colp [Thu, 21 Feb 2019 16:17:28 +0000 (10:17 -0600)]
Merge "stasis: Store subscriber uniqueids with topic statistics."

21 months agoMerge "res_pjsip_session Added rtcp stats result vector into the session"
Joshua C. Colp [Thu, 21 Feb 2019 12:30:52 +0000 (06:30 -0600)]
Merge "res_pjsip_session Added rtcp stats result vector into the session"

21 months agohttp.c: Support separated HTTP request
Sungtae Kim [Wed, 9 Jan 2019 10:27:03 +0000 (10:27 +0000)]
http.c: Support separated HTTP request

Currently, the Asterisk does not support seperated HTTP request.
This patch make the Asterisk enables to wait lest part of HTTP request.
Also increases acceptable HTTP body length to 40k to support more
larger request.

ASTERISK-28236

Change-Id: I48a401aa64a21c3b37bf3cb4e0486d64b7dd8aa1

21 months agoCore: Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY
George Joseph [Wed, 20 Feb 2019 18:48:25 +0000 (11:48 -0700)]
Core:  Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY

The current settings AST_PBX_MAX_STACK is 128 entries which is
too low for some FreePBX installations with complex parking
arrangements.  Increased to 512 if LOW_MEMORY is not defined.

ASTERISK-28300

Change-Id: I7c4b540bc92e6642df0f3da639b003f7da8b1299

21 months agostasis: Store subscriber uniqueids with topic statistics.
Joshua C. Colp [Wed, 20 Feb 2019 18:22:31 +0000 (14:22 -0400)]
stasis: Store subscriber uniqueids with topic statistics.

This change provides an easier mechanism to determine which
subscribers are subscribed to a topic. Using this you can
inspect the specific subscribers for further details.

Change-Id: I8deea21703cd5c5357b85593b46c3eaf24e18c0c

21 months agotaskprocessor: Enable subsystems and overload by subsystem
George Joseph [Fri, 15 Feb 2019 18:53:50 +0000 (11:53 -0700)]
taskprocessor:  Enable subsystems and overload by subsystem

To prevent one subsystem's taskprocessors from causing others
to stall, new capabilities have been added to taskprocessors.

* Any taskprocessor name that has a '/' will have the part
  before the '/' saved as its "subsystem".
  Examples:
  "sorcery/acl-0000006a" and "sorcery/aor-00000019"
  will be grouped to subsystem "sorcery".
  "pjsip/distributor-00000025" and "pjsip/distributor-00000026"
  will bn grouped to subsystem "pjsip".
  Taskprocessors with no '/' have an empty subsystem.

* When a taskprocessor enters high-water alert status and it
  has a non-empty subsystem, the subsystem alert count will
  be incremented.

* When a taskprocessor leaves high-water alert status and it
  has a non-empty subsystem, the subsystem alert count will be
  decremented.

* A new api ast_taskprocessor_get_subsystem_alert() has been
  added that returns the number of taskprocessors in alert for
  the subsystem.

* A new CLI command "core show taskprocessor alerted subsystems"
  has been added.

* A new unit test was addded.

REMINDER: The taskprocessor code itself doesn't take any action
based on high-water alerts or overloading.  It's up to taskprocessor
users to check and take action themselves.  Currently only the pjsip
distributor does this.

* A new pjsip/global option "taskprocessor_overload_trigger"
  has been added that allows the user to select the trigger
  mechanism the distributor uses to pause accepting new requests.
  "none": Don't pause on any overload condition.
  "global": Pause on ANY taskprocessor overload (the default and
  current behavior)
  "pjsip_only": Pause only on pjsip taskprocessor overloads.

* The core pjsip pool was renamed from "SIP" to "pjsip" so it can
  be properly grouped into the "pjsip" subsystem.

* stasis taskprocessor names were changed to "stasis" as the
  subsystem.

* Sorcery core taskprocessor names were changed to "sorcery" to
  match the object taskprocessors.

Change-Id: I8c19068bb2fc26610a9f0b8624bdf577a04fcd56

21 months agoARI event type filtering
Kevin Harwell [Fri, 8 Feb 2019 20:48:27 +0000 (14:48 -0600)]
ARI event type filtering

Event type filtering is now enabled, and configurable per application. An app is
now able to specify which events are sent to the application by configuring an
allowed and/or disallowed list(s). This can be done by issuing the following:

PUT /applications/{applicationName}/eventFilter

And then enumerating the allowed/disallowed event types as a body parameter.

ASTERISK-28106

Change-Id: I9671ba1fcdb3b6c830b553d4c5365aed5d588d5b

21 months agoMerge "json.c/strings.c - Add a couple of utility functions"
George Joseph [Wed, 20 Feb 2019 15:53:33 +0000 (09:53 -0600)]
Merge "json.c/strings.c - Add a couple of utility functions"

21 months agoMerge "chan_pjsip: Changed to continued after invalid media for pjsip show channelstats"
Friendly Automation [Wed, 20 Feb 2019 15:00:08 +0000 (09:00 -0600)]
Merge "chan_pjsip: Changed to continued after invalid media for pjsip show channelstats"

21 months agoMerge "CI: Use tmpfs option to Docker instead of mount."
George Joseph [Wed, 20 Feb 2019 14:31:33 +0000 (08:31 -0600)]
Merge "CI: Use tmpfs option to Docker instead of mount."

21 months agoCI: Use tmpfs option to Docker instead of mount.
Joshua Colp [Tue, 19 Feb 2019 16:06:32 +0000 (16:06 +0000)]
CI: Use tmpfs option to Docker instead of mount.

Some tests require Asterisk to execute scripts which
are stored in /tmp. When mount is used for tmpfs there
is no ability to allow scripts to be executed from
that location.

This change switches to using tmpfs which can be told
to allow executables to be run from /tmp.

Change-Id: I0e598ca2b76af1f7f2d29f0da7b1731a214a291a

21 months agojson.c/strings.c - Add a couple of utility functions
Kevin Harwell [Fri, 8 Feb 2019 20:47:35 +0000 (14:47 -0600)]
json.c/strings.c - Add a couple of utility functions

Added 'ast_json_object_string_get' to the JSON wrapper in order to make it a
little easier to retrieve a string field from the JSON object.

Also added an 'ast_strings_equal' function that safely checks (checks for NULLs)
for equality between two strings.

Change-Id: I26f0a16d61537505eb41b4b05ef2e6d67fc2541b

21 months agoapp_queue: Enable set the wrapuptime from AddQueueMember application
Rodrigo Ramírez Norambuena [Tue, 11 Dec 2018 14:15:01 +0000 (11:15 -0300)]
app_queue: Enable set the wrapuptime from AddQueueMember application

This change add ability to set the wrapuptime per-member using the
AddQueueMember application.

The feature to set wrapuptime per member was include in the issue
ASTERISK-27483 for static member by configuration file and was not
added to set from AddQueueMember.

ASTERISK-28055 #close

Change-Id: I7c7ee4a6f804922cd7c42cb02eea26eb3806c6cf

21 months agores/res_rtp_asterisk: clear smoother when local bridging
Torrey Searle [Tue, 12 Feb 2019 09:50:55 +0000 (10:50 +0100)]
res/res_rtp_asterisk: clear smoother when local bridging

p2p_write updates txformat but doesn't require a smoother.  If a smoother
was created by another bridge type the smoother could fall out of date causing
one way audio issues.  To prevent this the smoother is now destroyed on the
start of native bridge.

ASTERISK-28284 #close

Change-Id: I84e67f144963787fff9b4d79ac500514fb40cdc6

21 months agochan_pjsip: Changed to continued after invalid media for pjsip show channelstats
sungtae kim [Thu, 14 Feb 2019 23:09:30 +0000 (00:09 +0100)]
chan_pjsip: Changed to continued after invalid media for pjsip show channelstats

Currently, the pjsip show channelstats cli does not show channel's
stats after hits the invalid channel info. This makes hard to use
this cli. Changed to keep iterate after hits the invalid channel
info.

ASTERISK-28292

Change-Id: I3efdff1c9e1b1efd3c971fb82ae77aa133a6f43c

21 months agores_pjsip_session Added rtcp stats result vector into the session
Sungtae Kim [Tue, 22 Jan 2019 12:02:50 +0000 (13:02 +0100)]
res_pjsip_session Added rtcp stats result vector into the session

Currently, the Asterisk's pjsip_session module does not keeping the
rtcp's stats info after it was removed. But by adding the results
vector and keeping it until session is destroying, it can give more
useful information for other modules.

ASTERISK-28253

Change-Id: Ib25c2d3fc4da084aecfde2a82c1b1d733bd64fa5

21 months agoMerge "ci: Rerun unit tests when non-code changes occur."
George Joseph [Mon, 11 Feb 2019 15:27:59 +0000 (09:27 -0600)]
Merge "ci: Rerun unit tests when non-code changes occur."

21 months agoMerge "res_odbc: Add basic query logging."
Friendly Automation [Mon, 11 Feb 2019 14:35:02 +0000 (08:35 -0600)]
Merge "res_odbc: Add basic query logging."

21 months agoci: Rerun unit tests when non-code changes occur.
Joshua Colp [Thu, 7 Feb 2019 15:52:56 +0000 (15:52 +0000)]
ci: Rerun unit tests when non-code changes occur.

This change makes it so that even if non-code changes
occur (such as commit message changing) unit tests
will still be run and result in a verification.

ASTERISK-28251

Change-Id: I6491fff7c93e5d5cd8e41054486968bf66c4f608

21 months agores_pjsip_registrar: lock transport monitor when setting 'removing' flag
Kevin Harwell [Thu, 7 Feb 2019 15:23:37 +0000 (09:23 -0600)]
res_pjsip_registrar: lock transport monitor when setting 'removing' flag

A previous patch attempt to mitigate blocked threads on transport shutdown for
a given contact. It was thought that a second lock could be avoided by checking
the 'removing' flag on the transport monitor twice (once before and once after
the normal named aor locking). However as with usual threading issues if the
timing was right the original problem still occured.

This patch adds locking around the first 'removing' flag check and set, thus
nullifying the secondary check, so it was removed.

ASTERISK-28213

Change-Id: Iaa8e36e5311789549b76d8de42dfcea96013b2ed

21 months agores_odbc: Add basic query logging.
Joshua Colp [Wed, 6 Feb 2019 12:16:01 +0000 (12:16 +0000)]
res_odbc: Add basic query logging.

When Asterisk is connected and used with a database the response
time of the database can cause problems in Asterisk if it is long.
Normally the only way to see this problem would be to retrieve a
backtrace from Asterisk and examine where things are blocked, or
examine the database to see if there is any indication of a
problem.

This change adds some basic query logging to make it easier to
investigate such a problem. When logging is enabled res_odbc will
now keep track of the number of queries executed, as well as the
query that has taken the longest time to execute. There is also
an option which will cause a WARNING message to be output if a
query takes longer than a configurable amount of time to execute.

This makes it easier and clearer for users that their database may
be experiencing a problem that could impact Asterisk.

ASTERISK-28277

Change-Id: I173cf4928b10754478a6a8c27dfa96ede0f058a6

21 months agoMerge "sounds: Sort 'core show sounds' output"
George Joseph [Wed, 6 Feb 2019 13:13:07 +0000 (07:13 -0600)]
Merge "sounds: Sort 'core show sounds' output"

21 months agomain/cdr: Fixed cdr start overwriting
Sungtae Kim [Wed, 5 Dec 2018 22:09:49 +0000 (23:09 +0100)]
main/cdr: Fixed cdr start overwriting

The CDR was overwriting the start time when the call continued the
dialplan from the ARI stasis or a Local channel was originated.

This change fixes this by no longer reinitializing the CDR when
transitioning out of the dialed pending state to the single state.

ASTERISK-28181

Change-Id: I921bc04064b6cff1deb2eea56a94d86489561cdc

21 months agoFix deadlock handling subscribe req during res_parking reload
Giuseppe Sucameli [Tue, 20 Nov 2018 00:44:23 +0000 (01:44 +0100)]
Fix deadlock handling subscribe req during res_parking reload

Split destroy_hint method to separate hint removal and extension hint
state changed callback, the latter now called via stasis.
This avoids deadlock between res_parking reload that is removing the
parking lot and the related hint and subscribe requests coming for the
same parking lot.

ASTERISK-28173

Change-Id: I5b03c3455b3b12b6f83cea4cc34f4b4b20444f7e

21 months agoMerge "pjsip/config_global: regcontext context not created"
Friendly Automation [Tue, 5 Feb 2019 14:48:28 +0000 (08:48 -0600)]
Merge "pjsip/config_global: regcontext context not created"

21 months agoMerge "res_stasis: Auto-create context and extens on Stasis app launch."
George Joseph [Tue, 5 Feb 2019 14:26:46 +0000 (08:26 -0600)]
Merge "res_stasis: Auto-create context and extens on Stasis app launch."

21 months agoMerge "Added ARI resource /ari/asterisk/ping"
George Joseph [Tue, 5 Feb 2019 14:15:52 +0000 (08:15 -0600)]
Merge "Added ARI resource /ari/asterisk/ping"

21 months agosounds: Sort 'core show sounds' output
Sean Bright [Mon, 4 Feb 2019 19:55:01 +0000 (14:55 -0500)]
sounds: Sort 'core show sounds' output

Change-Id: Ib39052a745040f75eb635f15a042da15b20e22ab

21 months agoMerge "bundled-jansson: On OpenSuse Leap libjansson.a was placed in lib64"
Joshua C. Colp [Mon, 4 Feb 2019 17:28:43 +0000 (11:28 -0600)]
Merge "bundled-jansson:  On OpenSuse Leap libjansson.a was placed in lib64"

21 months agores_stasis: Auto-create context and extens on Stasis app launch.
Ben Ford [Tue, 29 Jan 2019 16:48:49 +0000 (10:48 -0600)]
res_stasis: Auto-create context and extens on Stasis app launch.

At AstriCon, there was a strong desire for the ability to completely
bypass dialplan when using ARI. This is possible through the automatic
creation of a context and a couple of extensions whenever an application
is started.

For example, if you have an application named 'ari-example', a context
named 'stasis-ari-example' will be automatically created whenever this
application is started as long as one does not already exist. Two
extensions (a match-all extension for Stasis and a 'h' extension) are
created within this context. Any endpoint that registers to Asterisk
within this context will send all calls to the corresponding Stasis
application. When the application is destroyed, the context is removed.

ASTERISK-28104 #close

Change-Id: Ie35bd93075e05b05e3ae129a83c9426931b7ebac

21 months agobundled-jansson: On OpenSuse Leap libjansson.a was placed in lib64
George Joseph [Mon, 4 Feb 2019 13:09:57 +0000 (06:09 -0700)]
bundled-jansson:  On OpenSuse Leap libjansson.a was placed in lib64

On OpenSuse Leap, libjansson.a is installed in
third-party/jansson/dest/lib64 instead of lib (which is where
the top-level makeopts looks).  This causes a link failure.

* Updated jansson/Makefile to add an explicit --libdir to force
  the installation to third-party/jansson/dest/lib.

ASTERISK-28271
Reported by: David Wilcox

Change-Id: Ibf8af75e5da13562105fcc39ed898c6ef0b5a5f3

22 months agoAdded ARI resource /ari/asterisk/ping
sungtae kim [Mon, 28 Jan 2019 23:21:28 +0000 (00:21 +0100)]
Added ARI resource /ari/asterisk/ping

Added ARI resource.
GET /ari/asterisk/ping : It returns "pong" message with timestamp
and asterisk id. It would be useful for simple heath check.

Change-Id: I8d24e1dcc96f60f73437c68d9463ed746f688b29

22 months agopjsip/config_global: regcontext context not created
Kevin Harwell [Tue, 15 Jan 2019 23:20:30 +0000 (17:20 -0600)]
pjsip/config_global: regcontext context not created

The context specified by 'regcontext' was not being created, so when Asterisk
attempted to later dynamically add an extension it would fail. This patch now
creates the context if a 'regcontext' is specified.

ASTERISK-28238

Change-Id: I0f36cf4ab0a93ff4b1cc5548d617ecfd45e09265

22 months agomedia_index.c: Refactored so it doesn't cache the index
George Joseph [Tue, 22 Jan 2019 15:02:06 +0000 (08:02 -0700)]
media_index.c: Refactored so it doesn't cache the index

Testing revealed that the cache added no benefit but that it could
consume excessive memory.

Two new index related functions were created:
ast_sounds_get_index_for_file() and ast_media_index_update_for_file()
which restrict index updating to specific sound files.

The original ast_sounds_get_index() and ast_media_index_update()
calls are still available but since they no longer cache the results
internally, developers should re-use an index they may already have
instead of calling ast_sounds_get_index() repeatedly.  If information
for only a single file is needed, ast_sounds_get_index_for_file()
should be called instead of ast_sounds_get_index().

The media_index directory scan code was elimininated in favor of
using the existing ast_file_read_dirs() function.

Since there's no more cache, ast_sounds_index_init now only
registers the sounds cli commands instead of generating the
initial index and subscribing to stasis format register/unregister
messages.

"sounds" is no longer a valid target for the "module reload"
command.

Both the sounds cli commands and the sounds ari resources were
refactored to only call ast_sounds_get_index() once per invocation
and to use ast_sounds_get_index_for_file() when a specific sound
file is requested.

Change-Id: I1cef327ba1b0648d85d218b70ce469ad07f4aa8d

22 months agoMerge "codecs.conf.sample: update codec opus docs"
George Joseph [Mon, 28 Jan 2019 13:46:51 +0000 (07:46 -0600)]
Merge "codecs.conf.sample: update codec opus docs"

22 months agoMerge "format_g726: add support for seeking"
George Joseph [Mon, 28 Jan 2019 13:46:17 +0000 (07:46 -0600)]
Merge "format_g726: add support for seeking"

22 months agoMerge "res_http_websocket: ensure control frames do not interfere with data"
George Joseph [Mon, 28 Jan 2019 13:22:01 +0000 (07:22 -0600)]
Merge "res_http_websocket: ensure control frames do not interfere with data"

22 months agocodecs.conf.sample: update codec opus docs
Kevin Harwell [Fri, 25 Jan 2019 18:27:41 +0000 (12:27 -0600)]
codecs.conf.sample: update codec opus docs

The option value "sdp" for some of the settings was removed a while back,
however the sample conf was not updated.

This patch removes any wording with regards to the old "sdp" option value,
and adjusts the defaults to what they are now.

ASTERISK-28263

Change-Id: I41bfa44e9f69446bcc5c8fd92e3675c676fdc445

22 months agoformat_g726: add support for seeking
eyalhasson [Tue, 22 Jan 2019 15:24:23 +0000 (17:24 +0200)]
format_g726: add support for seeking

Added support for the seek function in format_g726
so playback can start from anywhere.
Before the fix, playback of g726 files
always started from the beginning.

ASTERISK-28246

Change-Id: I626235bc4642df1479050d3d06828412603a9b40

22 months agoMerge "build : Fix cross-compilation errors"
Joshua C. Colp [Thu, 24 Jan 2019 14:23:53 +0000 (08:23 -0600)]
Merge "build : Fix cross-compilation errors"

22 months agoMerge "app_voicemail: Add Mailbox Aliases"
Joshua C. Colp [Thu, 24 Jan 2019 11:56:34 +0000 (05:56 -0600)]
Merge "app_voicemail:  Add Mailbox Aliases"

22 months agoMerge "res_pjsip_registrar: mitigate blocked threads on reliable transport shutdown"
Joshua C. Colp [Thu, 24 Jan 2019 11:52:57 +0000 (05:52 -0600)]
Merge "res_pjsip_registrar: mitigate blocked threads on reliable transport shutdown"

22 months agoMerge "Test_cel: Fails when DONT_OPTIMIZE is off"
Joshua C. Colp [Wed, 23 Jan 2019 17:26:34 +0000 (11:26 -0600)]
Merge "Test_cel: Fails when DONT_OPTIMIZE is off"

22 months agoMerge "manager_channels: Fix throwing of HangupHandler manager events"
Friendly Automation [Wed, 23 Jan 2019 15:46:00 +0000 (09:46 -0600)]
Merge "manager_channels: Fix throwing of HangupHandler manager events"

22 months agores_http_websocket: ensure control frames do not interfere with data
Jeremy Lainé [Wed, 23 Jan 2019 10:45:56 +0000 (11:45 +0100)]
res_http_websocket: ensure control frames do not interfere with data

Control frames (PING / PONG / CLOSE) can be received in the middle of a
fragmented message. In order to ensure they do not interfere with the
reassembly buffer, we exit early and do not return the payload to the
caller.

ASTERISK-28257 #close

Change-Id: Ia5367144fe08ac6141bba3309517a48ec7f013bc

22 months agobuild : Fix cross-compilation errors
Jean Aunis [Wed, 23 Jan 2019 13:59:00 +0000 (14:59 +0100)]
build : Fix cross-compilation errors

Bundled pjproject and jansson must be configured with the host and build
parameters provided to the configure script.
Autotools do not permit to check for the existence of local header files, so
the control of hrirs.h must not be done when cross-compiling.

ASTERISK-28250

Change-Id: If0a76e52a87d4ab82b7d4c72d27d8759ca931880

22 months agoMerge "stasis / manager / ari: Better filter messages."
Joshua C. Colp [Wed, 23 Jan 2019 00:58:48 +0000 (18:58 -0600)]
Merge "stasis / manager / ari: Better filter messages."