Commit Graph

31236 Commits

Author SHA1 Message Date
Joshua Colp 5f517bacd0 Merge "app_confbridge: Move participant info code to confbridge_manager." 2018-06-28 13:04:12 -05:00
Joshua Colp 3f7a75b481 Merge "res_pjsip_messaging: Allow application/* for in-dialog MESSAGEs" 2018-06-28 06:46:39 -05:00
Jenkins2 84bb8586fd Merge "res_pjsip_session: Add ability to accept multiple sdp answers" 2018-06-28 06:34:22 -05:00
George Joseph e3585353f6 res_pjsip_messaging: Allow application/* for in-dialog MESSAGEs
In addition to text/* content types, incoming_in_dialog_request now
accepts application/* content types.

Also fixed a length issue when copying the body text.  It was one
character short.

ASTERISK-27942

Change-Id: I4e54d8cc6158dc47eb8fdd6ba0108c6fd53f2818
2018-06-27 06:47:35 -06:00
Joshua Colp f248345a89 Merge "app_queue: Add option for predial handlers on caller and callee channels" 2018-06-27 05:37:33 -05:00
George Joseph 5f12e2bd07 app_confbridge: Move participant info code to confbridge_manager.
With the participant info code in app_confbridge, we were still
in the process of adding the channel to the bridge when trying to send
an in-dialog MESSAGE.  This caused 2 threads to grab the channel
blocking flag at the same time.  To mitigate this, the participant
info code was moved to confbridge_manager so it runs after all
channel/bridge actions have finished.

Change-Id: I228806ac153074f45e0b35d5236166e92e132abd
2018-06-26 15:18:35 -06:00
Kevin Harwell fcd8e9d6ef Merge "uuid: Enable UUID in Solaris 11." 2018-06-26 11:08:56 -05:00
George Joseph 880fbff6b7 res_pjsip_session: Add ability to accept multiple sdp answers
pjproject by default currently will follow media forked during an INVITE
on outbound calls if the To tag is different on a subsequent response as
that on an earlier response.  We handle this correctly.  There have
been reported cases where the To tag is the same but we still need to
follow the media.  The pjproject patch in this commit adds the
capability to sip_inv and also adds the capability to control it at
runtime.  The original "different tag" behavior was always controllable
at runtime but we never did anything with it and left it to default to
TRUE.

So, along with the pjproject patch, this commit adds options to both the
system and endpoint objects to control the two behaviors, and a small
logic change to session_inv_on_media_update in res_pjsip_session to
control the behavior at the endpoint level.

The default behavior for "different tags" remains the same at TRUE and
the default for "same tag" is FALSE.

Change-Id: I64d071942b79adb2f0a4e13137389b19404fe3d6
ASTERISK-27936
Reported-by: Ross Beer
2018-06-26 07:05:34 -06:00
George Joseph 017b7849bc Merge "VECTOR: Passing parameters with side effects to macros is dangerous." 2018-06-25 11:35:34 -05:00
Alexander Traud 675e2ddb49 uuid: Enable UUID in Solaris 11.
ASTERISK-27933
Reported by: bautsche

Change-Id: I9b8362824efbfb2a16981e46e85f7c8322908c49
2018-06-23 08:26:19 +02:00
George Joseph 9c63513e5b Merge "smsq: Remove an left-over special case for Solaris." 2018-06-22 12:48:44 -05:00
Jenkins2 06b79aec05 Merge "res_http_post: Enable GMime in Solaris 11." 2018-06-22 12:02:42 -05:00
George Joseph 3fee11f261 Merge "BuildSystem: Enable ./configure in Solaris 11." 2018-06-22 09:22:11 -05:00
George Joseph 5471feb306 Merge "BuildSystem: Enable autotools in Solaris 11." 2018-06-22 09:01:06 -05:00
Jenkins2 ae5b503f1c Merge "bridge_softmix.c: Fix memory leak." 2018-06-22 08:23:58 -05:00
Jenkins2 742221ac17 Merge "chan_oss: Compile in Solaris 11." 2018-06-22 08:05:09 -05:00
Jenkins2 bbd962bc4b Merge "utils: Avoid an unused variable in Solaris 11." 2018-06-22 07:42:53 -05:00
Joshua Colp 69db72ea1b Merge "func_env: Compile in Solaris 11." 2018-06-22 07:18:45 -05:00
Joshua Colp e4a7195df1 Merge "codecs/ilbc: Compile in Solaris 11." 2018-06-22 06:48:22 -05:00
Kristian F. Høgh 184b375b41 app_queue: Add option for predial handlers on caller and callee channels
Add predial handler support to app_queue.  app_dial (ASTERISK_19548) and
app_originate (ASTERISK_26587) have the ability to execute predial
handlers on caller and callee channels.  This patch adds predial handlers
to app_queue and uses the same options as Dial and Originate (b and B).
The caller routine gets executed when the caller first enters the queue.
The callee routine gets executed for each queue member when they are about
to be called.

ASTERISK-27912

Change-Id: I5acf5c32587ee008658d12e8a8049eb8fa4d0f24
2018-06-21 17:39:33 -05:00
Richard Mudgett cad50d6dbf VECTOR: Passing parameters with side effects to macros is dangerous.
* Fix several instances where we were bumping a ref in the parameter and
then unrefing the object if it failed.  The way the AST_VECTOR_APPEND()
and AST_VECTOR_REPLACE() macros are implemented means if it fails the new
value was never evaluated.

Change-Id: I2847872a455b11ea7e5b7ce697c0a455a1d0ac9a
2018-06-21 16:10:52 -06:00
Richard Mudgett aaaa6f4a4b bridge_softmix.c: Fix memory leak.
Made release the media_types vector in
softmix_bridge_stream_topology_changed().

Change-Id: Ide3f47e379b614879220dfeeb13843f9f2b177b5
2018-06-21 16:08:44 -06:00
Alexander Traud bfeded7e62 smsq: Remove an left-over special case for Solaris.
Actually, this case was never needed because the check below does the same.

Change-Id: Ia2fca4ba6c58c644a8b7cb2d9db8539728c14ffb
2018-06-21 18:22:26 +02:00
Alexander Traud bbea9cfc3b res_http_post: Enable GMime in Solaris 11.
Change-Id: Ie434541f18f894c751d2e44bcb3efb3cac626019
2018-06-21 10:18:36 -06:00
George Joseph d87631d21f Merge changes from topic 'ASTERISK-27625'
* changes:
  channel.c: Make CHECK_BLOCKING() save thread LWP id for messages.
  channel.c: Fix usage of CHECK_BLOCKING()
  autoservice: Don't start channel autoservice if the thread is a user interface.
2018-06-21 10:26:31 -05:00
George Joseph 98bd5908a2 Merge "ARI POST DTMF: Make not compete with channel's media thread." 2018-06-21 10:26:23 -05:00
George Joseph 46c1f81fad Merge "AMI PlayDTMF Action: Make not compete with channel's media thread." 2018-06-21 10:25:32 -05:00
Alexander Traud 7f3882c8e9 codecs/ilbc: Compile in Solaris 11.
The symbol FS is the sampling frequency. That symbol is not used in Asterisk at
all and was a copy-and-paste of the iLBC reference code from the IETF RFC.
However, in Solaris, that symbol is defined by another header already. To
compile in Solaris, that symbol has to go.

Change-Id: I91ddbe5be7c00069c3a25abd5f58d7b2f04c51b1
2018-06-21 12:08:56 +02:00
Alexander Traud 9704c424f5 chan_oss: Compile in Solaris 11.
M_READ existed already and was conflicting in name.

Change-Id: I02108e07ae7d2dc314fe1e6c706c17731095a3e4
2018-06-21 12:07:21 +02:00
Alexander Traud 6f47b84fbd func_env: Compile in Solaris 11.
Change-Id: Idc9b36720f3d29c90a35a6a1ae79a7f9e1aaf50e
2018-06-21 12:04:46 +02:00
Alexander Traud a5c53bd323 utils: Avoid an unused variable in Solaris 11.
With ./configure --enable-dev-mode[=noisy], the build fails because every
warning gets an error. Therefore, Asterisk has to be free of warnings and this
variable must go.

Change-Id: I63dd2bc4833b9bdb04602f83422d16caf289d46a
2018-06-21 12:01:53 +02:00
Alexander Traud 92109cf496 BuildSystem: Enable ./configure in Solaris 11.
ASTERISK-27931

Change-Id: If298ce7f03be227a3687b9c20d382c9c55a72404
2018-06-21 11:59:35 +02:00
Joshua Colp 2a8318554b Merge "menuselect/menuselect_curses: Resolves sprintf usage error" 2018-06-21 04:24:35 -05:00
Jenkins2 5065cb2c24 Merge "Fix some doxygen and curly placement." 2018-06-20 17:01:10 -05:00
Jenkins2 8892a9b8d9 Merge "Dialplan functions: Fix some channel autoservice misuse." 2018-06-20 16:46:00 -05:00
Alexander Traud d6721e1e4c BuildSystem: Enable autotools in Solaris 11.
Because this was the last operating system which required a special case, a
version appended to the autotools, the whole version stuff is removed by this
change. This simplifies the script ./bootstrap.sh. Hopefully, this gives even
broader platform compatibility.

ASTERISK-27929
ASTERISK-27926

Change-Id: Id4cf433a1a7fa861d0210e1a2e16ca592b49fd5a
2018-06-20 20:24:53 +02:00
Jenkins2 6015507496 Merge "tcptls.h: Remove redundant SSL_CTX typedef." 2018-06-20 06:04:26 -05:00
Richard Mudgett eb8bbe660e channel.c: Make CHECK_BLOCKING() save thread LWP id for messages.
* Removed an unnecessary call to ast_channel_blocker_set() in
__ast_read().

ASTERISK-27625

Change-Id: I342168b999984666fb869cd519fe779583a73834
2018-06-19 15:02:52 -05:00
Richard Mudgett da54605b8a ARI POST DTMF: Make not compete with channel's media thread.
There can be one and only one thread handling a channel's media at a time.
Otherwise, we don't know which thread is going to handle the media frames.

ASTERISK-27625

Change-Id: I4d6a2fe7386ea447ee199003bf8ad681cb30454e
2018-06-19 15:02:52 -05:00
Richard Mudgett 7d874c1af7 AMI PlayDTMF Action: Make not compete with channel's media thread.
There can be one and only one thread handling a channel's media at a time.
Otherwise, we don't know which thread is going to handle the media frames.

ASTERISK-27625

Change-Id: Ia341f1a6f4d54f2022261abec9021fe5b2eb4905
2018-06-19 15:02:52 -05:00
Richard Mudgett 080508d2eb channel.c: Fix usage of CHECK_BLOCKING()
The CHECK_BLOCKING() macro is used to indicate if a channel's handling
thread is about to do a blocking operation (poll, read, or write) of
media.  A few operations such as ast_queue_frame(), soft hangup, and
masquerades use the indication to wake up the blocked thread to reevaluate
what is going on.

ASTERISK-27625

Change-Id: I4dfc33e01e60627d962efa29d0a4244cf151a84d
2018-06-19 15:02:52 -05:00
Richard Mudgett 0989b63047 autoservice: Don't start channel autoservice if the thread is a user interface.
Executing dialplan functions from either AMI or ARI by getting a variable
could place the channel into autoservice.  However, these user interface
threads do not handle the channel's media so we wind up with two threads
attempting to handle the media.

There can be one and only one thread handling a channel's media at a time.
Otherwise, we don't know which thread is going to handle the media frames.

ASTERISK-27625

Change-Id: If2dc94ce15ddabf923ed1e2a65ea0ef56e013e49
2018-06-19 15:02:52 -05:00
Richard Mudgett 91c3ac19cb Dialplan functions: Fix some channel autoservice misuse.
* Fix off nominal paths leaving the channel in autoservice.
* Remove unnecessary start/stop channel autoservice.
* Fix channel locking around a channel datastore search.

Change-Id: I7ff2e42388064fe3149034ecae57604040b8b540
2018-06-19 10:56:33 -06:00
Richard Mudgett 720c2d1da2 Fix some doxygen and curly placement.
Change-Id: I9a784a7c804120a8fa826c2a4cb9957e4b0b2fc8
2018-06-19 10:46:46 -06:00
Richard Mudgett c1686b8b3e tcptls.h: Remove redundant SSL_CTX typedef.
It is invalid to typedef something more than once.  Though not all gcc
compilers on different OS's complain about it.

Change-Id: I5a7d4565990c985822d61ce75bde0b45f9870540
2018-06-18 12:35:43 -06:00
Richard Mudgett a470bb9e27 channel: Fix some more unprotected channel flag setting.
Change-Id: I34c3b1201b1de539945bcfdcb264fff30332d48c
2018-06-18 09:55:59 -06:00
Jenkins2 986cffa18e Merge "app_confbridge: Enable sending events to participants" 2018-06-18 09:24:45 -05:00
Jenkins2 c59142e273 Merge "app_mp3: remove 10 seconds of silence after mp3 playback" 2018-06-18 07:43:09 -05:00
Matthew Fredrickson 8732d62334 menuselect/menuselect_curses: Resolves sprintf usage error
Acccording to the man page for sprintf, using the same buffer for
output as one used as an input yields undefined behavior.
This patch should work around this problem.

ASTERISK-27903
Reported-by: Alexander Traud

Change-Id: I2213dcb454aff26457e2e4cc9c6821276463ae3a
2018-06-15 18:51:58 -05:00
Sam Wierema 4c7ab73468 app_mp3: remove 10 seconds of silence after mp3 playback
This patch changes the way asterisk polls output from mpg123, instead
of waiting for 10 seconds(when playing an http url) it now uses a
timeout of one second and iterates 10 times using this same timeout.

The main difference is that for every timeout asterisk receives it now
checks if mpg123 is still running before poll again.

ASTERISK-27752

Change-Id: Ib7df8462e3e380cb328011890ad9270d9e9b4620
2018-06-15 06:24:37 -06:00