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

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

3 years 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."

3 years 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."

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

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

Change-Id: I28c6578043bac18de5ea608e136acec4f83d5dd3

3 years 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."

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

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

3 years 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."

3 years 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."

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

3 years 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."

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


Change-Id: I55b3dd5bc166096bf5e2f547ddd0ce355f36e3dc

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


Change-Id: Icbcfe297f6f866285a26b3e9fd5c6d00fa22e0e9

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

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

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

3 years 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."

3 years 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"

3 years 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."

3 years 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"

3 years 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."

3 years 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"

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


Change-Id: Id2eaa0822fb8dc799f63422bb3aa89de9d4ee2a2

3 years 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"

3 years 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"

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

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

* 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

Change-Id: I66a920dcd8e2b0301f73f968016440a985e72821

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

Change-Id: I2b9da38fbc11ef78ea23dbb2df92b684be7f647c

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

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

3 years 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 and will still load and do a lot of
unnecessary work even if 'enabled' is set to 'no' in hep.conf.

Change-Id: I3eddfeea09c6b5bc7c641952ee0ae487fd09b64b

3 years 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."

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

3 years 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
* 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

3 years 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]"

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

3 years 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."

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


Change-Id: I78031491a6e75c2d4b1e9c2462dc498fe9880a70

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

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

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

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

3 years 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."

3 years 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"

3 years 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"

3 years 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""

3 years 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"

3 years 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"

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

Reported by: Corey Farrell

Change-Id: I5007e732b30bc7b63d124c530ae8857c89991209

3 years 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"

3 years 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."

3 years 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)"

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

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


Change-Id: Ie4eba1424a142e5fbd1d9fb1821a3fc1a1e238b7

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


Change-Id: Iad6c8a9985c4b608ef493e19c421211615485116

3 years 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"

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


Change-Id: I7a57117f0183479e6884b7bf3a53bb8c7464f604

3 years 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"

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


Change-Id: Id22d087591782eee31311753d11e7eca4b95ef34

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


Change-Id: I5797ded4752acd966db6b13971284db684cc5ab4

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

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

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

3 years 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
dw-asterisk-master-dnid-crash.patch (license #6257) patch
uploaded by Dwayne Hubbard

Change-Id: Ib84c1f740a9ec0539d582b09d847fc85ddca1c5e

3 years 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 or  I believe this can create an issue if
makeopts is older than or if autoconfig.h is older than  The new rules compare files independently.

Change-Id: Ibca155035fa1392c95e33cbf25f257902abba17b

3 years agochan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)
Richard Mudgett [Thu, 7 Dec 2017 23:51:08 +0000 (17:51 -0600)]
chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)

This patch does three things associated with the initial incoming INVITE
request URI.

1) Add access to the full initial incoming INVITE request URI.

2) We were not setting DNID on incoming PJSIP channels.  The DNID is the
user portion of the initial incoming INVITE Request-URI.  The value is
accessed by reading CALLERID(dnid).

3) Fix CHANNEL(pjsip,target_uri) documentation.

* The initial incoming INVITE request URI is now available using

* Set the DNID on PJSIP channel creation so CALLERID(dnid) can return the
initial incoming INVITE request URI user portion.

* CHANNEL(pjsip,target_uri) now correctly documents that the target URI is
the contact URI.

* Refactored print_escaped_uri() out of channel_read_pjsip() to handle
pjsip_uri_print() error condition when the buffer is too small.


Change-Id: I512e60d1f162395c946451becb37af3333337b33

3 years agores_pjsip: Add TLSv1.1 and TLSv1.2 support
Sean Bright [Tue, 12 Dec 2017 15:28:45 +0000 (10:28 -0500)]
res_pjsip: Add TLSv1.1 and TLSv1.2 support

Support for these protocols was added in the same commit as the 'proto'
field, so we can safely use the same ./configure check.

For reference:

Change-Id: Icf4975d785d6bfb8f30ac7ffa695a0adf9382dac

3 years agores_pjsip: Assign support levels to a few modules
Sean Bright [Tue, 12 Dec 2017 14:06:32 +0000 (09:06 -0500)]
res_pjsip: Assign support levels to a few modules

Change-Id: I51f6945c4023cb93fc7b87be5ab4c50e9e6ee27d

3 years agoCLI: Fix 'core show sysinfo' function ordering.
Corey Farrell [Sat, 9 Dec 2017 06:35:12 +0000 (01:35 -0500)]
CLI: Fix 'core show sysinfo' function ordering.

Handle CLI initialization before any processing occurs.

Change-Id: I598b911d2e409214bbdfd0ba0882be1d602d221c

3 years agopjsip_options: wrongly applied "UNKNOWN" status
Kevin Harwell [Mon, 11 Dec 2017 21:27:29 +0000 (15:27 -0600)]
pjsip_options: wrongly applied "UNKNOWN" status

A couple of places were setting the status to "UNKNOWN" when qualifies were
being disabled. Instead this should be set to the "CREATED" status that
represents when a contact is given (uri available), but the qualify frequency
is set to zero so we don't know the status.

This patch updates the relevant places with "CREATED". It also updates the
"CREATED" status description (value shown in CLI/AMI/ARI output) to a value
of "NonQualified"/"NonQual" as this description is hopefully less confusing.


Change-Id: Id67509d25df92a72eb3683720ad2a95a27b50c89

3 years agostasis_channels.c: Don't set channel snapshot caller_dnid twice.
Richard Mudgett [Fri, 8 Dec 2017 18:04:25 +0000 (12:04 -0600)]
stasis_channels.c: Don't set channel snapshot caller_dnid twice.

Change-Id: Ib8d45bbdfbda81e65045f6dff874d189b74e5471

3 years agoMerge "codec_opus: Make libcurl a dependency in menuselect"
Jenkins2 [Mon, 11 Dec 2017 18:22:21 +0000 (12:22 -0600)]
Merge "codec_opus: Make libcurl a dependency in menuselect"

3 years agoMerge "astdb: Improve prefix searches in astdb"
Jenkins2 [Mon, 11 Dec 2017 18:12:58 +0000 (12:12 -0600)]
Merge "astdb: Improve prefix searches in astdb"

3 years agoMerge "loader: Refactor resource_name_match."
Jenkins2 [Mon, 11 Dec 2017 17:44:34 +0000 (11:44 -0600)]
Merge "loader: Refactor resource_name_match."

3 years agoMerge "res_stasis and res_speech: Fix load order."
Joshua Colp [Mon, 11 Dec 2017 17:12:25 +0000 (11:12 -0600)]
Merge "res_stasis and res_speech: Fix load order."

3 years agoMerge "utils: Add convenience function for setting fd flags"
Jenkins2 [Mon, 11 Dec 2017 16:13:09 +0000 (10:13 -0600)]
Merge "utils: Add convenience function for setting fd flags"

3 years agocodec_opus: Make libcurl a dependency in menuselect
Sean Bright [Mon, 11 Dec 2017 15:45:17 +0000 (10:45 -0500)]
codec_opus: Make libcurl a dependency in menuselect

ASTERISK-27475 #close

Change-Id: If7384bc6ed002ef140dec69798d14c52b7cfd800

3 years agoMerge "pjsip: Improve CLI completion performance"
Jenkins2 [Mon, 11 Dec 2017 15:36:54 +0000 (09:36 -0600)]
Merge "pjsip: Improve CLI completion performance"

3 years agoMerge "CDR: Fix deadlock setting some CDR values."
Jenkins2 [Mon, 11 Dec 2017 15:06:41 +0000 (09:06 -0600)]
Merge "CDR: Fix deadlock setting some CDR values."

3 years agopjsip: Improve CLI completion performance
Sean Bright [Fri, 8 Dec 2017 18:48:48 +0000 (13:48 -0500)]
pjsip: Improve CLI completion performance

Use the new ast_cli_completion_add() function to improve completion
performance for commands like 'pjsip show endpoint.'

Change-Id: I76d802294d2ac1766110dc75f7d117c8541ce348

3 years agoastdb: Improve prefix searches in astdb
Sean Bright [Thu, 7 Dec 2017 20:19:40 +0000 (15:19 -0500)]
astdb: Improve prefix searches in astdb

Using the LIKE operator requires a full table scan of 'astdb', whereas a
comparison operation is able to use the primary key index.

This patch adds a new function to the AstDB API for quick prefix matches
and updates res_sorcery_astdb to utilize it. This showed substantial
performance improvement in my test environment.

Related to ASTERISK~26806, but does not completely resolve it.

Change-Id: I7d37f9ba2aea139dabf2ca72d31fbe34bd9b2fa1

3 years agoloader: Refactor resource_name_match.
Corey Farrell [Sat, 9 Dec 2017 00:19:34 +0000 (19:19 -0500)]
loader: Refactor resource_name_match.

Optimize resource_name_match.  This change eliminates use of
ast_strdupa, instead verifying that both basename's are the same length,
then using strncasecmp.

Change-Id: I477275c0e954c99d74be5abfc8bb6545b04e5a3d

3 years agopjsip_configuration: Add correct file header
Sean Bright [Fri, 8 Dec 2017 20:58:54 +0000 (15:58 -0500)]
pjsip_configuration: Add correct file header

Change-Id: I25348c386a222bb704aff07f54375108a6402906

3 years agoutils: Add convenience function for setting fd flags
Sean Bright [Thu, 7 Dec 2017 15:52:39 +0000 (10:52 -0500)]
utils: Add convenience function for setting fd flags

There are many places in the code base where we ignore the return value
of fcntl() when getting/setting file descriptior flags. This patch
introduces a convenience function that allows setting or clearing file
descriptor flags and will also log an error on failure for later

Change-Id: I8b81901e1b1bd537ca632567cdb408931c6eded7

3 years agores_stasis and res_speech: Fix load order.
Corey Farrell [Fri, 8 Dec 2017 01:33:27 +0000 (20:33 -0500)]
res_stasis and res_speech: Fix load order.

res_stasis was missing AST_MODFLAG_LOAD_ORDER.  Set res_stasis and
res_speech to start at (AST_MODPRI_APP_DEPEND - 1) so they are ready for
dependent modules.

Change-Id: I27f4f3810a95b6be8a5bfbf62be2ace6bfab6ff3

3 years agopjsip_options: contacts sometimes not being updated on reload
Kevin Harwell [Fri, 8 Dec 2017 00:22:34 +0000 (18:22 -0600)]
pjsip_options: contacts sometimes not being updated on reload

For both dynamic and static contacts it was possible that potential AOR
changes were not being applied to all contacts. This was because the qualify
and schedule code was only retrieving AOR's, and contacts with frequencies
greater than zero.

For instance the following could happen: and AOR/contact has a frequency of 5,
it then gets set to 0, and then a reload occurs. All scheduled OPTIONS are
stopped, a list of AOR's is retrieved with frequency > 0, but none are
selected since in this scenario all are 0. The contact for the one previously
set to 5 though does not get updated, so it's status remains "AVAILABLE".

This patch makes it so all contacts (static and dynamic) are selected, and
appropriately updated if need be.

ASTERISK-27467 #close

Change-Id: I7a920170f89c683af9505d4723a44fc6841decdb

3 years agopjsip_options: dynamic contact's fields not updated on reload
Kevin Harwell [Fri, 8 Dec 2017 00:18:00 +0000 (18:18 -0600)]
pjsip_options: dynamic contact's fields not updated on reload

Dynamic contacts were not being properly updated on reload. As a matter of
fact any changes to the AOR that a dynamic contact was associated with were
not being applied.

On reload, this patch makes it so for each dynamic contact, the associated
AOR is now retrieved and the AOR's fields are applied to the contact.


Change-Id: I8e3165dc6a745218c1c9db837f77fafa0516985d

3 years agoMerge "translate: Skip matrix_rebuild during shutdown."
Jenkins2 [Thu, 7 Dec 2017 20:33:47 +0000 (14:33 -0600)]
Merge "translate: Skip matrix_rebuild during shutdown."

3 years agoMerge "sounds_index: Avoid repeatedly reindexing."
George Joseph [Thu, 7 Dec 2017 19:26:22 +0000 (13:26 -0600)]
Merge "sounds_index: Avoid repeatedly reindexing."

3 years agoMerge "media_index: Improve startup."
George Joseph [Thu, 7 Dec 2017 19:26:06 +0000 (13:26 -0600)]
Merge "media_index: Improve startup."

3 years agotranslate: Skip matrix_rebuild during shutdown.
Corey Farrell [Thu, 7 Dec 2017 05:35:14 +0000 (00:35 -0500)]
translate: Skip matrix_rebuild during shutdown.

Change-Id: I1e5eef4029cba56e33d786c5a5ade8091e531a1e

3 years agosounds_index: Avoid repeatedly reindexing.
Corey Farrell [Wed, 6 Dec 2017 20:49:32 +0000 (15:49 -0500)]
sounds_index: Avoid repeatedly reindexing.

The sounds index is rebuilt each time a format is registered or
unregistered.  This causes the index to be repeatedly rebuilt during
startup and shutdown.

This patch significantly reduces the work done by delaying sound index
initialization until after modules are loaded.  This way a reindex only
occurs if a format module is loaded after startup.  We also skip
reindexing when format modules are unloaded during shutdown.

Change-Id: I585fd6ee04200612ab1490dc804f76805f89cf0a

3 years agoCDR: Fix deadlock setting some CDR values.
Richard Mudgett [Wed, 6 Dec 2017 00:04:47 +0000 (18:04 -0600)]
CDR: Fix deadlock setting some CDR values.

Setting channel variables with the AMI Originate action caused a deadlock
when you set CDR(amaflags) or CDR(accountcode).  This path has the channel
locked when the CDR function is called.  The CDR function then
synchronously passes the job to a stasis thread.  The stasis handling
function then attempts to lock the channel.  Deadlock results.

* Avoid deadlock by making the CDR function handle setting amaflags and
accountcode directly on the channel rather than passing it off to the CDR
processing code under a stasis thread to do it.

* Made the CHANNEL function and the CDR function process amaflags the same

* Fixed referencing the wrong message type in cdr_prop_write().


Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f

3 years agomedia_index: Improve startup.
Corey Farrell [Wed, 6 Dec 2017 18:42:55 +0000 (13:42 -0500)]
media_index: Improve startup.

This eliminates some wasteful operations in media_index startup.

* Replace statically set string-fields with char[0].
* Eliminate pointless RAII_VAR's.
* alloc_variant: Avoid pointless ao2_find on new info->variant.
* Stop trying find_variant before alloc_variant.
* process_media_file: replace ast_str with ast_asprintf.  This avoids
  reallocation of file_id_str.

Overall sounds_index.c is about 27% of Asterisk startup time when using
sample configs.  This patch reduces it to 20%.  This is a half-fix.  The
real problem is that the media_index is regenerated repeatedly - 68
times in my test.

Change-Id: Ia50b752f8efb356f852b05c4be495a6631af8652

3 years agobridge_basic.c: Update transfer diagnostic messages addendum.
Richard Mudgett [Wed, 6 Dec 2017 13:36:02 +0000 (07:36 -0600)]
bridge_basic.c: Update transfer diagnostic messages addendum.

* Added start DTMF transfer verbose messages.
* Made associated transfer messages use a similar message format.
* Adjusted message verbose level as requested by initial reporter.


Change-Id: I2045714586414b3c5ef1f3cc56c1c4af4b31f551

3 years agoMerge "bridge_basic.c: Update transfer diagnostic messages."
Jenkins2 [Wed, 6 Dec 2017 12:51:31 +0000 (06:51 -0600)]
Merge "bridge_basic.c: Update transfer diagnostic messages."

3 years agoMerge "Add new object for VoicemailUserEntry"
Jenkins2 [Wed, 6 Dec 2017 02:10:51 +0000 (20:10 -0600)]
Merge "Add new object for VoicemailUserEntry"

3 years agoMerge "res_rtp_asterisk.c: Increase strictrtp learning timeout time."
Joshua Colp [Wed, 6 Dec 2017 01:31:14 +0000 (19:31 -0600)]
Merge "res_rtp_asterisk.c: Increase strictrtp learning timeout time."

3 years agoMerge "pjproject: Clean up disabling of WebRTC support."
Jenkins2 [Wed, 6 Dec 2017 00:30:42 +0000 (18:30 -0600)]
Merge "pjproject: Clean up disabling of WebRTC support."