[Pkg-voip-commits] [asterisk] 01/03: New upstream version 13.17.1~dfsg

Bernhard Schmidt berni at moszumanska.debian.org
Sat Sep 2 20:42:56 UTC 2017


This is an automated email from the git hooks/post-receive script.

berni pushed a commit to branch master
in repository asterisk.

commit 25fa1d9b98c61ed39d3df35d9891d7da7b582946
Author: Bernhard Schmidt <berni at debian.org>
Date:   Sat Sep 2 22:33:32 2017 +0200

    New upstream version 13.17.1~dfsg
---
 .version                                 |   2 +-
 ChangeLog                                |  75 +++
 README-SERIOUSLY.bestpractices.txt       |   7 +
 apps/app_minivm.c                        |  36 +-
 apps/app_mixmonitor.c                    |  15 +
 apps/app_system.c                        |  10 +
 asterisk-13.17.0-summary.html            | 306 ------------
 asterisk-13.17.0-summary.txt             | 814 -------------------------------
 asterisk-13.17.1-summary.html            |  42 ++
 asterisk-13.17.1-summary.txt             | 162 ++++++
 configs/samples/minivm.conf.sample       |   2 +-
 funcs/func_shell.c                       |   5 +
 include/asterisk/app.h                   |  31 +-
 main/asterisk.c                          |  91 +++-
 res/res_monitor.c                        |  13 +-
 res/res_pjsip/pjsip_message_ip_updater.c |  56 ++-
 res/res_rtp_asterisk.c                   |  87 ++--
 17 files changed, 552 insertions(+), 1202 deletions(-)

diff --git a/.version b/.version
index 5504738..1762c59 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-13.17.0
\ No newline at end of file
+13.17.1
\ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
index f630fed..6574b85 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,78 @@
+2017-08-31 15:44 +0000  Asterisk Development Team <asteriskteam at digium.com>
+
+	* asterisk 13.17.1 Released.
+
+2017-07-24 10:48 +0000 [0e5b7743d9]  George Joseph <gjoseph at digium.com>
+
+	* pjsip_message_ip_updater:  Fix issue handling "tel" URIs
+
+	  sanitize_tdata was assuming all URIs were SIP URIs so when a non
+	  SIP uri was in the From, To or Contact headers, the unconditional
+	  cast of a non-pjsip_sip_uri structure to pjsip_sip_uri caused
+	  a segfault when trying to access uri->other_param.
+
+	  * Added PJSIP_URI_SCHEME_IS_SIP(uri) || PJSIP_URI_SCHEME_IS_SIPS(uri)
+	    checks before attempting to cast or use the returned uri.
+
+	  ASTERISK-27152
+	  Reported-by: Ross Beer
+
+	  Change-Id: Id380df790e6622c8058a96035f8b8f4aa0b8551f
+
+2017-07-01 19:24 +0000 [707892089d]  Corey Farrell <git at cfware.com>
+
+	* AST-2017-006: Fix app_minivm application MinivmNotify command injection
+
+	  An admin can configure app_minivm with an externnotify program to be run
+	  when a voicemail is received.  The app_minivm application MinivmNotify
+	  uses ast_safe_system() for this purpose which is vulnerable to command
+	  injection since the Caller-ID name and number values given to externnotify
+	  can come from an external untrusted source.
+
+	  * Add ast_safe_execvp() function.  This gives modules the ability to run
+	  external commands with greater safety compared to ast_safe_system().
+	  Specifically when some parameters are filled by untrusted sources the new
+	  function does not allow malicious input to break argument encoding.  This
+	  may be of particular concern where CALLERID(name) or CALLERID(num) may be
+	  used as a parameter to a script run by ast_safe_system() which could
+	  potentially allow arbitrary command execution.
+
+	  * Changed app_minivm.c:run_externnotify() to use the new ast_safe_execvp()
+	  instead of ast_safe_system() to avoid command injection.
+
+	  * Document code injection potential from untrusted data sources for other
+	  shell commands that are under user control.
+
+	  ASTERISK-27103
+
+	  Change-Id: I7552472247a84cde24e1358aaf64af160107aef1
+
+2017-05-22 10:36 +0000 [3ee5c6dcbe]  Joshua Colp <jcolp at digium.com>
+
+	* res_rtp_asterisk: Only learn a new source in learn state.
+
+	  This change moves the logic which learns a new source address
+	  for RTP so it only occurs in the learning state. The learning
+	  state is entered on initial allocation of RTP or if we are
+	  told that the remote address for the media has changed. While
+	  in the learning state if we continue to receive media from
+	  the original source we restart the learning process. It is
+	  only once we receive a sufficient number of RTP packets from
+	  the new source that we will switch to it. Once this is done
+	  the closed state is entered where all packets that do not
+	  originate from the expected source are dropped.
+
+	  The learning process has also been improved to take into
+	  account the time between received packets so a flood of them
+	  while in the learning state does not cause media to be switched.
+
+	  Finally RTCP now drops packets which are not for the learned
+	  SSRC if strict RTP is enabled.
+
+	  ASTERISK-27013
+
+	  Change-Id: I56a96e993700906355e79bc880ad9d4ad3ab129c
+
 2017-07-12 11:12 +0000  Asterisk Development Team <asteriskteam at digium.com>
 
 	* asterisk 13.17.0 Released.
diff --git a/README-SERIOUSLY.bestpractices.txt b/README-SERIOUSLY.bestpractices.txt
index 108adce..b170d29 100644
--- a/README-SERIOUSLY.bestpractices.txt
+++ b/README-SERIOUSLY.bestpractices.txt
@@ -94,6 +94,13 @@ your ITSP in a place where you didn't expect to allow it. There are a couple of
 ways in which you can mitigate this impact: stricter pattern matching, or using
 the FILTER() dialplan function.
 
+The CALLERID(num) and CALLERID(name) values are other commonly used values that
+are sources of data potentially supplied by outside sources.  If you use these
+values as parameters to the System(), MixMonitor(), or Monitor() applications
+or the SHELL() dialplan function, you can allow injection of arbitrary operating
+system command execution.  The FILTER() dialplan function is available to remove
+dangerous characters from untrusted strings to block the command injection.
+
 Strict Pattern Matching
 -----------------------
 
diff --git a/apps/app_minivm.c b/apps/app_minivm.c
index 1bfcfbb..37974c7 100644
--- a/apps/app_minivm.c
+++ b/apps/app_minivm.c
@@ -1757,21 +1757,35 @@ static int play_record_review(struct ast_channel *chan, char *playfile, char *re
 /*! \brief Run external notification for voicemail message */
 static void run_externnotify(struct ast_channel *chan, struct minivm_account *vmu)
 {
-	char arguments[BUFSIZ];
+	char fquser[AST_MAX_CONTEXT * 2];
+	char *argv[5] = { NULL };
+	struct ast_party_caller *caller;
+	char *cid;
+	int idx;
 
-	if (ast_strlen_zero(vmu->externnotify) && ast_strlen_zero(global_externnotify))
+	if (ast_strlen_zero(vmu->externnotify) && ast_strlen_zero(global_externnotify)) {
 		return;
+	}
+
+	snprintf(fquser, sizeof(fquser), "%s@%s", vmu->username, vmu->domain);
 
-	snprintf(arguments, sizeof(arguments), "%s %s@%s %s %s&", 
-		ast_strlen_zero(vmu->externnotify) ? global_externnotify : vmu->externnotify, 
-		vmu->username, vmu->domain,
-		(ast_channel_caller(chan)->id.name.valid && ast_channel_caller(chan)->id.name.str)
-			? ast_channel_caller(chan)->id.name.str : "",
-		(ast_channel_caller(chan)->id.number.valid && ast_channel_caller(chan)->id.number.str)
-			? ast_channel_caller(chan)->id.number.str : "");
+	caller = ast_channel_caller(chan);
+	idx = 0;
+	argv[idx++] = ast_strlen_zero(vmu->externnotify) ? global_externnotify : vmu->externnotify;
+	argv[idx++] = fquser;
+	cid = S_COR(caller->id.name.valid, caller->id.name.str, NULL);
+	if (cid) {
+		argv[idx++] = cid;
+	}
+	cid = S_COR(caller->id.number.valid, caller->id.number.str, NULL);
+	if (cid) {
+		argv[idx++] = cid;
+	}
+	argv[idx] = NULL;
 
-	ast_debug(1, "Executing: %s\n", arguments);
-	ast_safe_system(arguments);
+	ast_debug(1, "Executing: %s %s %s %s\n",
+		argv[0], argv[1], argv[2] ?: "", argv[3] ?: "");
+	ast_safe_execvp(1, argv[0], argv);
 }
 
 /*!\internal
diff --git a/apps/app_mixmonitor.c b/apps/app_mixmonitor.c
index 979bf2d..24ce3b6 100644
--- a/apps/app_mixmonitor.c
+++ b/apps/app_mixmonitor.c
@@ -138,6 +138,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 				<para>Will be executed when the recording is over.</para>
 				<para>Any strings matching <literal>^{X}</literal> will be unescaped to <variable>X</variable>.</para>
 				<para>All variables will be evaluated at the time MixMonitor is called.</para>
+				<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+				or <variable>CALLERID(name)</variable> as part of the command parameters.  You
+				risk a command injection attack executing arbitrary commands if the untrusted
+				strings aren't filtered to remove dangerous characters.  See function
+				<variable>FILTER()</variable>.</para></warning>
 			</parameter>
 		</syntax>
 		<description>
@@ -150,6 +155,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 					<para>Will contain the filename used to record.</para>
 				</variable>
 			</variablelist>
+			<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+			or <variable>CALLERID(name)</variable> as part of ANY of the application's
+			parameters.  You risk a command injection attack executing arbitrary commands
+			if the untrusted strings aren't filtered to remove dangerous characters.  See
+			function <variable>FILTER()</variable>.</para></warning>
 		</description>
 		<see-also>
 			<ref type="application">Monitor</ref>
@@ -224,6 +234,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 				<para>Will be executed when the recording is over.
 				Any strings matching <literal>^{X}</literal> will be unescaped to <variable>X</variable>.
 				All variables will be evaluated at the time MixMonitor is called.</para>
+				<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+				or <variable>CALLERID(name)</variable> as part of the command parameters.  You
+				risk a command injection attack executing arbitrary commands if the untrusted
+				strings aren't filtered to remove dangerous characters.  See function
+				<variable>FILTER()</variable>.</para></warning>
 			</parameter>
 		</syntax>
 		<description>
diff --git a/apps/app_system.c b/apps/app_system.c
index 7fe453d..e868a07 100644
--- a/apps/app_system.c
+++ b/apps/app_system.c
@@ -48,6 +48,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 		<syntax>
 			<parameter name="command" required="true">
 				<para>Command to execute</para>
+				<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+				or <variable>CALLERID(name)</variable> as part of the command parameters.  You
+				risk a command injection attack executing arbitrary commands if the untrusted
+				strings aren't filtered to remove dangerous characters.  See function
+				<variable>FILTER()</variable>.</para></warning>
 			</parameter>
 		</syntax>
 		<description>
@@ -73,6 +78,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 		<syntax>
 			<parameter name="command" required="true">
 				<para>Command to execute</para>
+				<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+				or <variable>CALLERID(name)</variable> as part of the command parameters.  You
+				risk a command injection attack executing arbitrary commands if the untrusted
+				strings aren't filtered to remove dangerous characters.  See function
+				<variable>FILTER()</variable>.</para></warning>
 			</parameter>
 		</syntax>
 		<description>
diff --git a/asterisk-13.17.0-summary.html b/asterisk-13.17.0-summary.html
deleted file mode 100644
index 3b74101..0000000
--- a/asterisk-13.17.0-summary.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-13.17.0</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.17.0</h3><h3 align="center">Date: 2017-07-12</h3><h3 align="center"><asteriskteam at digium.com></h3><hr><h2 align="center">Table of Contents</h2><ol>
-<li><a href="#summary">Summary</a></li>
-<li><a href="#contributors">Contributors</a></li>
-<li><a href="#closed_issues">Closed Issues</a></li>
-<li><a href="#open_issues">Open Issues</a></li>
-<li><a href="#commits">Other Changes</a></li>
-<li><a href="#diffstat">Diffstat</a></li>
-</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version a [...]
-<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
-<tr valign="top"><td width="33%">17 Sean Bright <sean.bright at gmail.com><br/>12 George Joseph <gjoseph at digium.com><br/>10 Joshua Colp <jcolp at digium.com><br/>9 Alexei Gradinari <alex2grad at gmail.com><br/>5 Richard Mudgett <rmudgett at digium.com><br/>5 Kevin Harwell <kharwell at digium.com><br/>2 Torrey Searle <tsearle at gmail.com><br/>2 Guido Falsi <madpilot at freebsd.org><br/>2 Alexander Traud <pabstraud at compuserve.com><br/>1 Jan Friesse <jfriesse at redhat.com><br/>1 Florian Floimair <f.floimair at comm [...]
-</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Bug</h3><h4>Category: Addons/format_mp3</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23951">ASTERISK-23951</a>:  Asterisk attempts and fails to build format_mp3 even if mp3lib was not downloaded<br/>Reported by: Tzafrir Cohen<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=97b003f5e2d4a350508fc20173e180a23f8ef525">[97b003f5e2]</a> Sean Bright -- format_mp3: Re-work menuselect/build issues</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=72213c98e3d4d5287ed321f1b4fb67087a7a129c">[72213c98e3]</a> Sean Bright -- format_mp3: Don't try to build format_mp3 if we don't have sources</li>
-</ul><br><h4>Category: Applications/app_confbridge</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27012">ASTERISK-27012</a>: app_confbridge: ConfBridge sometimes does not play user name recording while leaving<br/>Reported by: Robert Mordec<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1b32de2c5fb8854183f0c7d8c9df7470ab9c140">[f1b32de2c5]</a> Robert Mordec -- app_confbridge: Race between removing and playing name recording while leaving</li>
-</ul><br><h4>Category: Applications/app_meetme</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27025">ASTERISK-27025</a>: channel / meetme: Fix missing parentheses<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dc05183f4b7d728534ec6fa5f3fc21802396aabf">[dc05183f4b]</a> Joshua Colp -- channel / app_meetme: Fix parentheses.</li>
-</ul><br><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25665">ASTERISK-25665</a>: Duplicate logging in queue log for EXITEMPTY events<br/>Reported by: Ove Aursand<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2c43ca0ac50764ab17d691844a84158bbf590b0e">[2c43ca0ac5]</a> Ivan Poddubny -- app_queue: Fix returning to dialplan when a queue is empty</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27065">ASTERISK-27065</a>: call hangup after leaving app_queue<br/>Reported by: Marek Cervenka<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2c43ca0ac50764ab17d691844a84158bbf590b0e">[2c43ca0ac5]</a> Ivan Poddubny -- app_queue: Fix returning to dialplan when a queue is empty</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26399">ASTERISK-26399</a>: app_queue: Agent not called when caller is parked<br/>Reported by: wushumasters<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bfcb1acc7ae53d50e1b784b4d46c588744aae8b">[6bfcb1acc7]</a> Joshua Colp -- app_queue: Fix members showing as being in call when not.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26400">ASTERISK-26400</a>: app_queue: Queue member stops being called after AMI "Redirect" action for queues with wrapuptime<br/>Reported by: Etienne Lessard<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bfcb1acc7ae53d50e1b784b4d46c588744aae8b">[6bfcb1acc7]</a> Joshua Colp -- app_queue: Fix members showing as being in call when not.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26715">ASTERISK-26715</a>: app_queue: Member will not receive any new calls after doing a transfer if wrapuptime = greater than 0 and using Local channel<br/>Reported by: David Brillert<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bfcb1acc7ae53d50e1b784b4d46c588744aae8b">[6bfcb1acc7]</a> Joshua Colp -- app_queue: Fix members showing as being in call when not.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26975">ASTERISK-26975</a>: app_queue: Non-zero wrapup time can cause agents not to receive queue calls after transfer queue call<br/>Reported by: Lorne Gaetz<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bfcb1acc7ae53d50e1b784b4d46c588744aae8b">[6bfcb1acc7]</a> Joshua Colp -- app_queue: Fix members showing as being in call when not.</li>
-</ul><br><h4>Category: Applications/app_voicemail/IMAP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24052">ASTERISK-24052</a>: app_voicemail reloads result in leaked IMAP sockets.<br/>Reported by: Louis Jocelyn Paquet<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8f356192d196ae146b0c2390f8d62024694e691f">[8f356192d1]</a> Alexei Gradinari -- app_voicemail: IMAP connection control</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3b6c327c515944d74aa798f385e01768a4bb04c2">[3b6c327c51]</a> Alexei Gradinari -- app_voicemail: IMAP logout on reload/unload</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=08be5e01e8ab72a7e9e80525e20967467a6df99b">[08be5e01e8]</a> Alexei Gradinari -- app_voicemail: IMAP logout on MWI unsubscribe</li>
-</ul><br><h4>Category: Bridges/bridge_simple</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26973">ASTERISK-26973</a>: bridge: Crash when freeing frame and snooping<br/>Reported by: Michel R. Vaillancourt<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=adfb28882bfd2055d8b54705805db573d8ce6c94">[adfb28882b]</a> Kevin Harwell -- channel: ast_write frame wrongly freed after call to audiohooks</li>
-</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27039">ASTERISK-27039</a>: chan_pjsip: Device state is idle when channel from endpoint is in early media<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1f10c6b3b044f9979c523f65f449670047dcb57f">[1f10c6b3b0]</a> Joshua Colp -- chan_pjsip: Update device state when in early media.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26996">ASTERISK-26996</a>: chan_pjsip: Flipping between codecs<br/>Reported by: Michael Maier<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=996a4791ff123e80d71d44cb0fd13bb201d197b1">[996a4791ff]</a> Joshua Colp -- pjsip: Extend 'asymmetric_rtp_codec' option to include us changing.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26281">ASTERISK-26281</a>: chan_pjsip would send INVITE to 'Unreachable' endpoints<br/>Reported by: Jacek Konieczny<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=746c2c574578608a6b48d4794ba33cda5a6dd484">[746c2c5745]</a> Joshua Colp -- res_pjsip: Add support for returning only reachable contacts and use it.</li>
-</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27106">ASTERISK-27106</a>: [patch] autodomain (SIP Domain Support): Add only really different domain with TLS.<br/>Reported by: Alexander Traud<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=39d2ebbf56635355432eb96ff850c0c9bf2a5d63">[39d2ebbf56]</a> Alexander Traud -- chan_sip: Only when different, add TCP|TLS in autodomain (SIP Domain Support).</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9f4b3b966e911fae157a484d8f4a1440130eede6">[9f4b3b966e]</a> Alexander Traud -- chan_sip: Fix a typo for tlsbindaddr in autodomain (SIP Domain Support).</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26982">ASTERISK-26982</a>: chan_sip: rtcp_mux setting may cause ice completion failure/delay if client offers rtcp-mux as negotiable<br/>Reported by: Stefan Engström<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4479038073e57a67c19c1ec5dc8896fcc8c3a0fb">[4479038073]</a> Sean Bright -- chan_sip: Better ICE handling for RTCP-MUX</li>
-</ul><br><h4>Category: Channels/chan_sip/SRTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25101">ASTERISK-25101</a>: DTLS configuration can not be specified in the general section - documentation<br/>Reported by: Ben Langfeld<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=971a401ce95ed0f566b2e90a52d69d0274c63ff8">[971a401ce9]</a> Sean Bright -- sip.conf.sample: Clarify where DTLS settings are permitted</li>
-</ul><br><h4>Category: Codecs/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24858">ASTERISK-24858</a>: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte order on Intel platform when using slin codec<br/>Reported by: Frankie Chin<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=70e5887906db8d585892409cde89e5e28111549a">[70e5887906]</a> Sean Bright -- format: Reintroduce smoother flags</li>
-</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27075">ASTERISK-27075</a>: bridge: stuck channel(s) after failed attended transfer<br/>Reported by: Kevin Harwell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=67664fbf95a00ced30f8791fd1089b4595e29479">[67664fbf95]</a> Kevin Harwell -- bridge: stuck channel(s) after failed attended transfer</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26923">ASTERISK-26923</a>: bridging: T.38 request is lost when channels are added to bridge<br/>Reported by: Torrey Searle<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e414833f6e77345f4969116972e9cf1ad9b595fd">[e414833f6e]</a> Joshua Colp -- bridge: Add a deferred queue.</li>
-</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27100">ASTERISK-27100</a>: channel: ast_waitfordigit_full fails to clear flag in an error branch.<br/>Reported by: Corey Farrell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=73520e9f58857049a086fb88106e342cdc25d3a1">[73520e9f58]</a> Corey Farrell -- channel: Clear channel flag in error branch.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27074">ASTERISK-27074</a>: core_local: local channel data not being properly unref'ed and unlocked<br/>Reported by: Kevin Harwell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1f9913f2723cbcbf6d78f4da7ee4dd4decc13c05">[1f9913f272]</a> Kevin Harwell -- core_local: local channel data not being properly unref'ed and unlocked</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26923">ASTERISK-26923</a>: bridging: T.38 request is lost when channels are added to bridge<br/>Reported by: Torrey Searle<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e414833f6e77345f4969116972e9cf1ad9b595fd">[e414833f6e]</a> Joshua Colp -- bridge: Add a deferred queue.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27025">ASTERISK-27025</a>: channel / meetme: Fix missing parentheses<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dc05183f4b7d728534ec6fa5f3fc21802396aabf">[dc05183f4b]</a> Joshua Colp -- channel / app_meetme: Fix parentheses.</li>
-</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26789">ASTERISK-26789</a>: Audit manipulation of channel flags without locks<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=161820396495a549c9a378d32136cbb5f28ef2af">[1618203964]</a> Joshua Colp -- asterisk: Audit locking of channel when manipulating flags.</li>
-</ul><br><h4>Category: Core/PBX</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27041">ASTERISK-27041</a>: Core/PBX: [patch] Deadlock between dialplan execution and application unregistration<br/>Reported by: Frederic LE FOLL<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dc307af7f2ed653914aeadb0b7e613cb4e239b06">[dc307af7f2]</a> Frederic LE FOLL -- Core/PBX: Deadlock between dialplan execution and application unregistration.</li>
-</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26978">ASTERISK-26978</a>: rtp: Crash in ast_rtp_codecs_payload_code()<br/>Reported by: Ross Beer<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eb48e99bd4f4556424a6799e2e5f7aebf8911e8d">[eb48e99bd4]</a> George Joseph -- bridge_native_rtp: Keep rtp instance refs on bridge_channel</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24858">ASTERISK-24858</a>: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte order on Intel platform when using slin codec<br/>Reported by: Frankie Chin<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=70e5887906db8d585892409cde89e5e28111549a">[70e5887906]</a> Sean Bright -- format: Reintroduce smoother flags</li>
-</ul><br><h4>Category: Core/Sorcery</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27057">ASTERISK-27057</a>: Seg Fault in ast_sorcery_object_get_id at sorcery.c<br/>Reported by: Ryan Smith<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2eea791e4178e5f2e4446a5f70d81ac27cf2a0e">[c2eea791e4]</a> George Joseph -- res_pjsip_pubsub:  Fix reference to released endpoint</li>
-</ul><br><h4>Category: Documentation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23839">ASTERISK-23839</a>: AGI - RECORD FILE - documentation doesn't describe BEEP argument<br/>Reported by: Rusty Newton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3eb7fbba72482b3019a7493c68e533e67d9d8235">[3eb7fbba72]</a> Sean Bright -- res_agi: Clarify 'RECORD FILE' documentation</li>
-</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27108">ASTERISK-27108</a>: Crash using 'data get' CLI command<br/>Reported by: Sean Bright<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6258de458b2e6ba02e91ed67bbd2801f0984526a">[6258de458b]</a> Sean Bright -- core: Fix segfault when invoking 'data get' CLI command</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27060">ASTERISK-27060</a>: Comment typo format_g729.c<br/>Reported by: Matthew Fredrickson<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0a40073750b46ae28ddf1041d5ed3ab57151298e">[0a40073750]</a> Matthew Fredrickson -- formats/format_g729: Fix typo in comment</li>
-</ul><br><h4>Category: PBX/pbx_realtime</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19291">ASTERISK-19291</a>: Background in realtime<br/>Reported by: Andrew Nowrot<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=283cc59af746896a2b2bc23899fc86118895f7c0">[283cc59af7]</a> Sean Bright -- pbx_builtin: Properly handle hangup during Background</li>
-</ul><br><h4>Category: Resources/res_agi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23839">ASTERISK-23839</a>: AGI - RECORD FILE - documentation doesn't describe BEEP argument<br/>Reported by: Rusty Newton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3eb7fbba72482b3019a7493c68e533e67d9d8235">[3eb7fbba72]</a> Sean Bright -- res_agi: Clarify 'RECORD FILE' documentation</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22432">ASTERISK-22432</a>: Async AGI crashes Asterisk when issuing "set variable" command without args<br/>Reported by: Antoine Pitrou<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f306e451f6f905a2bb74c15cb844735c244a7610">[f306e451f6]</a> Sean Bright -- res_agi: Prevent crash when SET VARIABLE called without arguments</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25662">ASTERISK-25662</a>: Malformed AGI 520 Usage response<br/>Reported by: Tony Mountifield<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a007e438c36960d4179e2f188767e7ae14a204d1">[a007e438c3]</a> Sean Bright -- res_agi: Fix malformed AGI usage response</li>
-</ul><br><h4>Category: Resources/res_ari</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27026">ASTERISK-27026</a>: res_ari: Crash when no ari.conf configuration file exists<br/>Reported by: Ronald Raikes<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7901b9853e8f60e1d2dce44ce81dec6f7f866ccc">[7901b9853e]</a> George Joseph -- res_ari:  Add "module loaded" check to ari stubs</li>
-</ul><br><h4>Category: Resources/res_ari_recordings</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27021">ASTERISK-27021</a>: GET /recordings/stored returns 500 Internal Server Error<br/>Reported by: Tim Morgan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cf6cf59646f52dc3de12dac16c3c3824ce9ae927">[cf6cf59646]</a> Sean Bright -- stasis_recording: Correct ast_asprintf error checking</li>
-</ul><br><h4>Category: Resources/res_format_attr_h264</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27008">ASTERISK-27008</a>: res_format_attr_h264: SDP parse fails if fmtp optional parameters have a space<br/>Reported by: John Harris<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=700ef6861ab966008ca16e5f23c64eb68b047c08">[700ef6861a]</a> Sean Bright -- res_format_attr_h26x: Trim blanks in fmtp attributes</li>
-</ul><br><h4>Category: Resources/res_parking</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26399">ASTERISK-26399</a>: app_queue: Agent not called when caller is parked<br/>Reported by: wushumasters<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bfcb1acc7ae53d50e1b784b4d46c588744aae8b">[6bfcb1acc7]</a> Joshua Colp -- app_queue: Fix members showing as being in call when not.</li>
-</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27090">ASTERISK-27090</a>: PJSIP: Deadlock using TCP transport<br/>Reported by: Richard Mudgett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0d64cbde5756eaa1c7ee62116e112b7ebd198bbe">[0d64cbde57]</a> Richard Mudgett -- pjsip_distributor.c: Fix deadlock with TCP type transports.</li>
-</ul><br><h4>Category: Resources/res_pjsip/Bundling</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27052">ASTERISK-27052</a>: Asterisk build process fails with flag --with-pjproject-bundled with curl download command and slow network<br/>Reported by: alex<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0bde568669ac26735c1058115ae96223a7e69a6b">[0bde568669]</a> George Joseph -- pjproject_bundled:  Use the asterisk github mirror for download</li>
-</ul><br><h4>Category: Resources/res_pjsip_refer</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27053">ASTERISK-27053</a>: res_pjsip_refer/session: Calls dropped during transfer<br/>Reported by: Kevin Harwell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6cdf3191d3538b2e9a1aec31580db1e01d73d5ef">[6cdf3191d3]</a> Kevin Harwell -- res_pjsip_refer/session: Calls dropped during transfer</li>
-</ul><br><h4>Category: Resources/res_pjsip_session</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27024">ASTERISK-27024</a>: nat/external_media settings ignored in 14.4.1<br/>Reported by: Christopher van de Sande<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2dee95cc7a280d0ab84c778bf44a76aa62ac758b">[2dee95cc7a]</a> Florian Floimair -- res_pjsip_session:  Correct inverted test in session_outgoing_nat_hook</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27053">ASTERISK-27053</a>: res_pjsip_refer/session: Calls dropped during transfer<br/>Reported by: Kevin Harwell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6cdf3191d3538b2e9a1aec31580db1e01d73d5ef">[6cdf3191d3]</a> Kevin Harwell -- res_pjsip_refer/session: Calls dropped during transfer</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26964">ASTERISK-26964</a>: res_pjsip_session: Wrong From on reinvite when request and To URI differ<br/>Reported by: Yasin CANER<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=36628cc9c474b52b134a415803b14f87e420dce6">[36628cc9c4]</a> Yasin CANER -- res_pjsip_session : fixed wrong From Header number On Re-invite</li>
-</ul><br><h4>Category: Resources/res_pjsip_transport_websocket</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27046">ASTERISK-27046</a>: res_pjsip_transport_websocket: segfault in get_write_timeout<br/>Reported by: Jørgen H<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e16a669c70c5a93bb9a38c218a5348cd62bd780a">[e16a669c70]</a> Jørgen H -- res_pjsip_transport_websocket: Add NULL check in get_write_timeout</li>
-</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27022">ASTERISK-27022</a>: res_rtp_asterisk: Incorrect SSRC change for RTCP component<br/>Reported by: Michael Walton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7dafe82751fd512d58bb3843601daff013958dd2">[7dafe82751]</a> George Joseph -- res_rtp_asterisk:  Fix ssrc change for rtcp srtp</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24858">ASTERISK-24858</a>: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte order on Intel platform when using slin codec<br/>Reported by: Frankie Chin<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=70e5887906db8d585892409cde89e5e28111549a">[70e5887906]</a> Sean Bright -- format: Reintroduce smoother flags</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25101">ASTERISK-25101</a>: DTLS configuration can not be specified in the general section - documentation<br/>Reported by: Ben Langfeld<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=971a401ce95ed0f566b2e90a52d69d0274c63ff8">[971a401ce9]</a> Sean Bright -- sip.conf.sample: Clarify where DTLS settings are permitted</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26979">ASTERISK-26979</a>: res_rtp_asterisk: SRTP unprotect failed with authentication failure 10 or 110<br/>Reported by: Javier Riveros <ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e91efef2bb35cd0b03f45ad1b1ba43203948368d">[e91efef2bb]</a> Kevin Harwell -- res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26982">ASTERISK-26982</a>: chan_sip: rtcp_mux setting may cause ice completion failure/delay if client offers rtcp-mux as negotiable<br/>Reported by: Stefan Engström<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4479038073e57a67c19c1ec5dc8896fcc8c3a0fb">[4479038073]</a> Sean Bright -- chan_sip: Better ICE handling for RTCP-MUX</li>
-</ul><br><h4>Category: Resources/res_srtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25294">ASTERISK-25294</a>: srtp's crypto_get_random deprecated<br/>Reported by: Tzafrir Cohen<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5e9cd1f20d86de1c25b7a9accffb7d3e2601878b">[5e9cd1f20d]</a> Sean Bright -- res_srtp: Add support for libsrtp2</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25101">ASTERISK-25101</a>: DTLS configuration can not be specified in the general section - documentation<br/>Reported by: Ben Langfeld<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=971a401ce95ed0f566b2e90a52d69d0274c63ff8">[971a401ce9]</a> Sean Bright -- sip.conf.sample: Clarify where DTLS settings are permitted</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26979">ASTERISK-26979</a>: res_rtp_asterisk: SRTP unprotect failed with authentication failure 10 or 110<br/>Reported by: Javier Riveros <ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e91efef2bb35cd0b03f45ad1b1ba43203948368d">[e91efef2bb]</a> Kevin Harwell -- res_rtp_asterisk: rtcp mux using the wrong srtp unprotecting algorithm</li>
-</ul><br><h4>Category: Resources/res_stasis_snoop</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26973">ASTERISK-26973</a>: bridge: Crash when freeing frame and snooping<br/>Reported by: Michel R. Vaillancourt<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=adfb28882bfd2055d8b54705805db573d8ce6c94">[adfb28882b]</a> Kevin Harwell -- channel: ast_write frame wrongly freed after call to audiohooks</li>
-</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26333">ASTERISK-26333</a>: Problems with Blind Transfer, PJSIP (Aastra 6869i)<br/>Reported by: Matthias Binder<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6af2dd34afc2c20bdabd07bc3836821690db4c86">[6af2dd34af]</a> Alexei Gradinari -- res_pjsip: New endpoint option "refer_blind_progress"</li>
-</ul><br><h3>Improvement</h3><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27043">ASTERISK-27043</a>: Core/BuildSystem: Add defines to fix build with LibreSSL<br/>Reported by: Guido Falsi<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6a64f65fe6fee96702668bdd3344233f19232850">[6a64f65fe6]</a> Guido Falsi -- BuildSystem: Add patches to allow building with recent LibreSSL</li>
-</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26419">ASTERISK-26419</a>: audiohooks: Remove redundant codec translations when using audiohooks<br/>Reported by: Michael Walton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=adfb28882bfd2055d8b54705805db573d8ce6c94">[adfb28882b]</a> Kevin Harwell -- channel: ast_write frame wrongly freed after call to audiohooks</li>
-</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26419">ASTERISK-26419</a>: audiohooks: Remove redundant codec translations when using audiohooks<br/>Reported by: Michael Walton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=adfb28882bfd2055d8b54705805db573d8ce6c94">[adfb28882b]</a> Kevin Harwell -- channel: ast_write frame wrongly freed after call to audiohooks</li>
-</ul><br><h4>Category: Core/Portability</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27042">ASTERISK-27042</a>: Unpatched asterisk sources fail to build on FreeBSD due to missing crypt.h file<br/>Reported by: Guido Falsi<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=44cee2f4a15db911d2c9bdd6f845d17a1e6c6c17">[44cee2f4a1]</a> Guido Falsi -- BuildSystem: Fix build on FreeBSD due to missing crypt.h</li>
-</ul><br><h4>Category: Resources/res_agi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26124">ASTERISK-26124</a>: res_agi: Set audio format for EAGI audio stream<br/>Reported by: John Fawcett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=90237dca11d0adf129198cef4a6a0716a52618b5">[90237dca11]</a> Sean Bright -- res_agi: Allow configuration of audio format of EAGI pipe</li>
-</ul><br><h4>Category: Resources/res_pjsip_mwi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26230">ASTERISK-26230</a>: [patch] res_pjsip_mwi: unsolicited mwi could block PJSIP taskprocessor on startup<br/>Reported by: Alexei Gradinari<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0f6a9617eb44a8d59b5828cd860d3852cc824ce9">[0f6a9617eb]</a> Alexei Gradinari -- res_pjsip_mwi: update unsolicited MWI subscriptions on updating contact</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=59c9bbe6961a5677ddb13eed2a130d16b6ffc0ee">[59c9bbe696]</a> Alexei Gradinari -- res_pjsip_mwi: don't create mwi subscriptions if initial unsolicited disabled</li>
-</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26976">ASTERISK-26976</a>: libsrtp-2.x.x support<br/>Reported by: Alex<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5e9cd1f20d86de1c25b7a9accffb7d3e2601878b">[5e9cd1f20d]</a> Sean Bright -- res_srtp: Add support for libsrtp2</li>
-</ul><br><hr><a name="open_issues"><h2 align="center">Open Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all open issues from the issue tracker that were referenced by changes that went into this release.</p><h3>Bug</h3><h4>Category: Bridges/bridge_simple</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26469">ASTERISK-26469</a>: Infinite loop after a dual Redirect<br/>Reported by: Etienne Allovon<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b07b2162359ccc9a3f84324fabce18b6ad63eee3">[b07b216235]</a> Joshua Colp -- manager: Clear the flag on the other channel.</li>
-</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27095">ASTERISK-27095</a>: chan_pjsip: When connected_line_method is set to invite, we're not trying UPDATE<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6bd7c0f37cb7b513d1333717ece0118bd8875546">[6bd7c0f37c]</a> George Joseph -- chan_pjsip:  Fix ability to send UPDATE on COLP</li>
-</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27016">ASTERISK-27016</a>: Crash occurs when a channel in a 'mixing,dtmf_events' bridge is muted multiple times.<br/>Reported by: Chris Howard<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4910a3bf402baddf8ed72badfaed7ae64da48686">[4910a3bf40]</a> Joshua Colp -- channel: Fix reference counting in ast_channel_suppress.</li>
-</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27088">ASTERISK-27088</a>: res_rtp_asterisk: Better handle ICE renegotiation and unidirectional negotiation<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0426b1d88ab97c4fc1b2b27f8da93b28096f2dfc">[0426b1d88a]</a> Joshua Colp -- res_rtp_asterisk: Fix issues with ICE renegotiation.</li>
-</ul><br><h4>Category: Resources/res_corosync</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25370">ASTERISK-25370</a>: res_corosync segfaults at startup with corosync version > 2.x<br/>Reported by: mdu113<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=005a4afa6b0e710e11b47b11cfc152b028c596fc">[005a4afa6b]</a> Jan Friesse -- res_corosync: Change thread stack size</li>
-</ul><br><h4>Category: Resources/res_pjsip_dialog_info_body_generator</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26919">ASTERISK-26919</a>: res_pjsip_dialog_info_body_generator: Ringing&&InUse behavior difference between chan_sip and res_pjsip<br/>Reported by: Zach R<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a6e4899612ca71bc3c9180dadea0c0117e8ae462">[a6e4899612]</a> Alexei Gradinari -- res_pjsip: New endpoint option "notify_early_inuse_ringing"</li>
-</ul><br><h4>Category: Resources/res_pjsip_mwi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27051">ASTERISK-27051</a>: res_pjsip_mwi: unsolicited MWI has to be unsubscribed on deleting the endpoint's last contact<br/>Reported by: Alexei Gradinari<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8e749c8f51c20fb13bfe93e969cf02d7e74cdb27">[8e749c8f51]</a> Alexei Gradinari -- res_pjsip_mwi: unsubscribe unsolicited MWI on deleting endpoint last contact</li>
-</ul><br><h4>Category: Resources/res_stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27059">ASTERISK-27059</a>: res_stasis: Stolen channel references are leaking<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=edfdb4dff5d8438bdb1dfb526c57618944ea6bf3">[edfdb4dff5]</a> George Joseph -- res_stasis:  Plug reference leak on stolen channels</li>
-</ul><br><h4>Category: Third-Party/pjproject</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27097">ASTERISK-27097</a>: pjproject_bundled:  We don't pass options needed for cross-compile to pjproject configure<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bbe68f139db525b2d922f63d8452d9732fb5f1b9">[bbe68f139d]</a> George Joseph -- pjproject_bundled:  Allow passing configure options to bundled</li>
-</ul><br><h3>Improvement</h3><h4>Category: Applications/app_voicemail/IMAP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27068">ASTERISK-27068</a>: app_voicemail: Add global option "imap_poll_logout" to specify post-polling disconnect<br/>Reported by: Alexei Gradinari<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8f356192d196ae146b0c2390f8d62024694e691f">[8f356192d1]</a> Alexei Gradinari -- app_voicemail: IMAP connection control</li>
-</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27066">ASTERISK-27066</a>: res_pjsip: Add DTMF INFO Failback mode<br/>Reported by: Torrey Searle<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9fbc34d2bd5393d93d8b3b3a8c6daa895c2e9633">[9fbc34d2bd]</a> Torrey Searle -- res_pjsip:  Add DTMF INFO Failback mode</li>
-</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27066">ASTERISK-27066</a>: res_pjsip: Add DTMF INFO Failback mode<br/>Reported by: Torrey Searle<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9fbc34d2bd5393d93d8b3b3a8c6daa895c2e9633">[9fbc34d2bd]</a> Torrey Searle -- res_pjsip:  Add DTMF INFO Failback mode</li>
-</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
-<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0c00ee754b436ca926b92b469ce259e8fdc8732e">0c00ee754b</a></td><td>George Joseph</td><td>Update for 13.17.0-rc1</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=379fe658312e11699ff8c8e8a463e31b3c277237">379fe65831</a></td><td>George Joseph</td><td>Fix alembic branches</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=905d18e8bf52ea7657acaaf2ec0cbe58531fb625">905d18e8bf</a></td><td>Richard Mudgett</td><td>pjsip_distributor.c: Fix unidentified_requests hash functions.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1f59d08924bc676970cabc6f3e291c7d1d2f2707">1f59d08924</a></td><td>Torrey Searle</td><td>res/res_pjsip_t38: fix incorrect increment of media_count</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=764d04fa8705d9e5c2e7aee8a6f1c774d7d28595">764d04fa87</a></td><td>Richard Mudgett</td><td>res_pjsip_mwi.c: Eliminate RAII_VAR in contact delete observer</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cecf6540dc4779598289f711340bb966bbfcc6aa">cecf6540dc</a></td><td>Rodrigo Ramírez Norambuena</td><td>cdr: fix mistake spelling of a word for Unanswered.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b9a4ab8c8c00c8d53584d6f7e31729b5027c8dd6">b9a4ab8c8c</a></td><td>Richard Mudgett</td><td>chan_pjsip: Fix PJSIP_MEDIA_OFFER dialplan function read.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1a209d5ac8f8b7fe96e54d6aba55dbf0dbb1403">f1a209d5ac</a></td><td>Richard Mudgett</td><td>app_voicemail.c: Fix compile error when IMAP enabled.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=68de35a6a01e2a1fe732e156b73f800bb672a421">68de35a6a0</a></td><td>David M. Lee</td><td>CFLAGS for BIND8 support</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=da3312457e6cf1c0d7bc8cb2a4aba57877fb5afc">da3312457e</a></td><td>Sean Bright</td><td>codecs.conf.sample: Fix max_bandwidth speling error</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=590ffcaf0b03bbe3d25730ad750a2075a46c7208">590ffcaf0b</a></td><td>Sean Bright</td><td>eventfd: Disable during cross compilation</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5520b6c201875133a73db5a2c88b5fc5b78864bb">5520b6c201</a></td><td>Alexei Gradinari</td><td>CHANGES: correct version for a new option 'refer_blind_progress'</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c093bf8072ff65bf29d290c1330291c460cd7fdf">c093bf8072</a></td><td>Sean Bright</td><td>res_rtp_multicast: Use consistent timestamps when possible</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c10341646d353922b4ee92c77fc4e5560d263c73">c10341646d</a></td><td>George Joseph</td><td>test_json:  Fix test names with reserved words</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=65898c3af82e2d780a48d9d50d3b1c952c208a89">65898c3af8</a></td><td>George Joseph</td><td>unittests:  Add a unit test that causes a SEGV and...</td></tr>
-</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>asterisk-13.16.0-summary.html                                                                   |  405 ---
-asterisk-13.16.0-summary.txt                                                                    |  952 ---------
-b/.version                                                                                      |    2
-b/CHANGES                                                                                       |   54
-b/ChangeLog                                                                                     | 1045 +++++++++-
-b/Makefile                                                                                      |    3
-b/addons/Makefile                                                                               |   10
-b/apps/app_chanspy.c                                                                            |   16
-b/apps/app_confbridge.c                                                                         |   79
-b/apps/app_dial.c                                                                               |    6
-b/apps/app_disa.c                                                                               |   10
-b/apps/app_dumpchan.c                                                                           |    4
-b/apps/app_externalivr.c                                                                        |    6
-b/apps/app_meetme.c                                                                             |    2
-b/apps/app_queue.c                                                                              |  109 -
-b/apps/app_voicemail.c                                                                          |   80
-b/asterisk-13.17.0-rc1-summary.html                                                             |  311 ++
-b/asterisk-13.17.0-rc1-summary.txt                                                              |  832 +++++++
-b/autoconf/ast_ext_lib.m4                                                                       |   36
-b/bridges/bridge_native_rtp.c                                                                   |  677 +++++-
-b/bridges/bridge_simple.c                                                                       |   32
-b/channels/chan_pjsip.c                                                                         |   68
-b/channels/chan_sip.c                                                                           |    8
-b/channels/pjsip/dialplan_functions.c                                                           |   37
-b/configs/samples/cdr.conf.sample                                                               |    2
-b/configs/samples/codecs.conf.sample                                                            |    6
-b/configs/samples/pjsip.conf.sample                                                             |   20
-b/configs/samples/sip.conf.sample                                                               |    3
-b/configs/samples/voicemail.conf.sample                                                         |    3
-b/configure                                                                                     |  434 +++-
-b/configure.ac                                                                                  |  100
-b/contrib/ast-db-manage/config/versions/164abbd708c_add_auto_info_to_endpoint_dtmf_mode.py      |   58
-b/contrib/ast-db-manage/config/versions/86bb1efa278d_add_ps_endpoints_refer_blind_progress.py   |   30
-b/contrib/ast-db-manage/config/versions/d7983954dd96_add_ps_endpoints_notify_early_inuse_.py    |   30
-b/contrib/realtime/mssql/mssql_config.sql                                                       |   46
-b/contrib/realtime/mysql/mysql_config.sql                                                       |   18
-b/contrib/realtime/oracle/oracle_config.sql                                                     |   46
-b/contrib/realtime/postgresql/postgresql_config.sql                                             |   22
-b/formats/format_g729.c                                                                         |    2
-b/include/asterisk/ari.h                                                                        |   10
-b/include/asterisk/autoconfig.h.in                                                              |    3
-b/include/asterisk/bridge_channel.h                                                             |    2
-b/include/asterisk/bridge_channel_internal.h                                                    |   11
-b/include/asterisk/bridge_technology.h                                                          |    3
-b/include/asterisk/channel.h                                                                    |   25
-b/include/asterisk/codec.h                                                                      |    3
-b/include/asterisk/core_local.h                                                                 |   37
-b/include/asterisk/format.h                                                                     |   11
-b/include/asterisk/res_pjsip.h                                                                  |   74
-b/include/asterisk/res_pjsip_presence_xml.h                                                     |    3
-b/include/asterisk/res_pjsip_session.h                                                          |   11
-b/include/asterisk/rtp_engine.h                                                                 |    9
-b/include/asterisk/smoother.h                                                                   |    1
-b/include/asterisk/test.h                                                                       |    8
-b/main/autoservice.c                                                                            |    2
-b/main/bridge.c                                                                                 |   10
-b/main/bridge_after.c                                                                           |    2
-b/main/bridge_channel.c                                                                         |   38
-b/main/channel.c                                                                                |   90
-b/main/codec_builtin.c                                                                          |   19
-b/main/core_local.c                                                                             |   54
-b/main/crypt.c                                                                                  |    2
-b/main/data.c                                                                                   |    4
-b/main/file.c                                                                                   |   20
-b/main/format.c                                                                                 |    8
-b/main/libasteriskssl.c                                                                         |    4
-b/main/manager.c                                                                                |    8
-b/main/pbx.c                                                                                    |    4
-b/main/pbx_app.c                                                                                |    7
-b/main/pbx_builtins.c                                                                           |    8
-b/main/tcptls.c                                                                                 |    4
-b/main/test.c                                                                                   |    4
-b/makeopts.in                                                                                   |    2
-b/res/res_agi.c                                                                                 |   73
-b/res/res_ari_applications.c                                                                    |    4
-b/res/res_ari_asterisk.c                                                                        |    4
-b/res/res_ari_bridges.c                                                                         |    4
-b/res/res_ari_channels.c                                                                        |    4
-b/res/res_ari_device_states.c                                                                   |    4
-b/res/res_ari_endpoints.c                                                                       |    4
-b/res/res_ari_events.c                                                                          |   33
-b/res/res_ari_mailboxes.c                                                                       |    4
-b/res/res_ari_playbacks.c                                                                       |    4
-b/res/res_ari_recordings.c                                                                      |    4
-b/res/res_ari_sounds.c                                                                          |    4
-b/res/res_corosync.c                                                                            |   29
-b/res/res_format_attr_h263.c                                                                    |    2
-b/res/res_format_attr_h264.c                                                                    |    2
-b/res/res_musiconhold.c                                                                         |    4
-b/res/res_pjsip.c                                                                               |   31
-b/res/res_pjsip/location.c                                                                      |   53
-b/res/res_pjsip/pjsip_configuration.c                                                           |    9
-b/res/res_pjsip/pjsip_distributor.c                                                             |  242 +-
-b/res/res_pjsip/presence_xml.c                                                                  |    9
-b/res/res_pjsip_dialog_info_body_generator.c                                                    |   10
-b/res/res_pjsip_mwi.c                                                                           |   87
-b/res/res_pjsip_pidf_body_generator.c                                                           |    2
-b/res/res_pjsip_pidf_eyebeam_body_supplement.c                                                  |    2
-b/res/res_pjsip_pubsub.c                                                                        |    8
-b/res/res_pjsip_refer.c                                                                         |   28
-b/res/res_pjsip_sdp_rtp.c                                                                       |   38
-b/res/res_pjsip_session.c                                                                       |   37
-b/res/res_pjsip_session.exports.in                                                              |    1
-b/res/res_pjsip_t38.c                                                                           |    2
-b/res/res_pjsip_transport_websocket.c                                                           |    4
-b/res/res_pjsip_xpidf_body_generator.c                                                          |    2
-b/res/res_rtp_asterisk.c                                                                        |   41
-b/res/res_rtp_multicast.c                                                                       |  139 +
-b/res/res_srtp.c                                                                                |   15
-b/res/res_stasis.c                                                                              |   20
-b/res/srtp/srtp_compat.h                                                                        |   29
-b/res/stasis_recording/stored.c                                                                 |    4
-b/rest-api-templates/res_ari_resource.c.mustache                                                |   35
-b/tests/test_bridging.c                                                                         |  292 ++
-b/tests/test_json.c                                                                             |   16
-b/tests/test_pbx.c                                                                              |   22
-b/third-party/configure.m4                                                                      |    5
-b/third-party/pjproject/Makefile                                                                |    2
-b/third-party/pjproject/Makefile.rules                                                          |    7
-b/third-party/pjproject/configure.m4                                                            |   24
-b/third-party/pjproject/patches/0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch |   16
-121 files changed, 5477 insertions(+), 2043 deletions(-)</pre><br></html>
\ No newline at end of file
diff --git a/asterisk-13.17.0-summary.txt b/asterisk-13.17.0-summary.txt
deleted file mode 100644
index f828bc4..0000000
--- a/asterisk-13.17.0-summary.txt
+++ /dev/null
@@ -1,814 +0,0 @@
-                                Release Summary
-
-                                asterisk-13.17.0
-
-                                Date: 2017-07-12
-
-                           <asteriskteam at digium.com>
-
-     ----------------------------------------------------------------------
-
-                               Table of Contents
-
-    1. Summary
-    2. Contributors
-    3. Closed Issues
-    4. Open Issues
-    5. Other Changes
-    6. Diffstat
-
-     ----------------------------------------------------------------------
-
-                                    Summary
-
-                                 [Back to Top]
-
-   This release is a point release of an existing major version. The changes
-   included were made to address problems that have been identified in this
-   release series, or are minor, backwards compatible new features or
-   improvements. Users should be able to safely upgrade to this version if
-   this release series is already in use. Users considering upgrading from a
-   previous version are strongly encouraged to review the UPGRADE.txt
-   document as well as the CHANGES document for information about upgrading
-   to this release series.
-
-   The data in this summary reflects changes that have been made since the
-   previous release, asterisk-13.16.0.
-
-     ----------------------------------------------------------------------
-
-                                  Contributors
-
-                                 [Back to Top]
-
-   This table lists the people who have submitted code, those that have
-   tested patches, as well as those that reported issues on the issue tracker
-   that were resolved in this release. For coders, the number is how many of
-   their patches (of any size) were committed into this release. For testers,
-   the number is the number of times their name was listed as assisting with
-   testing a patch. Finally, for reporters, the number is the number of
-   issues that they reported that were affected by commits that went into
-   this release.
-
-   Coders                       Testers            Reporters                  
-   17 Sean Bright                                  4 Alexei Gradinari         
-   12 George Joseph                                4 Joshua Colp              
-   10 Joshua Colp                                  3 Kevin Harwell            
-   9 Alexei Gradinari                              3 Louis Jocelyn Paquet     
-   5 Richard Mudgett                               3 Tzafrir Cohen            
-   5 Kevin Harwell                                 3 George Joseph            
-   2 Torrey Searle                                 2 Guido Falsi              
-   2 Guido Falsi                                   2 Alexander Traud          
-   2 Alexander Traud                               2 Michael Walton           
-   1 Jan Friesse                                   2 Torrey Searle            
-   1 Florian Floimair                              1 Rusty Newton             
-   1 Ivan Poddubny                                 1 Matthew Fredrickson      
-   1 Matthew Fredrickson                           1 Jacek Konieczny          
-   1 Yasin CANER                                   1 Tim Morgan               
-   1 David M. Lee                                  1 Etienne Allovon          
-   1 Robert Mordec                                 1 alex                     
-   1 JA,rgen H                                     1 Kinsey Moore             
-   1 Rodrigo Ramirez Norambuena                    1 John Harris              
-   1 Frederic LE FOLL                              1 Javier Riveros           
-   1 Corey Farrell                                 1 Sean Bright              
-                                                   1 Robert Mordec            
-                                                   1 Ross Beer                
-                                                   1 Chris Howard             
-                                                   1 mdu113                   
-                                                   1 Andrew Nowrot            
-                                                   1 'alex'                   
-                                                   1 Lorne Gaetz              
-                                                   1 Ben Langfeld             
-                                                   1 John Fawcett             
-                                                   1 Corey Farrell            
-                                                   1 Frankie Chin             
-                                                   1 Zach R                   
-                                                   1 Matthias Binder          
-                                                   1 Christopher van de Sande 
-                                                   1 Stefan EngstrAP:m        
-                                                   1 Antoine Pitrou           
-                                                   1 Alex                     
-                                                   1 Etienne Lessard          
-                                                   1 Ryan Smith               
-                                                   1 Michael Maier            
-                                                   1 OpenBSD ports            
-                                                   1 Marek Cervenka           
-                                                   1 Ronald Raikes            
-                                                   1 Ove Aursand              
-                                                   1 Richard Mudgett          
-                                                   1 Frederic LE FOLL         
-                                                   1 wushumasters             
-                                                   1 Tony Mountifield         
-                                                   1 JA,rgen H                
-                                                   1 Michel R. Vaillancourt   
-                                                   1 David Brillert           
-                                                   1 Yasin CANER              
-
-     ----------------------------------------------------------------------
-
-                                 Closed Issues
-
-                                 [Back to Top]
-
-   This is a list of all issues from the issue tracker that were closed by
-   changes that went into this release.
-
-  Bug
-
-    Category: Addons/format_mp3
-
-   ASTERISK-23951: Asterisk attempts and fails to build format_mp3 even if
-   mp3lib was not downloaded
-   Reported by: Tzafrir Cohen
-     * [97b003f5e2] Sean Bright -- format_mp3: Re-work menuselect/build
-       issues
-     * [72213c98e3] Sean Bright -- format_mp3: Don't try to build format_mp3
-       if we don't have sources
-
-    Category: Applications/app_confbridge
-
-   ASTERISK-27012: app_confbridge: ConfBridge sometimes does not play user
-   name recording while leaving
-   Reported by: Robert Mordec
-     * [f1b32de2c5] Robert Mordec -- app_confbridge: Race between removing
-       and playing name recording while leaving
-
-    Category: Applications/app_meetme
-
-   ASTERISK-27025: channel / meetme: Fix missing parentheses
-   Reported by: Joshua Colp
-     * [dc05183f4b] Joshua Colp -- channel / app_meetme: Fix parentheses.
-
-    Category: Applications/app_queue
-
-   ASTERISK-25665: Duplicate logging in queue log for EXITEMPTY events
-   Reported by: Ove Aursand
-     * [2c43ca0ac5] Ivan Poddubny -- app_queue: Fix returning to dialplan
-       when a queue is empty
-   ASTERISK-27065: call hangup after leaving app_queue
-   Reported by: Marek Cervenka
-     * [2c43ca0ac5] Ivan Poddubny -- app_queue: Fix returning to dialplan
-       when a queue is empty
-   ASTERISK-26399: app_queue: Agent not called when caller is parked
-   Reported by: wushumasters
-     * [6bfcb1acc7] Joshua Colp -- app_queue: Fix members showing as being in
-       call when not.
-   ASTERISK-26400: app_queue: Queue member stops being called after AMI
-   "Redirect" action for queues with wrapuptime
-   Reported by: Etienne Lessard
-     * [6bfcb1acc7] Joshua Colp -- app_queue: Fix members showing as being in
-       call when not.
-   ASTERISK-26715: app_queue: Member will not receive any new calls after
-   doing a transfer if wrapuptime = greater than 0 and using Local channel
-   Reported by: David Brillert
-     * [6bfcb1acc7] Joshua Colp -- app_queue: Fix members showing as being in
-       call when not.
-   ASTERISK-26975: app_queue: Non-zero wrapup time can cause agents not to
-   receive queue calls after transfer queue call
-   Reported by: Lorne Gaetz
-     * [6bfcb1acc7] Joshua Colp -- app_queue: Fix members showing as being in
-       call when not.
-
-    Category: Applications/app_voicemail/IMAP
-
-   ASTERISK-24052: app_voicemail reloads result in leaked IMAP sockets.
-   Reported by: Louis Jocelyn Paquet
-     * [8f356192d1] Alexei Gradinari -- app_voicemail: IMAP connection
-       control
-     * [3b6c327c51] Alexei Gradinari -- app_voicemail: IMAP logout on
-       reload/unload
-     * [08be5e01e8] Alexei Gradinari -- app_voicemail: IMAP logout on MWI
-       unsubscribe
-
-    Category: Bridges/bridge_simple
-
-   ASTERISK-26973: bridge: Crash when freeing frame and snooping
-   Reported by: Michel R. Vaillancourt
-     * [adfb28882b] Kevin Harwell -- channel: ast_write frame wrongly freed
-       after call to audiohooks
-
-    Category: Channels/chan_pjsip
-
-   ASTERISK-27039: chan_pjsip: Device state is idle when channel from
-   endpoint is in early media
-   Reported by: Joshua Colp
-     * [1f10c6b3b0] Joshua Colp -- chan_pjsip: Update device state when in
-       early media.
-   ASTERISK-26996: chan_pjsip: Flipping between codecs
-   Reported by: Michael Maier
-     * [996a4791ff] Joshua Colp -- pjsip: Extend 'asymmetric_rtp_codec'
-       option to include us changing.
-   ASTERISK-26281: chan_pjsip would send INVITE to 'Unreachable' endpoints
-   Reported by: Jacek Konieczny
-     * [746c2c5745] Joshua Colp -- res_pjsip: Add support for returning only
-       reachable contacts and use it.
-
-    Category: Channels/chan_sip/General
-
-   ASTERISK-27106: [patch] autodomain (SIP Domain Support): Add only really
-   different domain with TLS.
-   Reported by: Alexander Traud
-     * [39d2ebbf56] Alexander Traud -- chan_sip: Only when different, add
-       TCP|TLS in autodomain (SIP Domain Support).
-     * [9f4b3b966e] Alexander Traud -- chan_sip: Fix a typo for tlsbindaddr
-       in autodomain (SIP Domain Support).
-   ASTERISK-26982: chan_sip: rtcp_mux setting may cause ice completion
-   failure/delay if client offers rtcp-mux as negotiable
-   Reported by: Stefan EngstrAP:m
-     * [4479038073] Sean Bright -- chan_sip: Better ICE handling for RTCP-MUX
-
-    Category: Channels/chan_sip/SRTP
-
-   ASTERISK-25101: DTLS configuration can not be specified in the general
-   section - documentation
-   Reported by: Ben Langfeld
-     * [971a401ce9] Sean Bright -- sip.conf.sample: Clarify where DTLS
-       settings are permitted
-
-    Category: Codecs/General
-
-   ASTERISK-24858: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte
-   order on Intel platform when using slin codec
-   Reported by: Frankie Chin
-     * [70e5887906] Sean Bright -- format: Reintroduce smoother flags
-
-    Category: Core/Bridging
-
-   ASTERISK-27075: bridge: stuck channel(s) after failed attended transfer
-   Reported by: Kevin Harwell
-     * [67664fbf95] Kevin Harwell -- bridge: stuck channel(s) after failed
-       attended transfer
-   ASTERISK-26923: bridging: T.38 request is lost when channels are added to
-   bridge
-   Reported by: Torrey Searle
-     * [e414833f6e] Joshua Colp -- bridge: Add a deferred queue.
-
-    Category: Core/Channels
-
-   ASTERISK-27100: channel: ast_waitfordigit_full fails to clear flag in an
-   error branch.
-   Reported by: Corey Farrell
-     * [73520e9f58] Corey Farrell -- channel: Clear channel flag in error
-       branch.
-   ASTERISK-27074: core_local: local channel data not being properly unref'ed
-   and unlocked
-   Reported by: Kevin Harwell
-     * [1f9913f272] Kevin Harwell -- core_local: local channel data not being
-       properly unref'ed and unlocked
-   ASTERISK-26923: bridging: T.38 request is lost when channels are added to
-   bridge
-   Reported by: Torrey Searle
-     * [e414833f6e] Joshua Colp -- bridge: Add a deferred queue.
-   ASTERISK-27025: channel / meetme: Fix missing parentheses
-   Reported by: Joshua Colp
-     * [dc05183f4b] Joshua Colp -- channel / app_meetme: Fix parentheses.
-
-    Category: Core/General
-
-   ASTERISK-26789: Audit manipulation of channel flags without locks
-   Reported by: Joshua Colp
-     * [1618203964] Joshua Colp -- asterisk: Audit locking of channel when
-       manipulating flags.
-
-    Category: Core/PBX
-
-   ASTERISK-27041: Core/PBX: [patch] Deadlock between dialplan execution and
-   application unregistration
-   Reported by: Frederic LE FOLL
-     * [dc307af7f2] Frederic LE FOLL -- Core/PBX: Deadlock between dialplan
-       execution and application unregistration.
-
-    Category: Core/RTP
-
-   ASTERISK-26978: rtp: Crash in ast_rtp_codecs_payload_code()
-   Reported by: Ross Beer
-     * [eb48e99bd4] George Joseph -- bridge_native_rtp: Keep rtp instance
-       refs on bridge_channel
-   ASTERISK-24858: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte
-   order on Intel platform when using slin codec
-   Reported by: Frankie Chin
-     * [70e5887906] Sean Bright -- format: Reintroduce smoother flags
-
-    Category: Core/Sorcery
-
-   ASTERISK-27057: Seg Fault in ast_sorcery_object_get_id at sorcery.c
-   Reported by: Ryan Smith
-     * [c2eea791e4] George Joseph -- res_pjsip_pubsub: Fix reference to
-       released endpoint
-
-    Category: Documentation
-
-   ASTERISK-23839: AGI - RECORD FILE - documentation doesn't describe BEEP
-   argument
-   Reported by: Rusty Newton
-     * [3eb7fbba72] Sean Bright -- res_agi: Clarify 'RECORD FILE'
-       documentation
-
-    Category: General
-
-   ASTERISK-27108: Crash using 'data get' CLI command
-   Reported by: Sean Bright
-     * [6258de458b] Sean Bright -- core: Fix segfault when invoking 'data
-       get' CLI command
-   ASTERISK-27060: Comment typo format_g729.c
-   Reported by: Matthew Fredrickson
-     * [0a40073750] Matthew Fredrickson -- formats/format_g729: Fix typo in
-       comment
-
-    Category: PBX/pbx_realtime
-
-   ASTERISK-19291: Background in realtime
-   Reported by: Andrew Nowrot
-     * [283cc59af7] Sean Bright -- pbx_builtin: Properly handle hangup during
-       Background
-
-    Category: Resources/res_agi
-
-   ASTERISK-23839: AGI - RECORD FILE - documentation doesn't describe BEEP
-   argument
-   Reported by: Rusty Newton
-     * [3eb7fbba72] Sean Bright -- res_agi: Clarify 'RECORD FILE'
-       documentation
-   ASTERISK-22432: Async AGI crashes Asterisk when issuing "set variable"
-   command without args
-   Reported by: Antoine Pitrou
-     * [f306e451f6] Sean Bright -- res_agi: Prevent crash when SET VARIABLE
-       called without arguments
-   ASTERISK-25662: Malformed AGI 520 Usage response
-   Reported by: Tony Mountifield
-     * [a007e438c3] Sean Bright -- res_agi: Fix malformed AGI usage response
-
-    Category: Resources/res_ari
-
-   ASTERISK-27026: res_ari: Crash when no ari.conf configuration file exists
-   Reported by: Ronald Raikes
-     * [7901b9853e] George Joseph -- res_ari: Add "module loaded" check to
-       ari stubs
-
-    Category: Resources/res_ari_recordings
-
-   ASTERISK-27021: GET /recordings/stored returns 500 Internal Server Error
-   Reported by: Tim Morgan
-     * [cf6cf59646] Sean Bright -- stasis_recording: Correct ast_asprintf
-       error checking
-
-    Category: Resources/res_format_attr_h264
-
-   ASTERISK-27008: res_format_attr_h264: SDP parse fails if fmtp optional
-   parameters have a space
-   Reported by: John Harris
-     * [700ef6861a] Sean Bright -- res_format_attr_h26x: Trim blanks in fmtp
-       attributes
-
-    Category: Resources/res_parking
-
-   ASTERISK-26399: app_queue: Agent not called when caller is parked
-   Reported by: wushumasters
-     * [6bfcb1acc7] Joshua Colp -- app_queue: Fix members showing as being in
-       call when not.
-
-    Category: Resources/res_pjsip
-
-   ASTERISK-27090: PJSIP: Deadlock using TCP transport
-   Reported by: Richard Mudgett
-     * [0d64cbde57] Richard Mudgett -- pjsip_distributor.c: Fix deadlock with
-       TCP type transports.
-
-    Category: Resources/res_pjsip/Bundling
-
-   ASTERISK-27052: Asterisk build process fails with flag
-   --with-pjproject-bundled with curl download command and slow network
-   Reported by: alex
-     * [0bde568669] George Joseph -- pjproject_bundled: Use the asterisk
-       github mirror for download
-
-    Category: Resources/res_pjsip_refer
-
-   ASTERISK-27053: res_pjsip_refer/session: Calls dropped during transfer
-   Reported by: Kevin Harwell
-     * [6cdf3191d3] Kevin Harwell -- res_pjsip_refer/session: Calls dropped
-       during transfer
-
-    Category: Resources/res_pjsip_session
-
-   ASTERISK-27024: nat/external_media settings ignored in 14.4.1
-   Reported by: Christopher van de Sande
-     * [2dee95cc7a] Florian Floimair -- res_pjsip_session: Correct inverted
-       test in session_outgoing_nat_hook
-   ASTERISK-27053: res_pjsip_refer/session: Calls dropped during transfer
-   Reported by: Kevin Harwell
-     * [6cdf3191d3] Kevin Harwell -- res_pjsip_refer/session: Calls dropped
-       during transfer
-   ASTERISK-26964: res_pjsip_session: Wrong From on reinvite when request and
-   To URI differ
-   Reported by: Yasin CANER
-     * [36628cc9c4] Yasin CANER -- res_pjsip_session : fixed wrong From
-       Header number On Re-invite
-
-    Category: Resources/res_pjsip_transport_websocket
-
-   ASTERISK-27046: res_pjsip_transport_websocket: segfault in
-   get_write_timeout
-   Reported by: JA,rgen H
-     * [e16a669c70] JA,rgen H -- res_pjsip_transport_websocket: Add NULL
-       check in get_write_timeout
-
-    Category: Resources/res_rtp_asterisk
-
-   ASTERISK-27022: res_rtp_asterisk: Incorrect SSRC change for RTCP component
-   Reported by: Michael Walton
-     * [7dafe82751] George Joseph -- res_rtp_asterisk: Fix ssrc change for
-       rtcp srtp
-   ASTERISK-24858: [patch]Asterisk 13 PJSIP sends RTP packets in wrong byte
-   order on Intel platform when using slin codec
-   Reported by: Frankie Chin
-     * [70e5887906] Sean Bright -- format: Reintroduce smoother flags
-   ASTERISK-25101: DTLS configuration can not be specified in the general
-   section - documentation
-   Reported by: Ben Langfeld
-     * [971a401ce9] Sean Bright -- sip.conf.sample: Clarify where DTLS
-       settings are permitted
-   ASTERISK-26979: res_rtp_asterisk: SRTP unprotect failed with
-   authentication failure 10 or 110
-   Reported by: Javier Riveros
-     * [e91efef2bb] Kevin Harwell -- res_rtp_asterisk: rtcp mux using the
-       wrong srtp unprotecting algorithm
-   ASTERISK-26982: chan_sip: rtcp_mux setting may cause ice completion
-   failure/delay if client offers rtcp-mux as negotiable
-   Reported by: Stefan EngstrAP:m
-     * [4479038073] Sean Bright -- chan_sip: Better ICE handling for RTCP-MUX
-
-    Category: Resources/res_srtp
-
-   ASTERISK-25294: srtp's crypto_get_random deprecated
-   Reported by: Tzafrir Cohen
-     * [5e9cd1f20d] Sean Bright -- res_srtp: Add support for libsrtp2
-   ASTERISK-25101: DTLS configuration can not be specified in the general
-   section - documentation
-   Reported by: Ben Langfeld
-     * [971a401ce9] Sean Bright -- sip.conf.sample: Clarify where DTLS
-       settings are permitted
-   ASTERISK-26979: res_rtp_asterisk: SRTP unprotect failed with
-   authentication failure 10 or 110
-   Reported by: Javier Riveros
-     * [e91efef2bb] Kevin Harwell -- res_rtp_asterisk: rtcp mux using the
-       wrong srtp unprotecting algorithm
-
-    Category: Resources/res_stasis_snoop
-
-   ASTERISK-26973: bridge: Crash when freeing frame and snooping
-   Reported by: Michel R. Vaillancourt
-     * [adfb28882b] Kevin Harwell -- channel: ast_write frame wrongly freed
-       after call to audiohooks
-
-    Category: pjproject/pjsip
-
-   ASTERISK-26333: Problems with Blind Transfer, PJSIP (Aastra 6869i)
-   Reported by: Matthias Binder
-     * [6af2dd34af] Alexei Gradinari -- res_pjsip: New endpoint option
-       "refer_blind_progress"
-
-  Improvement
-
-    Category: Core/BuildSystem
-
-   ASTERISK-27043: Core/BuildSystem: Add defines to fix build with LibreSSL
-   Reported by: Guido Falsi
-     * [6a64f65fe6] Guido Falsi -- BuildSystem: Add patches to allow building
-       with recent LibreSSL
-
-    Category: Core/Channels
-
-   ASTERISK-26419: audiohooks: Remove redundant codec translations when using
-   audiohooks
-   Reported by: Michael Walton
-     * [adfb28882b] Kevin Harwell -- channel: ast_write frame wrongly freed
-       after call to audiohooks
-
-    Category: Core/General
-
-   ASTERISK-26419: audiohooks: Remove redundant codec translations when using
-   audiohooks
-   Reported by: Michael Walton
-     * [adfb28882b] Kevin Harwell -- channel: ast_write frame wrongly freed
-       after call to audiohooks
-
-    Category: Core/Portability
-
-   ASTERISK-27042: Unpatched asterisk sources fail to build on FreeBSD due to
-   missing crypt.h file
-   Reported by: Guido Falsi
-     * [44cee2f4a1] Guido Falsi -- BuildSystem: Fix build on FreeBSD due to
-       missing crypt.h
-
-    Category: Resources/res_agi
-
-   ASTERISK-26124: res_agi: Set audio format for EAGI audio stream
-   Reported by: John Fawcett
-     * [90237dca11] Sean Bright -- res_agi: Allow configuration of audio
-       format of EAGI pipe
-
-    Category: Resources/res_pjsip_mwi
-
-   ASTERISK-26230: [patch] res_pjsip_mwi: unsolicited mwi could block PJSIP
-   taskprocessor on startup
-   Reported by: Alexei Gradinari
-     * [0f6a9617eb] Alexei Gradinari -- res_pjsip_mwi: update unsolicited MWI
-       subscriptions on updating contact
-     * [59c9bbe696] Alexei Gradinari -- res_pjsip_mwi: don't create mwi
-       subscriptions if initial unsolicited disabled
-
-    Category: Resources/res_rtp_asterisk
-
-   ASTERISK-26976: libsrtp-2.x.x support
-   Reported by: Alex
-     * [5e9cd1f20d] Sean Bright -- res_srtp: Add support for libsrtp2
-
-     ----------------------------------------------------------------------
-
-                                  Open Issues
-
-                                 [Back to Top]
-
-   This is a list of all open issues from the issue tracker that were
-   referenced by changes that went into this release.
-
-  Bug
-
-    Category: Bridges/bridge_simple
-
-   ASTERISK-26469: Infinite loop after a dual Redirect
-   Reported by: Etienne Allovon
-     * [b07b216235] Joshua Colp -- manager: Clear the flag on the other
-       channel.
-
-    Category: Channels/chan_pjsip
-
-   ASTERISK-27095: chan_pjsip: When connected_line_method is set to invite,
-   we're not trying UPDATE
-   Reported by: George Joseph
-     * [6bd7c0f37c] George Joseph -- chan_pjsip: Fix ability to send UPDATE
-       on COLP
-
-    Category: Core/Bridging
-
-   ASTERISK-27016: Crash occurs when a channel in a 'mixing,dtmf_events'
-   bridge is muted multiple times.
-   Reported by: Chris Howard
-     * [4910a3bf40] Joshua Colp -- channel: Fix reference counting in
-       ast_channel_suppress.
-
-    Category: General
-
-   ASTERISK-27088: res_rtp_asterisk: Better handle ICE renegotiation and
-   unidirectional negotiation
-   Reported by: Joshua Colp
-     * [0426b1d88a] Joshua Colp -- res_rtp_asterisk: Fix issues with ICE
-       renegotiation.
-
-    Category: Resources/res_corosync
-
-   ASTERISK-25370: res_corosync segfaults at startup with corosync version >
-   2.x
-   Reported by: mdu113
-     * [005a4afa6b] Jan Friesse -- res_corosync: Change thread stack size
-
-    Category: Resources/res_pjsip_dialog_info_body_generator
-
-   ASTERISK-26919: res_pjsip_dialog_info_body_generator: Ringing&&InUse
-   behavior difference between chan_sip and res_pjsip
-   Reported by: Zach R
-     * [a6e4899612] Alexei Gradinari -- res_pjsip: New endpoint option
-       "notify_early_inuse_ringing"
-
-    Category: Resources/res_pjsip_mwi
-
-   ASTERISK-27051: res_pjsip_mwi: unsolicited MWI has to be unsubscribed on
-   deleting the endpoint's last contact
-   Reported by: Alexei Gradinari
-     * [8e749c8f51] Alexei Gradinari -- res_pjsip_mwi: unsubscribe
-       unsolicited MWI on deleting endpoint last contact
-
-    Category: Resources/res_stasis
-
-   ASTERISK-27059: res_stasis: Stolen channel references are leaking
-   Reported by: George Joseph
-     * [edfdb4dff5] George Joseph -- res_stasis: Plug reference leak on
-       stolen channels
-
-    Category: Third-Party/pjproject
-
-   ASTERISK-27097: pjproject_bundled: We don't pass options needed for
-   cross-compile to pjproject configure
-   Reported by: George Joseph
-     * [bbe68f139d] George Joseph -- pjproject_bundled: Allow passing
-       configure options to bundled
-
-  Improvement
-
-    Category: Applications/app_voicemail/IMAP
-
-   ASTERISK-27068: app_voicemail: Add global option "imap_poll_logout" to
-   specify post-polling disconnect
-   Reported by: Alexei Gradinari
-     * [8f356192d1] Alexei Gradinari -- app_voicemail: IMAP connection
-       control
-
-    Category: Channels/chan_pjsip
-
-   ASTERISK-27066: res_pjsip: Add DTMF INFO Failback mode
-   Reported by: Torrey Searle
-     * [9fbc34d2bd] Torrey Searle -- res_pjsip: Add DTMF INFO Failback mode
-
-    Category: Resources/res_pjsip
-
-   ASTERISK-27066: res_pjsip: Add DTMF INFO Failback mode
-   Reported by: Torrey Searle
-     * [9fbc34d2bd] Torrey Searle -- res_pjsip: Add DTMF INFO Failback mode
-
-     ----------------------------------------------------------------------
-
-                      Commits Not Associated with an Issue
-
-                                 [Back to Top]
-
-   This is a list of all changes that went into this release that did not
-   reference a JIRA issue.
-
-   +------------------------------------------------------------------------+
-   | Revision   | Author           | Summary                                |
-   |------------+------------------+----------------------------------------|
-   | 0c00ee754b | George Joseph    | Update for 13.17.0-rc1                 |
-   |------------+------------------+----------------------------------------|
-   | 379fe65831 | George Joseph    | Fix alembic branches                   |
-   |------------+------------------+----------------------------------------|
-   | 905d18e8bf | Richard Mudgett  | pjsip_distributor.c: Fix               |
-   |            |                  | unidentified_requests hash functions.  |
-   |------------+------------------+----------------------------------------|
-   | 1f59d08924 | Torrey Searle    | res/res_pjsip_t38: fix incorrect       |
-   |            |                  | increment of media_count               |
-   |------------+------------------+----------------------------------------|
-   | 764d04fa87 | Richard Mudgett  | res_pjsip_mwi.c: Eliminate RAII_VAR in |
-   |            |                  | contact delete observer                |
-   |------------+------------------+----------------------------------------|
-   | cecf6540dc | Rodrigo RamArez  | cdr: fix mistake spelling of a word    |
-   |            | Norambuena       | for Unanswered.                        |
-   |------------+------------------+----------------------------------------|
-   | b9a4ab8c8c | Richard Mudgett  | chan_pjsip: Fix PJSIP_MEDIA_OFFER      |
-   |            |                  | dialplan function read.                |
-   |------------+------------------+----------------------------------------|
-   | f1a209d5ac | Richard Mudgett  | app_voicemail.c: Fix compile error     |
-   |            |                  | when IMAP enabled.                     |
-   |------------+------------------+----------------------------------------|
-   | 68de35a6a0 | David M. Lee     | CFLAGS for BIND8 support               |
-   |------------+------------------+----------------------------------------|
-   | da3312457e | Sean Bright      | codecs.conf.sample: Fix max_bandwidth  |
-   |            |                  | speling error                          |
-   |------------+------------------+----------------------------------------|
-   | 590ffcaf0b | Sean Bright      | eventfd: Disable during cross          |
-   |            |                  | compilation                            |
-   |------------+------------------+----------------------------------------|
-   | 5520b6c201 | Alexei Gradinari | CHANGES: correct version for a new     |
-   |            |                  | option 'refer_blind_progress'          |
-   |------------+------------------+----------------------------------------|
-   | c093bf8072 | Sean Bright      | res_rtp_multicast: Use consistent      |
-   |            |                  | timestamps when possible               |
-   |------------+------------------+----------------------------------------|
-   | c10341646d | George Joseph    | test_json: Fix test names with         |
-   |            |                  | reserved words                         |
-   |------------+------------------+----------------------------------------|
-   | 65898c3af8 | George Joseph    | unittests: Add a unit test that causes |
-   |            |                  | a SEGV and...                          |
-   +------------------------------------------------------------------------+
-
-     ----------------------------------------------------------------------
-
-                                Diffstat Results
-
-                                 [Back to Top]
-
-   This is a summary of the changes to the source code that went into this
-   release that was generated using the diffstat utility.
-
- asterisk-13.16.0-summary.html                                                                   |  405 ---
- asterisk-13.16.0-summary.txt                                                                    |  952 ---------
- b/.version                                                                                      |    2
- b/CHANGES                                                                                       |   54
- b/ChangeLog                                                                                     | 1045 +++++++++-
- b/Makefile                                                                                      |    3
- b/addons/Makefile                                                                               |   10
- b/apps/app_chanspy.c                                                                            |   16
- b/apps/app_confbridge.c                                                                         |   79
- b/apps/app_dial.c                                                                               |    6
- b/apps/app_disa.c                                                                               |   10
- b/apps/app_dumpchan.c                                                                           |    4
- b/apps/app_externalivr.c                                                                        |    6
- b/apps/app_meetme.c                                                                             |    2
- b/apps/app_queue.c                                                                              |  109 -
- b/apps/app_voicemail.c                                                                          |   80
- b/asterisk-13.17.0-rc1-summary.html                                                             |  311 ++
- b/asterisk-13.17.0-rc1-summary.txt                                                              |  832 +++++++
- b/autoconf/ast_ext_lib.m4                                                                       |   36
- b/bridges/bridge_native_rtp.c                                                                   |  677 +++++-
- b/bridges/bridge_simple.c                                                                       |   32
- b/channels/chan_pjsip.c                                                                         |   68
- b/channels/chan_sip.c                                                                           |    8
- b/channels/pjsip/dialplan_functions.c                                                           |   37
- b/configs/samples/cdr.conf.sample                                                               |    2
- b/configs/samples/codecs.conf.sample                                                            |    6
- b/configs/samples/pjsip.conf.sample                                                             |   20
- b/configs/samples/sip.conf.sample                                                               |    3
- b/configs/samples/voicemail.conf.sample                                                         |    3
- b/configure                                                                                     |  434 +++-
- b/configure.ac                                                                                  |  100
- b/contrib/ast-db-manage/config/versions/164abbd708c_add_auto_info_to_endpoint_dtmf_mode.py      |   58
- b/contrib/ast-db-manage/config/versions/86bb1efa278d_add_ps_endpoints_refer_blind_progress.py   |   30
- b/contrib/ast-db-manage/config/versions/d7983954dd96_add_ps_endpoints_notify_early_inuse_.py    |   30
- b/contrib/realtime/mssql/mssql_config.sql                                                       |   46
- b/contrib/realtime/mysql/mysql_config.sql                                                       |   18
- b/contrib/realtime/oracle/oracle_config.sql                                                     |   46
- b/contrib/realtime/postgresql/postgresql_config.sql                                             |   22
- b/formats/format_g729.c                                                                         |    2
- b/include/asterisk/ari.h                                                                        |   10
- b/include/asterisk/autoconfig.h.in                                                              |    3
- b/include/asterisk/bridge_channel.h                                                             |    2
- b/include/asterisk/bridge_channel_internal.h                                                    |   11
- b/include/asterisk/bridge_technology.h                                                          |    3
- b/include/asterisk/channel.h                                                                    |   25
- b/include/asterisk/codec.h                                                                      |    3
- b/include/asterisk/core_local.h                                                                 |   37
- b/include/asterisk/format.h                                                                     |   11
- b/include/asterisk/res_pjsip.h                                                                  |   74
- b/include/asterisk/res_pjsip_presence_xml.h                                                     |    3
- b/include/asterisk/res_pjsip_session.h                                                          |   11
- b/include/asterisk/rtp_engine.h                                                                 |    9
- b/include/asterisk/smoother.h                                                                   |    1
- b/include/asterisk/test.h                                                                       |    8
- b/main/autoservice.c                                                                            |    2
- b/main/bridge.c                                                                                 |   10
- b/main/bridge_after.c                                                                           |    2
- b/main/bridge_channel.c                                                                         |   38
- b/main/channel.c                                                                                |   90
- b/main/codec_builtin.c                                                                          |   19
- b/main/core_local.c                                                                             |   54
- b/main/crypt.c                                                                                  |    2
- b/main/data.c                                                                                   |    4
- b/main/file.c                                                                                   |   20
- b/main/format.c                                                                                 |    8
- b/main/libasteriskssl.c                                                                         |    4
- b/main/manager.c                                                                                |    8
- b/main/pbx.c                                                                                    |    4
- b/main/pbx_app.c                                                                                |    7
- b/main/pbx_builtins.c                                                                           |    8
- b/main/tcptls.c                                                                                 |    4
- b/main/test.c                                                                                   |    4
- b/makeopts.in                                                                                   |    2
- b/res/res_agi.c                                                                                 |   73
- b/res/res_ari_applications.c                                                                    |    4
- b/res/res_ari_asterisk.c                                                                        |    4
- b/res/res_ari_bridges.c                                                                         |    4
- b/res/res_ari_channels.c                                                                        |    4
- b/res/res_ari_device_states.c                                                                   |    4
- b/res/res_ari_endpoints.c                                                                       |    4
- b/res/res_ari_events.c                                                                          |   33
- b/res/res_ari_mailboxes.c                                                                       |    4
- b/res/res_ari_playbacks.c                                                                       |    4
- b/res/res_ari_recordings.c                                                                      |    4
- b/res/res_ari_sounds.c                                                                          |    4
- b/res/res_corosync.c                                                                            |   29
- b/res/res_format_attr_h263.c                                                                    |    2
- b/res/res_format_attr_h264.c                                                                    |    2
- b/res/res_musiconhold.c                                                                         |    4
- b/res/res_pjsip.c                                                                               |   31
- b/res/res_pjsip/location.c                                                                      |   53
- b/res/res_pjsip/pjsip_configuration.c                                                           |    9
- b/res/res_pjsip/pjsip_distributor.c                                                             |  242 +-
- b/res/res_pjsip/presence_xml.c                                                                  |    9
- b/res/res_pjsip_dialog_info_body_generator.c                                                    |   10
- b/res/res_pjsip_mwi.c                                                                           |   87
- b/res/res_pjsip_pidf_body_generator.c                                                           |    2
- b/res/res_pjsip_pidf_eyebeam_body_supplement.c                                                  |    2
- b/res/res_pjsip_pubsub.c                                                                        |    8
- b/res/res_pjsip_refer.c                                                                         |   28
- b/res/res_pjsip_sdp_rtp.c                                                                       |   38
- b/res/res_pjsip_session.c                                                                       |   37
- b/res/res_pjsip_session.exports.in                                                              |    1
- b/res/res_pjsip_t38.c                                                                           |    2
- b/res/res_pjsip_transport_websocket.c                                                           |    4
- b/res/res_pjsip_xpidf_body_generator.c                                                          |    2
- b/res/res_rtp_asterisk.c                                                                        |   41
- b/res/res_rtp_multicast.c                                                                       |  139 +
- b/res/res_srtp.c                                                                                |   15
- b/res/res_stasis.c                                                                              |   20
- b/res/srtp/srtp_compat.h                                                                        |   29
- b/res/stasis_recording/stored.c                                                                 |    4
- b/rest-api-templates/res_ari_resource.c.mustache                                                |   35
- b/tests/test_bridging.c                                                                         |  292 ++
- b/tests/test_json.c                                                                             |   16
- b/tests/test_pbx.c                                                                              |   22
- b/third-party/configure.m4                                                                      |    5
- b/third-party/pjproject/Makefile                                                                |    2
- b/third-party/pjproject/Makefile.rules                                                          |    7
- b/third-party/pjproject/configure.m4                                                            |   24
- b/third-party/pjproject/patches/0070-Set-PJSIP_INV_SUPPORT_UPDATE-correctly-in-pjsip_inv_.patch |   16
- 121 files changed, 5477 insertions(+), 2043 deletions(-)
diff --git a/asterisk-13.17.1-summary.html b/asterisk-13.17.1-summary.html
new file mode 100644
index 0000000..c0800c2
--- /dev/null
+++ b/asterisk-13.17.1-summary.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-13.17.1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.17.1</h3><h3 align="center">Date: 2017-08-31</h3><h3 align="center"><asteriskteam at digium.com></h3><hr><h2 align="center">Table of Contents</h2><ol>
+<li><a href="#summary">Summary</a></li>
+<li><a href="#contributors">Contributors</a></li>
+<li><a href="#closed_issues">Closed Issues</a></li>
+<li><a href="#diffstat">Diffstat</a></li>
+</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems fr [...]
+<li><a href="http://downloads.asterisk.org/pub/security/AST-2017-005,AST-2017-006,AST-2017-007.html">AST-2017-005,AST-2017-006,AST-2017-007</a></li>
+</ul><p>The data in this summary reflects changes that have been made since the previous release, asterisk-13.17.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were com [...]
+<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
+<tr valign="top"><td width="33%">1 George Joseph <gjoseph at digium.com><br/>1 Corey Farrell <git at cfware.com><br/>1 Joshua Colp <jcolp at digium.com><br/></td><td width="33%"><td width="33%">1 Ross Beer <ross.beer at voicehost.co.uk><br/>1 Corey Farrell <git at cfware.com><br/>1 Ross Beer<br/>1 Joshua Colp <jcolp at digium.com><br/></td></tr>
+</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Bug</h3><h4>Category: Applications/app_minivm</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Applications/app_mixmonitor</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Applications/app_system</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Channels/chan_dahdi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Functions/func_shell</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27152">ASTERISK-27152</a>: Sending a "tel" uri in a From or To header in an unauthenticated message causes asterisk to crash<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0e5b7743d9c038d49c0fb10382fdbac21b212040">[0e5b7743d9]</a> George Joseph -- pjsip_message_ip_updater:  Fix issue handling "tel" URIs</li>
+</ul><br><h4>Category: Resources/res_monitor</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27103">ASTERISK-27103</a>: core: ast_safe_system command injection possible.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707892089dccccb8dba2fe572cdeb759a449640a">[707892089d]</a> Corey Farrell -- AST-2017-006: Fix app_minivm application MinivmNotify command injection</li>
+</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27013">ASTERISK-27013</a>: res_rtp_asterisk: Media can be hijacked even with strict RTP enabled<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3ee5c6dcbe6cec373f2519c70ab575955b532cd5">[3ee5c6dcbe]</a> Joshua Colp -- res_rtp_asterisk: Only learn a new source in learn state.</li>
+</ul><br><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>README-SERIOUSLY.bestpractices.txt       |    7 ++
+apps/app_minivm.c                        |   36 ++++++++----
+apps/app_mixmonitor.c                    |   15 +++++
+apps/app_system.c                        |   10 +++
+configs/samples/minivm.conf.sample       |    2
+funcs/func_shell.c                       |    5 +
+include/asterisk/app.h                   |   31 +++++++++-
+main/asterisk.c                          |   91 ++++++++++++++++++++++++++-----
+res/res_monitor.c                        |   13 +++-
+res/res_pjsip/pjsip_message_ip_updater.c |   56 ++++++++++++++-----
+res/res_rtp_asterisk.c                   |   79 ++++++++++++++------------
+11 files changed, 265 insertions(+), 80 deletions(-)</pre><br></html>
\ No newline at end of file
diff --git a/asterisk-13.17.1-summary.txt b/asterisk-13.17.1-summary.txt
new file mode 100644
index 0000000..7a8fc4f
--- /dev/null
+++ b/asterisk-13.17.1-summary.txt
@@ -0,0 +1,162 @@
+                                Release Summary
+
+                                asterisk-13.17.1
+
+                                Date: 2017-08-31
+
+                           <asteriskteam at digium.com>
+
+     ----------------------------------------------------------------------
+
+                               Table of Contents
+
+    1. Summary
+    2. Contributors
+    3. Closed Issues
+    4. Diffstat
+
+     ----------------------------------------------------------------------
+
+                                    Summary
+
+                                 [Back to Top]
+
+   This release has been made to address one or more security vulnerabilities
+   that have been identified. A security advisory document has been published
+   for each vulnerability that includes additional information. Users of
+   versions of Asterisk that are affected are strongly encouraged to review
+   the advisories and determine what action they should take to protect their
+   systems from these issues.
+
+   Security Advisories:
+
+     * AST-2017-005,AST-2017-006,AST-2017-007
+
+   The data in this summary reflects changes that have been made since the
+   previous release, asterisk-13.17.0.
+
+     ----------------------------------------------------------------------
+
+                                  Contributors
+
+                                 [Back to Top]
+
+   This table lists the people who have submitted code, those that have
+   tested patches, as well as those that reported issues on the issue tracker
+   that were resolved in this release. For coders, the number is how many of
+   their patches (of any size) were committed into this release. For testers,
+   the number is the number of times their name was listed as assisting with
+   testing a patch. Finally, for reporters, the number is the number of
+   issues that they reported that were affected by commits that went into
+   this release.
+
+   Coders                   Testers                  Reporters                
+   1 George Joseph                                   1 Ross Beer              
+   1 Corey Farrell                                   1 Corey Farrell          
+   1 Joshua Colp                                     1 Ross Beer              
+                                                     1 Joshua Colp            
+
+     ----------------------------------------------------------------------
+
+                                 Closed Issues
+
+                                 [Back to Top]
+
+   This is a list of all issues from the issue tracker that were closed by
+   changes that went into this release.
+
+  Bug
+
+    Category: Applications/app_minivm
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Applications/app_mixmonitor
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Applications/app_system
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Applications/app_voicemail
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Channels/chan_dahdi
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Core/General
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Functions/func_shell
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: General
+
+   ASTERISK-27152: Sending a "tel" uri in a From or To header in an
+   unauthenticated message causes asterisk to crash
+   Reported by: Ross Beer
+     * [0e5b7743d9] George Joseph -- pjsip_message_ip_updater: Fix issue
+       handling "tel" URIs
+
+    Category: Resources/res_monitor
+
+   ASTERISK-27103: core: ast_safe_system command injection possible.
+   Reported by: Corey Farrell
+     * [707892089d] Corey Farrell -- AST-2017-006: Fix app_minivm application
+       MinivmNotify command injection
+
+    Category: Resources/res_rtp_asterisk
+
+   ASTERISK-27013: res_rtp_asterisk: Media can be hijacked even with strict
+   RTP enabled
+   Reported by: Joshua Colp
+     * [3ee5c6dcbe] Joshua Colp -- res_rtp_asterisk: Only learn a new source
+       in learn state.
+
+     ----------------------------------------------------------------------
+
+                                Diffstat Results
+
+                                 [Back to Top]
+
+   This is a summary of the changes to the source code that went into this
+   release that was generated using the diffstat utility.
+
+ README-SERIOUSLY.bestpractices.txt       |    7 ++
+ apps/app_minivm.c                        |   36 ++++++++----
+ apps/app_mixmonitor.c                    |   15 +++++
+ apps/app_system.c                        |   10 +++
+ configs/samples/minivm.conf.sample       |    2
+ funcs/func_shell.c                       |    5 +
+ include/asterisk/app.h                   |   31 +++++++++-
+ main/asterisk.c                          |   91 ++++++++++++++++++++++++++-----
+ res/res_monitor.c                        |   13 +++-
+ res/res_pjsip/pjsip_message_ip_updater.c |   56 ++++++++++++++-----
+ res/res_rtp_asterisk.c                   |   79 ++++++++++++++------------
+ 11 files changed, 265 insertions(+), 80 deletions(-)
diff --git a/configs/samples/minivm.conf.sample b/configs/samples/minivm.conf.sample
index 2df3449..79fdbb0 100644
--- a/configs/samples/minivm.conf.sample
+++ b/configs/samples/minivm.conf.sample
@@ -51,7 +51,7 @@ silencethreshold=128
 ; If you need to have an external program, i.e. /usr/bin/myapp called when a
 ; voicemail is received by the server. The arguments are
 ;
-; 	<app> <username at domain> <callerid-number> <callerid-name>
+; 	<app> <username at domain> <callerid-name> <callerid-number>
 ;
 ;externnotify=/usr/bin/myapp
 ; The character set for voicemail messages can be specified here
diff --git a/funcs/func_shell.c b/funcs/func_shell.c
index e403efc..79b7f99 100644
--- a/funcs/func_shell.c
+++ b/funcs/func_shell.c
@@ -84,6 +84,11 @@ static int shell_helper(struct ast_channel *chan, const char *cmd, char *data,
 		<syntax>
 			<parameter name="command" required="true">
 				<para>The command that the shell should execute.</para>
+				<warning><para>Do not use untrusted strings such as <variable>CALLERID(num)</variable>
+				or <variable>CALLERID(name)</variable> as part of the command parameters.  You
+				risk a command injection attack executing arbitrary commands if the untrusted
+				strings aren't filtered to remove dangerous characters.  See function
+				<variable>FILTER()</variable>.</para></warning>
 			</parameter>
 		</syntax>
 		<description>
diff --git a/include/asterisk/app.h b/include/asterisk/app.h
index 86336e3..5b10b1c 100644
--- a/include/asterisk/app.h
+++ b/include/asterisk/app.h
@@ -871,9 +871,34 @@ int ast_vm_test_destroy_user(const char *context, const char *mailbox);
 int ast_vm_test_create_user(const char *context, const char *mailbox);
 #endif
 
-/*! \brief Safely spawn an external program while closing file descriptors
-	\note This replaces the \b system call in all Asterisk modules
-*/
+/*!
+ * \brief Safely spawn an external program while closing file descriptors
+ *
+ * \note This replaces the \b execvp call in all Asterisk modules
+ *
+ * \param dualfork Non-zero to simulate running the program in the
+ * background by forking twice.  The option provides similar
+ * functionality to the '&' in the OS shell command "cmd &".  The
+ * option allows Asterisk to run a reaper loop to watch the first fork
+ * which immediately exits after spaning the second fork.  The actual
+ * program is run in the second fork.
+ * \param file execvp(file, argv) file parameter
+ * \param argv execvp(file, argv) argv parameter
+ */
+int ast_safe_execvp(int dualfork, const char *file, char *const argv[]);
+
+/*!
+ * \brief Safely spawn an OS shell command while closing file descriptors
+ *
+ * \note This replaces the \b system call in all Asterisk modules
+ *
+ * \param s - OS shell command string to execute.
+ *
+ * \warning Command injection can happen using this call if the passed
+ * in string is created using untrusted data from an external source.
+ * It is best not to use untrusted data.  However, the caller could
+ * filter out dangerous characters to avoid command injection.
+ */
 int ast_safe_system(const char *s);
 
 /*!
diff --git a/main/asterisk.c b/main/asterisk.c
index e256276..42f58c5 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -1283,11 +1283,10 @@ void ast_unreplace_sigchld(void)
 	ast_mutex_unlock(&safe_system_lock);
 }
 
-int ast_safe_system(const char *s)
+/*! \brief fork and perform other preparations for spawning applications */
+static pid_t safe_exec_prep(int dualfork)
 {
 	pid_t pid;
-	int res;
-	int status;
 
 #if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
 	ast_replace_sigchld();
@@ -1309,35 +1308,101 @@ int ast_safe_system(const char *s)
 		cap_free(cap);
 #endif
 #ifdef HAVE_WORKING_FORK
-		if (ast_opt_high_priority)
+		if (ast_opt_high_priority) {
 			ast_set_priority(0);
+		}
 		/* Close file descriptors and launch system command */
 		ast_close_fds_above_n(STDERR_FILENO);
 #endif
-		execl("/bin/sh", "/bin/sh", "-c", s, (char *) NULL);
-		_exit(1);
-	} else if (pid > 0) {
+		if (dualfork) {
+#ifdef HAVE_WORKING_FORK
+			pid = fork();
+#else
+			pid = vfork();
+#endif
+			if (pid < 0) {
+				/* Second fork failed. */
+				/* No logger available. */
+				_exit(1);
+			}
+
+			if (pid > 0) {
+				/* This is the first fork, exit so the reaper finishes right away. */
+				_exit(0);
+			}
+
+			/* This is the second fork.  The first fork will exit immediately so
+			 * Asterisk doesn't have to wait for completion.
+			 * ast_safe_system("cmd &") would run in the background, but the '&'
+			 * cannot be added with ast_safe_execvp, so we have to double fork.
+			 */
+		}
+	}
+
+	if (pid < 0) {
+		ast_log(LOG_WARNING, "Fork failed: %s\n", strerror(errno));
+	}
+#else
+	ast_log(LOG_WARNING, "Fork failed: %s\n", strerror(ENOTSUP));
+	pid = -1;
+#endif
+
+	return pid;
+}
+
+/*! \brief wait for spawned application to complete and unreplace sigchld */
+static int safe_exec_wait(pid_t pid)
+{
+	int res = -1;
+
+#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
+	if (pid > 0) {
 		for (;;) {
+			int status;
+
 			res = waitpid(pid, &status, 0);
 			if (res > -1) {
 				res = WIFEXITED(status) ? WEXITSTATUS(status) : -1;
 				break;
-			} else if (errno != EINTR)
+			}
+			if (errno != EINTR) {
 				break;
+			}
 		}
-	} else {
-		ast_log(LOG_WARNING, "Fork failed: %s\n", strerror(errno));
-		res = -1;
 	}
 
 	ast_unreplace_sigchld();
-#else /* !defined(HAVE_WORKING_FORK) && !defined(HAVE_WORKING_VFORK) */
-	res = -1;
 #endif
 
 	return res;
 }
 
+int ast_safe_execvp(int dualfork, const char *file, char *const argv[])
+{
+	pid_t pid = safe_exec_prep(dualfork);
+
+	if (pid == 0) {
+		execvp(file, argv);
+		_exit(1);
+		/* noreturn from _exit */
+	}
+
+	return safe_exec_wait(pid);
+}
+
+int ast_safe_system(const char *s)
+{
+	pid_t pid = safe_exec_prep(0);
+
+	if (pid == 0) {
+		execl("/bin/sh", "/bin/sh", "-c", s, (char *) NULL);
+		_exit(1);
+		/* noreturn from _exit */
+	}
+
+	return safe_exec_wait(pid);
+}
+
 /*!
  * \brief enable or disable a logging level to a specified console
  */
diff --git a/res/res_monitor.c b/res/res_monitor.c
index ebf9843..0058592 100644
--- a/res/res_monitor.c
+++ b/res/res_monitor.c
@@ -62,17 +62,17 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 		<syntax>
 			<parameter name="file_format" argsep=":">
 				<argument name="file_format" required="true">
-					<para>optional, if not set, defaults to <literal>wav</literal></para>
+					<para>Optional.  If not set, defaults to <literal>wav</literal></para>
 				</argument>
 				<argument name="urlbase" />
 			</parameter>
 			<parameter name="fname_base">
-				<para>if set, changes the filename used to the one specified.</para>
+				<para>If set, changes the filename used to the one specified.</para>
 			</parameter>
 			<parameter name="options">
 				<optionlist>
 					<option name="m">
-						<para>when the recording ends mix the two leg files into one and
+						<para>When the recording ends mix the two leg files into one and
 						delete the two leg files. If the variable <variable>MONITOR_EXEC</variable>
 						is set, the application referenced in it will be executed instead of
 						soxmix/sox and the raw leg files will NOT be deleted automatically.
@@ -83,6 +83,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 						will be passed on as additional arguments to <variable>MONITOR_EXEC</variable>.
 						Both <variable>MONITOR_EXEC</variable> and the Mix flag can be set from the
 						administrator interface.</para>
+						<warning><para>Do not use untrusted strings such as
+						<variable>CALLERID(num)</variable> or <variable>CALLERID(name)</variable>
+						as part of <variable>MONITOR_EXEC</variable> or
+						<variable>MONITOR_EXEC_ARGS</variable>.  You risk a command injection
+						attack executing arbitrary commands if the untrusted strings aren't
+						filtered to remove dangerous characters.  See function
+						<variable>FILTER()</variable>.</para></warning>
 					</option>
 					<option name="b">
 						<para>Don't begin recording unless a call is bridged to another channel.</para>
diff --git a/res/res_pjsip/pjsip_message_ip_updater.c b/res/res_pjsip/pjsip_message_ip_updater.c
index 2d07464..099ecaa 100644
--- a/res/res_pjsip/pjsip_message_ip_updater.c
+++ b/res/res_pjsip/pjsip_message_ip_updater.c
@@ -153,7 +153,16 @@ static int multihomed_rewrite_sdp(struct pjmedia_sdp_session *sdp)
 	return 0;
 }
 
-static void sanitize_tdata(pjsip_tx_data *tdata)
+#define is_sip_uri(uri) \
+	(PJSIP_URI_SCHEME_IS_SIP(uri) || PJSIP_URI_SCHEME_IS_SIPS(uri))
+
+#ifdef AST_DEVMODE
+#define FUNC_ATTRS __attribute__ ((noinline))
+#else
+#define FUNC_ATTRS
+#endif
+
+static void FUNC_ATTRS sanitize_tdata(pjsip_tx_data *tdata)
 {
 	static const pj_str_t x_name = { AST_SIP_X_AST_TXP, AST_SIP_X_AST_TXP_LEN };
 	pjsip_param *x_transport;
@@ -161,29 +170,50 @@ static void sanitize_tdata(pjsip_tx_data *tdata)
 	pjsip_fromto_hdr *fromto;
 	pjsip_contact_hdr *contact;
 	pjsip_hdr *hdr;
+#ifdef AST_DEVMODE
+	char hdrbuf[512];
+	int hdrbuf_len;
+#endif
 
 	if (tdata->msg->type == PJSIP_REQUEST_MSG) {
-		uri = pjsip_uri_get_uri(tdata->msg->line.req.uri);
-		x_transport = pjsip_param_find(&uri->other_param, &x_name);
-		if (x_transport) {
-			pj_list_erase(x_transport);
+		if (is_sip_uri(tdata->msg->line.req.uri)) {
+			uri = pjsip_uri_get_uri(tdata->msg->line.req.uri);
+#ifdef AST_DEVMODE
+			hdrbuf_len = pjsip_uri_print(PJSIP_URI_IN_REQ_URI, uri, hdrbuf, 512);
+			ast_debug(2, "Sanitizing Request: %s\n", hdrbuf);
+#endif
+			while ((x_transport = pjsip_param_find(&uri->other_param, &x_name))) {
+				pj_list_erase(x_transport);
+			}
 		}
 	}
 
 	for (hdr = tdata->msg->hdr.next; hdr != &tdata->msg->hdr; hdr = hdr->next) {
 		if (hdr->type == PJSIP_H_TO || hdr->type == PJSIP_H_FROM) {
 			fromto = (pjsip_fromto_hdr *) hdr;
-			uri = pjsip_uri_get_uri(fromto->uri);
-			x_transport = pjsip_param_find(&uri->other_param, &x_name);
-			if (x_transport) {
-				pj_list_erase(x_transport);
+			if (is_sip_uri(fromto->uri)) {
+				uri = pjsip_uri_get_uri(fromto->uri);
+#ifdef AST_DEVMODE
+				hdrbuf_len = pjsip_uri_print(PJSIP_URI_IN_FROMTO_HDR, uri, hdrbuf, 512);
+				hdrbuf[hdrbuf_len] = '\0';
+				ast_debug(2, "Sanitizing From/To: %s\n", hdrbuf);
+#endif
+				while ((x_transport = pjsip_param_find(&uri->other_param, &x_name))) {
+					pj_list_erase(x_transport);
+				}
 			}
 		} else if (hdr->type == PJSIP_H_CONTACT) {
 			contact = (pjsip_contact_hdr *) hdr;
-			uri = pjsip_uri_get_uri(contact->uri);
-			x_transport = pjsip_param_find(&uri->other_param, &x_name);
-			if (x_transport) {
-				pj_list_erase(x_transport);
+			if (is_sip_uri(contact->uri)) {
+				uri = pjsip_uri_get_uri(contact->uri);
+#ifdef AST_DEVMODE
+				hdrbuf_len = pjsip_uri_print(PJSIP_URI_IN_CONTACT_HDR, uri, hdrbuf, 512);
+				hdrbuf[hdrbuf_len] = '\0';
+				ast_debug(2, "Sanitizing Contact: %s\n", hdrbuf);
+#endif
+				while ((x_transport = pjsip_param_find(&uri->other_param, &x_name))) {
+					pj_list_erase(x_transport);
+				}
 			}
 		}
 	}
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index d047022..018af0d 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -218,8 +218,9 @@ static AST_RWLIST_HEAD_STATIC(host_candidates, ast_ice_host_candidate);
 
 /*! \brief RTP learning mode tracking information */
 struct rtp_learning_info {
-	int max_seq;	/*!< The highest sequence number received */
-	int packets;	/*!< The number of remaining packets before the source is accepted */
+	int max_seq;	 /*!< The highest sequence number received */
+	int packets;	 /*!< The number of remaining packets before the source is accepted */
+	struct timeval received; /*!< The time of the last received packet */
 };
 
 #ifdef HAVE_OPENSSL_SRTP
@@ -311,7 +312,6 @@ struct ast_rtp {
 	 * but these are in place to keep learning mode sequence values sealed from their normal counterparts.
 	 */
 	struct rtp_learning_info rtp_source_learn;	/* Learning mode track for the expected RTP source */
-	struct rtp_learning_info alt_source_learn;	/* Learning mode tracking for a new RTP source after one has been chosen */
 
 	struct rtp_red *red;
 
@@ -2706,6 +2706,7 @@ static void rtp_learning_seq_init(struct rtp_learning_info *info, uint16_t seq)
 {
 	info->max_seq = seq - 1;
 	info->packets = learning_min_sequential;
+	memset(&info->received, 0, sizeof(info->received));
 }
 
 /*!
@@ -2720,6 +2721,13 @@ static void rtp_learning_seq_init(struct rtp_learning_info *info, uint16_t seq)
  */
 static int rtp_learning_rtp_seq_update(struct rtp_learning_info *info, uint16_t seq)
 {
+	if (!ast_tvzero(info->received) && ast_tvdiff_ms(ast_tvnow(), info->received) < 5) {
+		/* During the probation period the minimum amount of media we'll accept is
+		 * 10ms so give a reasonable 5ms buffer just in case we get it sporadically.
+		 */
+		return 1;
+	}
+
 	if (seq == info->max_seq + 1) {
 		/* packet is in sequence */
 		info->packets--;
@@ -2728,6 +2736,7 @@ static int rtp_learning_rtp_seq_update(struct rtp_learning_info *info, uint16_t
 		info->packets = learning_min_sequential - 1;
 	}
 	info->max_seq = seq;
+	info->received = ast_tvnow();
 
 	return (info->packets == 0);
 }
@@ -3002,10 +3011,9 @@ static int ast_rtp_new(struct ast_rtp_instance *instance,
 	/* Set default parameters on the newly created RTP structure */
 	rtp->ssrc = ast_random();
 	rtp->seqno = ast_random() & 0x7fff;
-	rtp->strict_rtp_state = (strictrtp ? STRICT_RTP_LEARN : STRICT_RTP_OPEN);
+	rtp->strict_rtp_state = (strictrtp ? STRICT_RTP_CLOSED : STRICT_RTP_OPEN);
 	if (strictrtp) {
 		rtp_learning_seq_init(&rtp->rtp_source_learn, (uint16_t)rtp->seqno);
-		rtp_learning_seq_init(&rtp->alt_source_learn, (uint16_t)rtp->seqno);
 	}
 
 	/* Create a new socket for us to listen on and use */
@@ -4546,17 +4554,6 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c
 
 	packetwords = size / 4;
 
-	if (ast_rtp_instance_get_prop(instance, AST_RTP_PROPERTY_NAT)) {
-		/* Send to whoever sent to us */
-		if (ast_sockaddr_cmp(&rtp->rtcp->them, addr)) {
-			ast_sockaddr_copy(&rtp->rtcp->them, addr);
-			if (rtpdebug) {
-				ast_debug(0, "RTCP NAT: Got RTCP from other end. Now sending to address %s\n",
-					  ast_sockaddr_stringify(&rtp->rtcp->them));
-			}
-		}
-	}
-
 	ast_debug(1, "Got RTCP report of %zu bytes\n", size);
 
 	while (position < packetwords) {
@@ -4585,6 +4582,25 @@ static struct ast_frame *ast_rtcp_interpret(struct ast_rtp_instance *instance, c
 			return &ast_null_frame;
 		}
 
+		if ((rtp->strict_rtp_state != STRICT_RTP_OPEN) && (rtcp_report->ssrc != rtp->themssrc)) {
+			/* Skip over this RTCP record as it does not contain the correct SSRC */
+			position += (length + 1);
+			ast_debug(1, "%p -- Received RTCP report from %s, dropping due to strict RTP protection. Received SSRC '%u' but expected '%u'\n",
+				rtp, ast_sockaddr_stringify(addr), rtcp_report->ssrc, rtp->themssrc);
+			continue;
+		}
+
+		if (ast_rtp_instance_get_prop(instance, AST_RTP_PROPERTY_NAT)) {
+			/* Send to whoever sent to us */
+			if (ast_sockaddr_cmp(&rtp->rtcp->them, addr)) {
+				ast_sockaddr_copy(&rtp->rtcp->them, addr);
+				if (rtpdebug) {
+					ast_debug(0, "RTCP NAT: Got RTCP from other end. Now sending to address %s\n",
+						ast_sockaddr_stringify(&rtp->rtcp->them));
+				}
+			}
+		}
+
 		if (rtcp_debug_test_addr(addr)) {
 			ast_verbose("\n\nGot RTCP from %s\n",
 				    ast_sockaddr_stringify(addr));
@@ -4993,37 +5009,30 @@ static struct ast_frame *ast_rtp_read(struct ast_rtp_instance *instance, int rtc
 
 	/* If strict RTP protection is enabled see if we need to learn the remote address or if we need to drop the packet */
 	if (rtp->strict_rtp_state == STRICT_RTP_LEARN) {
-		ast_debug(1, "%p -- Probation learning mode pass with source address %s\n", rtp, ast_sockaddr_stringify(&addr));
-		/* For now, we always copy the address. */
-		ast_sockaddr_copy(&rtp->strict_rtp_address, &addr);
-
-		/* Send the rtp and the seqno from header to rtp_learning_rtp_seq_update to see whether we can exit or not*/
-		if (rtp_learning_rtp_seq_update(&rtp->rtp_source_learn, seqno)) {
-			ast_debug(1, "%p -- Probation at seq %d with %d to go; discarding frame\n",
-				rtp, rtp->rtp_source_learn.max_seq, rtp->rtp_source_learn.packets);
-			return &ast_null_frame;
-		}
-
-		ast_verb(4, "%p -- Probation passed - setting RTP source address to %s\n", rtp, ast_sockaddr_stringify(&addr));
-		rtp->strict_rtp_state = STRICT_RTP_CLOSED;
-	}
-	if (rtp->strict_rtp_state == STRICT_RTP_CLOSED) {
 		if (!ast_sockaddr_cmp(&rtp->strict_rtp_address, &addr)) {
-			/* Always reset the alternate learning source */
-			rtp_learning_seq_init(&rtp->alt_source_learn, seqno);
+			/* We are learning a new address but have received traffic from the existing address,
+			 * accept it but reset the current learning for the new source so it only takes over
+			 * once sufficient traffic has been received. */
+			rtp_learning_seq_init(&rtp->rtp_source_learn, seqno);
 		} else {
 			/* Start trying to learn from the new address. If we pass a probationary period with
 			 * it, that means we've stopped getting RTP from the original source and we should
 			 * switch to it.
 			 */
-			if (rtp_learning_rtp_seq_update(&rtp->alt_source_learn, seqno)) {
+			if (rtp_learning_rtp_seq_update(&rtp->rtp_source_learn, seqno)) {
 				ast_debug(1, "%p -- Received RTP packet from %s, dropping due to strict RTP protection. Will switch to it in %d packets\n",
-						rtp, ast_sockaddr_stringify(&addr), rtp->alt_source_learn.packets);
+					rtp, ast_sockaddr_stringify(&addr), rtp->rtp_source_learn.packets);
 				return &ast_null_frame;
 			}
-			ast_verb(4, "%p -- Switching RTP source address to %s\n", rtp, ast_sockaddr_stringify(&addr));
 			ast_sockaddr_copy(&rtp->strict_rtp_address, &addr);
+
+			ast_verb(4, "%p -- Probation passed - setting RTP source address to %s\n", rtp, ast_sockaddr_stringify(&addr));
+			rtp->strict_rtp_state = STRICT_RTP_CLOSED;
 		}
+	} else if (rtp->strict_rtp_state == STRICT_RTP_CLOSED && ast_sockaddr_cmp(&rtp->strict_rtp_address, &addr)) {
+		ast_debug(1, "%p -- Received RTP packet from %s, dropping due to strict RTP protection.\n",
+			rtp, ast_sockaddr_stringify(&addr));
+		return &ast_null_frame;
 	}
 
 	/* If symmetric RTP is enabled see if the remote side is not what we expected and change where we are sending audio */
@@ -5529,7 +5538,11 @@ static void ast_rtp_remote_address_set(struct ast_rtp_instance *instance, struct
 
 	rtp->rxseqno = 0;
 
-	if (strictrtp && rtp->strict_rtp_state != STRICT_RTP_OPEN) {
+	if (strictrtp && rtp->strict_rtp_state != STRICT_RTP_OPEN && !ast_sockaddr_isnull(addr) &&
+		ast_sockaddr_cmp(addr, &rtp->strict_rtp_address)) {
+		/* We only need to learn a new strict source address if we've been told the source is
+		 * changing to something different.
+		 */
 		rtp->strict_rtp_state = STRICT_RTP_LEARN;
 		rtp_learning_seq_init(&rtp->rtp_source_learn, rtp->seqno);
 	}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-voip/asterisk.git



More information about the Pkg-voip-commits mailing list