mirror of
https://github.com/asterisk/asterisk.git
synced 2025-08-21 21:21:02 +00:00
Compare commits
15 Commits
11.4.0-rc1
...
11.3.0
Author | SHA1 | Date | |
---|---|---|---|
|
1108a7f521 | ||
|
0cfbf4ecc1 | ||
|
3f93165653 | ||
|
146b4b8e8b | ||
|
98bcc1c29a | ||
|
6d7c5ed828 | ||
|
3f6d6be1b6 | ||
|
b53447a6c5 | ||
|
03e9c13305 | ||
|
9b2f204e35 | ||
|
8eb8586469 | ||
|
f69789d3ae | ||
|
e4c60016c2 | ||
|
c9c30ef9a5 | ||
|
b51818b582 |
1
.lastclean
Normal file
1
.lastclean
Normal file
@@ -0,0 +1 @@
|
||||
40
|
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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 */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
600
asterisk-11.3.0-summary.html
Normal file
600
asterisk-11.3.0-summary.html
Normal 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"><asteriskteam@digium.com></h3>
|
||||
<hr/>
|
||||
<h2 align="center">Table of Contents</h2>
|
||||
<ol>
|
||||
<li><a href="#summary">Summary</a></li>
|
||||
<li><a href="#contributors">Contributors</a></li>
|
||||
<li><a href="#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
752
asterisk-11.3.0-summary.txt
Normal 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(-)
|
||||
|
||||
----------------------------------------------------------------------
|
@@ -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");
|
||||
|
@@ -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,
|
||||
|
@@ -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);
|
||||
|
24
main/cdr.c
24
main/cdr.c
@@ -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);
|
||||
|
@@ -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)
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user