asterisk/asterisk.git
19 months agobridge: Old channel video source not set to NULL after unref.
Corey Farrell [Wed, 20 Dec 2017 16:23:08 +0000 (11:23 -0500)]
bridge: Old channel video source not set to NULL after unref.

The bridge holds onto the old channel video source after it's been
released.  This can lead to use after free errors.

ASTERISK-27229 #close

Change-Id: Ib2dab61677dd8a21f7ad53cdc9b8ca93297838b3

19 months agoMerge "CLI: Address multiple issues."
Jenkins2 [Wed, 20 Dec 2017 14:54:58 +0000 (08:54 -0600)]
Merge "CLI: Address multiple issues."

19 months agoMerge "bridge: Stop music on hold on adding an arbitrary channel to a bridge"
Jenkins2 [Wed, 20 Dec 2017 14:34:51 +0000 (08:34 -0600)]
Merge "bridge: Stop music on hold on adding an arbitrary channel to a bridge"

19 months agoMerge "dns_core: Protect against array index violation."
Jenkins2 [Wed, 20 Dec 2017 14:00:29 +0000 (08:00 -0600)]
Merge "dns_core: Protect against array index violation."

19 months agoMerge "res_rtp_asterisk: Avoid close the rtp/rtcp fd twice."
Jenkins2 [Wed, 20 Dec 2017 13:55:33 +0000 (07:55 -0600)]
Merge "res_rtp_asterisk:  Avoid close the rtp/rtcp fd twice."

19 months agoMerge "chan_sip: Fix memory leaks."
Jenkins2 [Wed, 20 Dec 2017 01:42:13 +0000 (19:42 -0600)]
Merge "chan_sip: Fix memory leaks."

19 months agoMerge "Remove constant conditionals (dead-code)."
Jenkins2 [Wed, 20 Dec 2017 01:17:25 +0000 (19:17 -0600)]
Merge "Remove constant conditionals (dead-code)."

19 months agoCLI: Address multiple issues.
Corey Farrell [Tue, 19 Dec 2017 02:12:47 +0000 (21:12 -0500)]
CLI: Address multiple issues.

* listen uses the variable `s` for the result from ast_poll() then
  overwrites it with the result of accept().  Create a separate variable
  poll_result to avoid confusion since ast_poll does not return a file
  descriptor.
* Resolve fd leak that would occur if setsockopt failed in listen.
* Reserve an extra byte while processing completion results from remote
  daemon.  This fixes a bug where completion processing used strstr() on
  a string that was not '\0' terminated.  This was no risk to the Asterisk
  daemon, the bug was only reachable the remote console process.
* Resolve leak in handle_showchan when the channel is not found.
* Multiple leaks and a deadlock in pbx_config CLI completion.
* Fix leaks in "manager show command".

Change-Id: I8f633ceb1714867ae30ef4e421858f77c14485a9

19 months agoMerge "core: Fix multiple trivial issues in the core."
Jenkins2 [Tue, 19 Dec 2017 20:46:02 +0000 (14:46 -0600)]
Merge "core: Fix multiple trivial issues in the core."

19 months agoMerge "chan_console: Use correct parameter for 'set active'"
George Joseph [Tue, 19 Dec 2017 20:20:19 +0000 (14:20 -0600)]
Merge "chan_console: Use correct parameter for 'set active'"

19 months agoMerge "main/app: Fix leaks."
George Joseph [Tue, 19 Dec 2017 20:19:42 +0000 (14:19 -0600)]
Merge "main/app: Fix leaks."

19 months agoMerge "app_queue: Add feature to set wrapuptime on the queue member"
George Joseph [Tue, 19 Dec 2017 20:15:48 +0000 (14:15 -0600)]
Merge "app_queue: Add feature to set wrapuptime on the queue member"

19 months agodns_core: Protect against array index violation.
Corey Farrell [Tue, 19 Dec 2017 04:48:52 +0000 (23:48 -0500)]
dns_core: Protect against array index violation.

Add a check to allocate_dns_record to prevent calling a pointer
retrieved from beyond dns_alloc_table.

ASTERISK-27495 #close

Change-Id: Ie2f6e4991cea46baa12e837bd64cc22b44d322bb

19 months agochan_sip: Fix memory leaks.
Corey Farrell [Tue, 19 Dec 2017 00:59:57 +0000 (19:59 -0500)]
chan_sip: Fix memory leaks.

In change_redirecting_information variables we use ast_strlen_zero to
see if a value should be saved.  In the case where the value is not NULL
but is a zero length string we leaked.

handle_response_subscribe leaked a reference to the ccss monitor
instance.

Change-Id: Ib11444de69c3d5b2360a88ba2feb54d2c2e9f05f

19 months agoMerge "func_callerid: Initialize app argument structures."
Jenkins2 [Tue, 19 Dec 2017 17:49:51 +0000 (11:49 -0600)]
Merge "func_callerid: Initialize app argument structures."

19 months agobridge: Stop music on hold on adding an arbitrary channel to a bridge
Ivan Poddubny [Sat, 16 Dec 2017 13:51:16 +0000 (14:51 +0100)]
bridge: Stop music on hold on adding an arbitrary channel to a bridge

When a channel that is on hold gets added to a bridge by
the Bridge AMI action or the dialplan application of the same name,
music continues to play, causing "robotic sound".

This commit adds a call to ast_moh_stop to stop the music.
Also, it makes the AMI Park action use the right MOH class when the
channel gets parked.

Reported by: Zane Conkle

ASTERISK-25079 #close

Change-Id: I4b129c5a20c15e63968842460ac5a1a85903cf9f

19 months agoMerge "bridge_softmix.c: Don't match dead streams."
Jenkins2 [Tue, 19 Dec 2017 17:12:22 +0000 (11:12 -0600)]
Merge "bridge_softmix.c: Don't match dead streams."

19 months agoMerge "rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage."
Jenkins2 [Tue, 19 Dec 2017 16:51:07 +0000 (10:51 -0600)]
Merge "rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage."

19 months agoMerge "bridge_softmix.c: Change remove_destination_streams() return meaning."
Jenkins2 [Tue, 19 Dec 2017 16:37:53 +0000 (10:37 -0600)]
Merge "bridge_softmix.c: Change remove_destination_streams() return meaning."

19 months agoMerge "ast_json_pack(): Use safer json ref mechanism."
Jenkins2 [Tue, 19 Dec 2017 16:23:41 +0000 (10:23 -0600)]
Merge "ast_json_pack(): Use safer json ref mechanism."

19 months agoMerge "app_voicemail: Fix memory management issues."
Jenkins2 [Tue, 19 Dec 2017 16:08:18 +0000 (10:08 -0600)]
Merge "app_voicemail: Fix memory management issues."

19 months agoMerge "bridge_softmix: Fix memory leaks."
George Joseph [Tue, 19 Dec 2017 15:51:25 +0000 (09:51 -0600)]
Merge "bridge_softmix: Fix memory leaks."

19 months agoRemove constant conditionals (dead-code).
Corey Farrell [Mon, 18 Dec 2017 21:36:21 +0000 (16:36 -0500)]
Remove constant conditionals (dead-code).

Some variables are set and never changed, making them constant.  This
means that code in the 'false' block of the conditional is unreachable.

In chan_skinny and res_config_ldap I used preprocessor directive `#if 0`
as I'm unsure if the unreachable code could be enabled in the future.

Change-Id: I62e2aac353d739fb3c983cf768933120f5fba059

19 months agochan_console: Use correct parameter for 'set active'
Oron Peled [Tue, 19 Dec 2017 08:50:04 +0000 (10:50 +0200)]
chan_console: Use correct parameter for 'set active'

chan_console supports multiple devices but the CLI only works on a
single device. 'console set active' selects this device.

Sadly that CLI picks the wrong command-line parameter and will only
work for a device called 'active'.

ASTERISK-27490 #close

Change-Id: I2f0e5fe63db19845bee862575b739360797dc73d

19 months agocore: Fix multiple trivial issues in the core.
Corey Farrell [Tue, 19 Dec 2017 05:17:08 +0000 (00:17 -0500)]
core: Fix multiple trivial issues in the core.

* Fix small leaks in from error conditions in sdp.c and translate.c.
* Check new file descriptor is less than 0, not less than or equal.

Change-Id: Id7782775486175c739e0c4bf3ea5e17e3f452a99

19 months agores_rtp_asterisk: Avoid close the rtp/rtcp fd twice.
Aaron An [Mon, 18 Dec 2017 12:14:11 +0000 (20:14 +0800)]
res_rtp_asterisk:  Avoid close the rtp/rtcp fd twice.

When RTCP-MUX enabled. rtp->s is the same as rtcp->s, check this before
close the file descriptor. Close the FD twice will hangs the asterisk
under heavy load.

ASTERISK-27299 #close
Reported-by: Aaron An
Tested-by: AaronAn

Change-Id: I870a072d73fd207463ac116ef97100addbc0820a

19 months agomain/app: Fix leaks.
Corey Farrell [Tue, 19 Dec 2017 01:47:54 +0000 (20:47 -0500)]
main/app: Fix leaks.

* ast_linear_stream would leak a file descriptor if it failed to allocate
  lin.
* ast_control_tone leaked zone and ts if ast_playtones_start failed.

Additionally added whitespace to ast_linear_stream, pulled assignments
out of conditionals for improved readability.

Change-Id: I6d1a10cf9161b1529d939b9b2d63ea36d395b657

19 months agofunc_callerid: Initialize app argument structures.
Corey Farrell [Tue, 19 Dec 2017 01:19:34 +0000 (20:19 -0500)]
func_callerid: Initialize app argument structures.

This module uses AST_DEFINE_APP_ARGS_TYPE to define struct's instead of
directly using AST_DECLARE_APP_ARGS.  Initialize the variables declared
in this way.

Change-Id: If97fbdd8d63a204e2efd498a192effc14e90fb31

19 months agobridge_softmix.c: Change remove_destination_streams() return meaning.
Richard Mudgett [Fri, 11 Aug 2017 22:02:07 +0000 (17:02 -0500)]
bridge_softmix.c: Change remove_destination_streams() return meaning.

The return value of remove_destination_streams() now means we removed a
stream from the topology by making it a dead stream.  Now we won't try to
request a topology change if we didn't remove any streams.

Change-Id: Icd91571d856a1d04299a24c411e325c1d9d5c61d

19 months agobridge_softmix.c: Don't match dead streams.
Richard Mudgett [Fri, 11 Aug 2017 21:57:33 +0000 (16:57 -0500)]
bridge_softmix.c: Don't match dead streams.

* Made is_video_source() and is_video_dest() not match dead streams.

* Optimized is_video_dest() to reduce duplicated code.

Change-Id: I4e7ab762c7ee98395e78e6516399f57a2609b9a1

19 months agobridge_softmix: Fix memory leaks.
Corey Farrell [Tue, 19 Dec 2017 00:40:08 +0000 (19:40 -0500)]
bridge_softmix: Fix memory leaks.

Change-Id: Ifaf3e93b398595d21d07f535330fef77ff15a80c

19 months agoast_json_pack(): Use safer json ref mechanism.
Richard Mudgett [Wed, 11 Nov 2015 23:20:38 +0000 (17:20 -0600)]
ast_json_pack(): Use safer json ref mechanism.

Change-Id: I49204db2e57ae96eee43909c18ed007c09ac817e

19 months agoapp_voicemail: Fix memory management issues.
Corey Farrell [Tue, 19 Dec 2017 00:04:56 +0000 (19:04 -0500)]
app_voicemail: Fix memory management issues.

* mwi_sub_event_cb: mwist leaked on separate_mailbox failure.
* add_email_attachment: A reference to sox_gain_tmpdir was used
  after the storage was out of scope.

Change-Id: I6282c542ff7b82fa091177a912d11234a8b00a30

19 months agortp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage.
Richard Mudgett [Wed, 11 Nov 2015 22:52:45 +0000 (16:52 -0600)]
rtp_engine.c: Eliminate rtcp_report_to_json() RAII_VAR usage.

Change-Id: I58a22c2ca82e91d7537409b7b3af2d735827a54d

19 months agoMerge "netsock: Remove from Asterisk core."
Jenkins2 [Mon, 18 Dec 2017 23:40:22 +0000 (17:40 -0600)]
Merge "netsock: Remove from Asterisk core."

19 months agoapp_queue: Add feature to set wrapuptime on the queue member
Rodrigo Ramírez Norambuena [Thu, 7 Dec 2017 02:35:40 +0000 (23:35 -0300)]
app_queue: Add feature to set wrapuptime on the queue member

This patch adds the ability to set the wrapuptime on the queue member
config.

When the option is set the wrapuptime on the queue member is used instead
of the queue's wrapuptime.

ASTERISK-27483 #close

Change-Id: I11c85809537f974eb44dc5bbf82bcedd8a458902

19 months agoMerge "CLI: Fix 'core set debug channel' completion bug."
Jenkins2 [Mon, 18 Dec 2017 22:01:11 +0000 (16:01 -0600)]
Merge "CLI: Fix 'core set debug channel' completion bug."

20 months agoMerge "CLI: Remove special handling of 'core set verbose' from rasterisk."
George Joseph [Mon, 18 Dec 2017 20:42:39 +0000 (14:42 -0600)]
Merge "CLI: Remove special handling of 'core set verbose' from rasterisk."

20 months agoMerge changes from topic 'faster-aco'
Joshua Colp [Mon, 18 Dec 2017 20:41:41 +0000 (14:41 -0600)]
Merge changes from topic 'faster-aco'

* changes:
  aco: Minimize use of regex.
  aco: Create ways to minimize use of regex.

20 months agonetsock: Remove from Asterisk core.
Corey Farrell [Mon, 18 Dec 2017 20:00:35 +0000 (15:00 -0500)]
netsock: Remove from Asterisk core.

This moves netsock.c / netsock.h to the chan_iax2 module.  netsock.h has
been marked deprecated since 13.0.0, chan_iax2 is the only remaining
user.

Change-Id: I28c6578043bac18de5ea608e136acec4f83d5dd3

20 months agoMerge "confbridge: Clarify mute sound documentation."
Joshua Colp [Mon, 18 Dec 2017 18:25:37 +0000 (12:25 -0600)]
Merge "confbridge: Clarify mute sound documentation."

20 months agoCLI: Fix 'core set debug channel' completion bug.
Corey Farrell [Mon, 18 Dec 2017 18:23:46 +0000 (13:23 -0500)]
CLI: Fix 'core set debug channel' completion bug.

The completion generator is missing a return so typing "core set debug
all off <tab>" causes the command to actually execute.

Change-Id: Ibf6462088a74eee66967732b50445783ebefc20b

20 months agoMerge changes from topic 'loader-work'
George Joseph [Mon, 18 Dec 2017 16:24:28 +0000 (10:24 -0600)]
Merge changes from topic 'loader-work'

* changes:
  loader: Use vector to build apha sorted module lists.
  loader: Replace priority heap with vector.

20 months agoMerge "chan_pjsip.c: Improve ast_request() diagnostic msgs."
Jenkins2 [Mon, 18 Dec 2017 15:37:19 +0000 (09:37 -0600)]
Merge "chan_pjsip.c: Improve ast_request() diagnostic msgs."

20 months agoMerge "chan_sip: Add security event for calls to invalid extension."
Jenkins2 [Mon, 18 Dec 2017 15:15:19 +0000 (09:15 -0600)]
Merge "chan_sip: Add security event for calls to invalid extension."

20 months agoMerge "cdr: Minor optimizations."
Jenkins2 [Mon, 18 Dec 2017 14:54:28 +0000 (08:54 -0600)]
Merge "cdr: Minor optimizations."

20 months agoMerge "loader: Rework of load_dynamic_module."
Jenkins2 [Mon, 18 Dec 2017 14:29:08 +0000 (08:29 -0600)]
Merge "loader: Rework of load_dynamic_module."

20 months agoconfbridge: Clarify mute sound documentation.
Joshua Colp [Mon, 18 Dec 2017 14:25:53 +0000 (10:25 -0400)]
confbridge: Clarify mute sound documentation.

The mute/unmute sounds are only played when the
action is initiated using the DTMF menu.

ASTERISK-24756

Change-Id: I55b3dd5bc166096bf5e2f547ddd0ce355f36e3dc

20 months agoapp_transfer: Remove LOCAL from documentation.
Joshua Colp [Mon, 18 Dec 2017 12:36:04 +0000 (08:36 -0400)]
app_transfer: Remove LOCAL from documentation.

The Local channel has never supported app_transfer
from what I can see so remove it from the documentation.

ASTERISK-25649

Change-Id: Icbcfe297f6f866285a26b3e9fd5c6d00fa22e0e9

20 months agochan_pjsip.c: Improve ast_request() diagnostic msgs.
Richard Mudgett [Sat, 16 Dec 2017 01:01:02 +0000 (19:01 -0600)]
chan_pjsip.c: Improve ast_request() diagnostic msgs.

Attempting to dial PJSIP/endpoint when the endpoint doesn't exist and
disable_multi_domain=no results in a misleading empty endpoint name
message.  The message should say the endpoint was not found.

* Added missing endpoint not found message.

* Added more information to the empty endpoint name msgs if available.

* Eliminated RAII_VAR in request().

Change-Id: I21da85ebd62dcc32115b2ffcb5157416ebae51e4

20 months agochan_sip: Add security event for calls to invalid extension.
Corey Farrell [Thu, 6 Oct 2016 06:29:21 +0000 (02:29 -0400)]
chan_sip: Add security event for calls to invalid extension.

Log a message to security events when an INVITE is received to an
invalid extension.

ASTERISK-25869 #close

Change-Id: I0da40cd7c2206c825c2f0d4e172275df331fcc8f

20 months agoMerge "res_smdi: Fix shutdown ref."
Jenkins2 [Fri, 15 Dec 2017 18:24:43 +0000 (12:24 -0600)]
Merge "res_smdi: Fix shutdown ref."

20 months agoMerge "res_rtp_asterisk.c: Disable packet flood detection for video streams."
Jenkins2 [Fri, 15 Dec 2017 18:15:42 +0000 (12:15 -0600)]
Merge "res_rtp_asterisk.c: Disable packet flood detection for video streams."

20 months agoMerge "res_hep: hepv3_is_loaded() should check if we are enabled"
Jenkins2 [Fri, 15 Dec 2017 17:52:37 +0000 (11:52 -0600)]
Merge "res_hep: hepv3_is_loaded() should check if we are enabled"

20 months agoMerge "res_clialiases: Fix completion pass-through."
Joshua Colp [Fri, 15 Dec 2017 17:17:02 +0000 (11:17 -0600)]
Merge "res_clialiases: Fix completion pass-through."

20 months agoMerge "coverity: Fix warnings in res_smdi"
Jenkins2 [Fri, 15 Dec 2017 17:11:59 +0000 (11:11 -0600)]
Merge "coverity: Fix warnings in res_smdi"

20 months agoMerge "loader: Minor fix to module registration."
Joshua Colp [Fri, 15 Dec 2017 16:48:02 +0000 (10:48 -0600)]
Merge "loader: Minor fix to module registration."

20 months agoMerge "res_musiconhold: Start playlist after initial announcement"
Jenkins2 [Fri, 15 Dec 2017 16:31:21 +0000 (10:31 -0600)]
Merge "res_musiconhold: Start playlist after initial announcement"

20 months agocdr: Minor optimizations.
Corey Farrell [Fri, 15 Dec 2017 16:26:36 +0000 (11:26 -0500)]
cdr: Minor optimizations.

* bridge_candidate_process: remove SCOPED_AO2LOCK and return value.
* handle_standard_bridge_enter_message: replace recursive call with goto
  statement.

ASTERISK-24297

Change-Id: Id2eaa0822fb8dc799f63422bb3aa89de9d4ee2a2

20 months agoMerge "app_queue: Fix extension state subscriptions removed on dialplan reload"
Joshua Colp [Fri, 15 Dec 2017 15:55:12 +0000 (09:55 -0600)]
Merge "app_queue: Fix extension state subscriptions removed on dialplan reload"

20 months agoMerge "pjsip_options: wrongly applied "UNKNOWN" status"
Jenkins2 [Fri, 15 Dec 2017 15:49:50 +0000 (09:49 -0600)]
Merge "pjsip_options: wrongly applied "UNKNOWN" status"

20 months agoaco: Minimize use of regex.
Corey Farrell [Tue, 12 Dec 2017 18:55:12 +0000 (13:55 -0500)]
aco: Minimize use of regex.

Remove nearly all use of regex from ACO users.  Still remaining:
* app_confbridge has a legitamate use of option name regex.
* ast_sorcery_object_fields_register is implemented with regex, all
  callers use simple prefix based regex.  I haven't decided the best
  way to fix this in both 13/15 and master.

Change-Id: Ib5ed478218d8a661ace4d2eaaea98b59a897974b

20 months agoaco: Create ways to minimize use of regex.
Corey Farrell [Tue, 12 Dec 2017 18:36:39 +0000 (13:36 -0500)]
aco: Create ways to minimize use of regex.

ACO uses regex in many situations where it is completely unneeded.  In
some cases this doubles the total processing performed by
aco_process_config.

* Create ACO_IGNORE category type for use in place of skip_category
  regex source string.
* Create additional aco_category_op values to allow specifying category
  filter using either a single plain string or a NULL terminated array
  of plain strings.
* Create ACO_PREFIX to allow matching option names to case insensitive
  prefixes.

Change-Id: I66a920dcd8e2b0301f73f968016440a985e72821

20 months agores_smdi: Fix shutdown ref.
Corey Farrell [Fri, 15 Dec 2017 13:56:13 +0000 (08:56 -0500)]
res_smdi: Fix shutdown ref.

When adding shutdown refs for OPTIONAL_API components I accidentally
added it to the unload_module function in res_smdi.  Move it to
load_module.

Change-Id: I2b9da38fbc11ef78ea23dbb2df92b684be7f647c

20 months agoloader: Use vector to build apha sorted module lists.
Corey Farrell [Mon, 11 Dec 2017 23:07:54 +0000 (18:07 -0500)]
loader: Use vector to build apha sorted module lists.

Change-Id: I9c519f4dec3cda98b2f34d314255a31d49a6a467

20 months agoloader: Replace priority heap with vector.
Corey Farrell [Tue, 21 Nov 2017 06:28:48 +0000 (01:28 -0500)]
loader: Replace priority heap with vector.

This is needed for future changes which will require being able to
process the load priority out of order.

Change-Id: Ia23421197f09789940510b03ebbbf3bf24d51bea

20 months agores_hep: hepv3_is_loaded() should check if we are enabled
Sean Bright [Fri, 15 Dec 2017 00:55:03 +0000 (19:55 -0500)]
res_hep: hepv3_is_loaded() should check if we are enabled

res_hep_pjsip.so and res_hep_rtcp.so will still load and do a lot of
unnecessary work even if 'enabled' is set to 'no' in hep.conf.

Change-Id: I3eddfeea09c6b5bc7c641952ee0ae487fd09b64b

20 months agoMerge "pjsip: Ignore state changes from old transactions."
Jenkins2 [Fri, 15 Dec 2017 00:39:24 +0000 (18:39 -0600)]
Merge "pjsip: Ignore state changes from old transactions."

20 months agoloader: Rework of load_dynamic_module.
Corey Farrell [Tue, 21 Nov 2017 05:10:58 +0000 (00:10 -0500)]
loader: Rework of load_dynamic_module.

* Split off load_dlopen to perform actual dlopen, check results and log
  warnings when needed.
* Always use RTLD_NOW.
* Use flags which minimize number of calls to dlopen required.  First
  attempt always uses RTLD_GLOBAL when global_symbols_only is enabled,
  RTLD_LOCAL when it is not.

This patch significantly reduces the number of dlopen's performed.  With
299 modules my system ran dlopen 857 times before this patch, 655 times
after this patch.

Change-Id: Ib2c9903cfddcc01aed3e01c1e7fe4a3fb9af0f8b

20 months agoloader: Minor fix to module registration.
Corey Farrell [Wed, 22 Nov 2017 02:34:56 +0000 (21:34 -0500)]
loader: Minor fix to module registration.

This protects the module loader itself against crashing if dlopen is
called on a module from outside loader.c.

* Expand scope of lock inside ast_module_register to include reading of
  resource_being_loaded.
* NULL check resource_being_loaded.
* Set resource_being_loaded NULL as soon as dlopen returns.  This fixes
  some error paths where it was not NULL'ed.
* Create module_destroy function to deduplicate code from
  ast_module_unregister and modules_shutdown.
* Resolve leak that occured if a module did not successfully register.
* Simplify checking for successful registration.

Change-Id: I40f07a315e55b92df4fc7faf525ed6d4f396e7d2

20 months agoMerge "configs: Comment out and change IP of iax.conf [demo]"
Jenkins2 [Thu, 14 Dec 2017 21:57:33 +0000 (15:57 -0600)]
Merge "configs: Comment out and change IP of iax.conf [demo]"

20 months agores_clialiases: Fix completion pass-through.
Corey Farrell [Thu, 14 Dec 2017 21:27:45 +0000 (16:27 -0500)]
res_clialiases: Fix completion pass-through.

Never ignore contents of line when generating completion options.

Change-Id: I74389efdfea154019d3b56a9f381610614c044c8

20 months agoMerge "res_pjsip_session: Reinvite using active stream topology if none requested."
Jenkins2 [Thu, 14 Dec 2017 21:22:21 +0000 (15:22 -0600)]
Merge "res_pjsip_session: Reinvite using active stream topology if none requested."

20 months agores_rtp_asterisk.c: Disable packet flood detection for video streams.
Richard Mudgett [Tue, 12 Dec 2017 00:20:06 +0000 (18:20 -0600)]
res_rtp_asterisk.c: Disable packet flood detection for video streams.

We should not do flood detection on video RTP streams.  Video RTP streams
are very bursty by nature.  They send out a burst of packets to update the
video frame then wait for the next video frame update.  Really only audio
streams can be checked for flooding.  The others are either bursty or
don't have a set rate.

* Added code to selectively disable packet flood detection for video RTP
streams.

ASTERISK-27440

Change-Id: I78031491a6e75c2d4b1e9c2462dc498fe9880a70

20 months agores_pjsip_sdp_rtp: Add NULL check in add_crypto_to_stream
George Joseph [Thu, 14 Dec 2017 20:05:23 +0000 (13:05 -0700)]
res_pjsip_sdp_rtp: Add NULL check in add_crypto_to_stream

add_crypto_to_stream wasn't checking for a NULL
session->inv_session->neg before calling pjmedia_sdp_neg_get_state.
This was causing a crash if the negotiation hadn't already been
completed and asterisk was compiled with --enable-dev-mode.

Change-Id: I57c6229954a38145da9810fc18657bfcc4d9d0c9

20 months agores_musiconhold: Start playlist after initial announcement
Sean Bright [Thu, 14 Dec 2017 18:14:10 +0000 (13:14 -0500)]
res_musiconhold: Start playlist after initial announcement

Reset the samples counter to zero when we are done playing an
announcement so that we don't skip into the middle of the first file in
the playlist.

Also add the selected annoucement to the output of 'moh show classes.'

ASTERISK-24329 #close
Reported by: Thomas Frederiksen

Change-Id: I2a5f986a31279c981592f49391409ebf38d6f6d0

20 months agocoverity: Fix warnings in res_smdi
Sean Bright [Thu, 14 Dec 2017 16:51:02 +0000 (11:51 -0500)]
coverity: Fix warnings in res_smdi

ASTERISK-19657 #close
Reported by: Matt Jordan III, Esq.

Change-Id: I59a5e6ef3e7d9e848bec1f4b40cb73321bc7956a

20 months agoconfigs: Comment out and change IP of iax.conf [demo]
Sean Bright [Thu, 14 Dec 2017 16:22:13 +0000 (11:22 -0500)]
configs: Comment out and change IP of iax.conf [demo]

This no longer appears to exist, so no sense in causing confusion.

ASTERISK-27175 #close
Reported by: Tzafrir Cohen

Change-Id: Idde967924c69f6a741dc9a5ab7dacb44d22cf100

20 months agoMerge "menuselect: Tweak check for recently run configure."
Joshua Colp [Thu, 14 Dec 2017 13:08:57 +0000 (07:08 -0600)]
Merge "menuselect: Tweak check for recently run configure."

20 months agoMerge "README: Remove outdated references to tex docs"
Joshua Colp [Thu, 14 Dec 2017 12:48:17 +0000 (06:48 -0600)]
Merge "README: Remove outdated references to tex docs"

20 months agoMerge "Add new AMI action for app_voicemail"
Joshua Colp [Thu, 14 Dec 2017 12:14:32 +0000 (06:14 -0600)]
Merge "Add new AMI action for app_voicemail"

20 months agoMerge "chan_sip: 3PCC patch for AMI "SIPnotify""
Joshua Colp [Thu, 14 Dec 2017 12:14:16 +0000 (06:14 -0600)]
Merge "chan_sip: 3PCC patch for AMI "SIPnotify""

20 months agoMerge "pjsip_options: contacts sometimes not being updated on reload"
Kevin Harwell [Wed, 13 Dec 2017 22:50:56 +0000 (16:50 -0600)]
Merge "pjsip_options: contacts sometimes not being updated on reload"

20 months agoMerge "res_pjsip: Assign support levels to a few modules"
Jenkins2 [Wed, 13 Dec 2017 21:33:41 +0000 (15:33 -0600)]
Merge "res_pjsip: Assign support levels to a few modules"

20 months agoREADME: Remove outdated references to tex docs
George Joseph [Wed, 13 Dec 2017 20:26:04 +0000 (13:26 -0700)]
README: Remove outdated references to tex docs

Added links to the wiki to replace references to outdated
tex docs.

ASTERISK-27430
Reported by: Corey Farrell

Change-Id: I5007e732b30bc7b63d124c530ae8857c89991209

20 months agoMerge "pjsip_options: dynamic contact's fields not updated on reload"
Jenkins2 [Wed, 13 Dec 2017 20:27:52 +0000 (14:27 -0600)]
Merge "pjsip_options: dynamic contact's fields not updated on reload"

20 months agoMerge "CLI: Fix 'core show sysinfo' function ordering."
George Joseph [Wed, 13 Dec 2017 19:12:27 +0000 (13:12 -0600)]
Merge "CLI: Fix 'core show sysinfo' function ordering."

20 months agoMerge "chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)"
Joshua Colp [Wed, 13 Dec 2017 17:21:15 +0000 (11:21 -0600)]
Merge "chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)"

20 months agoCLI: Remove special handling of 'core set verbose' from rasterisk.
Corey Farrell [Wed, 13 Dec 2017 15:50:59 +0000 (10:50 -0500)]
CLI: Remove special handling of 'core set verbose' from rasterisk.

rasterisk does not need to handle setting verbose levels locally, it
should just tell the daemon what it wants and print what it is given.
Just max out the verbose level on the local client so all filtering
happens on the daemon.

ASTERISK-20281 #close

Change-Id: Ia305f75f1fc424a9169bfa30ef70d626ace2c8a8

20 months agoAdd new AMI action for app_voicemail
pchero [Fri, 8 Dec 2017 12:48:12 +0000 (12:48 +0000)]
Add new AMI action for app_voicemail

Currently, to figure out specified voicemail's status, there's only one
way to do it, which is use a VoicemailUserEntry AMI message.
But it consumed it too much resource(it check everything).
So, added new AMI action.

ASTERISK-27470

Change-Id: Ie4eba1424a142e5fbd1d9fb1821a3fc1a1e238b7

20 months agoAST-2017-012: Place single RTCP report block at beginning of report.
Joshua Colp [Thu, 30 Nov 2017 16:12:55 +0000 (16:12 +0000)]
AST-2017-012: Place single RTCP report block at beginning of report.

When the RTCP code was transitioned over to Stasis a code change
was made to keep track of how many reports are present. This count
controlled where report blocks were placed in the RTCP report.

If a compound RTCP packet was received this logic would incorrectly
place a report block in the wrong location resulting in a write
to an invalid location.

This change removes this counting logic and always places the report
block at the first position. If in the future multiple reports are
supported the logic can be extended but for now keeping a count
serves no purpose.

ASTERISK-27382
ASTERISK-27429

Change-Id: Iad6c8a9985c4b608ef493e19c421211615485116

20 months agoMerge "chan_sip: Don't crash in Dial on invalid destination"
Jenkins2 [Wed, 13 Dec 2017 13:14:13 +0000 (07:14 -0600)]
Merge "chan_sip: Don't crash in Dial on invalid destination"

20 months agores_pjsip_session: Reinvite using active stream topology if none requested.
Joshua Colp [Wed, 13 Dec 2017 12:54:58 +0000 (12:54 +0000)]
res_pjsip_session: Reinvite using active stream topology if none requested.

When a connected line update is sent to an endpoint we do not request
a specific stream topology to be used. Previously this resulted in the
configured stream topology being used which may actually differ from the
currently negotiated topology. PJSIP is helpful in this regard in that
it will fill in any missing streams with removed ones. This results in
our own state not matching the SDP, though, and we do not apply the
negotiated SDP.

This change tweaks the code to use the actively negotiated stream
topology if it is present with a fallback to the configured one. This
results in the SDP and the state having matching information and the
world is happy.

ASTERISK*27397

Change-Id: I7a57117f0183479e6884b7bf3a53bb8c7464f604

20 months agoMerge "chan_sip: Don't send trailing \0 on keep alive packets"
Jenkins2 [Wed, 13 Dec 2017 12:36:03 +0000 (06:36 -0600)]
Merge "chan_sip: Don't send trailing \0 on keep alive packets"

20 months agopjsip: Ignore state changes from old transactions.
Joshua Colp [Wed, 6 Dec 2017 14:24:03 +0000 (14:24 +0000)]
pjsip: Ignore state changes from old transactions.

When we fail over to a new target we create a new transaction
and it becomes the current INVITE transaction. This does not
prevent the previous transaction from raising state changes
and causing the session to be prematurely disconnected if a
transport error occurs immediately.

This change backports a fix from PJSIP that eliminates the
incorrect state change and reduces when they would be raised
in the first place.

ASTERISK-27408

Change-Id: Id22d087591782eee31311753d11e7eca4b95ef34

20 months agochan_sip: 3PCC patch for AMI "SIPnotify"
Yasuhiko Kamata [Wed, 13 Dec 2017 04:42:35 +0000 (13:42 +0900)]
chan_sip: 3PCC patch for AMI "SIPnotify"

A patch for sending in-dialog SIP NOTIFY message
with "SIPnotify" AMI action.

ASTERISK-27461

Change-Id: I5797ded4752acd966db6b13971284db684cc5ab4

20 months agoapp_queue: Fix extension state subscriptions removed on dialplan reload
Ivan Poddubny [Tue, 12 Dec 2017 21:38:01 +0000 (22:38 +0100)]
app_queue: Fix extension state subscriptions removed on dialplan reload

The approach with having a single global subscription to all extension
state changes has one issue: dynamically created hints don't have any
watchers and are therefore garbage collected on the first dialplan
reload.

This change creates a state subscription for every queue member with a
hint as state_interface, thus increasing the count of watches for
hints, so they are not destroyed prematurely anymore.

There are 2 side effects:
1. The state change callback in app_queue is not executed when
   there are no members referring to the extension.
2. The callback is called multiple times for the same hint if it's
   associated with more than one queue member.

Reported by: Steven T. Wheeler

ASTERISK-18411 #close

Change-Id: I4956af2136ea2a7f110ac9272eae5f6e676d8f89

20 months agochan_sip: Don't send trailing \0 on keep alive packets
Sean Bright [Tue, 12 Dec 2017 21:28:54 +0000 (16:28 -0500)]
chan_sip: Don't send trailing \0 on keep alive packets

This is a partial fix for ASTERISK~25817 but does not address the
comments regarding RFC 5626.

Change-Id: I227e2d10c0035bbfa1c6e46ae2318fd1122d8420

20 months agochan_sip: Don't crash in Dial on invalid destination
Sean Bright [Tue, 12 Dec 2017 21:19:09 +0000 (16:19 -0500)]
chan_sip: Don't crash in Dial on invalid destination

Stripping the DNID in a SIP dial string can result in attempting to call
the argument parsing macros on an empty string, causing a crash.

ASTERISK-26131 #close
Reported by: Dwayne Hubbard
Patches:
dw-asterisk-master-dnid-crash.patch (license #6257) patch
uploaded by Dwayne Hubbard

Change-Id: Ib84c1f740a9ec0539d582b09d847fc85ddca1c5e

20 months agomenuselect: Tweak check for recently run configure.
Corey Farrell [Tue, 12 Dec 2017 21:16:38 +0000 (16:16 -0500)]
menuselect: Tweak check for recently run configure.

Recently menuselect has randomly produced an error stating that
configure was just run and make had to be restarted.  I believe this is
due to an incorrect menuselect/Makefile rule.  The original rule
produced an error if makeopts or autoconfig.h were older than
makeopts.in or autoconfig.h.in.  I believe this can create an issue if
makeopts is older than autoconfig.h.in or if autoconfig.h is older than
makeopts.in.  The new rules compare files independently.

Change-Id: Ibca155035fa1392c95e33cbf25f257902abba17b