Commit Graph

32164 Commits

Author SHA1 Message Date
Joshua Colp
67db353598 Merge "Variable ALTCONF ignored when service is used in Debian" into 16 2019-03-18 05:33:17 -05:00
George Joseph
aba1053a12 Merge "app.c: Remove deletion of pool topic on mwi state delete" into 16 2019-03-15 18:30:20 -05:00
sungtae kim
9e36707dca res/res_stasis: Fixed wrong StasisEnd timestamp
Because StasisEnd's timestamp created it's own timestamp, it makes
wrong timestamp, compare to other channel event(ChannelDestroyed).
Fixed to getting a timestamp from the Channel's timestamp.

ASTERISK-28333

Change-Id: I5eb8380fc472f1100535a6bc4983c64767026116
2019-03-15 15:38:17 -06:00
Sean Bright
057c7380be vector: Add AST_VECTOR_COMPACT() to reclaim wasted space
This might be useful in situations where you are loading an undetermined number
of items into a vector and don't want to keep (potentially) 2x the necessary
memory around indefinitely.

Change-Id: I9711daa0fe01783fc6f04c5710eba84f2676d7b9
2019-03-15 14:53:33 -06:00
Richard Mudgett
0426e0fede taskprocessor.c: Fix printf type mismatch
A size_t is not always an unsigned long.

* Use the %zu format specifier in the ast_cli() printf format string since
AST_VECTOR_SIZE() returns a size_t value.

Change-Id: Ib102dd36bbe6c2a7a4ce6870ae9110d978dd7e98
2019-03-14 12:46:16 -06:00
Joshua C. Colp
6f10c9cf4f Merge "AMI/ARI: Bump non-breaking version numbers" into 16 2019-03-14 09:48:38 -05:00
George Joseph
f5f977baec app.c: Remove deletion of pool topic on mwi state delete
As part of an earlier voicemail refactor, ast_delete_mwi_state_full
was modified to remove the pool topic for a mailbox when the state
was deleted.  This was an attempt to prevent stale topics from
accumulating when app_voicemail was reloaded and a mailbox went
away.  Unfortunately because of the fact that when app_voicemail
reloads, ALL mailboxes are deleted then only current ones recreated,
topics were being removed from the pool that still had subscribers
on them, then recreated as new topics of the same name.  So now
modules like res_pjsip_mwi are listening on a topic that will
never receive any messages because app_voicemail is publishing on
a different topic that happens to have the same name.  The solutiuon
to this is not easy and given that accumulating topics for
deleted mailboxes is less evil that not sending NOTIFYs...

* Removed the call to stasis_topic_pool_delete_topic in
  ast_delete_mwi_state_full.

Also:

* Fixed a topic reference leak in res_pjsip_mwi
  mwi_stasis_subscription_alloc.

* Added some debugging to mwi_stasis_subscription_alloc,
  stasis_topic_create, and topic_dtor.

* Fixed a topic reference leak in an error path in
  internal_stasis_subscribe.

ASTERISK-28306
Reported-by: Jared Hull

Change-Id: Id7da0990b3ac4be4b58491536b35f41291247b27
2019-03-14 08:31:22 -06:00
Joshua C. Colp
de3f28ec8a Merge "res_musiconhold: Remove redundant option parsing" into 16 2019-03-14 09:20:19 -05:00
Joshua C. Colp
3e5dcc9dcf Merge "stasis: Improve topic/subscription names and statistics." into 16 2019-03-14 09:19:37 -05:00
cirillor
342550e0ea Variable ALTCONF ignored when service is used in Debian
When variable ALTCONF is defined, the command start prints the message
"Unable to open specified master config file '"/etc/asterisk/asteris..."
and use default configurations.

ASTERISK-28332

Change-Id: I7595e582a0ee2c1051ea35435e247e27906957ef
2019-03-13 10:36:53 -06:00
Joshua C. Colp
d3c971c315 Merge "stasis: Allow empty application arguments to move." into 16 2019-03-13 11:32:09 -05:00
Kevin Harwell
19957fc60e Merge "app_queue: fix ring_entry to access nativeformats with a channel lock" into 16 2019-03-13 11:17:40 -05:00
Kevin Harwell
0e053fe4e3 Merge "chan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function" into 16 2019-03-13 10:55:11 -05:00
Joshua Colp
03c0d19cc8 stasis: Allow empty application arguments to move.
Change-Id: I1e4d37415f3034abe36496dc30209c2303e6af5c
2019-03-13 07:55:48 -06:00
Joshua C. Colp
c8a1f8bfaa Merge "partial-inlining: disable partial-inlining if gcc>=8.2.1" into 16 2019-03-13 06:29:48 -05:00
Kevin Harwell
6a435723f7 AMI/ARI: Bump non-breaking version numbers
Increasing the non-breaking AMI and ARI version numbers due to changes and
additions in those API's. Note, some changes may be forthcoming (will be added
between now and the next release of Asterisk), thus not listed here. As well
a few changes listed below may have been released in a previous release of
Asterisk, but the API version numbers were not increased at that time, so
including here.

AMI:

 * app_queue: set the wrapuptime from AddQueueMember application - e806990
 * res_pjsip: option for ContactStatus event updates - 7f22c9f

ARI:

 * bridging: Add creation timestamps - 0d70120
 * res_stasis: Add ability to switch applications - 50a4b61
 * ARI event type filtering - 1c5def4
 * Added ARI resource /ari/asterisk/ping - 19fc99a

ASTERISK-28314

Change-Id: Iebc813840f8230afa6b20579772e15549064b787
2019-03-12 15:58:01 -05:00
George Joseph
a71ae3dc44 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
2019-03-12 12:28:01 -06:00
Chris-Savinovich
47c853f8e1 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
2019-03-11 12:09:54 -05:00
Friendly Automation
b428363cd5 Merge "res/res_rtp_asterisk.c: Fixing possible divide by zero" into 16 2019-03-11 10:06:56 -05:00
George Joseph
9b15e04011 Merge "jansson: json_pack with new format to verify required runtime version." into 16 2019-03-11 09:49:30 -05:00
Joshua Colp
b886fef66e stasis: Improve topic/subscription names and statistics.
Topic names now follow: <subsystem>:<functionality>[/<object>]

This ensures that they are all unique, and also provides better
insight in to what each topic is for.

Subscriber ids now also use the main topic name they are
subscribed to and an incrementing integer as their identifier to
make it easier to understand what the subscription is primarily
responsible for.

Both the CLI commands for listing topic and subscription statistics
now sort to make it a bit easier to see what is going on.

Subscriptions will now show all topics that they are receiving messages
from, not just the main topic they were subscribed to.

ASTERISK-28335

Change-Id: I484e971a38c3640f2bd156282e532eed84bf220d
2019-03-11 08:39:39 -06:00
Friendly Automation
13cca7bb11 Merge "app_meetme: Don't mute joining admins if conference is muted" into 16 2019-03-11 09:14:48 -05:00
sungtae kim
ca8f254f0f 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
2019-03-11 06:09:31 -06:00
cirillor
c9459b1875 chan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function
Add logical group at DAHDIChannel event
and create "dahdi_group" at CHANNEL function.

ASTERISK-28317

Change-Id: Ic1f834cd53982a9707a9748395ee746d6575086a
2019-03-09 08:29:49 -06:00
Sean Bright
8ca74d73f1 res_musiconhold: Remove redundant option parsing
Change-Id: I481fabd8eaf2e4e7ffb5c8285b294742826e7d12
2019-03-08 15:15:01 -05:00
Torrey Searle
4ca41caf38 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
2019-03-08 13:13:41 -06:00
Corey Farrell
641b6041c7 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
2019-03-08 13:46:34 -05:00
George Joseph
255e374254 Merge "samples: Fix comment typo in pjsip.conf.sample" into 16 2019-03-08 12:44:37 -06:00
Friendly Automation
70cd169fb1 Merge "Replace calls to strtok() with strtok_r()" into 16 2019-03-08 12:33:23 -06:00
Friendly Automation
afe16021ef Merge "res_stasis: Add ability to switch applications." into 16 2019-03-08 11:40:49 -06:00
Friendly Automation
7566d9bb61 Merge "bridging: Add creation timestamps" into 16 2019-03-08 11:08:09 -06:00
Sean Bright
5b5aa05bd9 app_meetme: Don't mute joining admins if conference is muted
ASTERISK-28328 #close

Change-Id: I4f6069fb34923b7521520c2a205a1e56227e592b
2019-03-08 10:43:51 -06:00
Sean Bright
4860954540 Replace calls to strtok() with strtok_r()
strtok() uses a static buffer, making it not thread safe.

Change-Id: Icce265153e1e65adafa8849334438ab6d190e541
2019-03-07 16:42:22 -06:00
Sean Bright
90f06ad169 samples: Fix comment typo in pjsip.conf.sample
Change-Id: I84a45c3d9fd26ca61aca99927eec83b57f1de857
2019-03-07 16:06:31 -06:00
Ben Ford
50a4b618fc 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
2019-03-07 07:41:14 -06:00
Dömsödi Gergely
e7dd4bd4a9 app_queue: fix ring_entry to access nativeformats with a channel lock
Fixes an intermittent segmentation fault which occured when accessing
nativeformats of a channel which entered into a queue.

ASTERISK-27964
Reported by: Francisco Seratti

Change-Id: Ic87fa7a363f3b487c24ce07032f4b2201c22db9e
2019-03-06 14:26:12 +01:00
Joshua Colp
24b94aa27f Merge "sip_to_pjsip: Make multiline comment parsing consistent with Asterisk" into 16 2019-03-05 09:20:17 -06:00
Joshua Colp
293df3c7ac Merge "app_queue: Handle empty 'interface' in queue member config" into 16 2019-03-05 08:55:26 -06:00
Joshua Colp
f9bc474ab0 Merge "res_pjsip_registrar: blocked threads on reliable transport shutdown take 3" into 16 2019-03-05 07:15:40 -06:00
Joshua Colp
7bdbccc64a Merge "basic-pbx: Update configuration to work with current modules." into 16 2019-03-05 07:05:06 -06:00
Sean Bright
88681ba9bb 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
2019-03-04 16:07:37 -06:00
Sean Bright
0cfafb89b5 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
2019-03-04 13:40:34 -06:00
Joshua Colp
90f0f6659d Merge "res_pjsip_diversion: Use static pj_str_t for Diversion header names" into 16 2019-03-04 06:15:47 -06:00
Joshua Colp
6a714c0e9f 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
2019-03-04 05:02:53 -06:00
sungtae kim
0d7012044a 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
2019-03-03 12:22:56 +01:00
Rodrigo Ramírez Norambuena
63a3321c46 CHANGES: Document addition of 'wrapuptime' argument to AddQueueMember()
Change-Id: Ieb332d018ae3f2fc82b9465381fde0f299af1611
2019-03-02 07:34:05 -06:00
Sean Bright
ffe07772e6 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
2019-03-01 17:46:54 -05:00
Friendly Automation
2a387f04db Merge "res_config_odbc: Avoid deadlock when max_connections = 1" into 16 2019-03-01 15:24:23 -06:00
Kevin Harwell
436975dd6e Merge "menuselect: Add license header to menuselect_gtk.c" into 16 2019-03-01 15:17:25 -06:00
Joshua Colp
a08ee6c962 Merge "Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses."" into 16 2019-03-01 08:03:27 -06:00