Compare commits

...

13 Commits

Author SHA1 Message Date
Asterisk Autobuilder
b25ff8543b Importing release summary for 1.8.14.0 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0@369896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-10 15:08:38 +00:00
Asterisk Autobuilder
6168e979df Update version, ChangeLog, remove old summaries
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0@369893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-10 14:55:55 +00:00
Asterisk Autobuilder
0644c6f895 Create 1.8.14.0
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0@369890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-10 14:52:22 +00:00
Asterisk Autobuilder
1b66250dc4 Importing release summary for 1.8.14.0-rc2 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc2@369691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-05 23:09:33 +00:00
Asterisk Autobuilder
3a173d884f Commit changes for 1.8.14.0-rc2
ASTERISK-20040: r369214
ASTERISK-19992: r369436,369557,369579,369626
ASTERISK-19923: r369652
ASTERISK-20008: r369066
ASTERISK-20012: r369043


git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc2@369690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-05 23:07:27 +00:00
Asterisk Autobuilder
595096d27d Create 1.8.14.0-rc2
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc2@369685 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-05 22:34:20 +00:00
Asterisk Autobuilder
d43fc52806 Use autotagged externals
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 15:24:49 +00:00
Asterisk Autobuilder
ffce9d34c8 Importing release summary for 1.8.14.0-rc1 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368703 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 15:24:38 +00:00
Asterisk Autobuilder
c4a586778a Importing files for 1.8.14.0-rc1 release.
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368702 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 15:24:32 +00:00
Asterisk Autobuilder
c94fb8a2c7 Creating tag for the release of asterisk-1.8.14.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368701 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 15:23:39 +00:00
Asterisk Autobuilder
1ab1ce7d41 Creating tag for the release of asterisk-1.8.14.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368699 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 15:21:05 +00:00
Asterisk Autobuilder
c95cef3d7f Creating tag for the release of asterisk-1.8.14.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368697 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 14:52:51 +00:00
Asterisk Autobuilder
d94ec41738 Creating tag for the release of asterisk-1.8.14.0-rc1
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.14.0-rc1@368695 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-06-08 14:47:56 +00:00
9 changed files with 41536 additions and 131 deletions

3
.lastclean Normal file
View File

@@ -0,0 +1,3 @@
39

1
.version Normal file
View File

@@ -0,0 +1 @@
1.8.14.0

40311
ChangeLog Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1758,25 +1758,28 @@ static void free_user(struct ast_vm_user *vmu)
static int vm_allocate_dh(struct vm_state *vms, struct ast_vm_user *vmu, int count_msg) {
int arraysize = (vmu->maxmsg > count_msg ? vmu->maxmsg : count_msg);
if (!vms->dh_arraysize) {
/* initial allocation */
/* remove old allocation */
if (vms->deleted) {
ast_free(vms->deleted);
vms->deleted = NULL;
}
if (vms->heard) {
ast_free(vms->heard);
vms->heard = NULL;
}
vms->dh_arraysize = 0;
if (arraysize > 0) {
if (!(vms->deleted = ast_calloc(arraysize, sizeof(int)))) {
return -1;
}
if (!(vms->heard = ast_calloc(arraysize, sizeof(int)))) {
ast_free(vms->deleted);
vms->deleted = NULL;
return -1;
}
vms->dh_arraysize = arraysize;
} else if (vms->dh_arraysize < arraysize) {
if (!(vms->deleted = ast_realloc(vms->deleted, arraysize * sizeof(int)))) {
return -1;
}
if (!(vms->heard = ast_realloc(vms->heard, arraysize * sizeof(int)))) {
return -1;
}
memset(vms->deleted, 0, arraysize * sizeof(int));
memset(vms->heard, 0, arraysize * sizeof(int));
vms->dh_arraysize = arraysize;
}
return 0;
@@ -6567,9 +6570,15 @@ static void adsi_message(struct ast_channel *chan, struct vm_state *vms)
name = "Unknown Caller";
/* If deleted, show "undeleted" */
if (vms->deleted[vms->curmsg])
keys[1] = ADSI_KEY_SKT | (ADSI_KEY_APPS + 11);
#ifdef IMAP_STORAGE
ast_mutex_lock(&vms->lock);
#endif
if (vms->deleted[vms->curmsg]) {
keys[1] = ADSI_KEY_SKT | (ADSI_KEY_APPS + 11);
}
#ifdef IMAP_STORAGE
ast_mutex_unlock(&vms->lock);
#endif
/* Except "Exit" */
keys[5] = ADSI_KEY_SKT | (ADSI_KEY_APPS + 5);
@@ -6622,8 +6631,15 @@ static void adsi_delete(struct ast_channel *chan, struct vm_state *vms)
}
/* If deleted, show "undeleted" */
if (vms->deleted[vms->curmsg])
#ifdef IMAP_STORAGE
ast_mutex_lock(&vms->lock);
#endif
if (vms->deleted[vms->curmsg]) {
keys[1] = ADSI_KEY_SKT | (ADSI_KEY_APPS + 11);
}
#ifdef IMAP_STORAGE
ast_mutex_unlock(&vms->lock);
#endif
/* Except "Exit" */
keys[5] = ADSI_KEY_SKT | (ADSI_KEY_APPS + 5);
@@ -7805,8 +7821,12 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
if (!res) {
make_file(vms->fn, sizeof(vms->fn), vms->curdir, vms->curmsg);
#ifdef IMAP_STORAGE
ast_mutex_lock(&vms->lock);
#endif
vms->heard[vms->curmsg] = 1;
#ifdef IMAP_STORAGE
ast_mutex_unlock(&vms->lock);
/*IMAP storage stores any prepended message from a forward
* as a separate file from the rest of the message
*/
@@ -8021,6 +8041,7 @@ static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu)
}
ast_unlock_path(vms->curdir);
#else /* defined(IMAP_STORAGE) */
ast_mutex_lock(&vms->lock);
if (vms->deleted) {
/* Since we now expunge after each delete, deleting in reverse order
* ensures that no reordering occurs between each step. */
@@ -8035,12 +8056,18 @@ static int close_mailbox(struct vm_state *vms, struct ast_vm_user *vmu)
#endif
done:
if (vms->deleted && last_msg_idx) {
if (vms->deleted) {
ast_free(vms->deleted);
vms->deleted = NULL;
}
if (vms->heard && last_msg_idx) {
if (vms->heard) {
ast_free(vms->heard);
vms->heard = NULL;
}
vms->dh_arraysize = 0;
#ifdef IMAP_STORAGE
ast_mutex_unlock(&vms->lock);
#endif
return 0;
}
@@ -9135,14 +9162,25 @@ static int vm_instructions_en(struct ast_channel *chan, struct ast_vm_user *vmu,
res = ast_play_and_wait(chan, "vm-next");
}
if (!res) {
if (!vms->deleted[vms->curmsg])
int curmsg_deleted;
#ifdef IMAP_STORAGE
ast_mutex_lock(&vms->lock);
#endif
curmsg_deleted = vms->deleted[vms->curmsg];
#ifdef IMAP_STORAGE
ast_mutex_unlock(&vms->lock);
#endif
if (!curmsg_deleted) {
res = ast_play_and_wait(chan, "vm-delete");
else
} else {
res = ast_play_and_wait(chan, "vm-undelete");
if (!res)
}
if (!res) {
res = ast_play_and_wait(chan, "vm-toforward");
if (!res)
}
if (!res) {
res = ast_play_and_wait(chan, "vm-savemessage");
}
}
}
if (!res) {
@@ -10179,6 +10217,7 @@ static int vm_execmain(struct ast_channel *chan, const char *data)
}
vms.starting = 1;
vms.curmsg = 0;
break;
case '3': /* Advanced options */
ast_test_suite_event_notify("ADVOPTIONS", "Message: entering advanced options menu");

View File

@@ -0,0 +1,437 @@
<!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-1.8.14.0</title></head>
<body>
<h1 align="center"><a name="top">Release Summary</a></h1>
<h3 align="center">asterisk-1.8.14.0</h3>
<h3 align="center">Date: 2012-07-10</h3>
<h3 align="center">&lt;asteriskteam@digium.com&gt;</h3>
<hr/>
<h2 align="center">Table of Contents</h2>
<ol>
<li><a href="#summary">Summary</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#issues">Closed Issues</a></li>
<li><a href="#commits">Other Changes</a></li>
<li><a href="#diffstat">Diffstat</a></li>
</ol>
<hr/>
<a name="summary"><h2 align="center">Summary</h2></a>
<center><a href="#top">[Back to Top]</a></center><br/><p>This release includes only bug fixes. The changes included were made only to address problems that have been identified in this release series. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous release series are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p>
<p>The data in this summary reflects changes that have been made since the previous release, asterisk-1.8.13.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>
17 rmudgett<br/>
11 mmichelson<br/>
7 mjordan<br/>
6 kmoore<br/>
4 jrose<br/>
3 bebuild<br/>
3 Mark<br/>
2 may<br/>
2 Michael<br/>
2 twilson<br/>
1 kpfleming<br/>
1 Pavel<br/>
1 russell<br/>
1 Shaun<br/>
</td>
<td>
6 rmudgett<br/>
3 Michael L. Young<br/>
2 mjordan<br/>
1 Alec Davis<br/>
1 Chris Maciejewsk<br/>
1 Damien Wedhorn<br/>
1 Jacek<br/>
1 Jaxon<br/>
</td>
<td>
7 mjordan<br/>
4 rmudgett<br/>
1 alecdavis<br/>
1 call<br/>
1 chris-mac<br/>
1 dalenoll<br/>
1 dcunningham<br/>
1 deanvesuvio<br/>
1 jacek<br/>
1 jamicque<br/>
1 jaxon<br/>
1 kenshin<br/>
1 mgrobecker<br/>
1 mkuron<br/>
1 mmichelson<br/>
1 mtryfoss<br/>
1 one47<br/>
1 patrol-cz<br/>
1 sruffell<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: Applications/app_dial</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19511">ASTERISK-19511</a>: Dial I option ignored if dial forked and one fork redirects<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367678">367678</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Applications/app_mp3</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19761">ASTERISK-19761</a>: mp3_read crash<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366296">366296</a><br/>
Reporter: chris-mac<br/>
Testers: Chris Maciejewsk<br/>
Coders: russell<br/>
<br/>
<h3>Category: Applications/app_queue</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19511">ASTERISK-19511</a>: Dial I option ignored if dial forked and one fork redirects<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367678">367678</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Applications/app_stack</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19764">ASTERISK-19764</a>: Infinite loop with autoservice when looking for nonexistant extension label.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368308">368308</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Applications/app_voicemail</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18243">ASTERISK-18243</a>: VoiceMail application fails to assign some DTMF codes for application exit when using d() option with context<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365474">365474</a><br/>
Reporter: mjordan<br/>
Testers: mjordan<br/>
Coders: mjordan<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19876">ASTERISK-19876</a>: app_voicemail: make_email_file() sends emails with localized Date header<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368520">368520</a><br/>
Reporter: mkuron<br/>
Coders: kmoore<br/>
<br/>
<h3>Category: Channels/chan_dahdi</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19671">ASTERISK-19671</a>: Coverity Report: Fix issues for error type REVERSE_NEGATIVE<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366740">366740</a><br/>
Reporter: mjordan<br/>
Coders: mjordan<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19842">ASTERISK-19842</a>: POTS flashhook transfer causes deadlock<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368644">368644</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19854">ASTERISK-19854</a>: freeze channels showing in core show channels<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367976">367976</a><br/>
Reporter: jaxon<br/>
Testers: Jaxon<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Channels/chan_iax2</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19597">ASTERISK-19597</a>: Failure to pass NULL data pointer with AST_CONTROL_HOLD frame causes crash when MOH is started<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367781">367781</a><br/>
Reporter: mgrobecker<br/>
Testers: rmudgett, Michael L. Young<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Channels/chan_local</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19537">ASTERISK-19537</a>: Deadlock potential in ast_do_masquerade() because it calls ast_indicate with the channel lock held.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368405">368405</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Channels/chan_sip/General</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19425">ASTERISK-19425</a>: Calls not released after BYE<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365896">365896</a><br/>
Reporter: dcunningham<br/>
Coders: Mark<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19455">ASTERISK-19455</a>: SIP channels permanently stuck in system after BYE message received<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365896">365896</a><br/>
Reporter: deanvesuvio<br/>
Coders: Mark<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19597">ASTERISK-19597</a>: Failure to pass NULL data pointer with AST_CONTROL_HOLD frame causes crash when MOH is started<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367781">367781</a><br/>
Reporter: mgrobecker<br/>
Testers: rmudgett, Michael L. Young<br/>
Coders: rmudgett<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19827">ASTERISK-19827</a>: Asterisk crash, whenever mwi => pass:user:authuser@host:port/mailbox is set in sip.conf <br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367266">367266</a><br/>
Reporter: kenshin<br/>
Coders: twilson<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19892">ASTERISK-19892</a>: If Asterisk sends a 481 to an initial INVITE that contained a to-tag, then Asterisk will not recognize the ensuing ACK<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368625">368625</a><br/>
Reporter: mmichelson<br/>
Coders: mmichelson<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19914">ASTERISK-19914</a>: Incorrect SIP cause to Asterisk cause mapping in chan_sip<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368498">368498</a><br/>
Reporter: patrol-cz<br/>
Coders: Pavel<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19919">ASTERISK-19919</a>: Incorrect a=inactive when call changes from SIP_PAGE2_CALL_ONHOLD_INACTIVE to SIP_PAGE2_CALL_ONHOLD_ONEDIR<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368586">368586</a><br/>
Reporter: mtryfoss<br/>
Coders: kmoore<br/>
<br/>
<h3>Category: Channels/chan_sip/Subscriptions</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16735">ASTERISK-16735</a>: bad dialog-info remote information<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365574">365574</a><br/>
Reporter: jamicque<br/>
Coders: Mark<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17866">ASTERISK-17866</a>: [patch] MWI last-msgs-sent is mis-reported<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367362">367362</a><br/>
Reporter: one47<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Channels/chan_sip/Transfers</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19856">ASTERISK-19856</a>: Transfer is being denied when global allowtransfer=no, ignoring peer setting<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367730">367730</a><br/>
Reporter: jacek<br/>
Testers: Michael L. Young, Jacek<br/>
Coders: Michael<br/>
<br/>
<h3>Category: Channels/chan_skinny</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19905">ASTERISK-19905</a>: Security Vulnerability: remotely exploitable crash in chan_skinny if client is disconnected when client is not in on-hook state<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367843">367843</a><br/>
Reporter: mjordan<br/>
Testers: mjordan, Damien Wedhorn<br/>
Coders: mjordan<br/>
<br/>
<h3>Category: Codecs/codec_dahdi</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19643">ASTERISK-19643</a>: codec_dahdi: Block on frameout if the hardware has enough samples to complete a frame.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365989">365989</a><br/>
Reporter: sruffell<br/>
Coders: Shaun<br/>
<br/>
<h3>Category: Core/Channels</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19537">ASTERISK-19537</a>: Deadlock potential in ast_do_masquerade() because it calls ast_indicate with the channel lock held.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368405">368405</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Core/PBX</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-16711">ASTERISK-16711</a>: [patch] Exceptionally long queue length queuing to XXXXX<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365313">365313</a><br/>
Reporter: alecdavis<br/>
Testers: rmudgett, Alec Davis<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Features/Parking</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19875">ASTERISK-19875</a>: Behavior change in BLINDTRANSFER variable such that it is not available at the h extension<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368469">368469</a><br/>
Reporter: call<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Functions/func_channel</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19911">ASTERISK-19911</a>: echocan_mode not documented<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368092">368092</a><br/>
Reporter: dalenoll<br/>
Testers: Michael L. Young<br/>
Coders: Michael<br/>
<br/>
<h3>Category: General</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19649">ASTERISK-19649</a>: Coverity Report: Fix issues for error type CONSTANT_EXPRESSION_RESULT<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366409">366409</a><br/>
Reporter: mjordan<br/>
Coders: mmichelson<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19650">ASTERISK-19650</a>: Coverity Report: Fix issues for error type FORWARD_NULL<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366167">366167</a><br/>
Reporter: mjordan<br/>
Coders: kmoore<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19654">ASTERISK-19654</a>: Coverity Report: Fix issues for error type NULL_RETURNS<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365398">365398</a><br/>
Reporter: mjordan<br/>
Coders: kmoore<br/>
<br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19662">ASTERISK-19662</a>: Coverity Report: Fix issues for error type MISSING_BREAK<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367027">367027</a><br/>
Reporter: mjordan<br/>
Coders: mmichelson<br/>
<br/>
<h3>Category: Resources/res_agi</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19764">ASTERISK-19764</a>: Infinite loop with autoservice when looking for nonexistant extension label.<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368308">368308</a><br/>
Reporter: rmudgett<br/>
Testers: rmudgett<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Resources/res_musiconhold</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19597">ASTERISK-19597</a>: Failure to pass NULL data pointer with AST_CONTROL_HOLD frame causes crash when MOH is started<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367781">367781</a><br/>
Reporter: mgrobecker<br/>
Testers: rmudgett, Michael L. Young<br/>
Coders: rmudgett<br/>
<br/>
<h3>Category: Resources/res_realtime</h3><br/>
<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19597">ASTERISK-19597</a>: Failure to pass NULL data pointer with AST_CONTROL_HOLD frame causes crash when MOH is started<br/>
Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367781">367781</a><br/>
Reporter: mgrobecker<br/>
Testers: rmudgett, Michael L. Young<br/>
Coders: rmudgett<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/1.8?view=revision&revision=365143">365143</a></td><td>may</td><td>Fix coverity static analysis warning, allocate full ie structure</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19674">ASTERISK-19674</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365159">365159</a></td><td>may</td><td>Fix warning of Coverity Static analysis, change H225ProtocolIdentifier</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19670">ASTERISK-19670</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365298">365298</a></td><td>mmichelson</td><td>Fix core FINDING 2, FINDING 3, and FINDING 4 from Coverity's CONSTANT_EXPRESSION_RESULT report.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19649">ASTERISK-19649</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365460">365460</a></td><td>mmichelson</td><td>Fix findings 0-3, 5, and 8 for Coverity MISSING_BREAK errors.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19662">ASTERISK-19662</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365476">365476</a></td><td>rmudgett</td><td>Fix type punned compiler warning in test_config.c</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365631">365631</a></td><td>rmudgett</td><td>* Fix accept/decline DTMF buffer overwrite in FollowMe.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=365692">365692</a></td><td>rmudgett</td><td>* Fix FollowMe memory leak on error paths in app_exec().</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366048">366048</a></td><td>jrose</td><td>Coverity Report: Fix issues for error type UNINIT in Core supported modules</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19652">ASTERISK-19652</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366052">366052</a></td><td>mmichelson</td><td>Close the proper tcptls_session when session creation fails.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366094">366094</a></td><td>jrose</td><td>Coverity Report: Fix issues for error type CHECKED_RETURN for core</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19658">ASTERISK-19658</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366240">366240</a></td><td>rmudgett</td><td>* Made ast_change_name() hold the channels container lock while changing the channel name.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366389">366389</a></td><td>mmichelson</td><td>Fix broken reinvite glare scenario.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366547">366547</a></td><td>jrose</td><td>chan_sip: Check the right channel's host address for directmediapermit/deny</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366597">366597</a></td><td>mmichelson</td><td>Correct misuse of ast_strip_quoted() when getting a Diversion header's reason parameter.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366650">366650</a></td><td>mmichelson</td><td>Fix incorrect default port number for HTTP server.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366791">366791</a></td><td>jrose</td><td>chan_sip: Fix missed locking of opposing pvt for directmedia acl from r366547</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366880">366880</a></td><td>mjordan</td><td>Fix a variety of memory leaks</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19665">ASTERISK-19665</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366882">366882</a></td><td>kmoore</td><td>Reorder and renumber tests appropriately</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=366944">366944</a></td><td>mjordan</td><td>Fix more memory leaks</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19665">ASTERISK-19665</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367002">367002</a></td><td>mmichelson</td><td>Fix memory leak of SSL_CTX structures in TLS core.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19278">ASTERISK-19278</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367292">367292</a></td><td>twilson</td><td>Fix race condition for CEL LINKEDID_END event</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367416">367416</a></td><td>mmichelson</td><td>Only call SSL_CTX_free if DO_SSL is defined.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367469">367469</a></td><td>rmudgett</td><td>Fix WaitExten(x,m(musicclass)) string termination.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367906">367906</a></td><td>rmudgett</td><td>Coverity Report: Fix issues for error type REVERSE_INULL (deprecated modules)</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19648">ASTERISK-19648</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=367980">367980</a></td><td>rmudgett</td><td>Use the DEADLOCK_AVOIDANCE() macro instead.</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19854">ASTERISK-19854</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368039">368039</a></td><td>rmudgett</td><td>Coverity Report: Fix issues for error type REVERSE_INULL (core modules)</td>
<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19648">ASTERISK-19648</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368218">368218</a></td><td>kpfleming</td><td>Improve SDP parsing warning messages</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368533">368533</a></td><td>kmoore</td><td>Resolve some build warnings</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368567">368567</a></td><td>rmudgett</td><td>Fix parked call performing a DTMF blind transfer after being retrieved.</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=368604">368604</a></td><td>mjordan</td><td>Add feature modifier to versions produced from branches</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369685">369685</a></td><td>bebuild</td><td>Create 1.8.14.0-rc2</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369690">369690</a></td><td>bebuild</td><td>Commit changes for 1.8.14.0-rc2</td>
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=369691">369691</a></td><td>bebuild</td><td>Importing release summary for 1.8.14.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
ChangeLog | 34 +
UPGRADE.txt | 6
addons/format_mp3.c | 83 +-
addons/ooh323c/src/h323/H323-MESSAGES.h | 2
addons/ooh323c/src/h323/H323-MESSAGESEnc.c | 44 -
addons/ooh323c/src/ooh323.c | 22
addons/ooh323c/src/ooq931.c | 2
apps/app_chanspy.c | 41 -
apps/app_dial.c | 171 ++++-
apps/app_disa.c | 7
apps/app_followme.c | 108 +--
apps/app_meetme.c | 65 +-
apps/app_minivm.c | 10
apps/app_page.c | 6
apps/app_queue.c | 191 ++++--
apps/app_record.c | 8
apps/app_stack.c | 158 +++--
apps/app_voicemail.c | 169 ++++-
asterisk-1.8.14.0-rc1-summary.html | 426 --------------
asterisk-1.8.14.0-rc1-summary.txt | 558 -------------------
asterisk-1.8.14.0-rc2-summary.html | 63 ++
asterisk-1.8.14.0-rc2-summary.txt | 92 +++
build_tools/make_version | 10
channels/chan_agent.c | 18
channels/chan_dahdi.c | 34 -
channels/chan_iax2.c | 99 ++-
channels/chan_local.c | 213 ++++---
channels/chan_sip.c | 832 ++++++++++++++++++-----------
channels/chan_skinny.c | 48 +
channels/iax2-parser.c | 2
channels/iax2-provision.c | 6
channels/sig_analog.c | 22
channels/sig_pri.c | 33 -
channels/sig_ss7.c | 32 -
channels/sip/config_parser.c | 91 +--
channels/sip/include/sip.h | 2
channels/sip/reqresp_parser.c | 163 +----
codecs/codec_dahdi.c | 33 -
funcs/func_aes.c | 4
funcs/func_cdr.c | 2
funcs/func_channel.c | 20
funcs/func_devstate.c | 1
funcs/func_dialgroup.c | 1
funcs/func_lock.c | 46 +
funcs/func_math.c | 4
funcs/func_odbc.c | 12
funcs/func_speex.c | 14
include/asterisk/cel.h | 9
include/asterisk/channel.h | 5
include/asterisk/tcptls.h | 17
main/abstract_jb.c | 1
main/acl.c | 6
main/app.c | 13
main/asterisk.c | 13
main/audiohook.c | 2
main/cdr.c | 9
main/cel.c | 43 -
main/channel.c | 383 +++++++------
main/cli.c | 10
main/config.c | 18
main/data.c | 22
main/db.c | 2
main/db1-ast/btree/bt_open.c | 2
main/devicestate.c | 2
main/editline/readline.c | 8
main/editline/term.c | 16
main/editline/tokenizer.c | 9
main/enum.c | 3
main/event.c | 3
main/features.c | 512 ++++++++---------
main/http.c | 2
main/manager.c | 22
main/netsock2.c | 4
main/pbx.c | 42 -
main/say.c | 3
main/tcptls.c | 40 +
main/xmldoc.c | 40 -
pbx/dundi-parser.c | 22
pbx/pbx_config.c | 18
pbx/pbx_dundi.c | 2
res/ael/ael.flex | 8
res/ael/pval.c | 21
res/res_agi.c | 1
res/res_calendar.c | 14
res/res_calendar_caldav.c | 13
res/res_calendar_ews.c | 2
res/res_calendar_exchange.c | 5
res/res_calendar_icalendar.c | 9
res/res_config_odbc.c | 8
res/res_jabber.c | 1
res/res_monitor.c | 4
res/res_musiconhold.c | 2
res/res_odbc.c | 4
res/res_rtp_asterisk.c | 8
res/res_speech.c | 8
res/res_srtp.c | 4
tests/test_config.c | 9
98 files changed, 2779 insertions(+), 2655 deletions(-)
</pre><br/>
<hr/>
</body>
</html>

View File

@@ -0,0 +1,573 @@
Release Summary
asterisk-1.8.14.0
Date: 2012-07-10
<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-1.8.13.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
17 rmudgett 6 rmudgett 7 mjordan
11 mmichelson 3 Michael L. Young 4 rmudgett
7 mjordan 2 mjordan 1 alecdavis
6 kmoore 1 Alec Davis 1 call
4 jrose 1 Chris Maciejewsk 1 chris-mac
3 bebuild 1 Damien Wedhorn 1 dalenoll
3 Mark 1 Jacek 1 dcunningham
2 may 1 Jaxon 1 deanvesuvio
2 Michael 1 jacek
2 twilson 1 jamicque
1 kpfleming 1 jaxon
1 Pavel 1 kenshin
1 russell 1 mgrobecker
1 Shaun 1 mkuron
1 mmichelson
1 mtryfoss
1 one47
1 patrol-cz
1 sruffell
----------------------------------------------------------------------
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: Applications/app_dial
ASTERISK-19511: Dial I option ignored if dial forked and one fork
redirects
Revision: 367678
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Applications/app_mp3
ASTERISK-19761: mp3_read crash
Revision: 366296
Reporter: chris-mac
Testers: Chris Maciejewsk
Coders: russell
Category: Applications/app_queue
ASTERISK-19511: Dial I option ignored if dial forked and one fork
redirects
Revision: 367678
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Applications/app_stack
ASTERISK-19764: Infinite loop with autoservice when looking for
nonexistant extension label.
Revision: 368308
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Applications/app_voicemail
ASTERISK-18243: VoiceMail application fails to assign some DTMF codes for
application exit when using d() option with context
Revision: 365474
Reporter: mjordan
Testers: mjordan
Coders: mjordan
ASTERISK-19876: app_voicemail: make_email_file() sends emails with
localized Date header
Revision: 368520
Reporter: mkuron
Coders: kmoore
Category: Channels/chan_dahdi
ASTERISK-19671: Coverity Report: Fix issues for error type
REVERSE_NEGATIVE
Revision: 366740
Reporter: mjordan
Coders: mjordan
ASTERISK-19842: POTS flashhook transfer causes deadlock
Revision: 368644
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
ASTERISK-19854: freeze channels showing in core show channels
Revision: 367976
Reporter: jaxon
Testers: Jaxon
Coders: rmudgett
Category: Channels/chan_iax2
ASTERISK-19597: Failure to pass NULL data pointer with AST_CONTROL_HOLD
frame causes crash when MOH is started
Revision: 367781
Reporter: mgrobecker
Testers: rmudgett, Michael L. Young
Coders: rmudgett
Category: Channels/chan_local
ASTERISK-19537: Deadlock potential in ast_do_masquerade() because it calls
ast_indicate with the channel lock held.
Revision: 368405
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Channels/chan_sip/General
ASTERISK-19425: Calls not released after BYE
Revision: 365896
Reporter: dcunningham
Coders: Mark
ASTERISK-19455: SIP channels permanently stuck in system after BYE message
received
Revision: 365896
Reporter: deanvesuvio
Coders: Mark
ASTERISK-19597: Failure to pass NULL data pointer with AST_CONTROL_HOLD
frame causes crash when MOH is started
Revision: 367781
Reporter: mgrobecker
Testers: rmudgett, Michael L. Young
Coders: rmudgett
ASTERISK-19827: Asterisk crash, whenever mwi =>
pass:user:authuser@host:port/mailbox is set in sip.conf
Revision: 367266
Reporter: kenshin
Coders: twilson
ASTERISK-19892: If Asterisk sends a 481 to an initial INVITE that
contained a to-tag, then Asterisk will not recognize the ensuing ACK
Revision: 368625
Reporter: mmichelson
Coders: mmichelson
ASTERISK-19914: Incorrect SIP cause to Asterisk cause mapping in chan_sip
Revision: 368498
Reporter: patrol-cz
Coders: Pavel
ASTERISK-19919: Incorrect a=inactive when call changes from
SIP_PAGE2_CALL_ONHOLD_INACTIVE to SIP_PAGE2_CALL_ONHOLD_ONEDIR
Revision: 368586
Reporter: mtryfoss
Coders: kmoore
Category: Channels/chan_sip/Subscriptions
ASTERISK-16735: bad dialog-info remote information
Revision: 365574
Reporter: jamicque
Coders: Mark
ASTERISK-17866: [patch] MWI last-msgs-sent is mis-reported
Revision: 367362
Reporter: one47
Coders: mjordan
Category: Channels/chan_sip/Transfers
ASTERISK-19856: Transfer is being denied when global allowtransfer=no,
ignoring peer setting
Revision: 367730
Reporter: jacek
Testers: Michael L. Young, Jacek
Coders: Michael
Category: Channels/chan_skinny
ASTERISK-19905: Security Vulnerability: remotely exploitable crash in
chan_skinny if client is disconnected when client is not in on-hook state
Revision: 367843
Reporter: mjordan
Testers: mjordan, Damien Wedhorn
Coders: mjordan
Category: Codecs/codec_dahdi
ASTERISK-19643: codec_dahdi: Block on frameout if the hardware has enough
samples to complete a frame.
Revision: 365989
Reporter: sruffell
Coders: Shaun
Category: Core/Channels
ASTERISK-19537: Deadlock potential in ast_do_masquerade() because it calls
ast_indicate with the channel lock held.
Revision: 368405
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Core/PBX
ASTERISK-16711: [patch] Exceptionally long queue length queuing to XXXXX
Revision: 365313
Reporter: alecdavis
Testers: rmudgett, Alec Davis
Coders: rmudgett
Category: Features/Parking
ASTERISK-19875: Behavior change in BLINDTRANSFER variable such that it is
not available at the h extension
Revision: 368469
Reporter: call
Coders: rmudgett
Category: Functions/func_channel
ASTERISK-19911: echocan_mode not documented
Revision: 368092
Reporter: dalenoll
Testers: Michael L. Young
Coders: Michael
Category: General
ASTERISK-19649: Coverity Report: Fix issues for error type
CONSTANT_EXPRESSION_RESULT
Revision: 366409
Reporter: mjordan
Coders: mmichelson
ASTERISK-19650: Coverity Report: Fix issues for error type FORWARD_NULL
Revision: 366167
Reporter: mjordan
Coders: kmoore
ASTERISK-19654: Coverity Report: Fix issues for error type NULL_RETURNS
Revision: 365398
Reporter: mjordan
Coders: kmoore
ASTERISK-19662: Coverity Report: Fix issues for error type MISSING_BREAK
Revision: 367027
Reporter: mjordan
Coders: mmichelson
Category: Resources/res_agi
ASTERISK-19764: Infinite loop with autoservice when looking for
nonexistant extension label.
Revision: 368308
Reporter: rmudgett
Testers: rmudgett
Coders: rmudgett
Category: Resources/res_musiconhold
ASTERISK-19597: Failure to pass NULL data pointer with AST_CONTROL_HOLD
frame causes crash when MOH is started
Revision: 367781
Reporter: mgrobecker
Testers: rmudgett, Michael L. Young
Coders: rmudgett
Category: Resources/res_realtime
ASTERISK-19597: Failure to pass NULL data pointer with AST_CONTROL_HOLD
frame causes crash when MOH is started
Revision: 367781
Reporter: mgrobecker
Testers: rmudgett, Michael L. Young
Coders: rmudgett
----------------------------------------------------------------------
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 |
|----------+------------+-------------------------------+----------------|
| | | Fix coverity static analysis | |
| 365143 | may | warning, allocate full ie | ASTERISK-19674 |
| | | structure | |
|----------+------------+-------------------------------+----------------|
| | | Fix warning of Coverity | |
| 365159 | may | Static analysis, change | ASTERISK-19670 |
| | | H225ProtocolIdentifier | |
|----------+------------+-------------------------------+----------------|
| | | Fix core FINDING 2, FINDING | |
| | | 3, and FINDING 4 from | |
| 365298 | mmichelson | Coverity's | ASTERISK-19649 |
| | | CONSTANT_EXPRESSION_RESULT | |
| | | report. | |
|----------+------------+-------------------------------+----------------|
| | | Fix findings 0-3, 5, and 8 | |
| 365460 | mmichelson | for Coverity MISSING_BREAK | ASTERISK-19662 |
| | | errors. | |
|----------+------------+-------------------------------+----------------|
| 365476 | rmudgett | Fix type punned compiler | |
| | | warning in test_config.c | |
|----------+------------+-------------------------------+----------------|
| 365631 | rmudgett | * Fix accept/decline DTMF | |
| | | buffer overwrite in FollowMe. | |
|----------+------------+-------------------------------+----------------|
| 365692 | rmudgett | * Fix FollowMe memory leak on | |
| | | error paths in app_exec(). | |
|----------+------------+-------------------------------+----------------|
| | | Coverity Report: Fix issues | |
| 366048 | jrose | for error type UNINIT in Core | ASTERISK-19652 |
| | | supported modules | |
|----------+------------+-------------------------------+----------------|
| | | Close the proper | |
| 366052 | mmichelson | tcptls_session when session | |
| | | creation fails. | |
|----------+------------+-------------------------------+----------------|
| | | Coverity Report: Fix issues | |
| 366094 | jrose | for error type CHECKED_RETURN | ASTERISK-19658 |
| | | for core | |
|----------+------------+-------------------------------+----------------|
| | | * Made ast_change_name() hold | |
| 366240 | rmudgett | the channels container lock | |
| | | while changing the channel | |
| | | name. | |
|----------+------------+-------------------------------+----------------|
| 366389 | mmichelson | Fix broken reinvite glare | |
| | | scenario. | |
|----------+------------+-------------------------------+----------------|
| | | chan_sip: Check the right | |
| 366547 | jrose | channel's host address for | |
| | | directmediapermit/deny | |
|----------+------------+-------------------------------+----------------|
| | | Correct misuse of | |
| 366597 | mmichelson | ast_strip_quoted() when | |
| | | getting a Diversion header's | |
| | | reason parameter. | |
|----------+------------+-------------------------------+----------------|
| 366650 | mmichelson | Fix incorrect default port | |
| | | number for HTTP server. | |
|----------+------------+-------------------------------+----------------|
| | | chan_sip: Fix missed locking | |
| 366791 | jrose | of opposing pvt for | |
| | | directmedia acl from r366547 | |
|----------+------------+-------------------------------+----------------|
| 366880 | mjordan | Fix a variety of memory leaks | ASTERISK-19665 |
|----------+------------+-------------------------------+----------------|
| 366882 | kmoore | Reorder and renumber tests | |
| | | appropriately | |
|----------+------------+-------------------------------+----------------|
| 366944 | mjordan | Fix more memory leaks | ASTERISK-19665 |
|----------+------------+-------------------------------+----------------|
| 367002 | mmichelson | Fix memory leak of SSL_CTX | ASTERISK-19278 |
| | | structures in TLS core. | |
|----------+------------+-------------------------------+----------------|
| 367292 | twilson | Fix race condition for CEL | |
| | | LINKEDID_END event | |
|----------+------------+-------------------------------+----------------|
| 367416 | mmichelson | Only call SSL_CTX_free if | |
| | | DO_SSL is defined. | |
|----------+------------+-------------------------------+----------------|
| | | Fix | |
| 367469 | rmudgett | WaitExten(x,m(musicclass)) | |
| | | string termination. | |
|----------+------------+-------------------------------+----------------|
| | | Coverity Report: Fix issues | |
| 367906 | rmudgett | for error type REVERSE_INULL | ASTERISK-19648 |
| | | (deprecated modules) | |
|----------+------------+-------------------------------+----------------|
| 367980 | rmudgett | Use the DEADLOCK_AVOIDANCE() | ASTERISK-19854 |
| | | macro instead. | |
|----------+------------+-------------------------------+----------------|
| | | Coverity Report: Fix issues | |
| 368039 | rmudgett | for error type REVERSE_INULL | ASTERISK-19648 |
| | | (core modules) | |
|----------+------------+-------------------------------+----------------|
| 368218 | kpfleming | Improve SDP parsing warning | |
| | | messages | |
|----------+------------+-------------------------------+----------------|
| 368533 | kmoore | Resolve some build warnings | |
|----------+------------+-------------------------------+----------------|
| | | Fix parked call performing a | |
| 368567 | rmudgett | DTMF blind transfer after | |
| | | being retrieved. | |
|----------+------------+-------------------------------+----------------|
| | | Add feature modifier to | |
| 368604 | mjordan | versions produced from | |
| | | branches | |
|----------+------------+-------------------------------+----------------|
| 369685 | bebuild | Create 1.8.14.0-rc2 | |
|----------+------------+-------------------------------+----------------|
| 369690 | bebuild | Commit changes for | |
| | | 1.8.14.0-rc2 | |
|----------+------------+-------------------------------+----------------|
| 369691 | bebuild | Importing release summary for | |
| | | 1.8.14.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
ChangeLog | 34 +
UPGRADE.txt | 6
addons/format_mp3.c | 83 +-
addons/ooh323c/src/h323/H323-MESSAGES.h | 2
addons/ooh323c/src/h323/H323-MESSAGESEnc.c | 44 -
addons/ooh323c/src/ooh323.c | 22
addons/ooh323c/src/ooq931.c | 2
apps/app_chanspy.c | 41 -
apps/app_dial.c | 171 ++++-
apps/app_disa.c | 7
apps/app_followme.c | 108 +--
apps/app_meetme.c | 65 +-
apps/app_minivm.c | 10
apps/app_page.c | 6
apps/app_queue.c | 191 ++++--
apps/app_record.c | 8
apps/app_stack.c | 158 +++--
apps/app_voicemail.c | 169 ++++-
asterisk-1.8.14.0-rc1-summary.html | 426 --------------
asterisk-1.8.14.0-rc1-summary.txt | 558 -------------------
asterisk-1.8.14.0-rc2-summary.html | 63 ++
asterisk-1.8.14.0-rc2-summary.txt | 92 +++
build_tools/make_version | 10
channels/chan_agent.c | 18
channels/chan_dahdi.c | 34 -
channels/chan_iax2.c | 99 ++-
channels/chan_local.c | 213 ++++---
channels/chan_sip.c | 832 ++++++++++++++++++-----------
channels/chan_skinny.c | 48 +
channels/iax2-parser.c | 2
channels/iax2-provision.c | 6
channels/sig_analog.c | 22
channels/sig_pri.c | 33 -
channels/sig_ss7.c | 32 -
channels/sip/config_parser.c | 91 +--
channels/sip/include/sip.h | 2
channels/sip/reqresp_parser.c | 163 +----
codecs/codec_dahdi.c | 33 -
funcs/func_aes.c | 4
funcs/func_cdr.c | 2
funcs/func_channel.c | 20
funcs/func_devstate.c | 1
funcs/func_dialgroup.c | 1
funcs/func_lock.c | 46 +
funcs/func_math.c | 4
funcs/func_odbc.c | 12
funcs/func_speex.c | 14
include/asterisk/cel.h | 9
include/asterisk/channel.h | 5
include/asterisk/tcptls.h | 17
main/abstract_jb.c | 1
main/acl.c | 6
main/app.c | 13
main/asterisk.c | 13
main/audiohook.c | 2
main/cdr.c | 9
main/cel.c | 43 -
main/channel.c | 383 +++++++------
main/cli.c | 10
main/config.c | 18
main/data.c | 22
main/db.c | 2
main/db1-ast/btree/bt_open.c | 2
main/devicestate.c | 2
main/editline/readline.c | 8
main/editline/term.c | 16
main/editline/tokenizer.c | 9
main/enum.c | 3
main/event.c | 3
main/features.c | 512 ++++++++---------
main/http.c | 2
main/manager.c | 22
main/netsock2.c | 4
main/pbx.c | 42 -
main/say.c | 3
main/tcptls.c | 40 +
main/xmldoc.c | 40 -
pbx/dundi-parser.c | 22
pbx/pbx_config.c | 18
pbx/pbx_dundi.c | 2
res/ael/ael.flex | 8
res/ael/pval.c | 21
res/res_agi.c | 1
res/res_calendar.c | 14
res/res_calendar_caldav.c | 13
res/res_calendar_ews.c | 2
res/res_calendar_exchange.c | 5
res/res_calendar_icalendar.c | 9
res/res_config_odbc.c | 8
res/res_jabber.c | 1
res/res_monitor.c | 4
res/res_musiconhold.c | 2
res/res_odbc.c | 4
res/res_rtp_asterisk.c | 8
res/res_speech.c | 8
res/res_srtp.c | 4
tests/test_config.c | 9
98 files changed, 2779 insertions(+), 2655 deletions(-)
----------------------------------------------------------------------

View File

@@ -3848,7 +3848,7 @@ static int __sip_autodestruct(const void *data)
ast_debug(3, "Re-scheduled destruction of SIP call %s\n", p->callid ? p->callid : "<unknown>");
append_history(p, "ReliableXmit", "timeout");
if (sscanf(p->lastmsg, "Tx: %30s", method_str) == 1 || sscanf(p->lastmsg, "Rx: %30s", method_str) == 1) {
if (method_match(SIP_CANCEL, method_str) || method_match(SIP_BYE, method_str)) {
if (p->ongoing_reinvite || method_match(SIP_CANCEL, method_str) || method_match(SIP_BYE, method_str)) {
pvt_set_needdestroy(p, "autodestruct");
}
}
@@ -6223,6 +6223,21 @@ const char *hangup_cause2sip(int cause)
return 0;
}
static int reinvite_timeout(const void *data)
{
struct sip_pvt *dialog = (struct sip_pvt *) data;
struct ast_channel *owner = sip_pvt_lock_full(dialog);
dialog->reinviteid = -1;
check_pendings(dialog);
if (owner) {
ast_channel_unlock(owner);
ast_channel_unref(owner);
}
ao2_unlock(dialog);
dialog_unref(dialog, "unref for reinvite timeout");
return 0;
}
/*! \brief sip_hangup: Hangup SIP call
* Part of PBX interface, called from ast_hangup */
static int sip_hangup(struct ast_channel *ast)
@@ -6418,8 +6433,16 @@ static int sip_hangup(struct ast_channel *ast)
ast_set_flag(&p->flags[0], SIP_PENDINGBYE);
ast_clear_flag(&p->flags[0], SIP_NEEDREINVITE);
AST_SCHED_DEL_UNREF(sched, p->waitid, dialog_unref(p, "when you delete the waitid sched, you should dec the refcount for the stored dialog ptr"));
if (sip_cancel_destroy(p))
if (sip_cancel_destroy(p)) {
ast_log(LOG_WARNING, "Unable to cancel SIP destruction. Expect bad things.\n");
}
/* If we have an ongoing reinvite, there is a chance that we have gotten a provisional
* response, but something weird has happened and we will never receive a final response.
* So, just in case, check for pending actions after a bit of time to trigger the pending
* bye that we are setting above */
if (p->ongoing_reinvite && p->reinviteid < 0) {
p->reinviteid = ast_sched_add(sched, 32 * p->timer_t1, reinvite_timeout, dialog_ref(p, "ref for reinvite_timeout"));
}
}
}
}
@@ -7692,6 +7715,7 @@ struct sip_pvt *sip_alloc(ast_string_field callid, struct ast_sockaddr *addr,
p->method = intended_method;
p->initid = -1;
p->waitid = -1;
p->reinviteid = -1;
p->autokillid = -1;
p->request_queue_sched_id = -1;
p->provisional_keepalive_sched_id = -1;
@@ -10409,10 +10433,9 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, ui
* final response. For a CANCEL or ACK, we have to send to the same destination
* as the original INVITE.
*/
if (sipmethod == SIP_CANCEL ||
(sipmethod == SIP_ACK && (p->invitestate == INV_COMPLETED || p->invitestate == INV_CANCELLED))) {
set_destination(p, ast_strdupa(p->uri));
} else if (p->route) {
if (p->route &&
!(sipmethod == SIP_CANCEL ||
(sipmethod == SIP_ACK && (p->invitestate == INV_COMPLETED || p->invitestate == INV_CANCELLED)))) {
set_destination(p, p->route->hop);
add_route(req, is_strict ? p->route->next : p->route);
}
@@ -11900,7 +11923,7 @@ static int transmit_reinvite_with_sdp(struct sip_pvt *p, int t38version, int old
initialize_initreq(p, &req);
p->lastinvite = p->ocseq;
ast_set_flag(&p->flags[0], SIP_OUTGOING); /* Change direction of this dialog */
p->ongoing_reinvite = 1;
return send_request(p, &req, XMIT_CRITICAL, p->ocseq);
}
@@ -19848,8 +19871,11 @@ static void parse_moved_contact(struct sip_pvt *p, struct sip_request *req, char
static void check_pendings(struct sip_pvt *p)
{
if (ast_test_flag(&p->flags[0], SIP_PENDINGBYE)) {
/* if we can't BYE, then this is really a pending CANCEL */
if (p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA) {
if (p->reinviteid > -1) {
/* Outstanding p->reinviteid timeout, so wait... */
return;
} else if (p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA) {
/* if we can't BYE, then this is really a pending CANCEL */
p->invitestate = INV_CANCELLED;
transmit_request(p, SIP_CANCEL, p->lastinvite, XMIT_RELIABLE, FALSE);
/* If the cancel occurred on an initial invite, cancel the pending BYE */
@@ -19860,8 +19886,9 @@ static void check_pendings(struct sip_pvt *p)
INVITE, but do set an autodestruct just in case we never get it. */
} else {
/* We have a pending outbound invite, don't send something
new in-transaction */
if (p->pendinginvite)
* new in-transaction, unless it is a pending reinvite, then
* by the time we are called here, we should probably just hang up. */
if (p->pendinginvite && !p->ongoing_reinvite)
return;
if (p->owner) {
@@ -20066,9 +20093,17 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
if (resp >= 300 && (p->invitestate == INV_CALLING || p->invitestate == INV_PROCEEDING || p->invitestate == INV_EARLY_MEDIA ))
p->invitestate = INV_COMPLETED;
if ((resp >= 200 && reinvite)) {
p->ongoing_reinvite = 0;
if (p->reinviteid > -1) {
AST_SCHED_DEL_UNREF(sched, p->reinviteid, dialog_unref(p, "unref dialog for reinvite timeout because of a final response"));
}
}
/* Final response, clear out pending invite */
if ((resp == 200 || resp >= 300) && p->pendinginvite && seqno == p->pendinginvite)
if ((resp == 200 || resp >= 300) && p->pendinginvite && seqno == p->pendinginvite) {
p->pendinginvite = 0;
}
/* If this is a response to our initial INVITE, we need to set what we can use
* for this peer.
@@ -29132,6 +29167,12 @@ static int apply_directmedia_ha(struct sip_pvt *p1, struct sip_pvt *p2, const ch
ast_rtp_instance_get_remote_address(p1->rtp, &them);
ast_rtp_instance_get_local_address(p1->rtp, &us);
/* If p2 is a guest call, there will be no peer. If there is no peer, there
* is no directmediaha, so go ahead and allow it */
if (!p2->relatedpeer) {
return res;
}
if ((res = ast_apply_ha(p2->relatedpeer->directmediaha, &them)) == AST_SENSE_DENY) {
const char *us_addr = ast_strdupa(ast_sockaddr_stringify(&us));
const char *them_addr = ast_strdupa(ast_sockaddr_stringify(&them));

View File

@@ -1056,6 +1056,7 @@ struct sip_pvt {
struct sip_auth_container *peerauth;/*!< Realm authentication credentials */
int noncecount; /*!< Nonce-count */
unsigned int stalenonce:1; /*!< Marks the current nonce as responded too */
unsigned int ongoing_reinvite:1; /*!< There is a reinvite in progress that might need to be cleaned up */
char lastmsg[256]; /*!< Last Message sent/received */
int amaflags; /*!< AMA Flags */
uint32_t pendinginvite; /*!< Any pending INVITE or state NOTIFY (in subscribe pvt's) ? (seqno of this) */
@@ -1068,6 +1069,7 @@ struct sip_pvt {
int initid; /*!< Auto-congest ID if appropriate (scheduler) */
int waitid; /*!< Wait ID for scheduler after 491 or other delays */
int reinviteid; /*!< Reinvite in case of provisional, but no final response */
int autokillid; /*!< Auto-kill ID (scheduler) */
int t38id; /*!< T.38 Response ID */
struct sip_refer *refer; /*!< REFER: SIP transfer data structure */

View File

@@ -4604,7 +4604,6 @@ static int manage_parked_call(struct parkeduser *pu, const struct pollfd *pfds,
struct ast_channel *chan = pu->chan; /* shorthand */
int tms; /* timeout for this item */
int x; /* fd index in channel */
int parking_complete = 0;
tms = ast_tvdiff_ms(ast_tvnow(), pu->start);
if (tms > pu->parkingtime) {
@@ -4719,104 +4718,103 @@ static int manage_parked_call(struct parkeduser *pu, const struct pollfd *pfds,
}
/* And take them out of the parking lot */
parking_complete = 1;
} else { /* still within parking time, process descriptors */
x = 0;
if (pfds) {
for (; x < AST_MAX_FDS; x++) {
struct ast_frame *f;
int y;
if (chan->fds[x] == -1) {
continue; /* nothing on this descriptor */
}
for (y = 0; y < nfds; y++) {
if (pfds[y].fd == chan->fds[x]) {
/* Found poll record! */
break;
}
}
if (y == nfds) {
/* Not found */
continue;
}
if (!(pfds[y].revents & (POLLIN | POLLERR | POLLPRI))) {
/* Next x */
continue;
}
if (pfds[y].revents & POLLPRI) {
ast_set_flag(chan, AST_FLAG_EXCEPTION);
} else {
ast_clear_flag(chan, AST_FLAG_EXCEPTION);
}
chan->fdno = x;
/* See if they need servicing */
f = ast_read(pu->chan);
/* Hangup? */
if (!f || (f->frametype == AST_FRAME_CONTROL
&& f->subclass.integer == AST_CONTROL_HANGUP)) {
if (f) {
ast_frfree(f);
}
post_manager_event("ParkedCallGiveUp", pu);
ast_cel_report_event(pu->chan, AST_CEL_PARK_END, NULL, "ParkedCallGiveUp",
NULL);
/* There's a problem, hang them up */
ast_verb(2, "%s got tired of being parked\n", chan->name);
ast_hangup(chan);
/* And take them out of the parking lot */
parking_complete = 1;
break;
} else {
/* XXX Maybe we could do something with packets, like dial "0" for operator or something XXX */
ast_frfree(f);
if (pu->hold_method == AST_CONTROL_HOLD
&& pu->moh_trys < 3
&& !chan->generatordata) {
ast_debug(1,
"MOH on parked call stopped by outside source. Restarting on channel %s.\n",
chan->name);
ast_indicate_data(chan, AST_CONTROL_HOLD,
S_OR(pu->parkinglot->cfg.mohclass, NULL),
(!ast_strlen_zero(pu->parkinglot->cfg.mohclass)
? strlen(pu->parkinglot->cfg.mohclass) + 1 : 0));
pu->moh_trys++;
}
goto std; /* XXX Ick: jumping into an else statement??? XXX */
}
} /* End for */
}
if (x >= AST_MAX_FDS) {
std:
for (x = 0; x < AST_MAX_FDS; x++) { /* mark fds for next round */
if (chan->fds[x] > -1) {
void *tmp = ast_realloc(*new_pfds,
(*new_nfds + 1) * sizeof(struct pollfd));
if (!tmp) {
continue;
}
*new_pfds = tmp;
(*new_pfds)[*new_nfds].fd = chan->fds[x];
(*new_pfds)[*new_nfds].events = POLLIN | POLLERR | POLLPRI;
(*new_pfds)[*new_nfds].revents = 0;
(*new_nfds)++;
}
}
/* Keep track of our shortest wait */
if (tms < *ms || *ms < 0) {
*ms = tms;
}
}
return 1;
}
return parking_complete;
/* still within parking time, process descriptors */
if (pfds) {
for (x = 0; x < AST_MAX_FDS; x++) {
struct ast_frame *f;
int y;
if (chan->fds[x] == -1) {
continue; /* nothing on this descriptor */
}
for (y = 0; y < nfds; y++) {
if (pfds[y].fd == chan->fds[x]) {
/* Found poll record! */
break;
}
}
if (y == nfds) {
/* Not found */
continue;
}
if (!(pfds[y].revents & (POLLIN | POLLERR | POLLPRI))) {
/* Next x */
continue;
}
if (pfds[y].revents & POLLPRI) {
ast_set_flag(chan, AST_FLAG_EXCEPTION);
} else {
ast_clear_flag(chan, AST_FLAG_EXCEPTION);
}
chan->fdno = x;
/* See if they need servicing */
f = ast_read(pu->chan);
/* Hangup? */
if (!f || (f->frametype == AST_FRAME_CONTROL
&& f->subclass.integer == AST_CONTROL_HANGUP)) {
if (f) {
ast_frfree(f);
}
post_manager_event("ParkedCallGiveUp", pu);
ast_cel_report_event(pu->chan, AST_CEL_PARK_END, NULL, "ParkedCallGiveUp",
NULL);
/* There's a problem, hang them up */
ast_verb(2, "%s got tired of being parked\n", chan->name);
ast_hangup(chan);
/* And take them out of the parking lot */
return 1;
} else {
/* XXX Maybe we could do something with packets, like dial "0" for operator or something XXX */
ast_frfree(f);
if (pu->hold_method == AST_CONTROL_HOLD
&& pu->moh_trys < 3
&& !chan->generatordata) {
ast_debug(1,
"MOH on parked call stopped by outside source. Restarting on channel %s.\n",
chan->name);
ast_indicate_data(chan, AST_CONTROL_HOLD,
S_OR(pu->parkinglot->cfg.mohclass, NULL),
(!ast_strlen_zero(pu->parkinglot->cfg.mohclass)
? strlen(pu->parkinglot->cfg.mohclass) + 1 : 0));
pu->moh_trys++;
}
break;
}
} /* End for */
}
/* mark fds for next round */
for (x = 0; x < AST_MAX_FDS; x++) {
if (chan->fds[x] > -1) {
void *tmp = ast_realloc(*new_pfds,
(*new_nfds + 1) * sizeof(struct pollfd));
if (!tmp) {
continue;
}
*new_pfds = tmp;
(*new_pfds)[*new_nfds].fd = chan->fds[x];
(*new_pfds)[*new_nfds].events = POLLIN | POLLERR | POLLPRI;
(*new_pfds)[*new_nfds].revents = 0;
(*new_nfds)++;
}
}
/* Keep track of our shortest wait */
if (tms < *ms || *ms < 0) {
*ms = tms;
}
/* Stay in the parking lot. */
return 0;
}
/*! \brief Run management on parkinglots, called once per parkinglot */