]> git.ipfire.org Git - thirdparty/asterisk.git/log
thirdparty/asterisk.git
6 years 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

6 years agoMerge "bundled-jansson: On OpenSuse Leap libjansson.a was placed in lib64" into 13
Friendly Automation [Mon, 4 Feb 2019 17:26:31 +0000 (11:26 -0600)] 
Merge "bundled-jansson:  On OpenSuse Leap libjansson.a was placed in lib64" into 13

6 years agoMerge "media_index.c: Refactored so it doesn't cache the index" into 13
Joshua C. Colp [Mon, 4 Feb 2019 15:02:13 +0000 (09:02 -0600)] 
Merge "media_index.c: Refactored so it doesn't cache the index" into 13

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

6 years agoMerge "res/res_pjsip: Fix crash due to misuse of session->media between threads....
Friendly Automation [Wed, 30 Jan 2019 13:04:04 +0000 (07:04 -0600)] 
Merge "res/res_pjsip: Fix crash due to misuse of session->media between threads." into 13

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

ast_sounds_reindex() is now a no-op but left for backwards
compatibility.

loader.c no longer registers "sounds" as a special reload target.

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

6 years agoMerge "codecs.conf.sample: update codec opus docs" into 13
Friendly Automation [Mon, 28 Jan 2019 13:43:27 +0000 (07:43 -0600)] 
Merge "codecs.conf.sample: update codec opus docs" into 13

6 years agoMerge "format_g726: add support for seeking" into 13
George Joseph [Mon, 28 Jan 2019 13:43:16 +0000 (07:43 -0600)] 
Merge "format_g726: add support for seeking" into 13

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

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

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

ASTERISK-28250

Change-Id: If0a76e52a87d4ab82b7d4c72d27d8759ca931880

6 years agoMerge "app_voicemail: Add Mailbox Aliases" into 13
Friendly Automation [Thu, 24 Jan 2019 11:53:05 +0000 (05:53 -0600)] 
Merge "app_voicemail:  Add Mailbox Aliases" into 13

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

6 years agoMerge "Test_cel: Fails when DONT_OPTIMIZE is off" into 13
Friendly Automation [Wed, 23 Jan 2019 17:25:29 +0000 (11:25 -0600)] 
Merge "Test_cel: Fails when DONT_OPTIMIZE is off" into 13

6 years agoMerge "manager_channels: Fix throwing of HangupHandler manager events" into 13
Joshua C. Colp [Wed, 23 Jan 2019 15:52:02 +0000 (09:52 -0600)] 
Merge "manager_channels: Fix throwing of HangupHandler manager events" into 13

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

6 years agores/res_pjsip: Fix crash due to misuse of session->media between threads.
Paulo Vicentini [Thu, 8 Nov 2018 10:21:03 +0000 (11:21 +0100)] 
res/res_pjsip: Fix crash due to misuse of session->media between threads.

This patch makes sure that thread running ast_taskprocessor_execute
cannot suddenly dispose the session->media object making the other
threads (running pbx_thread / bridge_channel_ind_thread) crash when they
try to access the pointer to invalid memory. We were experiencing a crash due
to a misuse of session->media container between threads running
(bridge_channel_ind_thread/pbx_thread) and the thread running
ast_taskprocessor_execute. Depending on the SIP flow (during a disconnection)
and the threads' code path, the session->media container was being destroyed
(and set to NULL) by the thread running ast_taskprocessor_execute while the
thread running t38_framehook_read was still referring to it.
Now res_pjsip_t38 is referring a session_media in a datastore.

ASTERISK-28156

Change-Id: Ia92e2389b8d804bf205473e92ec06217e87ce237

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

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

6 years agoMerge "pjsip_transport_management: Shutdown transport immediately on disconnect"...
Friendly Automation [Wed, 23 Jan 2019 00:24:37 +0000 (18:24 -0600)] 
Merge "pjsip_transport_management: Shutdown transport immediately on disconnect" into 13

6 years agoMerge "res_http_websocket: respond to CLOSE opcode" into 13
Joshua C. Colp [Wed, 23 Jan 2019 00:15:48 +0000 (18:15 -0600)] 
Merge "res_http_websocket: respond to CLOSE opcode" into 13

6 years agomanager_channels: Fix throwing of HangupHandler manager events
Gerald Schnabel [Tue, 22 Jan 2019 21:03:22 +0000 (22:03 +0100)] 
manager_channels: Fix throwing of HangupHandler manager events

The type value extracted from stasis message data in channel_hangup_handler_cb
isn't compared against the valid values "run", "pop" and "push". Thus the
manager events HangupHandlerPush, HangupHandlerPop and HangupHandlerRun are
never thrown.

This regression was introduced by ASTERISK_21462.

ASTERISK-28252

Change-Id: I9956e35e18da1873113644df1ddc3c7cd37bf524

6 years agoTest_cel: Fails when DONT_OPTIMIZE is off
Chris-Savinovich [Tue, 22 Jan 2019 17:48:57 +0000 (11:48 -0600)] 
Test_cel: Fails when DONT_OPTIMIZE is off

A bug in GCC causes TEST_CEL to return
failure under the following conditions:
1. TEST_FRAMEWORK on
2. DONT_OPTIMIZE off
3. Fedora and Ubuntu
4. GCC 8.2.1
5. Test name: test_cel_dial_pickup
6. There must exist a certain combination of multithreading.
The bug affects arithmetic calculations when the optimization level
is bigger than O1 and the -fpartial-inline flag is on. Provided these
conditions, function ast_str_to_lower() fails to convert to lower case
due to said function being of type force_inline.  The solution is to
remove the "force_inline" type declaration from function ast_str_to_lower()
Change-Id: Ied32e0071f12ed9d5f3b4cdd878b2532a1c769d7

6 years agoapp_voicemail: Add Mailbox Aliases
George Joseph [Mon, 10 Dec 2018 13:20:06 +0000 (06:20 -0700)] 
app_voicemail:  Add Mailbox Aliases

You can now define an "aliases" context in voicemail.conf
whose entries point to actual mailboxes.  These can be used anywhere
the mailbox is specified.

Example:
[general]
aliasescontext = myaliases

[default]
1234 = yadayada

[myaliases]
4321@devices = 1234@default

Now you can use 4321@devices to refer to the 1234@default mailbox.

This can be useful to provide channel drivers with constant
mailbox specifications such as <extension>@devices leaving
app_voicemail to control exactly which mailbox the alias points to.
Now, only voicemail has to be reloaded to make changes instead of
individual channel drivers which are usually more expensive to
reload.

Change-Id: I395b9205c91523a334fe971be0d1de4522067b04

6 years agores_pjsip_registrar: mitigate blocked threads on reliable transport shutdown
Kevin Harwell [Tue, 22 Jan 2019 17:48:41 +0000 (11:48 -0600)] 
res_pjsip_registrar: mitigate blocked threads on reliable transport shutdown

When a reliable transport is shutdown it's possible for the pjsip registrar
resource shutdown handler to get called multiple times. If this happens and one
of the threads is taking "too long" (slow database call for instance) then the
others get blocked waiting to delete.

Since it only takes one to delete the contact then the other threads should be
able to continue on if one of the threads is currently "deleting". This patch
makes it so now when a thread enters the shutdown handler it checks to see if a
thread is currently already "deleting". If so, then the thread does not attempt
to get the lock, and instead continues on thus avoiding the blockage.

ASTERISK-28213 #close

Change-Id: I7563ca596312b1dff4f3ab41483e89fe2862328a

6 years agoMerge "pjproject_bundled: Add patch for double free issue in timer heap" into 13
Joshua C. Colp [Tue, 22 Jan 2019 17:33:16 +0000 (11:33 -0600)] 
Merge "pjproject_bundled:  Add patch for double free issue in timer heap" into 13

6 years agopjproject_bundled: Add patch for double free issue in timer heap
George Joseph [Tue, 22 Jan 2019 15:02:37 +0000 (08:02 -0700)] 
pjproject_bundled:  Add patch for double free issue in timer heap

Fixed #2172: Avoid double reference counter decrements in
timer in the scenario of race condition between
pj_timer_heap_cancel() and pj_timer_heap_poll().

Change-Id: If000e9438c83ac5084b678eb811e902c035bd2d8

6 years agores_http_websocket: respond to CLOSE opcode
Jeremy Lainé [Tue, 8 Jan 2019 07:38:41 +0000 (08:38 +0100)] 
res_http_websocket: respond to CLOSE opcode

This ensures that Asterisk responds properly to frames received from a
client with opcode 8 (CLOSE) by echoing back the status code in its own
CLOSE frame.

Handling of the CLOSE opcode is moved up with the rest of the opcodes so
that unmasking gets applied. The payload is no longer returned to the
caller, but neither ARI nor the chan_sip nor pjsip made use of the
payload, which is a good thing since it was masked.

ASTERISK-28231 #close

Change-Id: Icb1b60205fc77ee970ddc91d1f545671781344cf

6 years agopjsip_transport_management: Shutdown transport immediately on disconnect
Sean Bright [Fri, 18 Jan 2019 22:11:18 +0000 (17:11 -0500)] 
pjsip_transport_management: Shutdown transport immediately on disconnect

The transport management code that checks for idle connections keeps a
reference to PJSIP's transport for IDLE_TIMEOUT milliseconds (32000 by
default). Because of this, if the transport is closed before this
timeout, the idle checking code will keep the transport from actually
being shutdown until the timeout expires.

Rather than passing the AO2 object to the scheduler task, we just pass
its key and look it up when it is time to potentially close the idle
connection. The other transport management code handles cleaning up
everything else for us.

Additionally, because we use the address of the transport when
generating its name, we concatenate an incrementing ID to the end of the
name to guarantee uniqueness.

Related to ASTERISK~28231

Change-Id: I02ee9f4073b6abca9169d30c47aa69b5e8ae9afb

6 years agochannel.c: Fix segfault with Monitor(wav,file,i)
Valentin Vidic [Sun, 20 Jan 2019 18:15:51 +0000 (19:15 +0100)] 
channel.c: Fix segfault with Monitor(wav,file,i)

If the Monitor is started with the i option the read_stream will be
NULL. One code path in channel.c checks if write_stream is set but than
uses read_stream instead causing a segfault.

ASTERISK-28249

Change-Id: I1bae9126537be54895c7fea2d08dd9488d8cc525

6 years agostasis / manager / ari: Better filter messages.
Joshua C. Colp [Thu, 10 Jan 2019 19:34:32 +0000 (15:34 -0400)] 
stasis / manager / ari: Better filter messages.

Previously both AMI and ARI used a default route on
their stasis message router to handle some of the
messages for publishing out their respective
connection. This caused messages to be given to
their subscription that could not be formatted
into AMI or JSON.

This change adds an API call to the stasis message
router which allows a default route to be set as well
as formatters that the default route is expecting.
This allows both AMI and ARI to specify that their
default route only wants messages of their given
formatter. By doing so stasis can more intelligently
filter at publishing time so that they do not receive
messages which will not be turned into AMI or JSON.

ASTERISK-28244

Change-Id: I65272819a53ce99f869181d1d370da559a7d1703

6 years agosched: Make sched_settime() return void because it cannot fail
Sean Bright [Thu, 17 Jan 2019 15:56:35 +0000 (10:56 -0500)] 
sched: Make sched_settime() return void because it cannot fail

Change-Id: I66b8b2b2778f186919d73ae9bf592104b8fb1cd5

6 years agores_pjsip_transport_websocket: Don't assert on 0 length payloads
Sean Bright [Fri, 4 Jan 2019 23:14:45 +0000 (18:14 -0500)] 
res_pjsip_transport_websocket: Don't assert on 0 length payloads

If an external pjproject is used and built with assertions enabled, we
will assert if passed a payload length of 0, so treat empty frames as if
we didn't receive them.

Change-Id: I9c5fdccd89cc8d2f3ed7e3ee405ef0fc78178f48

6 years agoMerge "res_pjsip: add option to disable ContactStatus event when contact is updated...
Friendly Automation [Mon, 14 Jan 2019 14:30:59 +0000 (08:30 -0600)] 
Merge "res_pjsip: add option to disable ContactStatus event when contact is updated" into 13

6 years agoMerge "stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure...
Joshua C. Colp [Mon, 14 Jan 2019 14:26:55 +0000 (08:26 -0600)] 
Merge "stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure." into 13

6 years agoMerge "RTP: reset DTMF last seqno/timestamp on RTP renegotiation" into 13
Friendly Automation [Mon, 14 Jan 2019 14:01:00 +0000 (08:01 -0600)] 
Merge "RTP: reset DTMF last seqno/timestamp on RTP renegotiation" into 13

6 years agoMerge "app_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail...
Friendly Automation [Sat, 12 Jan 2019 00:28:11 +0000 (18:28 -0600)] 
Merge "app_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail" into 13

6 years agores_pjsip: add option to disable ContactStatus event when contact is updated
Alexei Gradinari [Fri, 11 Jan 2019 16:34:08 +0000 (11:34 -0500)] 
res_pjsip: add option to disable ContactStatus event when contact is updated

This patch adds a new PJSIP global configuration option
'send_contact_status_on_update_registration' to be able to have the same
performance benefits as version 16.

By default old behavior, i.e. the ContactStatus event will be sent when a
device refreshes its registration.

Change-Id: I706adf7584e7077eb6bde6d9799ca408bc82ce46

6 years agostasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure.
mohitdhiman [Mon, 7 Jan 2019 18:04:43 +0000 (23:34 +0530)] 
stasis/endpoint: Fix memory leak of channel_ids in ast_endpoint structure.

During Bridging of two channels if masquerade operation is performed on a
channel (clone channel) which was created with endpoint details
(ast_channel_alloc_with_endpoint()) and the original channel which is created
without endpoint details (ast_channel_alloc()) then both the channels must
exchange their endpoint details or else after masquerade when clone channel
is being destroyed the endpoint cleanup callbacks will be destroyed too and
after call completion unique_id of original channel will still be there in
ast_endpoint structure's channel_ids container.

ASTERISK-28197

Change-Id: Ied0451f378a3f2a36acc8c0984959a69895efa17

6 years agoRAII: Change order or variables in clang version
Diederik de Groot [Sat, 5 Jan 2019 17:14:26 +0000 (18:14 +0100)] 
RAII: Change order or variables in clang version

This prevents use-after-scope issues when unwinding the stack,
which happens in reverse order. The varname variable needs to
remain alive for the destruction to be able to access it.
Issue was found using clang + address-sanitizer.

ASTERISK-28232 #close

Change-Id: I00811c34ae910836a5fb6d22304528aef92624db

6 years agoMerge "ast_coredumper: Refactor the pid determination process" into 13
Joshua C. Colp [Fri, 4 Jan 2019 14:25:51 +0000 (08:25 -0600)] 
Merge "ast_coredumper:  Refactor the pid determination process" into 13

6 years agoMerge "stasis: Fix ABI between DEVMODE and non-DEVMODE." into 13
George Joseph [Fri, 4 Jan 2019 13:55:58 +0000 (07:55 -0600)] 
Merge "stasis: Fix ABI between DEVMODE and non-DEVMODE." into 13

6 years agoapp_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail
Bryan Boatright [Wed, 2 Jan 2019 17:44:41 +0000 (11:44 -0600)] 
app_voicemail: Fix Channel variable VM_MESSAGEFILE for "urgent" voicemail

If a voicemail is marked "urgent" then the VM_MESSAGEFILE channel variable is
not updated correctly since urgent messages are in a different directory. The
fix is to update the channel variable when the path to the urgent message is
created.

ASTERISK-28225

Change-Id: I8efbace06e6122ea0793f7bdb073d4378e8274ca

6 years agostasic.c: Fix printf format type mismatches with arguments.
Richard Mudgett [Wed, 19 Dec 2018 19:02:35 +0000 (13:02 -0600)] 
stasic.c: Fix printf format type mismatches with arguments.

An int64_t is not likely the same size as a long.

* Changed the int64_t values in the statistics structs to longs so casting
is not necessary when generating the formatted CLI output.  The offending
members did not need to be int64_t anyway as they were only set by an int
type variable which was already truncating bits.

* Reordered the statistics structs to reduce potential padding bytes.

Change-Id: Ic090a070e9dc4ca650ebdb9c01ed50a581289962

6 years agoMerge "backtrace.c: Fix casting pointer to/from integral type." into 13
George Joseph [Wed, 2 Jan 2019 15:51:28 +0000 (09:51 -0600)] 
Merge "backtrace.c: Fix casting pointer to/from integral type." into 13

6 years agostasis: Fix ABI between DEVMODE and non-DEVMODE.
Corey Farrell [Wed, 26 Dec 2018 18:30:07 +0000 (13:30 -0500)] 
stasis: Fix ABI between DEVMODE and non-DEVMODE.

Create compatibility stubs for maximum ABI compatibility.

ASTERISK-28212 #close

Change-Id: I872c04842ab6b61e9dd6d37e4166bc619aa20626

6 years agoRevert "stasis_cache: Stop caching stasis subscription change messages"
George Joseph [Wed, 26 Dec 2018 16:23:05 +0000 (11:23 -0500)] 
Revert "stasis_cache:  Stop caching stasis subscription change messages"

This reverts commit 94a4eea7f6e486368b35585ea867479f248095c2.

This commit caused issues with polling when combined with
the revert commit "Revert "app_voicemail: Remove need to subscribe
to stasis"

ASTERISK-28222
Reported by: abelbeck

Change-Id: I0aaab5218a282706dfc6fcbbaeead228d599b99b

6 years agoast_coredumper: Refactor the pid determination process
George Joseph [Mon, 24 Dec 2018 17:42:36 +0000 (10:42 -0700)] 
ast_coredumper:  Refactor the pid determination process

In order to get a dump of the running process, we need to find the
pid of the main asterisk process.  This can be tricky if there are
also instances of "asterisk -r" running or if an alternate location
for asterisk.conf was specified on the command line with the -C
option that also specified an alternation location for the pid file.

So now...

1. We find the asterisk executable with "which" or the --asterisk-bin
   command line option.
2. If there's only 1 process with an executable path that matches,
   we use that pid.  If not...
3. We try "<asterisk-bin> -rx 'core show settings'" and parse the
   output to find the pidfile, then read that for the pid.  If that
   didn't work...
4. We get a list of all the pids matching <asterisk-bin> and look
   in /proc/<pid>/cmdline for a -C argument and retry the "core show
   settings" using the same -C option.  We can't parse the output
   of "ps" to get the -C path because it may contain spaces.  The
   contents of /proc/<pid>/cmdline are delimited by NULLs.  For BSDs
   we may have to mount /proc first. :(

ASTERISK-28221
Reported by: Andrew Nagy

Change-Id: I8aa1f3f912f949df2b5348908803c636bde1d57c

6 years agoRTP: reset DTMF last seqno/timestamp on RTP renegotiation
Alexei Gradinari [Wed, 19 Dec 2018 21:27:12 +0000 (16:27 -0500)] 
RTP: reset DTMF last seqno/timestamp on RTP renegotiation

The remote side may start a new stream when renegotiating RTP.
Need to reset the DTMF last sequence number and the timestamp
of the last END packet on RTP renegotiation.

If the new time stamp is lower then the timestamp of the last DTMF END packet
the asterisk drops all DTMF frames as out of order.

This bug was caught using Cisco ip-phone SPA5XX and codec g722.
On SIP session update the SPA50X resets stream and a new timestamp is twice
smaller then the previous.

ASTERISK-28162 #close

Change-Id: Ic72b4497e74d801b27a635559c1cf29c16c95254

6 years agobacktrace.c: Fix casting pointer to/from integral type.
Richard Mudgett [Wed, 19 Dec 2018 18:39:08 +0000 (12:39 -0600)] 
backtrace.c: Fix casting pointer to/from integral type.

The backtrace library bfd.h include file does not get the sizes of
pointers and ints right on some platforms.  On my old test box the size
of bfd_vma is 8 while the size of a pointer is 4.  gcc on the box
complains of the integer casting to/from pointers size mismatch.

* uintptr_t to the rescue by doing an appropriate two stage cast.

Change-Id: Icb2621583f50c8728de08a3c824d95fe53cc45d0

6 years agoMerge "app_voicemail: Don't delete mailbox state unless mailbox is deleted" into 13
Joshua C. Colp [Wed, 19 Dec 2018 11:14:16 +0000 (05:14 -0600)] 
Merge "app_voicemail:  Don't delete mailbox state unless mailbox is deleted" into 13

6 years agoMerge "res_rtp_asterisk: Remove some unused structure fields." into 13
George Joseph [Tue, 18 Dec 2018 16:42:17 +0000 (10:42 -0600)] 
Merge "res_rtp_asterisk: Remove some unused structure fields." into 13

6 years agoapp_voicemail: Don't delete mailbox state unless mailbox is deleted
George Joseph [Tue, 18 Dec 2018 16:33:50 +0000 (09:33 -0700)] 
app_voicemail:  Don't delete mailbox state unless mailbox is deleted

The free_user function was automatically deleting the stasis mailbox
state but this only makes sense when the mailbox is actually
deleted, not just the structure freed.  This was causing issues
where leave_voicemail would publish the mwi message to stasis and
delete the state before the message could be processed by
res_pjsip_mwi.

* Removed the delete of state from free_user().

* Created a new free_user_final() function that both frees the data
  structure and deletes the state.  This function is only called
  during module load/unload where it's appropriate to delete the
  state.

ASTERISK-28215

Change-Id: I305e8b3c930e9ac41d901e5dc8a58fd7904d98dd

6 years agoMerge "res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set"...
Friendly Automation [Mon, 17 Dec 2018 14:26:29 +0000 (08:26 -0600)] 
Merge "res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set" into 13

6 years agores_rtp_asterisk: Remove some unused structure fields.
Sean Bright [Fri, 14 Dec 2018 16:50:40 +0000 (11:50 -0500)] 
res_rtp_asterisk: Remove some unused structure fields.

All of the fields that were removed were no longer referenced except for
'lastrxts' and 'rxseqno' which were only ever written to.

Change-Id: I5a5d31eb33e97663843698f58d0d97f22a76627c

6 years agoMerge "bridge_builtin_features.c: Set auto(mix)mon variables on both channels" into 13
Friendly Automation [Fri, 14 Dec 2018 14:32:56 +0000 (08:32 -0600)] 
Merge "bridge_builtin_features.c: Set auto(mix)mon variables on both channels" into 13

6 years agores_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set
Sean Bright [Thu, 13 Dec 2018 21:56:50 +0000 (16:56 -0500)] 
res_format_attr_h264.c: Make sure profile-level-id fmtp attribute is set

The profile-iop octet (the 2nd) of profile-level-id can be zero
according to RFC 6184 Section 8.1. So we ignore its value when deciding
to include profile-level-id in the outgoing SDP.

ASTERISK-27959 #close
Reported by: David Kuehling

Change-Id: Id28cd916a3d7748058fe9609b585d07d9e243f73

6 years agoMerge "confbridge: announce to the marked users when they join an empty conference...
Friendly Automation [Thu, 13 Dec 2018 13:55:12 +0000 (07:55 -0600)] 
Merge "confbridge: announce to the marked users when they join an empty conference" into 13

6 years agobridge_builtin_features.c: Set auto(mix)mon variables on both channels
Sean Bright [Tue, 11 Dec 2018 20:49:03 +0000 (15:49 -0500)] 
bridge_builtin_features.c: Set auto(mix)mon variables on both channels

This is how features behaved up through Asterisk 11, but was changed
when the new bridging framework was implemented in Asterisk 12.

Reported by rrittgarn in #asterisk.

Change-Id: I72cf86223947a8118c75f46e2c603dbc11e3125b

6 years agoMerge "utils: Don't set or clear flags that don't need setting or clearing" into 13
Friendly Automation [Wed, 12 Dec 2018 19:11:17 +0000 (13:11 -0600)] 
Merge "utils: Don't set or clear flags that don't need setting or clearing" into 13

6 years agoMerge "stasis: Add statistics gathering in developer mode." into 13
Friendly Automation [Wed, 12 Dec 2018 19:08:59 +0000 (13:08 -0600)] 
Merge "stasis: Add statistics gathering in developer mode." into 13

6 years agoMerge "Use non-blocking socket() and pipe() wrappers" into 13
Friendly Automation [Wed, 12 Dec 2018 17:26:50 +0000 (11:26 -0600)] 
Merge "Use non-blocking socket() and pipe() wrappers" into 13

6 years agostasis: Add statistics gathering in developer mode.
Joshua C. Colp [Fri, 30 Nov 2018 11:40:40 +0000 (07:40 -0400)] 
stasis: Add statistics gathering in developer mode.

This change adds statistics gathering to Stasis topics,
subscriptions, and message types. These can be viewed using
CLI commands and provide insight into how Stasis is used
and how long certain operations take to execute.

These are only available when Asterisk is compiled in
developer mode and do not have any impact under normal
operation.

ASTERISK-28117

Change-Id: I94411b53767f89ee01714daaecf0c2f1666e863f

6 years agoMerge "stasis: Allow filtering by formatter" into 13
Friendly Automation [Wed, 12 Dec 2018 17:09:22 +0000 (11:09 -0600)] 
Merge "stasis:  Allow filtering by formatter" into 13

6 years agoMerge "build: Update config.guess and config.sub" into 13
Joshua C. Colp [Wed, 12 Dec 2018 17:03:14 +0000 (11:03 -0600)] 
Merge "build: Update config.guess and config.sub" into 13

6 years agoMerge "pjproject_bundled: check whether UPDATE is supported on outgoing calls" into 13
George Joseph [Wed, 12 Dec 2018 16:52:10 +0000 (10:52 -0600)] 
Merge "pjproject_bundled: check whether UPDATE is supported on outgoing calls" into 13

6 years agoMerge "Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit...
Friendly Automation [Tue, 11 Dec 2018 20:14:33 +0000 (14:14 -0600)] 
Merge "Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"" into 13

6 years agoUse non-blocking socket() and pipe() wrappers
Sean Bright [Tue, 11 Dec 2018 14:54:43 +0000 (09:54 -0500)] 
Use non-blocking socket() and pipe() wrappers

Change-Id: I050ceffe5a133d5add2dab46687209813d58f597

6 years agoMerge "CI: Various updates to buildAsterisk.sh" into 13
George Joseph [Tue, 11 Dec 2018 15:07:39 +0000 (09:07 -0600)] 
Merge "CI: Various updates to buildAsterisk.sh" into 13

6 years agoutils: Don't set or clear flags that don't need setting or clearing
Sean Bright [Tue, 11 Dec 2018 15:06:15 +0000 (10:06 -0500)] 
utils: Don't set or clear flags that don't need setting or clearing

Change-Id: I0e7fb507ac09b15e45e1ff8501ecfca67afa5217

6 years agoMerge "utils: Wrap socket() and pipe() to reduce syscalls" into 13
Joshua C. Colp [Tue, 11 Dec 2018 15:02:39 +0000 (09:02 -0600)] 
Merge "utils: Wrap socket() and pipe() to reduce syscalls" into 13

6 years agobuild: Update config.guess and config.sub
Sean Bright [Tue, 11 Dec 2018 12:55:16 +0000 (07:55 -0500)] 
build: Update config.guess and config.sub

Pulled from the authoritative respository at:

  https://git.savannah.gnu.org/cgit/config.git/tree/

Change-Id: I748708ce24d4d47ff1f395075d0b08d3da3355e0

6 years agoRevert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"
George Joseph [Tue, 11 Dec 2018 14:29:25 +0000 (09:29 -0500)] 
Revert "RTP: reset DTMF last seqno/timestamp on voice packet with marker bit"

This reverts commit cf620ce0f6dc4a7ef713dc85b4c2610b614cd647.

Pending resolution of ASTERISK_28200

Change-Id: If18ab1166db0d634ce8a099bd7460251e9c682e1

6 years agoMerge "chan_sip: Fix leak using contact ACL" into 13
Joshua C. Colp [Mon, 10 Dec 2018 13:05:31 +0000 (07:05 -0600)] 
Merge "chan_sip: Fix leak using contact ACL" into 13

6 years agoconfbridge: announce to the marked users when they join an empty conference
Alexei Gradinari [Fri, 7 Dec 2018 20:22:29 +0000 (15:22 -0500)] 
confbridge: announce to the marked users when they join an empty conference

Currently the file sound_only_person is not played when a marked
user (with announce_only_user=yes) joins an empty conference.

This patch fixes it.

ASTERISK-28201 #close

Change-Id: I85b67687e6b220939c3af8091d83a70a7b174cf4

6 years agochan_sip: Fix leak using contact ACL
Giuseppe Sucameli [Wed, 5 Dec 2018 00:00:40 +0000 (01:00 +0100)] 
chan_sip: Fix leak using contact ACL

Free old peer's contactacl before overwrite it within build_peer.

ASTERISK-28194

Change-Id: Ie580db6494e50cee0e2a44b38e568e34116ff54c

6 years agostasis: Allow filtering by formatter
George Joseph [Thu, 29 Nov 2018 15:53:51 +0000 (08:53 -0700)] 
stasis:  Allow filtering by formatter

A subscriber can now indicate that it only wants messages
that have formatters of a specific type.  For instance,
manager can indicate that it only wants messages that have a
"to_ami" formatter.  You can combine this with the existing
filter for message type to get only messages with specific
formatters or messages of specific types.

ASTERISK-28186

Change-Id: Ifdb7a222a73b6b56c6bb9e4ee93dc8a394a5494c

6 years agoutils: Wrap socket() and pipe() to reduce syscalls
Sean Bright [Fri, 7 Dec 2018 12:57:48 +0000 (07:57 -0500)] 
utils: Wrap socket() and pipe() to reduce syscalls

Some platforms provide an implementation of socket() and pipe2() that allow the
caller to specify that the resulting file descriptors should be non-blocking.

Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
calls to fcntl() to set the O_NONBLOCK flag afterwards.

In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
wrapper if it is available.

Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0

6 years agoCI: Various updates to buildAsterisk.sh
George Joseph [Wed, 5 Dec 2018 15:37:45 +0000 (08:37 -0700)] 
CI: Various updates to buildAsterisk.sh

* Added ---no-configure, --no-menuselect, --no-make and --no-alembic
  options that prevent those actions from being performed.  Useful
  for testing and re-running portions of the build after fixing
  earlier failures.

* Added "set -e" to abort the script on command failure.
  Not sure why this wasn't there in the first place.

* Fixed a few echos that were redirecting to stderr when they shouldn't
  have been.

* Catch more alembic failures by actually trying to generate the SQL.

Change-Id: I9f395fa4e9254be7299e7c1014f1a13db78faffb

6 years agoMerge "test_websocket_client.c: Disable websocket_client_create_and_connect test...
George Joseph [Wed, 5 Dec 2018 14:18:14 +0000 (08:18 -0600)] 
Merge "test_websocket_client.c: Disable websocket_client_create_and_connect test." into 13

6 years agocore: Add some documentation to the malloc_trim code
Sean Bright [Mon, 3 Dec 2018 22:41:56 +0000 (17:41 -0500)] 
core: Add some documentation to the malloc_trim code

This adds documentation to handle_cli_malloc_trim() indicating how it
can be useful when debugging OOM conditions.

Change-Id: I1936185e78035bf123cd5e097b793a55eeebdc78

6 years agoMerge "core: Merge malloc_trim patch" into 13
George Joseph [Mon, 3 Dec 2018 22:26:13 +0000 (16:26 -0600)] 
Merge "core: Merge malloc_trim patch" into 13

6 years agoMerge "app_queue: Revert broken queue channel reference patch" into 13
George Joseph [Mon, 3 Dec 2018 21:08:09 +0000 (15:08 -0600)] 
Merge "app_queue: Revert broken queue channel reference patch" into 13

6 years agocore: Merge malloc_trim patch
Chris-Savinovich [Mon, 3 Dec 2018 20:01:01 +0000 (14:01 -0600)] 
core: Merge malloc_trim patch

We've had multiple opportunities where Richard Mudgett's
malloc_trim patch has been useful. Let's get it
pushed up to gerrit and merged.

Since malloc_trim is only available in libc, an entry is
added to configure.ac to create a definition for
HAVE_MALLOC_TRIM.

Change-Id: Ia38308c550149d9d6eae4ca414a649957de9700c

6 years agoMerge "res_pjsip: Patch for res_pjsip_* module load/reload crash" into 13
Jenkins2 [Mon, 3 Dec 2018 15:09:15 +0000 (09:09 -0600)] 
Merge "res_pjsip: Patch for res_pjsip_* module load/reload crash" into 13

6 years agoapp_queue: Revert broken queue channel reference patch
lvl [Mon, 22 Oct 2018 12:47:56 +0000 (14:47 +0200)] 
app_queue: Revert broken queue channel reference patch

Revert commit 6409e7b11a2310196a9978b30a6b79e2760be592, and add
NULL checks for all app_queue event handling code.

Related issues: ASTERISK~25185, ASTERISK~27006, ASTERISK~25844

ASTERISK-28125

Change-Id: I37334ea184ebb56e54471496b82937d4927815a0

6 years agotest_websocket_client.c: Disable websocket_client_create_and_connect test.
Chris-Savinovich [Fri, 30 Nov 2018 20:00:14 +0000 (14:00 -0600)] 
test_websocket_client.c: Disable websocket_client_create_and_connect test.

This test was occasionally failing, with:

  WARNING[5812]: http.c:1939 httpd_helper_thread: Failed to set
      TCP_NODELAY on HTTP connection: Bad file descriptor
  ERROR[5812]: iostream.c:91 ast_iostream_nonblock: Failed to get
      fcntl() flags for file descriptor: Bad file descriptor
  ERROR[5812]: iostream.c:569 ast_iostream_close: close() failed: Bad
      file descriptor

Disabled for now by making the test explicit only.

Change-Id: I778f6cbb6104c6b4e89737a2eaf1a9540888d351

6 years agoMerge "Revert "app_voicemail: Remove need to subscribe to stasis"" into 13
George Joseph [Fri, 30 Nov 2018 13:29:48 +0000 (07:29 -0600)] 
Merge "Revert "app_voicemail: Remove need to subscribe to stasis"" into 13

6 years agoRevert "app_voicemail: Remove need to subscribe to stasis"
George Joseph [Thu, 29 Nov 2018 16:37:01 +0000 (09:37 -0700)] 
Revert "app_voicemail: Remove need to subscribe to stasis"

This reverts commit 1843b0e2b52ba95df57f2f92a8c4669cbbb17bfa.

That commit closed a long standing hole which allowed subscriptions
to mailboxes that weren't configured in voicemail.conf.  This
caused an issue with FreePBX which depdended on that behavior.
The commit is being reverted until FreePBX can handle the new
behavior.

ASTERISK-28151
Reported by: Ronald Raikes

Change-Id: I57b7b85e75d7dd97c742b5c69d718a0f61260c15

6 years agoMerge "jansson: Upgrade to 2.12." into 13
Kevin Harwell [Thu, 29 Nov 2018 18:57:40 +0000 (12:57 -0600)] 
Merge "jansson: Upgrade to 2.12." into 13

6 years agopjproject_bundled: check whether UPDATE is supported on outgoing calls
Pirmin Walthert [Wed, 28 Nov 2018 07:14:12 +0000 (08:14 +0100)] 
pjproject_bundled: check whether UPDATE is supported on outgoing calls

In ASTERISK-27095 an issue had been fixed because of which chan_pjsip was not
trying to send UPDATE messages when connected_line_method was set to invite.
However this only solved the issue for incoming INVITES. For outgoing INVITES
(important when transferring calls) the options variable needs to be updated
at a different place.

ASTERISK-28182 #close
Reported-by: nappsoft
Change-Id: I76cc06da4ca76ddd6dce814a8b97cc66b98aaf29

6 years agores_pjsip: Patch for res_pjsip_* module load/reload crash
Corey Farrell [Tue, 27 Nov 2018 16:20:59 +0000 (11:20 -0500)] 
res_pjsip: Patch for res_pjsip_* module load/reload crash

The session_supplements for the pjsip makes crashes when the module
load/unload.

ASTERISK-28157

Change-Id: I5b82be3a75d702cf1933d8d1417f44aa10ad1029

6 years agotest_cel: Plug a few ref leaks
George Joseph [Mon, 26 Nov 2018 22:18:00 +0000 (15:18 -0700)] 
test_cel:  Plug a few ref leaks

These are only a few of the leaks.  The large number of macros
and return paths in this file would make a weeks worth of work
to plug them all.

Change-Id: Ie2369fa944023d44767871c5c30974cb077ffb56

6 years agoMerge "RTP: need to reset DTMF last seqno/timestamp on voice packet with marker bit...
Jenkins2 [Mon, 26 Nov 2018 19:45:29 +0000 (13:45 -0600)] 
Merge "RTP: need to reset DTMF last seqno/timestamp on voice packet with marker bit" into 13

6 years agoMerge "astobj2: Eliminate usage of legacy ao2_container_alloc routine." into 13
Jenkins2 [Mon, 26 Nov 2018 13:38:32 +0000 (07:38 -0600)] 
Merge "astobj2: Eliminate usage of legacy ao2_container_alloc routine." into 13

6 years agoMerge "func_strings: HASHKEY - negative array index can cause corruption" into 13
Jenkins2 [Mon, 26 Nov 2018 13:25:29 +0000 (07:25 -0600)] 
Merge "func_strings: HASHKEY - negative array index can cause corruption" into 13

6 years agojansson: Upgrade to 2.12.
Corey Farrell [Mon, 26 Nov 2018 12:09:11 +0000 (07:09 -0500)] 
jansson: Upgrade to 2.12.

This brings in jansson-2.12, removes all patches that were merged
upstream.  README is created in third-party/jansson/patches to explain
how to add patches but also because the patches folder must exist for
the build process to succeed.

Change-Id: If0f2d541c50997690660c21fb7b03d625a5cdadd

6 years agoastobj2: Eliminate usage of legacy ao2_container_alloc routine.
Corey Farrell [Mon, 19 Nov 2018 16:20:21 +0000 (11:20 -0500)] 
astobj2: Eliminate usage of legacy ao2_container_alloc routine.

Replace usage of ao2_container_alloc with ao2_container_alloc_hash or
ao2_container_alloc_list.

ao2_container_alloc is now restricted to modules only and is being
removed from Asterisk 17.

Change-Id: I0907d78bc66efc775672df37c8faad00f2f6c088

6 years agoMerge "stasis: Remove stringfields and lock from change message." into 13
Jenkins2 [Tue, 20 Nov 2018 11:05:29 +0000 (05:05 -0600)] 
Merge "stasis: Remove stringfields and lock from change message." into 13

6 years agoMerge "CI: Get job timeouts from environment" into 13
Jenkins2 [Mon, 19 Nov 2018 21:13:55 +0000 (15:13 -0600)] 
Merge "CI: Get job timeouts from environment" into 13