Commit Graph

31881 Commits

Author SHA1 Message Date
George Joseph
ba8f2c401c xmldoc.c: Fix dump of xml document
The "xmldoc dump" cli command was simply concatenating xml documents
into the output file.  The resulting file had multiple "xml"
processing instructions and multiple root elements which is illegal.
Normally this isn't an issue because Asterisk has only 1 main xml
documentation file but codec_opus has its own file so if it's
downloaded and you do "xmldoc dump", the result is invalid.

* Added 2 new functions to xml.c:
    ast_xml_copy_node_list creates a copy of a list of children.
    ast_xml_add_child_list adds a list to an existing list.

* Modified handle_dump_docs to create a new output document and
  add to it the children from each input file.  It then dumps the
  new document to the output file.

Change-Id: I3f182d38c75776aee76413dadd2d489d54a85c07
2018-07-23 06:47:20 -05:00
Jenkins2
d8278f401d Merge "CI: Add wiki doc publish to periodics" 2018-07-23 06:46:52 -05:00
Corey Farrell
0ee061326a CI: Fix mkdir CACHE_DIR.
Change-Id: Ic9f9a61e230047836c836206731f8ff7eb3538c9
2018-07-22 11:37:02 -05:00
Corey Farrell
747b65f675 build_tools/make_version: Get MAINLINE_BRANCH from .gitreview.
Use .gitreview defaultbranch setting to determine the mainline branch.
This allows the script to be used against other directories which might
not be on the same defaultbranch.  This can be used by CI scripts to
report the testsuite version being used:
./build_tools/make_version ${TESTSUITE_DIR}

Change-Id: Ifdad4a9d8a26138c41bc6b630ecc3e34ea1c2758
2018-07-22 12:22:50 -04:00
Joshua Colp
33f855bb69 sched: Make ABI compatible between dev mode and non-dev mode.
In the past there was an assertion in the ast_sched_del function
and in order to ensure it was useful the calling function name,
line number, and filename had to be passed in. This cause the ABI
to be different between dev mode and non-dev mode.

This assertion is no longer present so the special logic can be
removed to make it the same between them both.

Change-Id: Icbc69c801e357d7004efc5cf2ab936d9b83b6ab8
2018-07-22 10:46:39 -05:00
Richard Mudgett
09c4be9433 asterisk.c: Update displayed copyright year for v16 release.
Change-Id: I60622731d928ee9506b1d28934095f0dc3e5306e
2018-07-20 15:53:18 -05:00
Kevin Harwell
5e9822fed7 Merge "pjsip_resolver.c: Use replacement function" 2018-07-20 14:44:00 -05:00
Corey Farrell
ee154464d7 Enable bundling of jansson, require 2.11.
Change-Id: Ib3111b151d37cbda40768cf2a8a9c6cf6c5c7cbd
2018-07-20 13:42:02 -04:00
Kevin Harwell
b684a1dd05 Merge "contrib: Update systemd README.txt." 2018-07-20 12:01:44 -05:00
Corey Farrell
fa6d5db229 CI: Fix logger.conf for unit tests.
Change-Id: Idea59d60eab20105de50b34f0f0d506e6ef55d5c
2018-07-20 10:25:25 -04:00
George Joseph
739cfe128d CI: Add wiki doc publish to periodics
Change-Id: I29ba26134e5083bc6788ede235f1a5d4383c148a
2018-07-20 06:56:27 -06:00
Joshua Colp
2c9757bc90 res_pjsip: Update default keepalive interval to 90 seconds.
A change recently went in which disabled the built-in PJSIP
keepalive. This defaulted to 90 seconds and kept TCP/TLS
connections alive. Disabling this functionality has resulted
in a behavior change of not doing keepalives by default resulting
in TCP/TLS connections dropping for some people.

This change makes our default keepalive interval 90 seconds
to match the previous behavior and preserve it.

ASTERISK-27978

Change-Id: Ibd9a45f3cbe5d9bb6d2161268696645ff781b1d6
2018-07-20 06:55:48 -05:00
Richard Mudgett
e6bb2efaab res_pjsip: Update endpoint transport option documentation.
Change-Id: I5394fdff6a296efc8e1695a156e616acd932ae52
2018-07-19 16:40:24 -05:00
Richard Mudgett
8a100ca52b pjsip_resolver.c: Use replacement function
* Use the replacement function ast_sip_push_task_wait_servant() instead of
the deprecated ast_sip_push_task_synchronous().

Change-Id: I145b550ba7054640c7faa3b644e63137f505c612
2018-07-19 13:54:29 -05:00
Joshua Colp
27438e9000 Merge "Update UPDATE.txt for 16 and update ARI stubs." 2018-07-19 06:18:34 -05:00
Corey Farrell
d7db9f2152 contrib: Update systemd README.txt.
Mention need to compile Asterisk with systemd development package
installed.

ASTERISK-27968

Change-Id: Ib3a973be403c61cbe09572b0f912fb1aa1bff026
2018-07-18 17:14:44 -05:00
George Joseph
f7a89ea428 Merge "Update ARI version for master/16." 2018-07-18 15:20:29 -05:00
George Joseph
bbef48671f Merge "pjproject_bundled: Repair ./configure --with-ssl=PATH." 2018-07-18 15:19:40 -05:00
George Joseph
fa71763853 Merge "res_sorcery_config: Allow configuration section to be used based on name." 2018-07-18 14:47:22 -05:00
George Joseph
85a95b8a29 Merge "res_rtp_asterisk: Add support for sending NACK requests." 2018-07-18 14:46:28 -05:00
George Joseph
c8e4cd8bce Merge "res_pjsip_sdp_rtp: include ice in ANSWER only if offered" 2018-07-18 14:29:19 -05:00
Joshua Colp
e01e636959 Update UPDATE.txt for 16 and update ARI stubs.
Copied UPGRADE.txt -> UPGRADE-16.txt
Created new UPGRADE.txt

Updated ARI stubs version to 17.

Change-Id: I4210e53f8022a2a68c7653595bdd13fbebac41ee
2018-07-18 19:23:02 +00:00
Joshua Colp
e7a76ffee1 Update ARI version for master/16.
ARI goes from 3.0.0 to 4.0.0

Change-Id: I0649fa34926dc4fc89a166f1d2e3bbd965ef9ebe
2018-07-18 19:18:13 +00:00
George Joseph
56740c6a57 Merge "module: Remove deprecated modules and update support levels." 2018-07-18 14:13:45 -05:00
Alexander Traud
fe78d374b0 pjproject_bundled: Repair ./configure --with-ssl=PATH.
Previously, Asterisk did not tell its bundled PJProject about this configure
parameter. Therefore, PJProject used the platform provided OpenSSL always.

ASTERISK-27880

Change-Id: Iea545aec854dd0e2c061c69bb118a76ce56c5dc6
2018-07-18 13:56:03 -05:00
Ben Ford
5bacde37a2 res_rtp_asterisk: Add support for sending NACK requests.
Support has been added for receiving a NACK request and handling it.
Now, Asterisk can detect when a NACK request should be sent and knows
how to construct one based on the packets we've received from the remote
end. A buffer has been added that will store out of order packets until
we receive the packet we are expecting. Then, these packets are handled
like normal and frames are queued to the core like normal. Asterisk
knows which packets to request in the NACK request using a vector
which stores the sequence numbers of the packets we are currently missing.

If a missing packet is received, cycle through the buffer until we reach
another packet we have not received yet. If the buffer reaches a certain
size, send a NACK request. If the buffer reaches its max size, queue all
frames to the core and wipe the buffer and vector.

According to RFC3711, the NACK request must be sent out in a compound
packet. All compound packets must start with a sender or receiver
report, so some work was done to refactor the current sender / receiver
code to allow it to be used without having to also include sdes
information and automatically send the report.

Also added additional functionality to ast_data_buffer, along with some
testing.

For more information, refer to the wiki page:
https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements

ASTERISK-27810 #close

Change-Id: Idab644b08a1593659c92cda64132ccc203fe991d
2018-07-18 13:37:03 -05:00
Joshua Colp
59323121f3 res_sorcery_config: Allow configuration section to be used based on name.
A problem I've seen countless times is a global or system section
for PJSIP not getting applied. This is inevitably the result of
the "type=" line missing. This change alleviates that problem.

The ability to specify an explicit section name has been
added to res_sorcery_config. If the configured section
name matches this and there are no unknown things configured
the section is taken as being for the given type.

Both the PJSIP "global" and "system" types now support this
so you can just name your section "global" or "system" and it
will be matched and used, even without a "type=" line.

ASTERISK-27972

Change-Id: Ie22723663c1ddd24f869af8c9b4c1b59e2476893
2018-07-18 13:20:49 -05:00
Joshua Colp
134e2f0ddc module: Remove deprecated modules and update support levels.
I have removed the STATIC_BUILD option immediately as it has not
been maintained in many years and is non-functional.

ASTERISK-27965

Change-Id: I64783d017b86dba9ee3c7bcfb97e59889a3f76d7
2018-07-18 18:15:53 +00:00
Chris-Savinovich
94dd0544e5 stasis: Improve message type "Use of before/init after destruction"
Fixes issue where error msg
"Use of before/init after destruction"
was being printed on disabled messages
in dev mode.  With this
fix if message is disabled
a warning will print.

ASTERISK-25548
Change-Id: Ie0d866d1cbc60c16dbef08bc65e99505c3c1adfa
2018-07-18 13:11:28 -05:00
George Joseph
5f01f73f51 Merge "SRTP: Lower SDES key lifetime minimum to 2^20" 2018-07-18 10:22:30 -05:00
Joshua Colp
d9596b5090 Merge "res_pjsip: Remove spurious error logging when printing silent headers" 2018-07-18 05:49:31 -05:00
Nick French
993ba84cd3 SRTP: Lower SDES key lifetime minimum to 2^20
SRTP SDES key lifetime support was added in ASTERISK_17899.

In that addition, the minimum key lifetime to be accepted was
set at the 10 hours @ 20ms/packet = 1800000 packets.

The firmware in the obi1xx ATA uses a hardcoded lifetime of
2^20 packets.

Lower the limit to 2^20 to support a wider field of clients.

ASTERISK-27967 #close

Change-Id: I81a0703c595a0c9101dfdf02300149a3cc39bf94
2018-07-17 14:57:14 -05:00
Joshua Colp
259f4868d0 Merge "loader: Fix startup issues." 2018-07-17 12:16:17 -05:00
Joshua Colp
f5a038507d Merge "Build: Fix modules getting their optimization setting overridden." 2018-07-17 12:15:34 -05:00
George Joseph
fcc0a6fe8a CI: Fix merge strategy
Change-Id: I5e3fb6adfa6cbf694c0deecf02e3879297b0c12e
2018-07-17 10:09:01 -06:00
George Joseph
3e5a6a6cfc CI: Fix regex in daily and ref_debug jobs
Change-Id: Icf2e67818b2155a158d2390b138613e1f653ea92
2018-07-17 09:41:40 -06:00
Nick French
0e8976116f res_pjsip: Remove spurious error logging when printing silent headers
Asterisk patched the pjproject source to avoid crashing when pjproject
sip_msg headers are encountered with NULL vptr's, but the patch also
output error messages for some valid headers which simply did not need
to be added to the message itself, such as hidden route headers.

pjproject has since applied a similar patch to their baseline to avoid
crashes, but their version also avoids the spurious error logging.

Lets use their patch instead.

ASTERISK-27961 #close

Change-Id: I2ddbd82c8da10e0dcc9807a48089d1f3c2d6e389
2018-07-17 10:37:00 -05:00
George Joseph
fa333dedd0 CI: Add pre-build merge back in as RECURSIVE
Change-Id: I0ff1730ef4a4f0ac9f18ccc9bc0dfe7a782f57a8
2018-07-17 09:15:58 -06:00
Jenkins2
2ce66f6a66 Merge "Fix declaration of PBX_CURL for ./configure --without-libcurl" 2018-07-17 09:46:30 -05:00
George Joseph
2553255ace CI: Remove pre-build merge from gates and checks
Change-Id: Ibc151f63dcec4db847915c2f3cbe5b467dd59574
2018-07-17 08:01:46 -06:00
George Joseph
524f900382 CI: Fix logic inversion in runTestsuite
Change-Id: I56399aa384468f45494c2c3650420563a0b6efe1
2018-07-17 06:13:35 -06:00
George Joseph
0af4a558da CI: Add teardownRealtime
Change-Id: I2fe55c38607eaec2fbf69ef23a5019e0c443a64b
2018-07-17 03:03:02 -06:00
Corey Farrell
49f83a7490 loader: Fix startup issues.
* Merge the preload and load stages, use load ordering to try preload's
  first.  This fixes an issue where `preload=res_config_curl` would fail
  unless res_curl and func_curl were also preloaded.  Now it is only
  required that those modules be loaded during startup: autoload or
  regular load is good enough.
* The configuration option `require` and `preload-require` were only
  effective if the modules failed to load.  These options will now abort
  Asterisk startup if required modules fail to reach the 'Running'
  state.
* Missing or invalid 'module.conf' did not prevent startup.  Asterisk
  doesn't do anything without modules so this a fatal error.

Change-Id: Ie4176699133f0e3a823b43f90c3348677e43a5f3
2018-07-16 18:21:52 -04:00
George Joseph
a9cef123d9 CI: Prevent Jenkins from triggering jobs back to itself
Change-Id: I9cae8bb3d1a2cea335d3ccd88d471832549666fd
2018-07-16 12:30:26 -06:00
Richard Mudgett
5febc995df Build: Fix modules getting their optimization setting overridden.
Asterisk modules that use PJPROJECT services have their compiler
optimization and possibly their symbolic debug options overridden by the
PJPROJECT configure script selected settings.

* We need to filter-out any -O and -g options in PJ_CFLAGS before echoing
out the result so the PJPROJECT_INCLUDE variable does not override the
Asterisk module settings when using bundled PJPROJECT.

NOTE: This patch only has an effect when using bundled PJPROJECT.

ASTERISK-27563

Change-Id: If124169735ecf572ad1535cd43bff94cb44d5b30
2018-07-16 12:45:48 -05:00
George Joseph
d15ef68892 CI: runUnittests: loop a few times on waitfullybooted
Change-Id: Icebc0d013896f3b2a7214945cac60647435c1651
2018-07-16 10:08:57 -06:00
George Joseph
252c4284df CI: Add realtime checks to dailies
Change-Id: I6dc8ab1679b3505c6dde1d47e1b9276df47814f8
2018-07-16 09:49:54 -06:00
George Joseph
1a52ab70c7 CI: Add weekly REF_DEBUG testsuite run
Change-Id: I5b581d0a0d1d1bb9b38961d40b112fb448355037
2018-07-16 08:13:40 -06:00
George Joseph
9633e9dfd7 CI: Fix bad reporting of status by the verification pub
Change-Id: I6f31a130b3ba0187149aaaa2ce94195a79e0f6a6
2018-07-16 07:44:25 -06:00
George Joseph
b8d75bbb37 CI: Make build tag an acceptable docker name
Change-Id: I3a4b8a4a9c488ddabf9daf651dc1334222056f38
2018-07-16 06:16:51 -06:00