]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
6 years agoUpdate for 13.26.0 13.26 13.26.0
Asterisk Development Team [Thu, 4 Apr 2019 14:46:29 +0000 (09:46 -0500)] 
Update for 13.26.0

6 years agobuild: Fix compiler warnings/errors.
Ben Ford [Wed, 3 Apr 2019 15:24:06 +0000 (10:24 -0500)] 
build: Fix compiler warnings/errors.

The compiler complained about a couple of variables that weren't
initialized but were being used. Initializing them to NULL resolves the
warnings/errors.

ASTERISK-28362 #close

Change-Id: I6243afc5459b416edff6bbf571b0489f6b852e4b

6 years agoUpdate for 13.26.0-rc1 13.26.0-rc1
Asterisk Development Team [Mon, 1 Apr 2019 14:42:19 +0000 (09:42 -0500)] 
Update for 13.26.0-rc1

6 years agoMerge "alembic: Fix errors during upgrade head." into 13
Friendly Automation [Thu, 28 Mar 2019 19:46:35 +0000 (14:46 -0500)] 
Merge "alembic: Fix errors during upgrade head." into 13

6 years agoalembic: Fix errors during upgrade head.
Ben Ford [Tue, 26 Mar 2019 19:56:37 +0000 (14:56 -0500)] 
alembic: Fix errors during upgrade head.

When trying to upgrade using alembic, a couple different errors kept
popping up that prevented the upgrade. An additional parameter was
needed when changing the schema for mwi_subscribe_replaces_unsolicited
from an integer to an enum. When changing from a string to an enum, the
type needed to be cast for postgresql. The other issue was a parameter
being used during column creation that did not exist.

After fixing the upgrade process, it revealed errors with the downgrade
process. One was a variable not being defined in the downgrade function,
and the other was tables not existing when using MySQL. This was due to
a context check that should have encompassed MySQL, but in the end was
not doing so.

Change-Id: Ib4d70cf3ce5080023a50be496272a777b55d6c8e

6 years agoMerge "manager: Use separate lock for session event notification." into 13
George Joseph [Thu, 28 Mar 2019 13:03:51 +0000 (08:03 -0500)] 
Merge "manager: Use separate lock for session event notification." into 13

6 years agoMerge "pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs" into 13
Friendly Automation [Wed, 27 Mar 2019 23:05:59 +0000 (18:05 -0500)] 
Merge "pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs" into 13

6 years agoMerge "app_queue: Fix documentation for QUEUE_MEMBER function." into 13
George Joseph [Wed, 27 Mar 2019 19:31:13 +0000 (14:31 -0500)] 
Merge "app_queue: Fix documentation for QUEUE_MEMBER function." into 13

6 years agobuild: Add staging directories for future changes.
Ben Ford [Wed, 27 Mar 2019 16:03:40 +0000 (11:03 -0500)] 
build: Add staging directories for future changes.

This is the first step in changing the release process so that changes
made to the CHANGES and UPGRADE.txt files do not result in merge
conflicts every time multiple people modify these files. The changes
made will go in these new directories: doc/CHANGES-staging and
doc/UPGRADE-staging. The README.md files explain how things will work,
but here's a little overview. When you make a change that would go in
either CHANGES or UPGRADE.txt, this should instead be documented in a
new file in the doc/CHANGES-staging or doc/UPGRADE-staging directory,
respectively. The format will look like this:

   Subject: res_pjsip

   A description that explains the changes made and why. The release
   script will handle the bulleting and section separators! The
   'Subject:' header is case-sensitive.

   You can still separate with new lines within your description.

   Subject: res_ari
   Master-Only: true

   You can have more than one subject, and they don't have to be the
   same! Also, the 'Master-Only' header should always be true and is
   also case-sensitive (but the value is not - you can have 'true' or
   'True'). This header will only ever be present in the master branch.

For more information, check out the wiki page:
https://wiki.asterisk.org/wiki/display/AST/CHANGES+and+UPGRADE.txt

This is an initial change for ASTERISK_28111. Functionally, this will
make no difference, but it will prep the directories for when the
changes from CHANGES and UPGRADE.txt are extracted.

Change-Id: I8d852f284f66ac456b26dcb899ee46babf7d15b6

6 years agopjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs
Alexei Gradinari [Mon, 25 Mar 2019 23:05:28 +0000 (19:05 -0400)] 
pjsip: restrict function PJSIP_PARSE_URI to parse only SIP/SIPS URIs

The next usage of PJSIP_PARSE_URI will crash asterisk
${PJSIP_PARSE_URI(tel:+1234567890,host)}
or
${PJSIP_PARSE_URI(192.168.1.1:5060,host)}

The function pjsip_parse_uri successfully parses then, but returns
struct pjsip_other_uri *.

This patch restricts parsing only SIP/SIPS URIs.

Change-Id: I16f255c2b86a80a67e9f9604b94b129a381dd25e

6 years agoMerge "chan_sip: Ensure 'qualifygap' isn't negative" into 13
Joshua Colp [Wed, 27 Mar 2019 11:00:03 +0000 (06:00 -0500)] 
Merge "chan_sip: Ensure 'qualifygap' isn't negative" into 13

6 years agoapp_queue: Fix documentation for QUEUE_MEMBER function.
Sean Bright [Tue, 26 Mar 2019 21:55:55 +0000 (17:55 -0400)] 
app_queue: Fix documentation for QUEUE_MEMBER function.

It was a copy/paste of the QUEUE_MEMBER_COUNT function's synopsis.

ASTERISK-20986 #close
Reported by: Olivier Krief

Change-Id: If51ec481feb35824a4e78ab5600b197b819b10be

6 years agomanager: Use separate lock for session event notification.
Joshua Colp [Mon, 25 Mar 2019 11:34:09 +0000 (08:34 -0300)] 
manager: Use separate lock for session event notification.

When notifying a manager session that new events were available
the same lock was used that was also held when doing things within
the session (such as sending events out). If the manager session
blocked for a period of time this would cause a back up of messages
in Stasis and would also block any other sessions from receiving
events.

This change adds a separate lock to the manager session which is
strictly used for notifying it that new events are available.

ASTERISK-28350

Change-Id: Ifbcac007faca9ad0231640f5e82a6ca9228f261b

6 years agoMerge "res/res_ari: Added timestamp as a requirement for all ARI events" into 13
Friendly Automation [Tue, 26 Mar 2019 13:34:08 +0000 (08:34 -0500)] 
Merge "res/res_ari: Added timestamp as a requirement for all ARI events" into 13

6 years agoMerge "res_config_odbc: set empty extended field as a single whitespace" into 13
Friendly Automation [Tue, 26 Mar 2019 13:07:13 +0000 (08:07 -0500)] 
Merge "res_config_odbc: set empty extended field as a single whitespace" into 13

6 years agores/res_ari: Added timestamp as a requirement for all ARI events
sungtae kim [Wed, 6 Mar 2019 22:21:42 +0000 (23:21 +0100)] 
res/res_ari: Added timestamp as a requirement for all ARI events

Changed to requirement to having timestamp for all of ARI events.
The below ARI events were changed to having timestamp.
PlaybackStarted, PlaybackContinuing, PlaybackFinished,
RecordingStarted, RecordingFinished, RecordingFailed,
ApplicationReplaced, ApplicationMoveFailed

ASTERISK-28326

Change-Id: I382c2fef58f5fe107e1074869a6d05310accb41f

6 years agochan_sip: Ensure 'qualifygap' isn't negative
Sean Bright [Mon, 25 Mar 2019 19:31:23 +0000 (15:31 -0400)] 
chan_sip: Ensure 'qualifygap' isn't negative

Passing negative intervals to the scheduler rips a hole in the
space-time continuum.

ASTERISK-25792 #close
Reported by: Paul Sandys

Change-Id: Ie706f21cee05f76ffb6f7d89e9c867930ee7bcd7

6 years agores_config_odbc: set empty extended field as a single whitespace
Alexei Gradinari [Mon, 25 Mar 2019 16:42:27 +0000 (12:42 -0400)] 
res_config_odbc: set empty extended field as a single whitespace

If Realtime @ variable value is NULL or empty or contains only whitespaces
then when we try to retrieve it using PJSIP_ENDPOINT we get WARNING
pjsip_endpoint_function_read: Unknown property @my_var for PJSIP endpoint.
And the variable is missing in the result of CLI pjsip show endpoint.

This patch keeps empty sorcery extended field.

ASTERISK-28341 #close

Change-Id: I221fccc04cbfa2be17ce971f64ae0e74e465eea0

6 years agomain/taskprocessor: Increase max name length of taskprocessors
Matthew Fredrickson [Fri, 22 Mar 2019 19:46:34 +0000 (19:46 +0000)] 
main/taskprocessor: Increase max name length of taskprocessors

Since the new names went in, the maximum taskprocessor name is too
short.  This patch increases the name field to a length to better
handle the new names.

Change-Id: I32f32d6926f25c8ef5a91303fd2988d2c2858877

6 years agoMerge "sorcery.c: Sorcery enhancements for wizard management" into 13
George Joseph [Tue, 19 Mar 2019 15:23:20 +0000 (10:23 -0500)] 
Merge "sorcery.c: Sorcery enhancements for wizard management" into 13

6 years agoMerge "res/res_stasis: Fixed wrong StasisEnd timestamp" into 13
George Joseph [Tue, 19 Mar 2019 14:26:57 +0000 (09:26 -0500)] 
Merge "res/res_stasis: Fixed wrong StasisEnd timestamp" into 13

6 years agosorcery.c: Sorcery enhancements for wizard management
George Joseph [Thu, 14 Mar 2019 16:46:53 +0000 (10:46 -0600)] 
sorcery.c: Sorcery enhancements for wizard management

Added ability to specifiy a wizard is read-only when applying
it to a specific object type.  This allows you to specify
create, update and delete callbacks for the wizard but limit
which object types can use them.

Added the ability to allow an object type to have multiple
wizards of the same type.  This is indicated when a wizard
is added to a specific object type.

Added 3 new sorcery wizard functions:

* ast_sorcery_object_type_insert_wizard which does the same thing
  as the existing ast_sorcery_insert_wizard_mapping function but
  accepts the new read-only and allot-duplicates flags and also
  returns the ast_sorcery_wizard structure used and it's internal
  data structure. This allows immediate use of the wizard's
  callbacks without having to register a "wizard mapped" observer.

* ast_sorcery_object_type_apply_wizard which does the same
  thing as the existing ast_sorcery_apply_wizard_mapping function
  but has the added capabilities of
  ast_sorcery_object_type_insert_wizard.

* ast_sorcery_object_type_remove_wizard which removes a wizard
  matching both its name and its original argument string.

* The original logic in __ast_sorcery_insert_wizard_mapping was moved
  to __ast_sorcery_object_type_insert_wizard and enhanced for the
  new capabilities, then __ast_sorcery_insert_wizard_mapping was
  refactored to just call __ast_sorcery_insert_wizard_mapping.

* Added a unit test to test_sorcery.c to test the read-only
  capability.

Change-Id: I40f35840252e4313d99e11dbd80e270a3aa10605

6 years agoMerge "vector: Add AST_VECTOR_COMPACT() to reclaim wasted space" into 13
Friendly Automation [Mon, 18 Mar 2019 11:26:12 +0000 (06:26 -0500)] 
Merge "vector: Add AST_VECTOR_COMPACT() to reclaim wasted space" into 13

6 years agoMerge "Variable ALTCONF ignored when service is used in Debian" into 13
Friendly Automation [Mon, 18 Mar 2019 10:34:55 +0000 (05:34 -0500)] 
Merge "Variable ALTCONF ignored when service is used in Debian" into 13

6 years agoMerge "app.c: Remove deletion of pool topic on mwi state delete" into 13
George Joseph [Fri, 15 Mar 2019 23:30:29 +0000 (18:30 -0500)] 
Merge "app.c:  Remove deletion of pool topic on mwi state delete" into 13

6 years agores/res_stasis: Fixed wrong StasisEnd timestamp
sungtae kim [Sun, 10 Mar 2019 22:53:36 +0000 (23:53 +0100)] 
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

6 years agovector: Add AST_VECTOR_COMPACT() to reclaim wasted space
Sean Bright [Thu, 14 Mar 2019 14:55:30 +0000 (10:55 -0400)] 
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

6 years agotaskprocessor.c: Fix printf type mismatch
Richard Mudgett [Thu, 14 Mar 2019 16:53:13 +0000 (11:53 -0500)] 
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

6 years agoMerge "AMI/ARI: Bump non-breaking version numbers" into 13
Friendly Automation [Thu, 14 Mar 2019 14:42:24 +0000 (09:42 -0500)] 
Merge "AMI/ARI: Bump non-breaking version numbers" into 13

6 years agoapp.c: Remove deletion of pool topic on mwi state delete
George Joseph [Fri, 8 Mar 2019 15:40:38 +0000 (08:40 -0700)] 
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

6 years agoMerge "stasis: Improve topic/subscription names and statistics." into 13
Joshua C. Colp [Thu, 14 Mar 2019 14:21:38 +0000 (09:21 -0500)] 
Merge "stasis: Improve topic/subscription names and statistics." into 13

6 years agoMerge "stasis: Allow empty application arguments to move." into 13
Joshua C. Colp [Wed, 13 Mar 2019 16:33:37 +0000 (11:33 -0500)] 
Merge "stasis: Allow empty application arguments to move." into 13

6 years agoMerge "app_queue: fix ring_entry to access nativeformats with a channel lock" into 13
Kevin Harwell [Wed, 13 Mar 2019 16:17:30 +0000 (11:17 -0500)] 
Merge "app_queue: fix ring_entry to access nativeformats with a channel lock" into 13

6 years agoMerge "chan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function"...
Kevin Harwell [Wed, 13 Mar 2019 15:55:01 +0000 (10:55 -0500)] 
Merge "chan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function" into 13

6 years agostasis: Allow empty application arguments to move.
Joshua Colp [Wed, 13 Mar 2019 11:05:57 +0000 (08:05 -0300)] 
stasis: Allow empty application arguments to move.

Change-Id: I1e4d37415f3034abe36496dc30209c2303e6af5c

6 years agoMerge "partial-inlining: disable partial-inlining if gcc>=8.2.1" into 13
Joshua C. Colp [Wed, 13 Mar 2019 11:41:43 +0000 (06:41 -0500)] 
Merge "partial-inlining: disable partial-inlining if gcc>=8.2.1" into 13

6 years agoMerge "Makefile.moddir_rules: Pass PJPROJECT_BUNDLED to download_externals" into 13
Joshua C. Colp [Wed, 13 Mar 2019 11:03:12 +0000 (06:03 -0500)] 
Merge "Makefile.moddir_rules: Pass PJPROJECT_BUNDLED to download_externals" into 13

6 years agoapp_queue: fix ring_entry to access nativeformats with a channel lock
Dömsödi Gergely [Wed, 6 Mar 2019 13:20:09 +0000 (14:20 +0100)] 
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

6 years agoMerge "res/res_rtp_asterisk.c: Fixing possible divide by zero" into 13
Joshua C. Colp [Wed, 13 Mar 2019 10:37:04 +0000 (05:37 -0500)] 
Merge "res/res_rtp_asterisk.c: Fixing possible divide by zero" into 13

6 years agoAMI/ARI: Bump non-breaking version numbers
Kevin Harwell [Tue, 12 Mar 2019 20:38:21 +0000 (15:38 -0500)] 
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:

 * res_pjsip: option for ContactStatus event updates - 4a8564c

ARI:

 * bridging: Add creation timestamps - 4dd4dbd
 * res_stasis: Add ability to switch applications - 65170ba
 * ARI event type filtering - da93d17
 * Added ARI resource /ari/asterisk/ping - 67d587f

ASTERISK-28314

Change-Id: I96951b19c27c196e410b09fe82b00c8ca328cccc

6 years 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

6 years 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

6 years agoMerge "app_meetme: Don't mute joining admins if conference is muted" into 13
George Joseph [Mon, 11 Mar 2019 14:48:35 +0000 (09:48 -0500)] 
Merge "app_meetme: Don't mute joining admins if conference is muted" into 13

6 years agostasis: Improve topic/subscription names and statistics.
Joshua Colp [Thu, 7 Mar 2019 12:28:31 +0000 (08:28 -0400)] 
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

6 years agoMerge "chan_pjsip: add a flag to ignore 183 responses if no SDP present" into 13
Friendly Automation [Mon, 11 Mar 2019 13:49:46 +0000 (08:49 -0500)] 
Merge "chan_pjsip: add a flag to ignore 183 responses if no SDP present" into 13

6 years 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

6 years agoVariable ALTCONF ignored when service is used in Debian
cirillor [Sat, 9 Mar 2019 14:39:26 +0000 (11:39 -0300)] 
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

6 years 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

6 years agoMerge "samples: Fix comment typo in pjsip.conf.sample" into 13
George Joseph [Fri, 8 Mar 2019 18:44:20 +0000 (12:44 -0600)] 
Merge "samples: Fix comment typo in pjsip.conf.sample" into 13

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

6 years agoMerge "Replace calls to strtok() with strtok_r()" into 13
Friendly Automation [Fri, 8 Mar 2019 18:40:03 +0000 (12:40 -0600)] 
Merge "Replace calls to strtok() with strtok_r()" into 13

6 years agoMerge "bridging: Add creation timestamps" into 13
Friendly Automation [Fri, 8 Mar 2019 17:15:13 +0000 (11:15 -0600)] 
Merge "bridging: Add creation timestamps" into 13

6 years 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

6 years 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.

Change-Id: Icce265153e1e65adafa8849334438ab6d190e541

6 years 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

6 years agores_stasis: Add ability to switch applications.
Ben Ford [Thu, 28 Feb 2019 18:03:43 +0000 (12:03 -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

6 years agochan_dahdi: Add logical group at DAHDIChannel event and CHANNEL function
cirillor [Tue, 5 Mar 2019 14:15:00 +0000 (11:15 -0300)] 
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

6 years agoMerge "sip_to_pjsip: Make multiline comment parsing consistent with Asterisk" into 13
Friendly Automation [Tue, 5 Mar 2019 14:54:09 +0000 (08:54 -0600)] 
Merge "sip_to_pjsip: Make multiline comment parsing consistent with Asterisk" into 13

6 years agoMerge "app_queue: Handle empty 'interface' in queue member config" into 13
Friendly Automation [Tue, 5 Mar 2019 14:51:07 +0000 (08:51 -0600)] 
Merge "app_queue: Handle empty 'interface' in queue member config" into 13

6 years agoMerge "res_pjsip_registrar: blocked threads on reliable transport shutdown take 3...
Joshua Colp [Tue, 5 Mar 2019 13:06:58 +0000 (07:06 -0600)] 
Merge "res_pjsip_registrar: blocked threads on reliable transport shutdown take 3" into 13

6 years agoMerge "basic-pbx: Update configuration to work with current modules." into 13
Friendly Automation [Tue, 5 Mar 2019 12:46:07 +0000 (06:46 -0600)] 
Merge "basic-pbx: Update configuration to work with current modules." into 13

6 years 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

6 years 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

6 years agoMerge "res_pjsip_diversion: Use static pj_str_t for Diversion header names" into 13
Friendly Automation [Mon, 4 Mar 2019 11:47:54 +0000 (05:47 -0600)] 
Merge "res_pjsip_diversion: Use static pj_str_t for Diversion header names" into 13

6 years 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

6 years 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

6 years 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

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

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

6 years agoMerge "Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses...
Friendly Automation [Fri, 1 Mar 2019 14:02:13 +0000 (08:02 -0600)] 
Merge "Revert "pjsip_message_filter: Only do interface lookup for wildcard addresses."" into 13

6 years 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

6 years 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

6 years agoMerge "Revert "http.c: Support separated HTTP request"" into 13
Friendly Automation [Thu, 28 Feb 2019 14:37:04 +0000 (08:37 -0600)] 
Merge "Revert "http.c: Support separated HTTP request"" into 13

6 years agoMerge "res_pjsip_config_wizard: Don't crash if misconfigured" into 13
Joshua Colp [Thu, 28 Feb 2019 14:03:09 +0000 (08:03 -0600)] 
Merge "res_pjsip_config_wizard: Don't crash if misconfigured" into 13

6 years 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

6 years agoMerge "res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen"...
Joshua Colp [Thu, 28 Feb 2019 12:06:22 +0000 (06:06 -0600)] 
Merge "res/res_rtp_asterisk: smoother can cause wrong timestamps if dtmf happen" into 13

6 years agoRevert "http.c: Support separated HTTP request"
Joshua Colp [Thu, 28 Feb 2019 11:28:00 +0000 (05:28 -0600)] 
Revert "http.c: Support separated HTTP request"

This reverts commit 148ddfba9afc83b102fadabecf67d48a65e30e4a.

Reason for revert: Under 13 this change appears to break HTTP
body processing, causing test failures and problems.

Change-Id: Ica47ca2cac1b21c6ef907c1ffbfaf2cebdea8e80

6 years agoMerge "res_mwi_devstate.c: New module to allow presence subs to VM boxes" into 13
Joshua Colp [Thu, 28 Feb 2019 11:04:12 +0000 (05:04 -0600)] 
Merge "res_mwi_devstate.c: New module to allow presence subs to VM boxes" into 13

6 years 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

6 years agores_pjsip_registrar: blocked threads on reliable transport shutdown take 3
Kevin Harwell [Wed, 13 Feb 2019 21:24:41 +0000 (15:24 -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

6 years 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

6 years agoMerge "rest-api-templates/asterisk_processor - replace http line breaks with line...
Joshua C. Colp [Tue, 26 Feb 2019 15:28:05 +0000 (09:28 -0600)] 
Merge "rest-api-templates/asterisk_processor - replace http line breaks with line feed" into 13

6 years 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

6 years 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

6 years agoMerge "http.c: Support separated HTTP request" into 13
Joshua C. Colp [Tue, 26 Feb 2019 13:37:50 +0000 (07:37 -0600)] 
Merge "http.c: Support separated HTTP request" into 13

6 years agoMerge "taskprocessor: Enable subsystems and overload by subsystem" into 13
Joshua C. Colp [Tue, 26 Feb 2019 13:03:54 +0000 (07:03 -0600)] 
Merge "taskprocessor:  Enable subsystems and overload by subsystem" into 13

6 years agoMerge "res_ari_applications: Fix incorrect call to ao2_lock." into 13
Joshua C. Colp [Tue, 26 Feb 2019 12:28:32 +0000 (06:28 -0600)] 
Merge "res_ari_applications: Fix incorrect call to ao2_lock." into 13

6 years agoMerge "Core: Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY" into 13
Friendly Automation [Tue, 26 Feb 2019 12:00:04 +0000 (06:00 -0600)] 
Merge "Core:  Increase AST_PBX_MAX_STACK to 512 if not LOW_MEMORY" into 13

6 years 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

6 years 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

6 years 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

6 years 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

6 years 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

6 years 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

6 years agoARI event type filtering
Kevin Harwell [Fri, 8 Feb 2019 19:07:13 +0000 (13:07 -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

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

6 years agoMerge "chan_pjsip: Changed to continued after invalid media for pjsip show channelsta...
Friendly Automation [Wed, 20 Feb 2019 15:04:56 +0000 (09:04 -0600)] 
Merge "chan_pjsip: Changed to continued after invalid media for pjsip show channelstats" into 13

6 years agoMerge "CI: Use tmpfs option to Docker instead of mount." into 13
Friendly Automation [Wed, 20 Feb 2019 14:16:55 +0000 (08:16 -0600)] 
Merge "CI: Use tmpfs option to Docker instead of mount." into 13

6 years agoMerge "res/res_rtp_asterisk: clear smoother when local bridging" into 13
Joshua C. Colp [Wed, 20 Feb 2019 10:46:20 +0000 (04:46 -0600)] 
Merge "res/res_rtp_asterisk: clear smoother when local bridging" into 13

6 years 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