Compare commits

...

15 Commits

Author SHA1 Message Date
Asterisk Autobuilder
1108a7f521 Importing release summary for 11.3.0 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0@384260 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-28 14:22:41 +00:00
Asterisk Autobuilder
0cfbf4ecc1 Update version, ChangeLog
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0@384258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-28 13:50:04 +00:00
Asterisk Autobuilder
3f93165653 Create 11.3.0
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0@384248 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-28 13:37:23 +00:00
Asterisk Autobuilder
146b4b8e8b Importing release summary for 11.3.0-rc2 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@384096 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 18:10:27 +00:00
Asterisk Autobuilder
98bcc1c29a Update ChangeLog
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@384090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 17:56:38 +00:00
Asterisk Autobuilder
6d7c5ed828 Merge security patches; regression fixes
Merged r383973 for ASTERISK-20901
Merged r383978 for ASTERISK-20967
Merged r384003 for ASTERISK-21013
Merged r384049 for ASTERISK-21323
Merged r381067 for ASTERISK-20994


git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@384085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 17:34:40 +00:00
Asterisk Autobuilder
3f6d6be1b6 Merge r383878 for ASTERISK-21068
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@383971 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 14:12:15 +00:00
Asterisk Autobuilder
b53447a6c5 Update version, remove summaries, merge blockers
* Merged r381306 for ASTERISK-20650
* Merged r380894 for ASTERISK-20990
* Merged r380892 for ASTERISK-20991
* Merged r383840 for ASTERISK-21162
* Merged r381702, r381737 for AST-1088
* Merged r382390 for AST-1128
* Merged r381835, r382617 for DPMA-294



git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@383970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 14:07:16 +00:00
Asterisk Autobuilder
03e9c13305 Create 11.3.0-rc2
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc2@383967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-03-27 11:30:08 +00:00
Asterisk Autobuilder
9b2f204e35 Use autotagged externals
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380536 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 18:13:55 +00:00
Asterisk Autobuilder
8eb8586469 Importing release summary for 11.3.0-rc1 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380535 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 18:13:44 +00:00
Asterisk Autobuilder
f69789d3ae Importing files for 11.3.0-rc1 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380534 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 18:13:37 +00:00
Asterisk Autobuilder
e4c60016c2 Creating tag for the release of asterisk-11.3.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380533 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 18:12:34 +00:00
Asterisk Autobuilder
c9c30ef9a5 Creating tag for the release of asterisk-11.3.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380530 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 18:00:24 +00:00
Asterisk Autobuilder
b51818b582 Creating tag for the release of asterisk-11.3.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/11.3.0-rc1@380527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-30 17:55:14 +00:00
18 changed files with 25499 additions and 124 deletions

1
.lastclean Normal file
View File

@@ -0,0 +1 @@
40

1
.version Normal file
View File

@@ -0,0 +1 @@
11.3.0

23852
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -407,6 +407,34 @@ static struct ast_channel *rec_request(const char *type, struct ast_format_cap *
return tmp;
}
static void set_rec_filename(struct conference_bridge *bridge, struct ast_str **filename)
{
char *rec_file = bridge->b_profile.rec_file;
time_t now;
char *ext;
if (ast_str_strlen(*filename)) {
return;
}
time(&now);
ast_str_reset(*filename);
if (ast_strlen_zero(rec_file)) {
ast_str_set(filename, 0, "confbridge-%s-%u.wav", bridge->name, (unsigned int)now);
} else {
/* insert time before file extension */
ext = strrchr(rec_file, '.');
if (ext) {
ast_str_set_substr(filename, 0, rec_file, ext - rec_file);
ast_str_append(filename, 0, "-%u%s", (unsigned int)now, ext);
} else {
ast_str_set(filename, 0, "%s-%u", rec_file, (unsigned int)now);
}
}
ast_str_append(filename, 0, ",a");
}
static void *record_thread(void *obj)
{
struct conference_bridge *conference_bridge = obj;
@@ -425,16 +453,7 @@ static void *record_thread(void *obj)
/* XXX If we get an EXIT right here, START will essentially be a no-op */
while (conference_bridge->record_state != CONF_RECORD_EXIT) {
if (!(ast_strlen_zero(conference_bridge->b_profile.rec_file))) {
ast_str_append(&filename, 0, "%s", conference_bridge->b_profile.rec_file);
} else {
time_t now;
time(&now);
ast_str_append(&filename, 0, "confbridge-%s-%u.wav",
conference_bridge->name,
(unsigned int) now);
}
set_rec_filename(conference_bridge, &filename);
chan = ast_channel_ref(conference_bridge->record_chan);
ast_answer(chan);
pbx_exec(chan, mixmonapp, ast_str_buffer(filename));
@@ -562,10 +581,17 @@ static int conf_start_record(struct conference_bridge *conference_bridge)
*/
static int start_conf_record_thread(struct conference_bridge *conference_bridge)
{
ao2_ref(conference_bridge, +1); /* give the record thread a ref */
conf_start_record(conference_bridge);
/*
* if the thread has already been started, don't start another
*/
if (conference_bridge->record_thread != AST_PTHREADT_NULL) {
return 0;
}
ao2_ref(conference_bridge, +1); /* give the record thread a ref */
if (ast_pthread_create_background(&conference_bridge->record_thread, NULL, record_thread, conference_bridge)) {
ast_log(LOG_WARNING, "Failed to create recording channel for conference %s\n", conference_bridge->name);
ao2_ref(conference_bridge, -1); /* error so remove ref */
@@ -739,9 +765,8 @@ static int announce_user_count(struct conference_bridge *conference_bridge, stru
/*!
* \brief Play back an audio file to a channel
*
* \param conference_bridge Conference bridge they are in
* \param chan Channel to play audio prompt to
* \param file Prompt to play
* \param cbu User to play audio prompt to
* \param filename Prompt to play
*
* \return Returns 0 on success, -1 if the user hung up
* \note Generally this should be called when the conference is unlocked to avoid blocking
@@ -1207,6 +1232,15 @@ static struct conference_bridge *join_conference_bridge(const char *name, struct
ao2_unlock(conference_bridge);
/* If an announcement is to be played play it */
if (!ast_strlen_zero(conference_bridge_user->u_profile.announcement)) {
if (play_prompt_to_user(conference_bridge_user,
conference_bridge_user->u_profile.announcement)) {
leave_conference(conference_bridge_user);
return NULL;
}
}
/* Announce number of users if need be */
if (ast_test_flag(&conference_bridge_user->u_profile, USER_OPT_ANNOUNCEUSERCOUNT)) {
if (announce_user_count(conference_bridge, conference_bridge_user)) {
@@ -1526,7 +1560,6 @@ static int confbridge_exec(struct ast_channel *chan, const char *data)
if (args.argc > 2 && !ast_strlen_zero(args.u_profile_name)) {
u_profile_name = args.u_profile_name;
}
if (!conf_find_user_profile(chan, u_profile_name, &conference_bridge_user.u_profile)) {
ast_log(LOG_WARNING, "Conference user profile %s does not exist\n", u_profile_name);
res = -1;
@@ -2979,6 +3012,7 @@ static int unload_module(void)
res |= ast_manager_unregister("ConfbridgeLock");
res |= ast_manager_unregister("ConfbridgeStartRecord");
res |= ast_manager_unregister("ConfbridgeStopRecord");
res |= ast_manager_unregister("ConfbridgeSetSingleVideoSrc");
return res;
}

View File

@@ -141,6 +141,70 @@ struct page_options {
struct ast_flags flags;
};
/*!
* \internal
* \brief Setup the page bridge profile.
*
* \param chan Setup bridge profile on this channel.
* \param options Options to setup bridge profile.
*
* \return Nothing
*/
static void setup_profile_bridge(struct ast_channel *chan, struct page_options *options)
{
/* Use default_bridge as a starting point */
ast_func_write(chan, "CONFBRIDGE(bridge,template)", "");
if (ast_test_flag(&options->flags, PAGE_RECORD)) {
ast_func_write(chan, "CONFBRIDGE(bridge,record_conference)", "yes");
}
}
/*!
* \internal
* \brief Setup the paged user profile.
*
* \param chan Setup user profile on this channel.
* \param options Options to setup paged user profile.
*
* \return Nothing
*/
static void setup_profile_paged(struct ast_channel *chan, struct page_options *options)
{
/* Use default_user as a starting point */
ast_func_write(chan, "CONFBRIDGE(user,template)", "");
ast_func_write(chan, "CONFBRIDGE(user,quiet)", "yes");
ast_func_write(chan, "CONFBRIDGE(user,end_marked)", "yes");
if (!ast_test_flag(&options->flags, PAGE_DUPLEX)) {
ast_func_write(chan, "CONFBRIDGE(user,startmuted)", "yes");
}
if (ast_test_flag(&options->flags, PAGE_ANNOUNCE)
&& !ast_strlen_zero(options->opts[OPT_ARG_ANNOUNCE])) {
ast_func_write(chan, "CONFBRIDGE(user,announcement)", options->opts[OPT_ARG_ANNOUNCE]);
}
}
/*!
* \internal
* \brief Setup the caller user profile.
*
* \param chan Setup user profile on this channel.
* \param options Options to setup caller user profile.
*
* \return Nothing
*/
static void setup_profile_caller(struct ast_channel *chan, struct page_options *options)
{
/* Use default_user as a starting point if not already setup. */
ast_func_write(chan, "CONFBRIDGE(user,template)", "");
ast_func_write(chan, "CONFBRIDGE(user,quiet)", "yes");
ast_func_write(chan, "CONFBRIDGE(user,marked)", "yes");
if (!ast_test_flag(&options->flags, PAGE_NOCALLERANNOUNCE)
&& ast_test_flag(&options->flags, PAGE_ANNOUNCE)
&& !ast_strlen_zero(options->opts[OPT_ARG_ANNOUNCE])) {
ast_func_write(chan, "CONFBRIDGE(user,announcement)", options->opts[OPT_ARG_ANNOUNCE]);
}
}
static void page_state_callback(struct ast_dial *dial)
{
struct ast_channel *chan;
@@ -152,22 +216,8 @@ static void page_state_callback(struct ast_dial *dial)
return;
}
ast_func_write(chan, "CONFBRIDGE(bridge,template)", "default_bridge");
if (ast_test_flag(&options->flags, PAGE_RECORD)) {
ast_func_write(chan, "CONFBRIDGE(bridge,record_conference)", "yes");
}
ast_func_write(chan, "CONFBRIDGE(user,quiet)", "yes");
ast_func_write(chan, "CONFBRIDGE(user,end_marked)", "yes");
if (!ast_test_flag(&options->flags, PAGE_DUPLEX)) {
ast_func_write(chan, "CONFBRIDGE(user,startmuted)", "yes");
}
if (ast_test_flag(&options->flags, PAGE_ANNOUNCE) && !ast_strlen_zero(options->opts[OPT_ARG_ANNOUNCE])) {
ast_func_write(chan, "CONFBRIDGE(user,announcement)", options->opts[OPT_ARG_ANNOUNCE]);
}
setup_profile_bridge(chan, options);
setup_profile_paged(chan, options);
}
static int page_exec(struct ast_channel *chan, const char *data)
@@ -302,17 +352,10 @@ static int page_exec(struct ast_channel *chan, const char *data)
}
if (!res) {
ast_func_write(chan, "CONFBRIDGE(bridge,template)", "default_bridge");
if (ast_test_flag(&options.flags, PAGE_RECORD)) {
ast_func_write(chan, "CONFBRIDGE(bridge,record_conference)", "yes");
}
ast_func_write(chan, "CONFBRIDGE(user,quiet)", "yes");
ast_func_write(chan, "CONFBRIDGE(user,marked)", "yes");
setup_profile_bridge(chan, &options);
setup_profile_caller(chan, &options);
snprintf(confbridgeopts, sizeof(confbridgeopts), "%u", confid);
pbx_exec(chan, app, confbridgeopts);
}

View File

@@ -14975,8 +14975,9 @@ static struct ast_vm_mailbox_snapshot *vm_mailbox_snapshot_create(const char *ma
int i;
int this_index_only = -1;
int open = 0;
int inbox_index = 0;
int old_index = 1;
int inbox_index = get_folder_by_name("INBOX");
int old_index = get_folder_by_name("Old");
int urgent_index = get_folder_by_name("Urgent");
if (ast_strlen_zero(mailbox)) {
ast_log(LOG_WARNING, "Cannot create a mailbox snapshot since no mailbox was specified\n");
@@ -15018,15 +15019,23 @@ static struct ast_vm_mailbox_snapshot *vm_mailbox_snapshot_create(const char *ma
for (i = 0; i < mailbox_snapshot->folders; i++) {
int combining_old = 0;
if ((i == old_index) && (combine_INBOX_and_OLD)) {
/* Assume we are combining folders if:
* - The current index is the old folder index OR
* - The current index is urgent and we were looking for INBOX or all folders OR
* - The current index is INBOX and we were looking for Urgent or all folders
*/
if ((i == old_index ||
(i == urgent_index && (this_index_only == inbox_index || this_index_only == -1)) ||
(i == inbox_index && (this_index_only == urgent_index || this_index_only == -1))) && (combine_INBOX_and_OLD)) {
combining_old = 1;
}
/* This if statement is confusing looking. Here is what it means in english.
* - If a folder is given to the function and that folder's index is not the one we are iterating over, skip it...
* - Unless the folder provided is the INBOX folder and the current index is the OLD folder and we are combining OLD and INBOX msgs.
* - Unless we are combining old and new messages and the current index is one of old, new, or urgent folders
*/
if ((this_index_only != -1) && (this_index_only != i) && !(combining_old && i == old_index && this_index_only == inbox_index)) {
if ((this_index_only != -1 && this_index_only != i) &&
!(combining_old && (i == old_index || i == urgent_index || i == inbox_index))) {
continue;
}

View File

@@ -95,8 +95,6 @@ static void leave_marked(struct conference_bridge_user *cbu)
AST_LIST_TRAVERSE_SAFE_BEGIN(&cbu->conference_bridge->active_list, cbu_iter, list) {
/* Kick ENDMARKED cbu_iters */
if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_ENDMARKED)) {
AST_LIST_REMOVE_CURRENT(list);
cbu_iter->conference_bridge->activeusers--;
cbu_iter->kicked = 1;
ast_bridge_remove(cbu_iter->conference_bridge->bridge, cbu_iter->chan);
} else if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_WAITMARKED) &&
@@ -139,7 +137,8 @@ static void leave_marked(struct conference_bridge_user *cbu)
case 0:
conf_change_state(cbu, CONF_STATE_SINGLE_MARKED);
break;
case 1: break; /* Stay in marked */
case 1:
break; /* Stay in marked */
}
break;
}
@@ -149,7 +148,8 @@ static void leave_marked(struct conference_bridge_user *cbu)
case 0:
conf_change_state(cbu, CONF_STATE_MULTI);
break;
default: break; /* Stay in marked */
default:
break; /* Stay in marked */
}
}
}

View File

@@ -0,0 +1,600 @@
<!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">
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-11.3.0</title></head>
<body>
<h1 align="center"><a name="top">Release Summary</a></h1>
<h3 align="center">asterisk-11.3.0</h3>
<h3 align="center">Date: 2013-03-28</h3>
<h3 align="center">&lt;asteriskteam@digium.com&gt;</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="#issues">Closed 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><br/><p>This release includes only bug fixes. The changes included were made only to address problems that have been identified in this release series. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous release series are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p>
<p>The data in this summary reflects changes that have been made since the previous release, asterisk-11.2.0.</p>
<hr/>
<a name="contributors"><h2 align="center">Contributors</h2></a>
<center><a href="#top">[Back to Top]</a></center><br/><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 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 closed by commits that went into this release.</p>
<table width="100%" border="0">
<tr>
<td width="33%"><h3>Coders</h3></td>
<td width="33%"><h3>Testers</h3></td>
<td width="33%"><h3>Reporters</h3></td>
</tr>
<tr valign="top">
<td>
26 rmudgett<br/>
13 mjordan<br/>
7 kmoore<br/>
6 bebuild<br/>
5 dlee<br/>
5 jrose<br/>
4 elguero<br/>
4 wedhorn<br/>
3 mmichelson<br/>
3 snuffy<br/>
2 dkerr<br/>
2 igorg<br/>
2 jcolp<br/>
2 jonax<br/>
2 qwell<br/>
2 roeften<br/>
1 bootc<br/>
1 Christian Hesse<br/>
1 Corey Farrell<br/>
1 Eelco Brolman<br/>
1 Eric Hill<br/>
1 file<br/>
1 Jakob Hirsch<br/>
1 lathama<br/>
1 newtonr<br/>
1 Nikolay Ilduganov<br/>
1 Pavel Troller<br/>
1 Pedro Kiefer<br/>
1 russell<br/>
1 seanbright<br/>
1 Stefan Reuter<br/>
1 Thomas Omerzu<br/>
1 tilghman<br/>
1 Timo Teras<br/>
1 wdoekes<br/>
</td>
<td>
3 elguero<br/>
3 myself<br/>
3 rmudgett<br/>
3 snuffy<br/>
2 Deepak Lohani<br/>
2 Jonas Falck<br/>
2 Kayode<br/>
2 mjordan<br/>
2 Thomas Sevestre<br/>
1 <br/>
1 Alexander Heinz<br/>
1 benjamin<br/>
1 Bryan Hunt<br/>
1 call<br/>
1 Chris Warr<br/>
1 Christian Hesse<br/>
1 danilo borges<br/>
1 Danny Nicholas<br/>
1 David van Geyn<br/>
1 Dennis DeDonatis<br/>
1 eliafino<br/>
1 Eric Hill<br/>
1 Iñaki Baz Castillo<br/>
1 Jamuel Starkey<br/>
1 Joel Vandal<br/>
1 kaldemar<br/>
1 Nikolay Ilduganov<br/>
1 Stephan<br/>
1 Steve Lang<br/>
</td>
<td>
3 jbigelow<br/>
3 snuffy<br/>
2 dkerr<br/>
2 jmillan<br/>
1 alecdavis<br/>
1 bklang<br/>
1 bootc<br/>
1 brhunt<br/>
1 call<br/>
1 challado<br/>
1 chesse<br/>
1 coreyfarrell<br/>
1 dennisd<br/>
1 derlinuxer<br/>
1 din3sh<br/>
1 dlee<br/>
1 eelcob<br/>
1 eleo<br/>
1 erichill<br/>
1 fabled<br/>
1 gentlec<br/>
1 jhirsch<br/>
1 jmce<br/>
1 joel_vandal<br/>
1 kmoore<br/>
1 kuj<br/>
1 lexus350<br/>
1 menschentier<br/>
1 mmichelson<br/>
1 ovi<br/>
1 patrol-cz<br/>
1 rmudgett<br/>
1 roeften<br/>
1 srt<br/>
1 t-o<br/>
1 tootai<br/>
1 wcselby<br/>
1 wedhorn<br/>
1 xhienne<br/>
</td>
</tr>
</table>
<hr/>
<a name="issues"><h2 align="center">Closed Issues</h2></a>
<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p>
<h3>Category: Addons/chan_mobile</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16357">ASTERISK-16357</a>: chan_mobile unable to connect to cellphone<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379343">379343</a><br/>
Reporter: challado<br/>
Testers: Alexander Heinz, Nikolay Ilduganov, benjamin, eliafino, David van Geyn<br/>
Coders: Nikolay Ilduganov<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16822">ASTERISK-16822</a>: Channel Variable SMSSRC not set properly<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379179">379179</a><br/>
Reporter: menschentier<br/>
Testers: Jonas Falck<br/>
Coders: jonax, roeften<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19153">ASTERISK-19153</a>: [patch] - Sms sender is not parsed correctly in incoming sms<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379179">379179</a><br/>
Reporter: roeften<br/>
Testers: Jonas Falck<br/>
Coders: jonax, roeften<br/>
<br/>
<h3>Category: Applications/SLA</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20440">ASTERISK-20440</a>: [patch] No ringback towards SLAstation on outbound trunk call.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379826">379826</a><br/>
Reporter: dkerr<br/>
Coders: dkerr<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20462">ASTERISK-20462</a>: [patch] Trunk not hungup if SLA Station hangs up before answer<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379826">379826</a><br/>
Reporter: dkerr<br/>
Coders: dkerr<br/>
<br/>
<h3>Category: Applications/app_confbridge</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20606">ASTERISK-20606</a>: Wrong confbridge behavior when participants enter simultaneously<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377993">377993</a><br/>
Reporter: eleo<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20898">ASTERISK-20898</a>: sound_only_one parameter will be ignored in confbridge.conf <br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380193">380193</a><br/>
Reporter: derlinuxer<br/>
Testers: Stephan<br/>
Coders: elguero<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20938">ASTERISK-20938</a>: [patch] ConfBridge list from CLI and Manager no longer include waiting members<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379478">379478</a><br/>
Reporter: fabled<br/>
Coders: Timo Teras<br/>
<br/>
<h3>Category: Applications/app_meetme</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20440">ASTERISK-20440</a>: [patch] No ringback towards SLAstation on outbound trunk call.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379826">379826</a><br/>
Reporter: dkerr<br/>
Coders: dkerr<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20462">ASTERISK-20462</a>: [patch] Trunk not hungup if SLA Station hangs up before answer<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379826">379826</a><br/>
Reporter: dkerr<br/>
Coders: dkerr<br/>
<br/>
<h3>Category: Applications/app_minivm</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18697">ASTERISK-18697</a>: [minivm] Crash in MinivmNotify<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379609">379609</a><br/>
Reporter: bootc<br/>
Testers: Chris Warr<br/>
Coders: bootc<br/>
<br/>
<h3>Category: Applications/app_queue</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20743">ASTERISK-20743</a>: Queue Log - All Calls End With COMPLETECALLER When h Extension Is Present<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378515">378515</a><br/>
Reporter: call<br/>
Testers: call, elguero<br/>
Coders: elguero<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20801">ASTERISK-20801</a>: Non-SIP queue members get no calls when ringinuse=no.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378038">378038</a><br/>
Reporter: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Applications/app_voicemail/ODBC</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20717">ASTERISK-20717</a>: Voicemail access "SQL Get Data error! coltitle=msg_id"<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379460">379460</a><br/>
Reporter: alecdavis<br/>
Coders: jrose<br/>
<br/>
<h3>Category: Channels/chan_misdn</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-15456">ASTERISK-15456</a>: [patch] chan_misdn does not set INVALID_EXTEN<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379146">379146</a><br/>
Reporter: t-o<br/>
Coders: Thomas Omerzu<br/>
<br/>
<h3>Category: Channels/chan_motif</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20916">ASTERISK-20916</a>: GoogleVoice calls don't connect, but continue ringing despite call having been answered<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378917">378917</a><br/>
Reporter: kuj<br/>
Coders: jcolp<br/>
<br/>
<h3>Category: Channels/chan_sip/General</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20653">ASTERISK-20653</a>: Asterisk allows Session-Expires below 90 in a 200 OK<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377625">377625</a><br/>
Reporter: kmoore<br/>
Coders: kmoore<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20805">ASTERISK-20805</a>: SIP Notify message has incorrect IP address in FROM field<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378559">378559</a><br/>
Reporter: brhunt<br/>
Testers: Bryan Hunt, elguero<br/>
Coders: elguero<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20908">ASTERISK-20908</a>: Asterisk presents media desc for video in SDP, missing terminating CRLF<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380331">380331</a><br/>
Reporter: dennisd<br/>
Testers: Dennis DeDonatis<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Channels/chan_sip/Interoperability</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20837">ASTERISK-20837</a>: [patch] build_route fails to parse Record-Route headers longer than 255 characters<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379393">379393</a><br/>
Reporter: coreyfarrell<br/>
Coders: Corey Farrell<br/>
<br/>
<h3>Category: Channels/chan_sip/SRTP</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20499">ASTERISK-20499</a>: Crash in libsrtp srtp_unprotect_rtcp when SIP channel is bridged with non-optimizing Local channel<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378592">378592</a><br/>
Reporter: tootai<br/>
Coders: jrose<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20849">ASTERISK-20849</a>: SDP crypto attribute is not well formed in the SDP ANSWER<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380043">380043</a><br/>
Reporter: jmillan<br/>
Testers: Iñaki Baz Castillo<br/>
Coders: Pedro Kiefer<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20849">ASTERISK-20849</a>: SDP crypto attribute is not well formed in the SDP ANSWER<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380350">380350</a><br/>
Reporter: jmillan<br/>
Coders: dlee<br/>
<br/>
<h3>Category: Channels/chan_sip/T.38</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20897">ASTERISK-20897</a>: case sensitive match against T.38 params causes T38MaxBitRate to be negotiated at 2400 baud instead of 14400<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380465">380465</a><br/>
Reporter: erichill<br/>
Testers: Eric Hill<br/>
Coders: Eric Hill<br/>
<br/>
<h3>Category: Channels/chan_sip/Transfers</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20708">ASTERISK-20708</a>: Deadlock in chan_sip on transfer when trying to update redirecting information<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377910">377910</a><br/>
Reporter: mmichelson<br/>
Testers: <br/>
Coders: mmichelson<br/>
<br/>
<h3>Category: Channels/chan_skinny</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20789">ASTERISK-20789</a>: Make skinny debug tab completion helpful<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377985">377985</a><br/>
Reporter: snuffy<br/>
Testers: snuffy, myself<br/>
Coders: snuffy<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20790">ASTERISK-20790</a>: skinny does not respect globally set vmexten<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378010">378010</a><br/>
Reporter: snuffy<br/>
Testers: snuffy, myself<br/>
Coders: snuffy<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20964">ASTERISK-20964</a>: Device call logging has issues.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379677">379677</a><br/>
Reporter: wedhorn<br/>
Testers: snuffy, myself<br/>
Coders: wedhorn<br/>
<br/>
<h3>Category: Codecs/codec_ilbc</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20914">ASTERISK-20914</a>: Segfault when iLBC voice frame is interpolated in a jitter buffer due to codec_ilbc's improper manipulation of datalen<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379719">379719</a><br/>
Reporter: jmce<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Core/BuildSystem</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20407">ASTERISK-20407</a>: Asterisk compilation doesn't set rpath when --prefix is something other that /usr<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379475">379475</a><br/>
Reporter: dlee<br/>
Coders: dlee<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20980">ASTERISK-20980</a>: [patch] ./configure fails with ptlib 2.10.9<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380298">380298</a><br/>
Reporter: srt<br/>
Coders: Stefan Reuter<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21006">ASTERISK-21006</a>: unsupported host os "linux-gnueabihf"<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380521">380521</a><br/>
Reporter: chesse<br/>
Testers: Christian Hesse<br/>
Coders: Christian Hesse<br/>
<br/>
<h3>Category: Core/Channels</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18975">ASTERISK-18975</a>: Manager Redirect action on bridged channel pair causes intermittent hangup on second channel<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378358">378358</a><br/>
Reporter: bklang<br/>
Testers: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Core/General</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20826">ASTERISK-20826</a>: Replace last few tabs with spaces in causes.h<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378734">378734</a><br/>
Reporter: snuffy<br/>
Coders: snuffy<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20852">ASTERISK-20852</a>: asterisk/strings.h: struct ast_str used before its declaration<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378747">378747</a><br/>
Reporter: patrol-cz<br/>
Coders: Pavel Troller<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20945">ASTERISK-20945</a>: "Unable to connect to remote asterisk" message on service asterisk start, even though service is running<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379790">379790</a><br/>
Reporter: wcselby<br/>
Testers: elguero, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan<br/>
Coders: elguero, mjordan<br/>
<br/>
<h3>Category: Core/Jitterbuffer</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20914">ASTERISK-20914</a>: Segfault when iLBC voice frame is interpolated in a jitter buffer due to codec_ilbc's improper manipulation of datalen<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379719">379719</a><br/>
Reporter: jmce<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Core/ManagerInterface</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19948">ASTERISK-19948</a>: Asterisk 1.8 manager redirect command fails when redirecting multiple channels currently bridged together via dial command.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378358">378358</a><br/>
Reporter: lexus350<br/>
Testers: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Core/Portability</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16854">ASTERISK-16854</a>: [patch] roundf causing asterisk to fail to compile<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379548">379548</a><br/>
Reporter: ovi<br/>
Coders: wdoekes<br/>
<br/>
<h3>Category: Core/RTP</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20772">ASTERISK-20772</a>: Loop bug in ast_rtp_lookup_mime_multiple2() [main/rtp_engine.c]<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378780">378780</a><br/>
Reporter: xhienne<br/>
Coders: dlee<br/>
<br/>
<h3>Category: Features/Parking</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20716">ASTERISK-20716</a>: "s" extension in comebackcontext not honored<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380348">380348</a><br/>
Reporter: gentlec<br/>
Coders: jrose<br/>
<br/>
<h3>Category: Resources/General</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20681">ASTERISK-20681</a>: Unable to compile pjproject in Asterisk 11<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378582">378582</a><br/>
Reporter: din3sh<br/>
Testers: danilo borges, Steve Lang<br/>
Coders: tilghman<br/>
<br/>
<h3>Category: Resources/res_calendar_icalendar</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21012">ASTERISK-21012</a>: Memory Leak on res_calendar (icalendar)<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380452">380452</a><br/>
Reporter: joel_vandal<br/>
Testers: Joel Vandal<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Resources/res_rtp_asterisk</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20906">ASTERISK-20906</a>: DTMF in SIP not working after HOLD / UNHOLD<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378984">378984</a><br/>
Reporter: eelcob<br/>
Coders: Eelco Brolman<br/>
<br/>
<h3>Category: Utilities/astcanary</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20947">ASTERISK-20947</a>: astcanary exits immediately because of wrong pid argument<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379513">379513</a><br/>
Reporter: jhirsch<br/>
Testers: mjordan<br/>
Coders: Jakob Hirsch<br/>
<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><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
<table width="100%" border="1">
<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377577">377577</a></td><td>igorg</td><td>Remove trailing whitespaces in number from incoming redial list.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377593">377593</a></td><td>igorg</td><td>Fix codec mismatch</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20183">ASTERISK-20183</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377657">377657</a></td><td>kmoore</td><td>Ensure ReceiveFax provides a CED tone via T.38</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377706">377706</a></td><td>rmudgett</td><td>Cleanup dnsmgr on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377710">377710</a></td><td>rmudgett</td><td>Cleanup event on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377742">377742</a></td><td>rmudgett</td><td>Cleanup indications on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377773">377773</a></td><td>rmudgett</td><td>Cleanup logger on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377808">377808</a></td><td>rmudgett</td><td>Cleanup pbx on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377839">377839</a></td><td>rmudgett</td><td>Cleanup taskprocessor on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377843">377843</a></td><td>mmichelson</td><td>Fix crash that can occur if CLI registration fails for an aliased command.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377849">377849</a></td><td>rmudgett</td><td>Cleanup udptl on exit.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377883">377883</a></td><td>rmudgett</td><td>Cleanup CLI commands on exit for several files.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20649">ASTERISK-20649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377924">377924</a></td><td>newtonr</td><td>Incremented EXTRA_SOUNDS_VERSION in sounds/Makefile to 1.4.12 for new Extra Sounds releases</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377948">377948</a></td><td>kmoore</td><td>Ensure Min-SE is included in outbound INVITEs</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=377991">377991</a></td><td>wedhorn</td><td>Minor fixes for chan_skinny</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378073">378073</a></td><td>qwell</td><td>Make libasteriskssl.so symlink use a relative path.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378090">378090</a></td><td>rmudgett</td><td>Make chan_local module references tied to local_pvt lifetime.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378094">378094</a></td><td>rmudgett</td><td>Fix potential double free when unloading a module.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378121">378121</a></td><td>kmoore</td><td>Add test events for time limit-related hangups</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378163">378163</a></td><td>rmudgett</td><td>Add branch-1.8-merged property to allow direct merging from v1.8</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378165">378165</a></td><td>rmudgett</td><td>Give the causes[] a struct name.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378219">378219</a></td><td>kmoore</td><td>Ensure chan_sip rejects encrypted streams without crypto info</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378287">378287</a></td><td>mjordan</td><td>Resolve crashes due to large stack allocations when using TCP</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20658">ASTERISK-20658</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378321">378321</a></td><td>mjordan</td><td>Prevent exhaustion of system resources through exploitation of event cache</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20175">ASTERISK-20175</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378337">378337</a></td><td>kmoore</td><td>Restore branch-1.8-merged on 11</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378376">378376</a></td><td>mjordan</td><td>Prevent crashes from occurring when reading from data sources with large values</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20658">ASTERISK-20658</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378409">378409</a></td><td>mjordan</td><td>Prevent crashes in res_xmpp when receiving large messages</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20658">ASTERISK-20658</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378411">378411</a></td><td>file</td><td>Prevent exhaustion of system resources through exploitation of event cache</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20175">ASTERISK-20175</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378428">378428</a></td><td>rmudgett</td><td>chan_agent: Fix agent_indicate() locking.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378457">378457</a></td><td>rmudgett</td><td>chan_agent: Misc code cleanup.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378459">378459</a></td><td>kmoore</td><td>Add missing test event</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378487">378487</a></td><td>rmudgett</td><td>chan_agent: Fix wrapup time wait response.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378622">378622</a></td><td>wedhorn</td><td>Rewrite skinny dialing to remove threaded simpleswitch</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378687">378687</a></td><td>rmudgett</td><td>app_queue: Fix multiple calls to a queue member that is in only one queue.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-16115">ASTERISK-16115</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378690">378690</a></td><td>rmudgett</td><td>app_queue: Fix incorrect assertion.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-16115">ASTERISK-16115</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=378934">378934</a></td><td>dlee</td><td>Fix XML encoding of 'identity display' in NOTIFY messages.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379020">379020</a></td><td>dlee</td><td>Fix XML encoding of 'identity display' in NOTIFY messages, continued.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379209">379209</a></td><td>mjordan</td><td>Add module tags to documentation for res_jabber/res_xmpp</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379210">379210</a></td><td>mjordan</td><td>Update the dtd to actually *support* the module attribute in all elements</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379228">379228</a></td><td>mjordan</td><td>Let documentation reference links specify which module they're linking to</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379230">379230</a></td><td>rmudgett</td><td>chan_misdn: Fix compile error.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-15456">ASTERISK-15456</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379232">379232</a></td><td>rmudgett</td><td>Reduce call-id logging resource usage.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379277">379277</a></td><td>qwell</td><td>Reduce number of packages install_prereq installs on Debian systems.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379311">379311</a></td><td>mmichelson</td><td>Further fix misinformation in the description of manager MailboxStatus command.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379582">379582</a></td><td>wedhorn</td><td>Fix issues with skinny sessions</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379643">379643</a></td><td>lathama</td><td>Add LDAP libraries to install script</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20886">ASTERISK-20886</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379808">379808</a></td><td>rmudgett</td><td>confbridge: Minor fixes playing user counts to the conference.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379949">379949</a></td><td>jrose</td><td>res_fax_spandsp: fix t38 transmission bug caused by not returning success</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20919">ASTERISK-20919</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=379964">379964</a></td><td>rmudgett</td><td>Attempt to be more helpful when using a bad ao2 object pointer.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380211">380211</a></td><td>russell</td><td>Change cleanup ordering in filestream destructor.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380255">380255</a></td><td>seanbright</td><td>Correct the number of available call numbers in IAX2.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380384">380384</a></td><td>rmudgett</td><td>chan_agent: Prevent multiple channels from logging in as the same agent.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=380480">380480</a></td><td>mjordan</td><td>Unregister SIP provider API if module load is declined</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=383967">383967</a></td><td>bebuild</td><td>Create 11.3.0-rc2</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=383970">383970</a></td><td>bebuild</td><td>Update version, remove summaries, merge blockers</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=383971">383971</a></td><td>bebuild</td><td>Merge r383878 for ASTERISK-21068</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=384085">384085</a></td><td>bebuild</td><td>Merge security patches; regression fixes</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=384090">384090</a></td><td>bebuild</td><td>Update ChangeLog</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/11?view=revision&revision=384096">384096</a></td><td>bebuild</td><td>Importing release summary for 11.3.0-rc2 release.</td>
<td></td></tr></table>
<hr/>
<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
<center><a href="#top">[Back to Top]</a></center><br/><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>
.version | 2
CHANGES | 2
ChangeLog | 191 ++++++
Makefile | 5
UPGRADE.txt | 21
addons/chan_mobile.c | 3
apps/app_confbridge.c | 318 ++++++++---
apps/app_meetme.c | 821 +++++++++++++++++-------------
apps/app_minivm.c | 1
apps/app_page.c | 89 ++-
apps/app_queue.c | 225 +++++---
apps/app_voicemail.c | 144 ++---
apps/confbridge/conf_config_parser.c | 8
apps/confbridge/conf_state.c | 19
apps/confbridge/conf_state_empty.c | 2
apps/confbridge/conf_state_multi_marked.c | 22
apps/confbridge/include/confbridge.h | 19
asterisk-11.3.0-rc1-summary.html | 583 ---------------------
asterisk-11.3.0-rc1-summary.txt | 726 --------------------------
asterisk-11.3.0-rc2-summary.html | 75 ++
asterisk-11.3.0-rc2-summary.txt | 109 +++
autoconf/ast_check_pwlib.m4 | 2
channels/chan_agent.c | 483 +++++++----------
channels/chan_bridge.c | 5
channels/chan_dahdi.c | 7
channels/chan_iax2.c | 42 -
channels/chan_local.c | 46 +
channels/chan_misdn.c | 3
channels/chan_sip.c | 493 ++++++++++++------
channels/chan_skinny.c | 437 +++++++--------
channels/chan_unistim.c | 12
channels/iax2.h | 8
channels/sip/include/reqresp_parser.h | 11
channels/sip/include/sip.h | 2
channels/sip/reqresp_parser.c | 53 +
channels/sip/sdp_crypto.c | 32 -
channels/sip/security_events.c | 3
codecs/codec_ilbc.c | 16
configs/queues.conf.sample | 7
configure.ac | 36 +
contrib/init.d/rc.archlinux.asterisk | 2
contrib/init.d/rc.debian.asterisk | 2
contrib/init.d/rc.gentoo.asterisk | 2
contrib/init.d/rc.mandriva.asterisk | 2
contrib/init.d/rc.redhat.asterisk | 2
contrib/init.d/rc.slackware.asterisk | 2
contrib/init.d/rc.suse.asterisk | 2
contrib/scripts/install_prereq | 10
contrib/scripts/safe_asterisk | 2
doc/appdocsxml.dtd | 4
funcs/func_devstate.c | 6
funcs/func_realtime.c | 17
include/asterisk/autoconfig.h.in | 16
include/asterisk/bridging.h | 26
include/asterisk/causes.h | 10
include/asterisk/channel.h | 13
include/asterisk/compat.h | 8
include/asterisk/devicestate.h | 16
include/asterisk/event_defs.h | 8
include/asterisk/strings.h | 30 -
include/asterisk/utils.h | 14
main/Makefile | 5
main/aoc.c | 5
main/asterisk.c | 7
main/astobj2.c | 6
main/ccss.c | 2
main/cdr.c | 24
main/cel.c | 1
main/channel.c | 17
main/channel_internal_api.c | 1
main/config.c | 11
main/data.c | 2
main/devicestate.c | 51 +
main/dnsmgr.c | 23
main/event.c | 11
main/features.c | 23
main/file.c | 21
main/http.c | 35 +
main/image.c | 6
main/indications.c | 15
main/loader.c | 28 -
main/logger.c | 20
main/manager.c | 141 +++--
main/pbx.c | 13
main/rtp_engine.c | 15
main/strcompat.c | 14
main/stun.c | 6
main/taskprocessor.c | 7
main/timing.c | 10
main/udptl.c | 10
main/utils.c | 63 ++
makeopts.in | 1
res/pjproject/aconfigure | 3
res/pjproject/aconfigure.ac | 1
res/pjproject/build/common.mak | 9
res/res_calendar.c | 8
res/res_calendar_icalendar.c | 5
res/res_clialiases.c | 5
res/res_fax.c | 3
res/res_fax_spandsp.c | 1
res/res_format_attr_h264.c | 11
res/res_jabber.c | 96 ++-
res/res_rtp_asterisk.c | 10
res/res_srtp.c | 15
res/res_xmpp.c | 89 ++-
sounds/Makefile | 4
tests/test_xml_escape.c | 118 ++++
107 files changed, 3317 insertions(+), 2932 deletions(-)
</pre><br/>
<hr/>
</body>
</html>

752
asterisk-11.3.0-summary.txt Normal file
View File

@@ -0,0 +1,752 @@
Release Summary
asterisk-11.3.0
Date: 2013-03-28
<asteriskteam@digium.com>
----------------------------------------------------------------------
Table of Contents
1. Summary
2. Contributors
3. Closed Issues
4. Other Changes
5. Diffstat
----------------------------------------------------------------------
Summary
[Back to Top]
This release includes only bug fixes. The changes included were made only
to address problems that have been identified in this release series.
Users should be able to safely upgrade to this version if this release
series is already in use. Users considering upgrading from a previous
release series 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-11.2.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 closed by commits that went into this
release.
Coders Testers Reporters
26 rmudgett 3 elguero 3 jbigelow
13 mjordan 3 myself 3 snuffy
7 kmoore 3 rmudgett 2 dkerr
6 bebuild 3 snuffy 2 jmillan
5 dlee 2 Deepak Lohani 1 alecdavis
5 jrose 2 Jonas Falck 1 bklang
4 elguero 2 Kayode 1 bootc
4 wedhorn 2 mjordan 1 brhunt
3 mmichelson 2 Thomas Sevestre 1 call
3 snuffy 1 1 challado
2 dkerr 1 Alexander Heinz 1 chesse
2 igorg 1 benjamin 1 coreyfarrell
2 jcolp 1 Bryan Hunt 1 dennisd
2 jonax 1 call 1 derlinuxer
2 qwell 1 Chris Warr 1 din3sh
2 roeften 1 Christian Hesse 1 dlee
1 bootc 1 danilo borges 1 eelcob
1 Christian Hesse 1 Danny Nicholas 1 eleo
1 Corey Farrell 1 David van Geyn 1 erichill
1 Eelco Brolman 1 Dennis DeDonatis 1 fabled
1 Eric Hill 1 eliafino 1 gentlec
1 file 1 Eric Hill 1 jhirsch
1 Jakob Hirsch 1 IA+-aki Baz Castillo 1 jmce
1 lathama 1 Jamuel Starkey 1 joel_vandal
1 newtonr 1 Joel Vandal 1 kmoore
1 Nikolay Ilduganov 1 kaldemar 1 kuj
1 Pavel Troller 1 Nikolay Ilduganov 1 lexus350
1 Pedro Kiefer 1 Stephan 1 menschentier
1 russell 1 Steve Lang 1 mmichelson
1 seanbright 1 ovi
1 Stefan Reuter 1 patrol-cz
1 Thomas Omerzu 1 rmudgett
1 tilghman 1 roeften
1 Timo Teras 1 srt
1 wdoekes 1 t-o
1 tootai
1 wcselby
1 wedhorn
1 xhienne
----------------------------------------------------------------------
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.
Category: Addons/chan_mobile
ASTERISK-16357: chan_mobile unable to connect to cellphone
Revision: 379343
Reporter: challado
Testers: Alexander Heinz, Nikolay Ilduganov, benjamin, eliafino, David van
Geyn
Coders: Nikolay Ilduganov
ASTERISK-16822: Channel Variable SMSSRC not set properly
Revision: 379179
Reporter: menschentier
Testers: Jonas Falck
Coders: jonax, roeften
ASTERISK-19153: [patch] - Sms sender is not parsed correctly in incoming
sms
Revision: 379179
Reporter: roeften
Testers: Jonas Falck
Coders: jonax, roeften
Category: Applications/SLA
ASTERISK-20440: [patch] No ringback towards SLAstation on outbound trunk
call.
Revision: 379826
Reporter: dkerr
Coders: dkerr
ASTERISK-20462: [patch] Trunk not hungup if SLA Station hangs up before
answer
Revision: 379826
Reporter: dkerr
Coders: dkerr
Category: Applications/app_confbridge
ASTERISK-20606: Wrong confbridge behavior when participants enter
simultaneously
Revision: 377993
Reporter: eleo
Testers: rmudgett
Coders: rmudgett
ASTERISK-20898: sound_only_one parameter will be ignored in
confbridge.conf
Revision: 380193
Reporter: derlinuxer
Testers: Stephan
Coders: elguero
ASTERISK-20938: [patch] ConfBridge list from CLI and Manager no longer
include waiting members
Revision: 379478
Reporter: fabled
Coders: Timo Teras
Category: Applications/app_meetme
ASTERISK-20440: [patch] No ringback towards SLAstation on outbound trunk
call.
Revision: 379826
Reporter: dkerr
Coders: dkerr
ASTERISK-20462: [patch] Trunk not hungup if SLA Station hangs up before
answer
Revision: 379826
Reporter: dkerr
Coders: dkerr
Category: Applications/app_minivm
ASTERISK-18697: [minivm] Crash in MinivmNotify
Revision: 379609
Reporter: bootc
Testers: Chris Warr
Coders: bootc
Category: Applications/app_queue
ASTERISK-20743: Queue Log - All Calls End With COMPLETECALLER When h
Extension Is Present
Revision: 378515
Reporter: call
Testers: call, elguero
Coders: elguero
ASTERISK-20801: Non-SIP queue members get no calls when ringinuse=no.
Revision: 378038
Reporter: rmudgett
Coders: rmudgett
Category: Applications/app_voicemail/ODBC
ASTERISK-20717: Voicemail access "SQL Get Data error! coltitle=msg_id"
Revision: 379460
Reporter: alecdavis
Coders: jrose
Category: Channels/chan_misdn
ASTERISK-15456: [patch] chan_misdn does not set INVALID_EXTEN
Revision: 379146
Reporter: t-o
Coders: Thomas Omerzu
Category: Channels/chan_motif
ASTERISK-20916: GoogleVoice calls don't connect, but continue ringing
despite call having been answered
Revision: 378917
Reporter: kuj
Coders: jcolp
Category: Channels/chan_sip/General
ASTERISK-20653: Asterisk allows Session-Expires below 90 in a 200 OK
Revision: 377625
Reporter: kmoore
Coders: kmoore
ASTERISK-20805: SIP Notify message has incorrect IP address in FROM field
Revision: 378559
Reporter: brhunt
Testers: Bryan Hunt, elguero
Coders: elguero
ASTERISK-20908: Asterisk presents media desc for video in SDP, missing
terminating CRLF
Revision: 380331
Reporter: dennisd
Testers: Dennis DeDonatis
Coders: mjordan
Category: Channels/chan_sip/Interoperability
ASTERISK-20837: [patch] build_route fails to parse Record-Route headers
longer than 255 characters
Revision: 379393
Reporter: coreyfarrell
Coders: Corey Farrell
Category: Channels/chan_sip/SRTP
ASTERISK-20499: Crash in libsrtp srtp_unprotect_rtcp when SIP channel is
bridged with non-optimizing Local channel
Revision: 378592
Reporter: tootai
Coders: jrose
ASTERISK-20849: SDP crypto attribute is not well formed in the SDP ANSWER
Revision: 380043
Reporter: jmillan
Testers: IA+-aki Baz Castillo
Coders: Pedro Kiefer
ASTERISK-20849: SDP crypto attribute is not well formed in the SDP ANSWER
Revision: 380350
Reporter: jmillan
Coders: dlee
Category: Channels/chan_sip/T.38
ASTERISK-20897: case sensitive match against T.38 params causes
T38MaxBitRate to be negotiated at 2400 baud instead of 14400
Revision: 380465
Reporter: erichill
Testers: Eric Hill
Coders: Eric Hill
Category: Channels/chan_sip/Transfers
ASTERISK-20708: Deadlock in chan_sip on transfer when trying to update
redirecting information
Revision: 377910
Reporter: mmichelson
Testers:
Coders: mmichelson
Category: Channels/chan_skinny
ASTERISK-20789: Make skinny debug tab completion helpful
Revision: 377985
Reporter: snuffy
Testers: snuffy, myself
Coders: snuffy
ASTERISK-20790: skinny does not respect globally set vmexten
Revision: 378010
Reporter: snuffy
Testers: snuffy, myself
Coders: snuffy
ASTERISK-20964: Device call logging has issues.
Revision: 379677
Reporter: wedhorn
Testers: snuffy, myself
Coders: wedhorn
Category: Codecs/codec_ilbc
ASTERISK-20914: Segfault when iLBC voice frame is interpolated in a jitter
buffer due to codec_ilbc's improper manipulation of datalen
Revision: 379719
Reporter: jmce
Coders: mjordan
Category: Core/BuildSystem
ASTERISK-20407: Asterisk compilation doesn't set rpath when --prefix is
something other that /usr
Revision: 379475
Reporter: dlee
Coders: dlee
ASTERISK-20980: [patch] ./configure fails with ptlib 2.10.9
Revision: 380298
Reporter: srt
Coders: Stefan Reuter
ASTERISK-21006: unsupported host os "linux-gnueabihf"
Revision: 380521
Reporter: chesse
Testers: Christian Hesse
Coders: Christian Hesse
Category: Core/Channels
ASTERISK-18975: Manager Redirect action on bridged channel pair causes
intermittent hangup on second channel
Revision: 378358
Reporter: bklang
Testers: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode
Coders: rmudgett
Category: Core/General
ASTERISK-20826: Replace last few tabs with spaces in causes.h
Revision: 378734
Reporter: snuffy
Coders: snuffy
ASTERISK-20852: asterisk/strings.h: struct ast_str used before its
declaration
Revision: 378747
Reporter: patrol-cz
Coders: Pavel Troller
ASTERISK-20945: "Unable to connect to remote asterisk" message on service
asterisk start, even though service is running
Revision: 379790
Reporter: wcselby
Testers: elguero, Jamuel Starkey, kaldemar, Danny Nicholas, mjordan
Coders: elguero, mjordan
Category: Core/Jitterbuffer
ASTERISK-20914: Segfault when iLBC voice frame is interpolated in a jitter
buffer due to codec_ilbc's improper manipulation of datalen
Revision: 379719
Reporter: jmce
Coders: mjordan
Category: Core/ManagerInterface
ASTERISK-19948: Asterisk 1.8 manager redirect command fails when
redirecting multiple channels currently bridged together via dial command.
Revision: 378358
Reporter: lexus350
Testers: rmudgett, Thomas Sevestre, Deepak Lohani, Kayode
Coders: rmudgett
Category: Core/Portability
ASTERISK-16854: [patch] roundf causing asterisk to fail to compile
Revision: 379548
Reporter: ovi
Coders: wdoekes
Category: Core/RTP
ASTERISK-20772: Loop bug in ast_rtp_lookup_mime_multiple2()
[main/rtp_engine.c]
Revision: 378780
Reporter: xhienne
Coders: dlee
Category: Features/Parking
ASTERISK-20716: "s" extension in comebackcontext not honored
Revision: 380348
Reporter: gentlec
Coders: jrose
Category: Resources/General
ASTERISK-20681: Unable to compile pjproject in Asterisk 11
Revision: 378582
Reporter: din3sh
Testers: danilo borges, Steve Lang
Coders: tilghman
Category: Resources/res_calendar_icalendar
ASTERISK-21012: Memory Leak on res_calendar (icalendar)
Revision: 380452
Reporter: joel_vandal
Testers: Joel Vandal
Coders: mjordan
Category: Resources/res_rtp_asterisk
ASTERISK-20906: DTMF in SIP not working after HOLD / UNHOLD
Revision: 378984
Reporter: eelcob
Coders: Eelco Brolman
Category: Utilities/astcanary
ASTERISK-20947: astcanary exits immediately because of wrong pid argument
Revision: 379513
Reporter: jhirsch
Testers: mjordan
Coders: Jakob Hirsch
----------------------------------------------------------------------
Commits Not Associated with an Issue
[Back to Top]
This is a list of all changes that went into this release that did not
directly close an issue from the issue tracker. The commits may have been
marked as being related to an issue. If that is the case, the issue
numbers are listed here, as well.
+------------------------------------------------------------------------+
| Revision | Author | Summary | Issues |
| | | | Referenced |
|----------+------------+-------------------------------+----------------|
| | | Remove trailing whitespaces | |
| 377577 | igorg | in number from incoming | |
| | | redial list. | |
|----------+------------+-------------------------------+----------------|
| 377593 | igorg | Fix codec mismatch | ASTERISK-20183 |
|----------+------------+-------------------------------+----------------|
| 377657 | kmoore | Ensure ReceiveFax provides a | |
| | | CED tone via T.38 | |
|----------+------------+-------------------------------+----------------|
| 377706 | rmudgett | Cleanup dnsmgr on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377710 | rmudgett | Cleanup event on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377742 | rmudgett | Cleanup indications on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377773 | rmudgett | Cleanup logger on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377808 | rmudgett | Cleanup pbx on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377839 | rmudgett | Cleanup taskprocessor on | ASTERISK-20649 |
| | | exit. | |
|----------+------------+-------------------------------+----------------|
| | | Fix crash that can occur if | |
| 377843 | mmichelson | CLI registration fails for an | |
| | | aliased command. | |
|----------+------------+-------------------------------+----------------|
| 377849 | rmudgett | Cleanup udptl on exit. | ASTERISK-20649 |
|----------+------------+-------------------------------+----------------|
| 377883 | rmudgett | Cleanup CLI commands on exit | ASTERISK-20649 |
| | | for several files. | |
|----------+------------+-------------------------------+----------------|
| | | Incremented | |
| 377924 | newtonr | EXTRA_SOUNDS_VERSION in | |
| | | sounds/Makefile to 1.4.12 for | |
| | | new Extra Sounds releases | |
|----------+------------+-------------------------------+----------------|
| 377948 | kmoore | Ensure Min-SE is included in | |
| | | outbound INVITEs | |
|----------+------------+-------------------------------+----------------|
| 377991 | wedhorn | Minor fixes for chan_skinny | |
|----------+------------+-------------------------------+----------------|
| 378073 | qwell | Make libasteriskssl.so | |
| | | symlink use a relative path. | |
|----------+------------+-------------------------------+----------------|
| | | Make chan_local module | |
| 378090 | rmudgett | references tied to local_pvt | |
| | | lifetime. | |
|----------+------------+-------------------------------+----------------|
| 378094 | rmudgett | Fix potential double free | |
| | | when unloading a module. | |
|----------+------------+-------------------------------+----------------|
| 378121 | kmoore | Add test events for time | |
| | | limit-related hangups | |
|----------+------------+-------------------------------+----------------|
| | | Add branch-1.8-merged | |
| 378163 | rmudgett | property to allow direct | |
| | | merging from v1.8 | |
|----------+------------+-------------------------------+----------------|
| 378165 | rmudgett | Give the causes[] a struct | |
| | | name. | |
|----------+------------+-------------------------------+----------------|
| | | Ensure chan_sip rejects | |
| 378219 | kmoore | encrypted streams without | |
| | | crypto info | |
|----------+------------+-------------------------------+----------------|
| | | Resolve crashes due to large | |
| 378287 | mjordan | stack allocations when using | ASTERISK-20658 |
| | | TCP | |
|----------+------------+-------------------------------+----------------|
| | | Prevent exhaustion of system | |
| 378321 | mjordan | resources through | ASTERISK-20175 |
| | | exploitation of event cache | |
|----------+------------+-------------------------------+----------------|
| 378337 | kmoore | Restore branch-1.8-merged on | |
| | | 11 | |
|----------+------------+-------------------------------+----------------|
| | | Prevent crashes from | |
| 378376 | mjordan | occurring when reading from | ASTERISK-20658 |
| | | data sources with large | |
| | | values | |
|----------+------------+-------------------------------+----------------|
| 378409 | mjordan | Prevent crashes in res_xmpp | ASTERISK-20658 |
| | | when receiving large messages | |
|----------+------------+-------------------------------+----------------|
| | | Prevent exhaustion of system | |
| 378411 | file | resources through | ASTERISK-20175 |
| | | exploitation of event cache | |
|----------+------------+-------------------------------+----------------|
| 378428 | rmudgett | chan_agent: Fix | |
| | | agent_indicate() locking. | |
|----------+------------+-------------------------------+----------------|
| 378457 | rmudgett | chan_agent: Misc code | |
| | | cleanup. | |
|----------+------------+-------------------------------+----------------|
| 378459 | kmoore | Add missing test event | |
|----------+------------+-------------------------------+----------------|
| 378487 | rmudgett | chan_agent: Fix wrapup time | |
| | | wait response. | |
|----------+------------+-------------------------------+----------------|
| 378622 | wedhorn | Rewrite skinny dialing to | |
| | | remove threaded simpleswitch | |
|----------+------------+-------------------------------+----------------|
| | | app_queue: Fix multiple calls | |
| 378687 | rmudgett | to a queue member that is in | ASTERISK-16115 |
| | | only one queue. | |
|----------+------------+-------------------------------+----------------|
| 378690 | rmudgett | app_queue: Fix incorrect | ASTERISK-16115 |
| | | assertion. | |
|----------+------------+-------------------------------+----------------|
| 378934 | dlee | Fix XML encoding of 'identity | |
| | | display' in NOTIFY messages. | |
|----------+------------+-------------------------------+----------------|
| | | Fix XML encoding of 'identity | |
| 379020 | dlee | display' in NOTIFY messages, | |
| | | continued. | |
|----------+------------+-------------------------------+----------------|
| | | Add module tags to | |
| 379209 | mjordan | documentation for | |
| | | res_jabber/res_xmpp | |
|----------+------------+-------------------------------+----------------|
| | | Update the dtd to actually | |
| 379210 | mjordan | *support* the module | |
| | | attribute in all elements | |
|----------+------------+-------------------------------+----------------|
| | | Let documentation reference | |
| 379228 | mjordan | links specify which module | |
| | | they're linking to | |
|----------+------------+-------------------------------+----------------|
| 379230 | rmudgett | chan_misdn: Fix compile | ASTERISK-15456 |
| | | error. | |
|----------+------------+-------------------------------+----------------|
| 379232 | rmudgett | Reduce call-id logging | |
| | | resource usage. | |
|----------+------------+-------------------------------+----------------|
| | | Reduce number of packages | |
| 379277 | qwell | install_prereq installs on | |
| | | Debian systems. | |
|----------+------------+-------------------------------+----------------|
| | | Further fix misinformation in | |
| 379311 | mmichelson | the description of manager | |
| | | MailboxStatus command. | |
|----------+------------+-------------------------------+----------------|
| 379582 | wedhorn | Fix issues with skinny | |
| | | sessions | |
|----------+------------+-------------------------------+----------------|
| 379643 | lathama | Add LDAP libraries to install | ASTERISK-20886 |
| | | script | |
|----------+------------+-------------------------------+----------------|
| | | confbridge: Minor fixes | |
| 379808 | rmudgett | playing user counts to the | |
| | | conference. | |
|----------+------------+-------------------------------+----------------|
| | | res_fax_spandsp: fix t38 | |
| 379949 | jrose | transmission bug caused by | ASTERISK-20919 |
| | | not returning success | |
|----------+------------+-------------------------------+----------------|
| | | Attempt to be more helpful | |
| 379964 | rmudgett | when using a bad ao2 object | |
| | | pointer. | |
|----------+------------+-------------------------------+----------------|
| 380211 | russell | Change cleanup ordering in | |
| | | filestream destructor. | |
|----------+------------+-------------------------------+----------------|
| | | Correct the number of | |
| 380255 | seanbright | available call numbers in | |
| | | IAX2. | |
|----------+------------+-------------------------------+----------------|
| | | chan_agent: Prevent multiple | |
| 380384 | rmudgett | channels from logging in as | |
| | | the same agent. | |
|----------+------------+-------------------------------+----------------|
| 380480 | mjordan | Unregister SIP provider API | |
| | | if module load is declined | |
|----------+------------+-------------------------------+----------------|
| 383967 | bebuild | Create 11.3.0-rc2 | |
|----------+------------+-------------------------------+----------------|
| 383970 | bebuild | Update version, remove | |
| | | summaries, merge blockers | |
|----------+------------+-------------------------------+----------------|
| 383971 | bebuild | Merge r383878 for | |
| | | ASTERISK-21068 | |
|----------+------------+-------------------------------+----------------|
| 384085 | bebuild | Merge security patches; | |
| | | regression fixes | |
|----------+------------+-------------------------------+----------------|
| 384090 | bebuild | Update ChangeLog | |
|----------+------------+-------------------------------+----------------|
| 384096 | bebuild | Importing release summary for | |
| | | 11.3.0-rc2 release. | |
+------------------------------------------------------------------------+
----------------------------------------------------------------------
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.
.version | 2
CHANGES | 2
ChangeLog | 191 ++++++
Makefile | 5
UPGRADE.txt | 21
addons/chan_mobile.c | 3
apps/app_confbridge.c | 318 ++++++++---
apps/app_meetme.c | 821 +++++++++++++++++-------------
apps/app_minivm.c | 1
apps/app_page.c | 89 ++-
apps/app_queue.c | 225 +++++---
apps/app_voicemail.c | 144 ++---
apps/confbridge/conf_config_parser.c | 8
apps/confbridge/conf_state.c | 19
apps/confbridge/conf_state_empty.c | 2
apps/confbridge/conf_state_multi_marked.c | 22
apps/confbridge/include/confbridge.h | 19
asterisk-11.3.0-rc1-summary.html | 583 ---------------------
asterisk-11.3.0-rc1-summary.txt | 726 --------------------------
asterisk-11.3.0-rc2-summary.html | 75 ++
asterisk-11.3.0-rc2-summary.txt | 109 +++
autoconf/ast_check_pwlib.m4 | 2
channels/chan_agent.c | 483 +++++++----------
channels/chan_bridge.c | 5
channels/chan_dahdi.c | 7
channels/chan_iax2.c | 42 -
channels/chan_local.c | 46 +
channels/chan_misdn.c | 3
channels/chan_sip.c | 493 ++++++++++++------
channels/chan_skinny.c | 437 +++++++--------
channels/chan_unistim.c | 12
channels/iax2.h | 8
channels/sip/include/reqresp_parser.h | 11
channels/sip/include/sip.h | 2
channels/sip/reqresp_parser.c | 53 +
channels/sip/sdp_crypto.c | 32 -
channels/sip/security_events.c | 3
codecs/codec_ilbc.c | 16
configs/queues.conf.sample | 7
configure.ac | 36 +
contrib/init.d/rc.archlinux.asterisk | 2
contrib/init.d/rc.debian.asterisk | 2
contrib/init.d/rc.gentoo.asterisk | 2
contrib/init.d/rc.mandriva.asterisk | 2
contrib/init.d/rc.redhat.asterisk | 2
contrib/init.d/rc.slackware.asterisk | 2
contrib/init.d/rc.suse.asterisk | 2
contrib/scripts/install_prereq | 10
contrib/scripts/safe_asterisk | 2
doc/appdocsxml.dtd | 4
funcs/func_devstate.c | 6
funcs/func_realtime.c | 17
include/asterisk/autoconfig.h.in | 16
include/asterisk/bridging.h | 26
include/asterisk/causes.h | 10
include/asterisk/channel.h | 13
include/asterisk/compat.h | 8
include/asterisk/devicestate.h | 16
include/asterisk/event_defs.h | 8
include/asterisk/strings.h | 30 -
include/asterisk/utils.h | 14
main/Makefile | 5
main/aoc.c | 5
main/asterisk.c | 7
main/astobj2.c | 6
main/ccss.c | 2
main/cdr.c | 24
main/cel.c | 1
main/channel.c | 17
main/channel_internal_api.c | 1
main/config.c | 11
main/data.c | 2
main/devicestate.c | 51 +
main/dnsmgr.c | 23
main/event.c | 11
main/features.c | 23
main/file.c | 21
main/http.c | 35 +
main/image.c | 6
main/indications.c | 15
main/loader.c | 28 -
main/logger.c | 20
main/manager.c | 141 +++--
main/pbx.c | 13
main/rtp_engine.c | 15
main/strcompat.c | 14
main/stun.c | 6
main/taskprocessor.c | 7
main/timing.c | 10
main/udptl.c | 10
main/utils.c | 63 ++
makeopts.in | 1
res/pjproject/aconfigure | 3
res/pjproject/aconfigure.ac | 1
res/pjproject/build/common.mak | 9
res/res_calendar.c | 8
res/res_calendar_icalendar.c | 5
res/res_clialiases.c | 5
res/res_fax.c | 3
res/res_fax_spandsp.c | 1
res/res_format_attr_h264.c | 11
res/res_jabber.c | 96 ++-
res/res_rtp_asterisk.c | 10
res/res_srtp.c | 15
res/res_xmpp.c | 89 ++-
sounds/Makefile | 4
tests/test_xml_escape.c | 118 ++++
107 files changed, 3317 insertions(+), 2932 deletions(-)
----------------------------------------------------------------------

View File

@@ -1185,6 +1185,11 @@ static struct ao2_container *threadt;
static struct ao2_container *peers;
static struct ao2_container *peers_by_ip;
/*! \brief A bogus peer, to be used when authentication should fail */
static struct sip_peer *bogus_peer;
/*! \brief We can recognise the bogus peer by this invalid MD5 hash */
#define BOGUS_PEER_MD5SECRET "intentionally_invalid_md5_string"
/*! \brief The register list: Other SIP proxies we register with and receive calls from */
static struct ast_register_list {
ASTOBJ_CONTAINER_COMPONENTS(struct sip_registry);
@@ -1331,7 +1336,7 @@ static int transmit_response_with_unsupported(struct sip_pvt *p, const char *msg
static int transmit_response_with_auth(struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *rand, enum xmittype reliable, const char *header, int stale);
static int transmit_provisional_response(struct sip_pvt *p, const char *msg, const struct sip_request *req, int with_sdp);
static int transmit_response_with_allow(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable);
static void transmit_fake_auth_response(struct sip_pvt *p, int sipmethod, struct sip_request *req, enum xmittype reliable);
static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable);
static int transmit_request(struct sip_pvt *p, int sipmethod, uint32_t seqno, enum xmittype reliable, int newbranch);
static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, uint32_t seqno, enum xmittype reliable, int newbranch);
static int transmit_publish(struct sip_epa_entry *epa_entry, enum sip_publish_type publish_type, const char * const explicit_uri);
@@ -16024,7 +16029,9 @@ static enum parse_register_result parse_register_contact(struct sip_pvt *pvt, st
ast_verb(3, "Registered SIP '%s' at %s\n", peer->name,
ast_sockaddr_stringify(&peer->addr));
}
sip_pvt_unlock(pvt);
sip_poke_peer(peer, 0);
sip_pvt_lock(pvt);
register_peer_exten(peer, 1);
/* Save User agent */
@@ -16236,6 +16243,7 @@ static enum check_auth_result check_auth(struct sip_pvt *p, struct sip_request *
char a1_hash[256];
char resp_hash[256]="";
char *c;
int is_bogus_peer = 0;
int wrongnonce = FALSE;
int good_response;
const char *usednonce = p->nonce;
@@ -16307,8 +16315,14 @@ static enum check_auth_result check_auth(struct sip_pvt *p, struct sip_request *
sip_digest_parser(c, keys);
/* We cannot rely on the bogus_peer having a bad md5 value. Someone could
* use it to construct valid auth. */
if (md5secret && strcmp(md5secret, BOGUS_PEER_MD5SECRET) == 0) {
is_bogus_peer = 1;
}
/* Verify that digest username matches the username we auth as */
if (strcmp(username, keys[K_USER].s)) {
if (strcmp(username, keys[K_USER].s) && !is_bogus_peer) {
ast_log(LOG_WARNING, "username mismatch, have <%s>, digest has <%s>\n",
username, keys[K_USER].s);
/* Oops, we're trying something here */
@@ -16347,7 +16361,8 @@ static enum check_auth_result check_auth(struct sip_pvt *p, struct sip_request *
}
good_response = keys[K_RESP].s &&
!strncasecmp(keys[K_RESP].s, resp_hash, strlen(resp_hash));
!strncasecmp(keys[K_RESP].s, resp_hash, strlen(resp_hash)) &&
!is_bogus_peer; /* lastly, check that the peer isn't the fake peer */
if (wrongnonce) {
if (good_response) {
if (sipdebug)
@@ -16573,13 +16588,13 @@ static int cb_extensionstate(char *context, char *exten, struct ast_state_cb_inf
/*! \brief Send a fake 401 Unauthorized response when the administrator
wants to hide the names of local devices from fishers
*/
static void transmit_fake_auth_response(struct sip_pvt *p, int sipmethod, struct sip_request *req, enum xmittype reliable)
static void transmit_fake_auth_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable)
{
/* We have to emulate EXACTLY what we'd get with a good peer
* and a bad password, or else we leak information. */
const char *response = "407 Proxy Authentication Required";
const char *reqheader = "Proxy-Authorization";
const char *respheader = "Proxy-Authenticate";
const char *response = "401 Unauthorized";
const char *reqheader = "Authorization";
const char *respheader = "WWW-Authenticate";
const char *authtoken;
struct ast_str *buf;
char *c;
@@ -16594,36 +16609,31 @@ static void transmit_fake_auth_response(struct sip_pvt *p, int sipmethod, struct
[K_LAST] = { NULL, NULL}
};
if (sipmethod == SIP_REGISTER || sipmethod == SIP_SUBSCRIBE) {
response = "401 Unauthorized";
reqheader = "Authorization";
respheader = "WWW-Authenticate";
}
authtoken = sip_get_header(req, reqheader);
if (req->ignore && !ast_strlen_zero(p->nonce) && ast_strlen_zero(authtoken)) {
/* This is a retransmitted invite/register/etc, don't reconstruct authentication
* information */
transmit_response_with_auth(p, response, req, p->nonce, 0, respheader, 0);
transmit_response_with_auth(p, response, req, p->nonce, reliable, respheader, 0);
/* Schedule auto destroy in 32 seconds (according to RFC 3261) */
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
return;
} else if (ast_strlen_zero(p->nonce) || ast_strlen_zero(authtoken)) {
/* We have no auth, so issue challenge and request authentication */
build_nonce(p, 1);
transmit_response_with_auth(p, response, req, p->nonce, 0, respheader, 0);
transmit_response_with_auth(p, response, req, p->nonce, reliable, respheader, 0);
/* Schedule auto destroy in 32 seconds */
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
return;
}
if (!(buf = ast_str_thread_get(&check_auth_buf, CHECK_AUTH_BUF_INITLEN))) {
transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq);
__transmit_response(p, "403 Forbidden", &p->initreq, reliable);
return;
}
/* Make a copy of the response and parse it */
if (ast_str_set(&buf, 0, "%s", authtoken) == AST_DYNSTR_BUILD_FAILED) {
transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq);
__transmit_response(p, "403 Forbidden", &p->initreq, reliable);
return;
}
@@ -16661,7 +16671,7 @@ static void transmit_fake_auth_response(struct sip_pvt *p, int sipmethod, struct
/* Schedule auto destroy in 32 seconds */
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
} else {
transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq);
__transmit_response(p, "403 Forbidden", &p->initreq, reliable);
}
}
@@ -16771,7 +16781,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
if (!AST_LIST_EMPTY(&domain_list)) {
if (!check_sip_domain(domain, NULL, 0)) {
if (sip_cfg.alwaysauthreject) {
transmit_fake_auth_response(p, SIP_REGISTER, &p->initreq, XMIT_UNRELIABLE);
transmit_fake_auth_response(p, &p->initreq, XMIT_UNRELIABLE);
} else {
transmit_response(p, "404 Not found (unknown domain)", &p->initreq);
}
@@ -16798,6 +16808,13 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
}
peer = sip_find_peer(name, NULL, TRUE, FINDPEERS, FALSE, 0);
/* If we don't want username disclosure, use the bogus_peer when a user
* is not found. */
if (!peer && sip_cfg.alwaysauthreject && sip_cfg.autocreatepeer == AUTOPEERS_DISABLED) {
peer = bogus_peer;
sip_ref_peer(peer, "register_verify: ref the bogus_peer");
}
if (!(peer && ast_apply_acl(peer->acl, addr, "SIP Peer ACL: "))) {
/* Peer fails ACL check */
if (peer) {
@@ -16889,7 +16906,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
switch (parse_register_contact(p, peer, req)) {
case PARSE_REGISTER_DENIED:
ast_log(LOG_WARNING, "Registration denied because of contact ACL\n");
transmit_response_with_date(p, "403 Forbidden (ACL)", req);
transmit_response_with_date(p, "403 Forbidden", req);
res = 0;
break;
case PARSE_REGISTER_FAILED:
@@ -16917,9 +16934,9 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
}
if (!res) {
if (send_mwi) {
ao2_unlock(p);
sip_pvt_unlock(p);
sip_send_mwi_to_peer(peer, 0);
ao2_lock(p);
sip_pvt_lock(p);
} else {
update_peer_lastmsgssent(peer, -1, 0);
}
@@ -16929,7 +16946,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
switch (res) {
case AUTH_SECRET_FAILED:
/* Wrong password in authentication. Go away, don't try again until you fixed it */
transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq);
transmit_response(p, "403 Forbidden", &p->initreq);
if (global_authfailureevents) {
const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr));
const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr));
@@ -16952,7 +16969,7 @@ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sock
case AUTH_PEER_NOT_DYNAMIC:
case AUTH_ACL_FAILED:
if (sip_cfg.alwaysauthreject) {
transmit_fake_auth_response(p, SIP_REGISTER, &p->initreq, XMIT_UNRELIABLE);
transmit_fake_auth_response(p, &p->initreq, XMIT_UNRELIABLE);
if (global_authfailureevents) {
const char *peer_addr = ast_strdupa(ast_sockaddr_stringify_addr(addr));
const char *peer_port = ast_strdupa(ast_sockaddr_stringify_port(addr));
@@ -17951,7 +17968,19 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
ast_verbose("No matching peer for '%s' from '%s'\n",
of, ast_sockaddr_stringify(&p->recv));
}
return AUTH_DONT_KNOW;
/* If you don't mind, we can return 404s for devices that do
* not exist: username disclosure. If we allow guests, there
* is no way around that. */
if (sip_cfg.allowguest || !sip_cfg.alwaysauthreject) {
return AUTH_DONT_KNOW;
}
/* If you do mind, we use a peer that will never authenticate.
* This ensures that we follow the same code path as regular
* auth: less chance for username disclosure. */
peer = bogus_peer;
sip_ref_peer(peer, "sip_ref_peer: check_peer_ok: must ref bogus_peer so unreffing it does not fail");
}
if (!ast_apply_acl(peer->acl, addr, "SIP Peer ACL: ")) {
@@ -17959,9 +17988,10 @@ static enum check_auth_result check_peer_ok(struct sip_pvt *p, char *of,
sip_unref_peer(peer, "sip_unref_peer: check_peer_ok: from sip_find_peer call, early return of AUTH_ACL_FAILED");
return AUTH_ACL_FAILED;
}
if (debug)
if (debug && peer != bogus_peer) {
ast_verbose("Found peer '%s' for '%s' from %s\n",
peer->name, of, ast_sockaddr_stringify(&p->recv));
}
/* XXX what about p->prefs = peer->prefs; ? */
/* Set Frame packetization */
@@ -18244,8 +18274,6 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
} else {
res = AUTH_RTP_FAILED;
}
} else if (sip_cfg.alwaysauthreject) {
res = AUTH_FAKE_AUTH; /* reject with fake authorization request */
} else {
res = AUTH_SECRET_FAILED; /* we don't want any guests, authentication will fail */
}
@@ -18380,13 +18408,8 @@ static void receive_message(struct sip_pvt *p, struct sip_request *req, struct a
return;
}
if (res < 0) { /* Something failed in authentication */
if (res == AUTH_FAKE_AUTH) {
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", sip_get_header(req, "From"));
transmit_fake_auth_response(p, SIP_MESSAGE, req, XMIT_UNRELIABLE);
} else {
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
}
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
return;
}
@@ -24461,13 +24484,8 @@ static int handle_request_options(struct sip_pvt *p, struct sip_request *req, st
return 0;
}
if (res < 0) { /* Something failed in authentication */
if (res == AUTH_FAKE_AUTH) {
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", sip_get_header(req, "From"));
transmit_fake_auth_response(p, SIP_OPTIONS, req, XMIT_UNRELIABLE);
} else {
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
}
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
return 0;
}
@@ -25131,13 +25149,8 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, str
goto request_invite_cleanup;
}
if (res < 0) { /* Something failed in authentication */
if (res == AUTH_FAKE_AUTH) {
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", sip_get_header(req, "From"));
transmit_fake_auth_response(p, SIP_INVITE, req, XMIT_RELIABLE);
} else {
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response_reliable(p, "403 Forbidden", req);
}
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response_reliable(p, "403 Forbidden", req);
p->invitestate = INV_COMPLETED;
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
goto request_invite_cleanup;
@@ -27174,18 +27187,13 @@ static int handle_request_publish(struct sip_pvt *p, struct sip_request *req, st
return -1;
}
auth_result = check_user(p, req, SIP_PUBLISH, uri, XMIT_RELIABLE, addr);
auth_result = check_user(p, req, SIP_PUBLISH, uri, XMIT_UNRELIABLE, addr);
if (auth_result == AUTH_CHALLENGE_SENT) {
p->lastinvite = seqno;
return 0;
} else if (auth_result < 0) {
if (auth_result == AUTH_FAKE_AUTH) {
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", sip_get_header(req, "From"));
transmit_fake_auth_response(p, SIP_INVITE, req, XMIT_RELIABLE);
} else {
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response_reliable(p, "403 Forbidden", req);
}
ast_log(LOG_NOTICE, "Failed to authenticate device %s\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT);
ast_string_field_set(p, theirtag, NULL);
return 0;
@@ -27393,19 +27401,14 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
* use if !req->ignore, because then we'll end up sending
* a 200 OK if someone retransmits without sending auth */
if (p->subscribed == NONE || resubscribe) {
res = check_user_full(p, req, SIP_SUBSCRIBE, e, 0, addr, &authpeer);
res = check_user_full(p, req, SIP_SUBSCRIBE, e, XMIT_UNRELIABLE, addr, &authpeer);
/* if an authentication response was sent, we are done here */
if (res == AUTH_CHALLENGE_SENT) /* authpeer = NULL here */
return 0;
if (res != AUTH_SUCCESSFUL) {
if (res == AUTH_FAKE_AUTH) {
ast_log(LOG_NOTICE, "Sending fake auth rejection for device %s\n", sip_get_header(req, "From"));
transmit_fake_auth_response(p, SIP_SUBSCRIBE, req, XMIT_UNRELIABLE);
} else {
ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE\n", sip_get_header(req, "From"));
transmit_response_reliable(p, "403 Forbidden", req);
}
ast_log(LOG_NOTICE, "Failed to authenticate device %s for SUBSCRIBE\n", sip_get_header(req, "From"));
transmit_response(p, "403 Forbidden", req);
pvt_set_needdestroy(p, "authentication failed");
return 0;
@@ -29223,6 +29226,9 @@ static int sip_poke_noanswer(const void *data)
\note This is done with 60 seconds between each ping,
unless forced by cli or manager. If peer is unreachable,
we check every 10th second by default.
\note Do *not* hold a pvt lock while calling this function.
This function calls sip_alloc, which can cause a deadlock
if another sip_pvt is held.
*/
static int sip_poke_peer(struct sip_peer *peer, int force)
{
@@ -32937,6 +32943,7 @@ static int sip_do_reload(enum channelreloadreason reason)
/*! \brief Force reload of module from cli */
static char *sip_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
static struct sip_peer *tmp_peer, *new_peer;
switch (cmd) {
case CLI_INIT:
@@ -32959,6 +32966,18 @@ static char *sip_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a
ast_mutex_unlock(&sip_reload_lock);
restart_monitor();
tmp_peer = bogus_peer;
/* Create new bogus peer possibly with new global settings. */
if ((new_peer = temp_peer("(bogus_peer)"))) {
ast_string_field_set(new_peer, md5secret, BOGUS_PEER_MD5SECRET);
ast_clear_flag(&new_peer->flags[0], SIP_INSECURE);
bogus_peer = new_peer;
ao2_t_ref(tmp_peer, -1, "unref the old bogus_peer during reload");
} else {
ast_log(LOG_ERROR, "Could not update the fake authentication peer.\n");
/* You probably have bigger (memory?) issues to worry about though.. */
}
return CLI_SUCCESS;
}
@@ -34177,6 +34196,17 @@ static int load_module(void)
return AST_MODULE_LOAD_DECLINE;
}
/* Initialize bogus peer. Can be done first after reload_config() */
if (!(bogus_peer = temp_peer("(bogus_peer)"))) {
ast_log(LOG_ERROR, "Unable to create bogus_peer for authentication\n");
io_context_destroy(io);
ast_sched_context_destroy(sched);
return AST_MODULE_LOAD_FAILURE;
}
/* Make sure the auth will always fail. */
ast_string_field_set(bogus_peer, md5secret, BOGUS_PEER_MD5SECRET);
ast_clear_flag(&bogus_peer->flags[0], SIP_INSECURE);
/* Prepare the version that does not require DTMF BEGIN frames.
* We need to use tricks such as memcpy and casts because the variable
* has const fields.
@@ -34192,6 +34222,7 @@ static int load_module(void)
/* Make sure we can register our sip channel type */
if (ast_channel_register(&sip_tech)) {
ast_log(LOG_ERROR, "Unable to register channel type 'SIP'\n");
ao2_t_ref(bogus_peer, -1, "unref the bogus_peer");
io_context_destroy(io);
ast_sched_context_destroy(sched);
return AST_MODULE_LOAD_FAILURE;
@@ -34454,6 +34485,8 @@ static int unload_module(void)
ast_debug(2, "TCP/TLS thread container did not become empty :(\n");
}
ao2_t_ref(bogus_peer, -1, "unref the bogus_peer");
ao2_t_ref(peers, -1, "unref the peers table");
ao2_t_ref(peers_by_ip, -1, "unref the peers_by_ip table");
ao2_t_ref(dialogs, -1, "unref the dialogs table");

View File

@@ -503,7 +503,6 @@ enum check_auth_result {
AUTH_SECRET_FAILED = -1,
AUTH_USERNAME_MISMATCH = -2,
AUTH_NOT_FOUND = -3, /*!< returned by register_verify */
AUTH_FAKE_AUTH = -4,
AUTH_UNKNOWN_DOMAIN = -5,
AUTH_PEER_NOT_DYNAMIC = -6,
AUTH_ACL_FAILED = -7,

View File

@@ -340,9 +340,6 @@ int sip_report_security_event(const struct sip_pvt *p, const struct sip_request
/* with sip_cfg.alwaysauthreject on, generates 2 events */
sip_report_invalid_peer(p);
break;
case AUTH_FAKE_AUTH:
sip_report_invalid_peer(p);
break;
case AUTH_UNKNOWN_DOMAIN:
snprintf(aclname, sizeof(aclname), "domain_must_match");
sip_report_failed_acl(p, aclname);

View File

@@ -115,6 +115,8 @@ static const int BATCH_SCHEDULER_ONLY_DEFAULT = 0;
static int batchsafeshutdown;
static const int BATCH_SAFE_SHUTDOWN_DEFAULT = 1;
AST_MUTEX_DEFINE_STATIC(cdr_sched_lock);
AST_MUTEX_DEFINE_STATIC(cdr_batch_lock);
/* these are used to wake up the CDR thread when there's work to do */
@@ -1349,17 +1351,24 @@ static int submit_scheduled_batch(const void *data)
{
ast_cdr_submit_batch(0);
/* manually reschedule from this point in time */
ast_mutex_lock(&cdr_sched_lock);
cdr_sched = ast_sched_add(sched, batchtime * 1000, submit_scheduled_batch, NULL);
ast_mutex_unlock(&cdr_sched_lock);
/* returning zero so the scheduler does not automatically reschedule */
return 0;
}
/*! Do not hold the batch lock while calling this function */
static void submit_unscheduled_batch(void)
{
/* Prevent two deletes from happening at the same time */
ast_mutex_lock(&cdr_sched_lock);
/* this is okay since we are not being called from within the scheduler */
AST_SCHED_DEL(sched, cdr_sched);
/* schedule the submission to occur ASAP (1 ms) */
cdr_sched = ast_sched_add(sched, 1, submit_scheduled_batch, NULL);
ast_mutex_unlock(&cdr_sched_lock);
/* signal the do_cdr thread to wakeup early and do some work (that lazy thread ;) */
ast_mutex_lock(&cdr_pending_lock);
ast_cond_signal(&cdr_pending_cond);
@@ -1370,6 +1379,7 @@ void ast_cdr_detach(struct ast_cdr *cdr)
{
struct ast_cdr_batch_item *newtail;
int curr;
int submit_batch = 0;
if (!cdr)
return;
@@ -1416,10 +1426,14 @@ void ast_cdr_detach(struct ast_cdr *cdr)
/* if we have enough stuff to post, then do it */
if (curr >= (batchsize - 1)) {
submit_batch = 1;
}
ast_mutex_unlock(&cdr_batch_lock);
/* Don't call submit_unscheduled_batch with the cdr_batch_lock held */
if (submit_batch) {
submit_unscheduled_batch();
}
ast_mutex_unlock(&cdr_batch_lock);
}
static void *do_cdr(void *data)
@@ -1565,7 +1579,9 @@ static void do_reload(int reload)
}
/* don't run the next scheduled CDR posting while reloading */
ast_mutex_lock(&cdr_sched_lock);
AST_SCHED_DEL(sched, cdr_sched);
ast_mutex_unlock(&cdr_sched_lock);
for (v = ast_variable_browse(config, "general"); v; v = v->next) {
if (!strcasecmp(v->name, "enable")) {
@@ -1606,7 +1622,9 @@ static void do_reload(int reload)
if (enabled && !batchmode) {
ast_log(LOG_NOTICE, "CDR simple logging enabled.\n");
} else if (enabled && batchmode) {
ast_mutex_lock(&cdr_sched_lock);
cdr_sched = ast_sched_add(sched, batchtime * 1000, submit_scheduled_batch, NULL);
ast_mutex_unlock(&cdr_sched_lock);
ast_log(LOG_NOTICE, "CDR batch mode logging enabled, first of either size %d or time %d seconds.\n", batchsize, batchtime);
} else {
ast_log(LOG_NOTICE, "CDR logging disabled, data will be lost.\n");
@@ -1618,7 +1636,9 @@ static void do_reload(int reload)
ast_cond_init(&cdr_pending_cond, NULL);
if (ast_pthread_create_background(&cdr_thread, NULL, do_cdr, NULL) < 0) {
ast_log(LOG_ERROR, "Unable to start CDR thread.\n");
ast_mutex_lock(&cdr_sched_lock);
AST_SCHED_DEL(sched, cdr_sched);
ast_mutex_unlock(&cdr_sched_lock);
} else {
ast_cli_register(&cli_submit);
ast_register_atexit(ast_cdr_engine_term);

View File

@@ -215,6 +215,7 @@ static const char * const event_names[AST_EVENT_TOTAL] = {
[AST_EVENT_CEL] = "CEL",
[AST_EVENT_SECURITY] = "Security",
[AST_EVENT_NETWORK_CHANGE] = "NetworkChange",
[AST_EVENT_PRESENCE_STATE] = "PresenceState",
};
/*!
@@ -279,7 +280,11 @@ static const struct ie_map {
[AST_EVENT_IE_RECEIVED_HASH] = { AST_EVENT_IE_PLTYPE_STR, "ReceivedHash" },
[AST_EVENT_IE_USING_PASSWORD] = { AST_EVENT_IE_PLTYPE_UINT, "UsingPassword" },
[AST_EVENT_IE_ATTEMPTED_TRANSPORT] = { AST_EVENT_IE_PLTYPE_STR, "AttemptedTransport" },
[AST_EVENT_IE_CACHABLE] = { AST_EVENT_IE_PLTYPE_UINT, "Cachable" },
[AST_EVENT_IE_CACHABLE] = { AST_EVENT_IE_PLTYPE_UINT, "Cachable" },
[AST_EVENT_IE_PRESENCE_PROVIDER] = { AST_EVENT_IE_PLTYPE_STR, "PresenceProvider" },
[AST_EVENT_IE_PRESENCE_STATE] = { AST_EVENT_IE_PLTYPE_UINT, "PresenceState" },
[AST_EVENT_IE_PRESENCE_SUBTYPE] = { AST_EVENT_IE_PLTYPE_STR, "PresenceSubtype" },
[AST_EVENT_IE_PRESENCE_MESSAGE] = { AST_EVENT_IE_PLTYPE_STR, "PresenceMessage" },
};
const char *ast_event_get_type_name(const struct ast_event *event)

View File

@@ -593,6 +593,8 @@ void ast_http_uri_unlink_all_with_key(const char *key)
AST_RWLIST_UNLOCK(&uris);
}
#define MAX_POST_CONTENT 1025
/*
* get post variables from client Request Entity-Body, if content type is
* application/x-www-form-urlencoded
@@ -625,6 +627,13 @@ struct ast_variable *ast_http_get_post_vars(
return NULL;
}
if (content_length > MAX_POST_CONTENT - 1) {
ast_log(LOG_WARNING, "Excessively long HTTP content. %d is greater than our max of %d\n",
content_length, MAX_POST_CONTENT);
ast_http_send(ser, AST_HTTP_POST, 413, "Request Entity Too Large", NULL, NULL, 0, 0);
return NULL;
}
buf = ast_malloc(content_length + 1);
if (!buf) {
return NULL;

View File

@@ -1460,6 +1460,7 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as
struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock();
struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock();
int unlock_chans = 1;
int read_ptime0, read_ptime1, write_ptime0, write_ptime1;
if (!cap0 || !cap1) {
unlock_chans = 0;
@@ -1568,6 +1569,18 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as
goto done;
}
read_ptime0 = (ast_codec_pref_getsize(&instance0->codecs.pref, ast_channel_rawreadformat(c0))).cur_ms;
read_ptime1 = (ast_codec_pref_getsize(&instance1->codecs.pref, ast_channel_rawreadformat(c1))).cur_ms;
write_ptime0 = (ast_codec_pref_getsize(&instance0->codecs.pref, ast_channel_rawwriteformat(c0))).cur_ms;
write_ptime1 = (ast_codec_pref_getsize(&instance1->codecs.pref, ast_channel_rawwriteformat(c1))).cur_ms;
if (read_ptime0 != write_ptime1 || read_ptime1 != write_ptime0) {
ast_debug(1, "Packetization differs between RTP streams (%d != %d or %d != %d). Cannot native bridge in RTP\n",
read_ptime0, write_ptime1, read_ptime1, write_ptime0);
res = AST_BRIDGE_FAILED_NOWARN;
goto done;
}
instance0->glue = glue0;
instance1->glue = glue1;
instance0->chan = c0;

View File

@@ -41,8 +41,14 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
/*! \brief Value that indicates an attribute is actually unset */
#define H264_ATTR_KEY_UNSET UINT8_MAX
/*! \brief Maximum size for SPS / PPS values in sprop-parameter-sets attribute */
/*! \brief Maximum size for SPS / PPS values in sprop-parameter-sets attribute
* if you change this value then you must change H264_MAX_SPS_PPS_SIZE_SCAN_LIMIT
* as well. */
#define H264_MAX_SPS_PPS_SIZE 16
/*! \brief This is used when executing sscanf on buffers of H264_MAX_SPS_PPS_SIZE
* length. It must ALWAYS be a string literal representation of one less than
* H264_MAX_SPS_PPS_SIZE */
#define H264_MAX_SPS_PPS_SIZE_SCAN_LIMIT "15"
enum h264_attr_keys {
H264_ATTR_KEY_PROFILE_IDC,
@@ -111,7 +117,8 @@ static int h264_format_attr_sdp_parse(struct ast_format_attr *format_attr, const
format_attr->format_attr[H264_ATTR_KEY_PROFILE_IDC] = ((val2 >> 16) & 0xFF);
format_attr->format_attr[H264_ATTR_KEY_PROFILE_IOP] = ((val2 >> 8) & 0xFF);
format_attr->format_attr[H264_ATTR_KEY_LEVEL] = (val2 & 0xFF);
} else if (sscanf(attrib, "sprop-parameter-sets=%[^','],%s", sps, pps) == 2) {
} else if (sscanf(attrib, "sprop-parameter-sets=%" H264_MAX_SPS_PPS_SIZE_SCAN_LIMIT "[^','],%" H264_MAX_SPS_PPS_SIZE_SCAN_LIMIT "s", sps, pps) == 2) {
/* XXX sprop-parameter-sets can actually be of unlimited length. This may need to be addressed later. */
unsigned char spsdecoded[H264_MAX_SPS_PPS_SIZE] = { 0, }, ppsdecoded[H264_MAX_SPS_PPS_SIZE] = { 0, };
int i;

View File

@@ -1457,7 +1457,7 @@ static int __rtp_recvfrom(struct ast_rtp_instance *instance, void *buf, size_t s
rtp->passthrough = 0;
}
if ((*in > 1) && res_srtp && srtp && res_srtp->unprotect(srtp, buf, &len, rtcp) < 0) {
if ((*in & 0xC0) && res_srtp && srtp && res_srtp->unprotect(srtp, buf, &len, rtcp) < 0) {
return -1;
}