Commit Graph

5792 Commits

Author SHA1 Message Date
Jaco Kroon 47548ff485 manager: fix digest auth for ami/http mechanism.
Due to a fixed size buffer the digest authentication could be
incorrectly calculated if a large URI was provided, causing
authentication failure. The buffer is now dynamically allocated to allow
any size URI within the normal limits of the HTTP request size.

ASTERISK-27841

Change-Id: I660609db13b8f9e5f9567f339dd804f4985d41b3
2018-05-08 10:21:16 -04:00
George Joseph 42abc9c430 Merge "BuildSystem: Add DragonFly BSD." into 13 2018-04-30 09:06:45 -05:00
George Joseph 0a9c7443bd Merge "translate: generic plc not filled in after translation" into 13 2018-04-30 08:38:09 -05:00
George Joseph c5d19565fe Merge "bridge_softmix: Forward TEXT frames" into 13 2018-04-27 13:17:27 -05:00
Kevin Harwell 63c68d023c translate: generic plc not filled in after translation
If during translation a codec could not handle a given frame the translation
core would return NULL, thus not passing along the "missing" frame. Due to this
there was no frame to apply generic plc to, thus rendering it useless.

This patch makes it so the translation core produces an interpolated slin frame
in the cases where an attempt was made to translate to slin, but failed. This
interpolated frame is then passed along and can be used by the generic plc
algorithms to fill in the frame.

ASTERISK-27814 #close

Change-Id: I133d084da87adef913bf2ecc9c9240e3eaf4f40a
2018-04-24 15:54:48 -05:00
Alexander Traud 7b219311eb BuildSystem: Add DragonFly BSD.
ASTERISK-27820

Change-Id: I310896143e94d65da1c2be3bb448204a8b86d557
2018-04-20 12:54:57 +02:00
George Joseph be7d4faed5 bridge_softmix: Forward TEXT frames
Core bridging and, more specifically, bridge_softmix have been
enhanced to relay received frames of type TEXT or TEXT_DATA to all
participants in a softmix bridge.  res_pjsip_messaging and
chan_pjsip have been enhanced to take advantage of this so when
res_pjsip_messaging receives an in-dialog MESSAGE message from a
user in a conference call, it's relayed to all other participants
in the call.

res_pjsip_messaging already queues TEXT frames to the channel when
it receives an in-dialog MESSAGE from an endpoint and chan_pjsip
will send an MESSAGE when it gets a TEXT frame.  On a normal
point-to-point call, the frames are forwarded between the two
correctly.  bridge_softmix was not though so messages weren't
getting forwarded to conference bridge participants.  Even if they
were, the bridging code had no way to tell the participants who
sent the message so it would look like it came from the bridge
itself.

* The TEXT frame type doesn't allow storage of any meta data, such
as sender, on the frame so a new TEXT_DATA frame type was added that
uses the new ast_msg_data structure as its payload.  A channel
driver can queue a frame of that type when it receives a message
from outside.  A channel driver can use it for sending messages
by implementing the new send_text_data channel tech callback and
setting the new AST_CHAN_TP_SEND_TEXT_DATA flag in its tech
properties.  If set, the bridging/channel core will use it instead
of the original send_text callback and it will get the ast_msg_data
structure. Channel drivers aren't required to implement this.  Even
if a TEXT_DATA enabled driver uses it for incoming messages, an
outgoing channel driver that doesn't will still have it's send_text
callback called with only the message text just as before.

* res_pjsip_messaging now creates a TEXT_DATA frame for incoming
in-dialog messages and sets the "from" to the display name in the
"From" header, or if that's empty, the caller id name from the
channel.  This allows the chat client user to set a friendly name
for the chat.

* bridge_softmix now forwards TEXT and TEXT_DATA frames to all
participants (except the sender).

* A new function "ast_sendtext_data" was added to channel which
takes an ast_msg_data structure and calls a channel's
send_text_data callback, or if that's not defined, the original
send_text callback.

* bridge_channel now calls ast_sendtext_data for TEXT_DATA frame
types and ast_sendtext for TEXT frame types.

* chan_pjsip now uses the "from" name in the ast_msg_data structure
(if it exists) to set the "From" header display name on outgoing text
messages.

Change-Id: Idacf5900bfd5f22ab8cd235aa56dfad090d18489
2018-04-17 10:16:41 -06:00
Richard Mudgett 72b16ee400 res_pjsip_refer/chan_sip: Fix INVITE with replaces transfer to ConfBridge
There is a problem when an INVITE-with-Replaces transfer targets a channel
in a ConfBridge.  The transfer will unconditionally swap out the
ConfBridge channel.  Unfortunately, the ConfBridge state will not be aware
of this change.  Unexpected behavior will happen as a result since
ConfBridge channels currently can only be replaced by a masquerade and not
normal bridge channel moves.

* We just need to pretend that the channel isn't in a bridge (like other
transfer methods already do) so the transfer channel will masquerade into
the ConfBridge channel.

Change-Id: I209beb0e748fa4f4b92a576f36afa8f495ba4c82
2018-04-06 17:12:30 -05:00
Jenkins2 025fe67f2a Merge "core: Create main/options.c." into 13 2018-04-02 08:10:59 -05:00
Corey Farrell 5908c6753b core: Create main/options.c.
This creates a separate source to 'own' symbols related to options.h and
paths.h.  This significantly reduces the number of exports created by
main/asterisk.o.  This change is required to eventually be able to
link unmodified Asterisk sources to utilities and/or stand-alone tests.

ASTERISK~26245

Change-Id: I5cf184f4757f9363b80c9e678bdc35c477122380
2018-03-28 09:18:06 -04:00
Corey Farrell 6615469a05 main/indications: Use ast_cli_completion_add for all completions.
Change-Id: I371be01f178fb542a9fbe8d97e7ae21aa4d82c36
2018-03-23 01:39:48 -06:00
Jenkins2 7d8445d576 Merge "core: Remove dead symbols from asterisk.exports.in." into 13 2018-03-20 11:31:09 -05:00
Jenkins2 b39c727848 Merge "channel.c: Allow generic plc then channel formats are equal" into 13 2018-03-20 11:03:38 -05:00
Joshua Colp 6bda2d7baf Merge "BuildSystem: Instead of $PJPROJECT_LIBS with s, use $PJPROJECT_LIB everywhere." into 13 2018-03-20 10:09:08 -05:00
Joshua Colp 4040b0e909 Merge "main/sounds: Use ast_cli_completion_add." into 13 2018-03-20 09:48:30 -05:00
Jenkins2 fbd2504907 Merge "named_acl: Use ast_cli_completion_add." into 13 2018-03-20 09:37:16 -05:00
Jenkins2 44c85ddc57 Merge "manager: Use ast_cli_completion_add for completion generators." into 13 2018-03-20 09:06:49 -05:00
Jenkins2 7f40e09b3e Merge "main/test: Use ast_cli_completion_add." into 13 2018-03-20 08:50:56 -05:00
Joshua Colp 38d081c9f6 Merge "core: Minor cleanup of ast_el_read_char." into 13 2018-03-20 08:37:16 -05:00
Joshua Colp 3742534956 Merge "aco: Use ast_cli_completion_add for 'config show help'." into 13 2018-03-20 08:18:38 -05:00
Jenkins2 648405779e Merge "main/config: Use ast_cli_completion_add for reload completion." into 13 2018-03-20 07:54:13 -05:00
Jenkins2 1a82f5b645 Merge "main/translate: Use ast_cli_completion_add." into 13 2018-03-20 07:44:14 -05:00
Jenkins2 6a6bda3703 Merge "main/taskprocessor: Use ast_cli_completion_add." into 13 2018-03-20 07:22:41 -05:00
Jenkins2 dc4960e48a Merge "main/bridge: Use ast_cli_completion_add." into 13 2018-03-20 07:04:33 -05:00
Corey Farrell 6f304697b0 core: Remove dead symbols from asterisk.exports.in.
* dahdi_chan_name
* dahdi_chan_name_len
* dahdi_chan_mode
* __manager_event
* dialed_interface_info

Added comment about __progname and environ being needed for FreeBSD to
prevent accidental removal in the future.

Change-Id: I3ae026bc541cd9cb572be2ffa95fc359547642b5
2018-03-19 16:00:48 -06:00
Corey Farrell 8df4811cfa named_acl: Use ast_cli_completion_add.
Change-Id: I317a82de976bbdbfe4352c243e32a7bb8f66c377
2018-03-19 15:48:34 -06:00
Corey Farrell a89323236f main/sounds: Use ast_cli_completion_add.
Change-Id: I140e1137906bbfcdb61c0c6304159be459ad873e
2018-03-19 15:45:08 -06:00
Corey Farrell dc520b6d8f manager: Use ast_cli_completion_add for completion generators.
Change-Id: I658141c6ec490a3e866b02d2afea757928ceaabf
2018-03-19 14:26:58 -06:00
Corey Farrell 534fda0a59 main/test: Use ast_cli_completion_add.
Change-Id: I5133ff2ba4e030f9733fb3d050c863d72a22ae6b
2018-03-19 14:21:21 -06:00
George Joseph 373e7e3fb0 channel.c: Allow generic plc then channel formats are equal
If the two formats on a channel are equal, we don't transcode and since
the generic plc needs slin to work, it doesn't get invoked.

* A new configuration option "genericplc_on_equal_codecs" was added
  to the "plc" section of codecs.conf to allow generic packet loss
  concealment even if no transcoding was originally needed.
  Transcoding via SLIN is forced in this case.

ASTERISK-27743

Change-Id: I0577026a179dea34232e63123254b4e0508378f4
2018-03-19 10:09:53 -06:00
Jenkins2 94b72ace2f Merge "core: Backport compatible MALLOC_DEBUG changes." into 13 2018-03-19 10:33:42 -05:00
Jenkins2 08e0181fc3 Merge "main/cdr: Use ast_cli_completion_add for CDR channel completion." into 13 2018-03-19 09:05:33 -05:00
Corey Farrell bd926539b0 main/translate: Use ast_cli_completion_add.
Change-Id: I0e2402660e54d91f74ab0804c62a5b1925577413
2018-03-18 21:00:16 -06:00
Corey Farrell d202b56a74 main/taskprocessor: Use ast_cli_completion_add.
Change-Id: Ie5f812a988ed811fd11967151932de62bc131b48
2018-03-18 20:36:10 -06:00
Corey Farrell 18cbfcf4f0 aco: Use ast_cli_completion_add for 'config show help'.
In addition this removes:
* RAII_VAR usage
* Duplicate check of pos
* Unneeded arguments.

Change-Id: I2da8eac2670d1d8d6474c04037129804f55ebf39
2018-03-18 18:28:58 -06:00
Corey Farrell d57b58f5e9 main/config: Use ast_cli_completion_add for reload completion.
Change-Id: Ia3fa4c03f2285a1ec8814bbe7f4624ead9111ad1
2018-03-18 18:09:47 -06:00
Corey Farrell 34e16cbf3a main/bridge: Use ast_cli_completion_add.
Change-Id: I3775a696d6a57139fdf09651ecb786bcf1774509
2018-03-17 18:44:52 -06:00
Corey Farrell 98a3baca70 core: Minor cleanup of ast_el_read_char.
* Define CHAR_T_LIBEDIT and CHAR_TO_LIBEDIT based on
  HAVE_LIBEDIT_IS_UNICODE.  This avoids needing to repeatedly use
  conditional blocks, eliminates having multiple function prototypes.
* Remove parenthesis from return values.
* Add missing code block brackets {}.
* Reduce use of 'else' conditional statements where possible.

Change-Id: I4315328ebea2f62641faf6881de2ac20a9f9d08e
2018-03-17 16:47:54 -06:00
Joshua Colp b50331626e Merge "cli: Enable ast_cli_completion_add on public completion generators." into 13 2018-03-16 18:59:52 -05:00
Jenkins2 1f2ff45626 Merge "main/ccss: Use ast_cli_completion_add for core id." into 13 2018-03-16 18:59:16 -05:00
Jenkins2 3b49fb3446 Merge "astobj2_container: Use ast_cli_completion_add for container names." into 13 2018-03-16 11:05:04 -05:00
Corey Farrell a7ebb9409d main/cdr: Use ast_cli_completion_add for CDR channel completion.
Change-Id: Ie81830647a23aad61c1162583b6d50adbe6e7822
2018-03-15 11:55:58 -06:00
Corey Farrell 5ac64a4464 main/ccss: Use ast_cli_completion_add for core id.
Change-Id: I44b25d6d24c7d9bc1bb38a50774b38883162f98f
2018-03-15 07:57:27 -06:00
Corey Farrell eb699f3631 core: Backport compatible MALLOC_DEBUG changes.
* Add support for MALLOC_DEBUG and DEBUG_CHAOS to be used together.
* Add utils/astmm.c to .gitignore.
* Fix MALLOC_DEBUG variant of __ast_vasprintf.  This function called
  va_end(ap) upon allocation failure.  This is incorrect since ap is
  passed as an argument.

Change-Id: I9f27ced4ce3cbe4b39547a67f994fdff491978c0
2018-03-15 06:57:38 -06:00
Corey Farrell 7e0c56f800 astobj2_container: Use ast_cli_completion_add for container names.
Change-Id: I4f0fc09e820eb8d8da2354a177dbcf503c56ddd1
2018-03-15 06:31:32 -06:00
Corey Farrell 7e041d6233 main/channel: Use ast_cli_completion_add for channeltypes.
Change-Id: Ia845fae6a84801cc7d9996767b99efb2753cbb48
2018-03-15 06:25:44 -06:00
Corey Farrell 6539b89254 cli: Enable ast_cli_completion_add on public completion generators.
* ast_cli_complete
* ast_complete_channels
* ast_complete_applications

These generators will now use ast_cli_completion_add if state == -1.

Change-Id: I7ff311f0873099be0e43a3dc5415c0cd06d15756
2018-03-15 05:27:41 -06:00
Jenkins2 a243fed64f Merge "core: Remove incorrect usage of attribute_malloc." into 13 2018-03-14 20:53:38 -05:00
Jenkins2 029c9383aa Merge "core: Remove non-critical cleanup from startup aborts." into 13 2018-03-14 06:40:38 -05:00
Corey Farrell dc738b145f core: Remove incorrect usage of attribute_malloc.
GCC documentation states that when __attribute__((malloc)) is used it
should not return storage which contains any valid pointers.  It
specifically mentions that realloc functions should not have the malloc
attribute, but this also means that complex initializers which could
contain initialized pointers should not use this attribute.

Change-Id: If507f33ffb3ca3b83b702196eb0e8215d27fc7d2
2018-03-13 17:37:12 -04:00