Commit Graph

4165 Commits

Author SHA1 Message Date
Jenkins2
56a931f64c Merge "aco: Minimize use of regex." into 13 2017-12-18 13:32:31 -06:00
Jenkins2
e31e3b581b Merge "res_smdi: Fix shutdown ref." into 13 2017-12-15 12:31:47 -06:00
Jenkins2
ccb563d357 Merge "res_rtp_asterisk.c: Disable packet flood detection for video streams." into 13 2017-12-15 11:59:53 -06:00
Jenkins2
7d230e690c Merge "res_hep: hepv3_is_loaded() should check if we are enabled" into 13 2017-12-15 11:36:25 -06:00
Jenkins2
2ea359f738 Merge "res_clialiases: Fix completion pass-through." into 13 2017-12-15 11:24:17 -06:00
Jenkins2
1865b3d230 Merge "coverity: Fix warnings in res_smdi" into 13 2017-12-15 10:50:16 -06:00
Corey Farrell
501f4dcdd8 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
2017-12-15 10:20:51 -05:00
Corey Farrell
8165115faa 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
2017-12-15 09:03:27 -05:00
Sean Bright
8338f3ec14 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
2017-12-14 19:55:28 -05:00
Corey Farrell
85dec2ae4f res_clialiases: Fix completion pass-through.
Never ignore contents of line when generating completion options.

Change-Id: I74389efdfea154019d3b56a9f381610614c044c8
2017-12-14 15:31:48 -06:00
Richard Mudgett
61e81338d9 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
2017-12-14 14:40:17 -06:00
Sean Bright
62e743e6a7 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
2017-12-14 13:17:18 -05:00
Sean Bright
74073c395b coverity: Fix warnings in res_smdi
ASTERISK-19657 #close
Reported by: Matt Jordan III, Esq.

Change-Id: I59a5e6ef3e7d9e848bec1f4b40cb73321bc7956a
2017-12-14 11:51:02 -05:00
Jenkins2
9a68fa36d1 Merge "res_pjsip: Assign support levels to a few modules" into 13 2017-12-13 15:07:10 -06:00
Jenkins2
c35fa1868e Merge "pjsip_options: contacts sometimes not being updated on reload" into 13 2017-12-13 14:22:18 -06:00
Jenkins2
53f1de6259 Merge "pjsip_options: dynamic contact's fields not updated on reload" into 13 2017-12-13 13:57:44 -06:00
Jenkins2
992b7197b7 Merge "chan_pjsip/res_pjsip: Add CHANNEL(pjsip,request_uri)" into 13 2017-12-13 10:18:37 -06:00
Joshua Colp
5705e8ae0e 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
2017-12-13 13:11:48 +00:00
Richard Mudgett
73b3390dbe 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
CHANNEL(pjsip,request_uri).

* 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.

ASTERISK-27478

Change-Id: I512e60d1f162395c946451becb37af3333337b33
2017-12-12 13:45:58 -06:00
Sean Bright
ca448bf150 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: https://trac.pjsip.org/repos/changeset/4968

Change-Id: Icf4975d785d6bfb8f30ac7ffa695a0adf9382dac
2017-12-12 12:44:20 -05:00
Sean Bright
d9b932a455 res_pjsip: Assign support levels to a few modules
Change-Id: I51f6945c4023cb93fc7b87be5ab4c50e9e6ee27d
2017-12-12 11:07:01 -06:00
Jenkins2
3bfddd9e73 Merge "astdb: Improve prefix searches in astdb" into 13 2017-12-11 11:42:27 -06:00
Joshua Colp
8834a8eff9 Merge "res_stasis and res_speech: Fix load order." into 13 2017-12-11 10:39:36 -06:00
Jenkins2
90fe599e45 Merge "utils: Add convenience function for setting fd flags" into 13 2017-12-11 10:21:51 -06:00
Jenkins2
3b6fc78f4e Merge "pjsip: Improve CLI completion performance" into 13 2017-12-11 09:52:35 -06:00
Sean Bright
4838557132 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
2017-12-10 13:56:51 -05:00
Sean Bright
a4b291029f 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
2017-12-10 12:41:51 -06:00
Sean Bright
c3bc44fa1b pjsip_configuration: Add correct file header
Change-Id: I25348c386a222bb704aff07f54375108a6402906
2017-12-08 15:58:54 -05:00
Sean Bright
f726f11974 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
analysis.

Change-Id: I8b81901e1b1bd537ca632567cdb408931c6eded7
2017-12-08 14:27:50 -05:00
Corey Farrell
3d79c34350 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
2017-12-07 20:41:58 -05:00
Kevin Harwell
ecdccb8071 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
2017-12-07 18:39:50 -06:00
Kevin Harwell
f20ab2b65f 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.

ASTERISK-27467

Change-Id: I8e3165dc6a745218c1c9db837f77fafa0516985d
2017-12-07 18:18:00 -06:00
Joshua Colp
c4fe9ff002 Merge "res_rtp_asterisk.c: Increase strictrtp learning timeout time." into 13 2017-12-05 18:46:28 -06:00
Richard Mudgett
594faa192d security-events: Fix SuccessfulAuth using_password declaration.
The SuccessfulAuth using_password field was declared as a pointer to a
uint32_t when the field was later read as a uint32_t value.  This resulted
in unnecessary casts and a non-portable field value reinterpret in
main/security_events.c:add_json_object().  i.e., It would work on a 32 bit
architecture but not on a 64 bit big endian architecture.

Change-Id: Ia08bc797613a62f07e5473425f9ccd8d77c80935
2017-12-04 17:19:23 -06:00
Richard Mudgett
9330eacc50 res_rtp_asterisk.c: Increase strictrtp learning timeout time.
More complicated direct media reinvite negotiations can result in longer
delays before direct media flows.  The strictrtp learning timeout time
was too short.  One log showed that the first RTP packet came in just
after three seconds.

* Increase the strictrtp learning timeout time from 1.5 to 5 seconds.

ASTERISK-27453

Change-Id: Ic5e711164cbb91b4d1c1e40c83697755640f138c
2017-12-04 10:40:39 -06:00
Joshua Colp
dac70daf1b res_http_post: Not all versions of gmime have GMIME_MAJOR_VERSION.
This change makes the presence of the GMIME_MAJOR_VERSION
definition optional, as not all versions of gmime actually
define it.

ASTERISK-27454

Change-Id: I01d99590045971ed6787899147170a5954077238
2017-12-01 08:07:52 -04:00
Joshua Colp
85ffedabd1 Merge "res_ari: Fix inverted test giving wrong error message." into 13 2017-11-27 16:55:57 -06:00
Jenkins2
2edbaa1588 Merge "res_rtp_asterisk.c: Fix rtp source address learning for broken clients" into 13 2017-11-27 16:14:49 -06:00
Richard Mudgett
81e2d8aa9a res_ari: Fix inverted test giving wrong error message.
The patch for ASTERISK_24560 inverted a test checking if the bridge name
is being updated to a different name.

* Fix the test to return "Changing bridge name is not implemented" when
someone attempts to change the bridge name.

ASTERISK-27445

Change-Id: I4b70bf08b0e02e016108b077ff75b345dec12fc9
2017-11-26 09:51:42 -06:00
Joshua Colp
ee3562619c Merge "res_parking: Make load_pri explicit." into 13 2017-11-23 13:34:35 -06:00
Joshua Colp
71871e1ea7 Merge "res_mwi_external_ami: Remove incorrect load priority." into 13 2017-11-23 11:50:02 -06:00
Joshua Colp
83dffa6088 Merge "Loader: Remove unneeded load_pri declarations." into 13 2017-11-23 10:42:06 -06:00
Alexander Traud
6ebe03d4b3 res_rtp_asterisk: ICE server-reflexive candidates (srflx) with Dual-Stack.
Previously, Asterisk sent srflx only when configured exclusively for IPv4. Now,
srflx is gathered and sent via SDP, even when Asterisk is enabled for
Dual Stack (IPv4+IPv6) and an IPv4 interface is available/used.

ASTERISK-27437

Change-Id: Ie07d8e2bfa7b6fe06fcdc73d390a7a9a4d8c0bc1
2017-11-22 03:07:12 -06:00
Corey Farrell
2bff38b8a8 res_parking: Make load_pri explicit.
res_parking has an implicit load_pri of 0 meaining it's one of the very
first modules loaded after modules with global symbols.  Set it
explicitly in the AST_MODULE_INFO block.

Change-Id: I297b6fb3ff6993ec004e667b22a74f5925906259
2017-11-21 11:30:49 -05:00
Joshua Colp
1e68c8e738 Merge "res_pjsip: Use sorcery prefix operation for contact lookup" into 13 2017-11-20 16:53:25 -06:00
Corey Farrell
8971a7ff3c Loader: Remove unneeded load_pri declarations.
Instead of specifying AST_MODFLAG_LOAD_ORDER with load_pri
AST_MODPRI_DEFAULT just use AST_MODFLAG_DEFAULT.

Change-Id: I0123258eafce324249433a69df15a85cc16e509f
2017-11-20 14:10:09 -05:00
Corey Farrell
9d688cf12c res_mwi_external_ami: Remove incorrect load priority.
res_mwi_external_ami specified AST_MODFLAG_LOAD_ORDER but didn't set
load_pri, resulting in an actual load priority of 0.  This module only
provides AMI actions so it has no reason to load early.

Change-Id: I82987fcf10d3ea42716b2f9df915b16687fd5839
2017-11-20 14:08:57 -05:00
Joshua Colp
3356c796a0 Merge "res_fax: Remove checks for unsigned values being >= 0." into 13 2017-11-20 12:51:18 -06:00
Joshua Colp
be3a33f3d1 Merge "res_snmp: Declare RONLY if net-snmp headers do not." into 13 2017-11-20 12:18:22 -06:00
Joshua Colp
e0f9d4d808 Merge "res_pjsip: Fix warning by deferring implicit type cast." into 13 2017-11-20 09:44:36 -06:00