mirror of
https://github.com/asterisk/asterisk.git
synced 2025-08-20 04:33:20 +00:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a237c8b9ab | ||
|
3cb6dc1091 | ||
|
80fef95152 | ||
|
ff49dcb638 | ||
|
4e9d9f6d73 | ||
|
35ca685a97 | ||
|
b1802ee1d2 | ||
|
4d91c8d1b7 | ||
|
08d11dbc20 | ||
|
5d23b8751a | ||
|
2d08c5fa46 | ||
|
3cdb4b5175 | ||
|
b842ac2ba1 |
3
.lastclean
Normal file
3
.lastclean
Normal file
@@ -0,0 +1,3 @@
|
||||
39
|
||||
|
||||
|
@@ -1144,8 +1144,8 @@ static int play_sound_helper(struct conference_bridge *conference_bridge, const
|
||||
struct ast_channel *underlying_channel;
|
||||
|
||||
/* Do not waste resources trying to play files that do not exist */
|
||||
if (!ast_fileexists(filename, NULL, NULL)) {
|
||||
ast_log(LOG_WARNING, "File %s does not exist in any format\n", filename);
|
||||
if (!ast_strlen_zero(filename) && !ast_fileexists(filename, NULL, NULL)) {
|
||||
ast_log(LOG_WARNING, "File %s does not exist in any format\n", !ast_strlen_zero(filename) ? filename : "<unknown>");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1165,7 +1165,7 @@ static int play_sound_helper(struct conference_bridge *conference_bridge, const
|
||||
/* The channel is all under our control, in goes the prompt */
|
||||
if (!ast_strlen_zero(filename)) {
|
||||
ast_stream_and_wait(conference_bridge->playback_chan, filename, "");
|
||||
} else {
|
||||
} else if (say_number >= 0) {
|
||||
ast_say_number(conference_bridge->playback_chan, say_number, "", conference_bridge->playback_chan->language, NULL);
|
||||
}
|
||||
|
||||
@@ -1188,7 +1188,7 @@ static int play_sound_helper(struct conference_bridge *conference_bridge, const
|
||||
*/
|
||||
static int play_sound_file(struct conference_bridge *conference_bridge, const char *filename)
|
||||
{
|
||||
return play_sound_helper(conference_bridge, filename, 0);
|
||||
return play_sound_helper(conference_bridge, filename, -1);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
61
asterisk-10.5.1-summary.html
Normal file
61
asterisk-10.5.1-summary.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<!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-10.5.1</title></head>
|
||||
<body>
|
||||
<h1 align="center"><a name="top">Release Summary</a></h1>
|
||||
<h3 align="center">asterisk-10.5.1</h3>
|
||||
<h3 align="center">Date: 2012-06-14</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="#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 has been made to address one or more security vulnerabilities that have been identified. A security advisory document has been published for each vulnerability that includes additional information. Users of versions of Asterisk that are affected are strongly encouraged to review the advisories and determine what action they should take to protect their systems from these issues.</p>
|
||||
<p>Security Advisories: <a href="http://downloads.asterisk.org/pub/security/AST-2012-009.html">AST-2012-009</a></p>
|
||||
<p>The data in this summary reflects changes that have been made since the previous release, asterisk-10.5.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>
|
||||
2 bebuild<br/>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<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/tags/10.5.1?view=revision&revision=368949">368949</a></td><td>bebuild</td><td>Create 10.5.1 tag</td>
|
||||
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/tags/10.5.1?view=revision&revision=368951">368951</a></td><td>bebuild</td><td>Merge r368947, update ChangeLog and version</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 | 6
|
||||
asterisk-10.5.0-summary.html | 482 --------------------------------
|
||||
asterisk-10.5.0-summary.txt | 640 -------------------------------------------
|
||||
channels/chan_skinny.c | 14
|
||||
5 files changed, 19 insertions(+), 1125 deletions(-)
|
||||
</pre><br/>
|
||||
<hr/>
|
||||
</body>
|
||||
</html>
|
90
asterisk-10.5.1-summary.txt
Normal file
90
asterisk-10.5.1-summary.txt
Normal file
@@ -0,0 +1,90 @@
|
||||
Release Summary
|
||||
|
||||
asterisk-10.5.1
|
||||
|
||||
Date: 2012-06-14
|
||||
|
||||
<asteriskteam@digium.com>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Summary
|
||||
2. Contributors
|
||||
3. Other Changes
|
||||
4. Diffstat
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Summary
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This release has been made to address one or more security vulnerabilities
|
||||
that have been identified. A security advisory document has been published
|
||||
for each vulnerability that includes additional information. Users of
|
||||
versions of Asterisk that are affected are strongly encouraged to review
|
||||
the advisories and determine what action they should take to protect their
|
||||
systems from these issues.
|
||||
|
||||
Security Advisories: AST-2012-009
|
||||
|
||||
The data in this summary reflects changes that have been made since the
|
||||
previous release, asterisk-10.5.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
|
||||
2 bebuild
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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 |
|
||||
|----------+---------+-------------------------------+-------------------|
|
||||
| 368949 | bebuild | Create 10.5.1 tag | |
|
||||
|----------+---------+-------------------------------+-------------------|
|
||||
| 368951 | bebuild | Merge r368947, update | |
|
||||
| | | ChangeLog and version | |
|
||||
+------------------------------------------------------------------------+
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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 | 6
|
||||
asterisk-10.5.0-summary.html | 482 --------------------------------
|
||||
asterisk-10.5.0-summary.txt | 640 -------------------------------------------
|
||||
channels/chan_skinny.c | 14
|
||||
5 files changed, 19 insertions(+), 1125 deletions(-)
|
||||
|
||||
----------------------------------------------------------------------
|
@@ -1922,24 +1922,25 @@ static void send_signaling(struct chan_iax2_pvt *pvt)
|
||||
* we have received a destination call number. */
|
||||
static int queue_signalling(struct chan_iax2_pvt *pvt, struct ast_frame *f)
|
||||
{
|
||||
struct signaling_queue_entry *new;
|
||||
struct signaling_queue_entry *qe;
|
||||
|
||||
if (f->frametype == AST_FRAME_IAX || !pvt->hold_signaling) {
|
||||
return 1; /* do not queue this frame */
|
||||
} else if (!(new = ast_calloc(1, sizeof(struct signaling_queue_entry)))) {
|
||||
} else if (!(qe = ast_calloc(1, sizeof(struct signaling_queue_entry)))) {
|
||||
return -1; /* out of memory */
|
||||
}
|
||||
|
||||
memcpy(&new->f, f, sizeof(new->f)); /* copy ast_frame into our queue entry */
|
||||
|
||||
if (new->f.datalen) { /* if there is data in this frame copy it over as well */
|
||||
if (!(new->f.data.ptr = ast_calloc(1, new->f.datalen))) {
|
||||
free_signaling_queue_entry(new);
|
||||
/* copy ast_frame into our queue entry */
|
||||
qe->f = *f;
|
||||
if (qe->f.datalen) {
|
||||
/* if there is data in this frame copy it over as well */
|
||||
if (!(qe->f.data.ptr = ast_malloc(qe->f.datalen))) {
|
||||
free_signaling_queue_entry(qe);
|
||||
return -1;
|
||||
}
|
||||
memcpy(new->f.data.ptr, f->data.ptr, sizeof(*new->f.data.ptr));
|
||||
memcpy(qe->f.data.ptr, f->data.ptr, qe->f.datalen);
|
||||
}
|
||||
AST_LIST_INSERT_TAIL(&pvt->signaling_queue, new, next);
|
||||
AST_LIST_INSERT_TAIL(&pvt->signaling_queue, qe, next);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -4244,6 +4245,15 @@ static int schedule_delivery(struct iax_frame *fr, int updatehistory, int fromtr
|
||||
struct ast_channel *owner = NULL;
|
||||
struct ast_channel *bridge = NULL;
|
||||
|
||||
/*
|
||||
* Clear fr->af.data if there is no data in the buffer. Things
|
||||
* like AST_CONTROL_HOLD without a suggested music class must
|
||||
* have a NULL pointer.
|
||||
*/
|
||||
if (!fr->af.datalen) {
|
||||
memset(&fr->af.data, 0, sizeof(fr->af.data));
|
||||
}
|
||||
|
||||
/* Attempt to recover wrapped timestamps */
|
||||
unwrap_timestamp(fr);
|
||||
|
||||
|
@@ -12789,13 +12789,14 @@ static int __sip_subscribe_mwi_do(struct sip_subscription_mwi *mwi)
|
||||
/* If we have no DNS manager let's do a lookup */
|
||||
if (!mwi->dnsmgr) {
|
||||
char transport[MAXHOSTNAMELEN];
|
||||
struct sip_subscription_mwi *saved;
|
||||
snprintf(transport, sizeof(transport), "_%s._%s", get_srv_service(mwi->transport), get_srv_protocol(mwi->transport));
|
||||
|
||||
mwi->us.ss.ss_family = get_address_family_filter(&bindaddr); /* Filter address family */
|
||||
ASTOBJ_REF(mwi); /* Add a ref for storing the mwi on the dnsmgr for updates */
|
||||
ast_dnsmgr_lookup_cb(mwi->hostname, &mwi->us, &mwi->dnsmgr, sip_cfg.srvlookup ? transport : NULL, on_dns_update_mwi, mwi);
|
||||
saved = ASTOBJ_REF(mwi);
|
||||
ast_dnsmgr_lookup_cb(mwi->hostname, &mwi->us, &mwi->dnsmgr, sip_cfg.srvlookup ? transport : NULL, on_dns_update_mwi, saved);
|
||||
if (!mwi->dnsmgr) {
|
||||
ASTOBJ_UNREF(mwi, sip_subscribe_mwi_destroy); /* dnsmgr disabled, remove reference */
|
||||
ASTOBJ_UNREF(saved, sip_subscribe_mwi_destroy); /* dnsmgr disabled, remove reference */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30492,10 +30493,12 @@ static void sip_send_all_registers(void)
|
||||
static void sip_send_all_mwi_subscriptions(void)
|
||||
{
|
||||
ASTOBJ_CONTAINER_TRAVERSE(&submwil, 1, do {
|
||||
struct sip_subscription_mwi *saved;
|
||||
ASTOBJ_WRLOCK(iterator);
|
||||
AST_SCHED_DEL(sched, iterator->resub);
|
||||
if ((iterator->resub = ast_sched_add(sched, 1, sip_subscribe_mwi_do, ASTOBJ_REF(iterator))) < 0) {
|
||||
ASTOBJ_UNREF(iterator, sip_subscribe_mwi_destroy);
|
||||
saved = ASTOBJ_REF(iterator);
|
||||
if ((iterator->resub = ast_sched_add(sched, 1, sip_subscribe_mwi_do, saved)) < 0) {
|
||||
ASTOBJ_UNREF(saved, sip_subscribe_mwi_destroy);
|
||||
}
|
||||
ASTOBJ_UNLOCK(iterator);
|
||||
} while (0));
|
||||
|
@@ -3104,6 +3104,10 @@ static void update_connectedline(struct skinny_subchannel *sub, const void *data
|
||||
struct skinny_line *l = sub->line;
|
||||
struct skinny_device *d = l->device;
|
||||
|
||||
if (!d) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!c->caller.id.number.valid
|
||||
|| ast_strlen_zero(c->caller.id.number.str)
|
||||
|| !c->connected.id.number.valid
|
||||
@@ -4224,6 +4228,11 @@ static void *skinny_ss(void *data)
|
||||
int res = 0;
|
||||
int loop_pause = 100;
|
||||
|
||||
if (!d) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ast_verb(3, "Starting simple switch on '%s@%s'\n", l->name, d->name);
|
||||
|
||||
len = strlen(sub->exten);
|
||||
@@ -4332,7 +4341,7 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
|
||||
struct ast_var_t *current;
|
||||
int doautoanswer = 0;
|
||||
|
||||
if (!d->registered) {
|
||||
if (!d || !d->registered) {
|
||||
ast_log(LOG_ERROR, "Device not registered, cannot call %s\n", dest);
|
||||
return -1;
|
||||
}
|
||||
@@ -4731,7 +4740,13 @@ static int skinny_indicate(struct ast_channel *ast, int ind, const void *data, s
|
||||
struct skinny_subchannel *sub = ast->tech_pvt;
|
||||
struct skinny_line *l = sub->line;
|
||||
struct skinny_device *d = l->device;
|
||||
struct skinnysession *s = d->session;
|
||||
struct skinnysession *s;
|
||||
|
||||
if (!d) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return -1;
|
||||
}
|
||||
s = d->session;
|
||||
|
||||
if (!s) {
|
||||
ast_log(LOG_NOTICE, "Asked to indicate '%s' condition on channel %s, but session does not exist.\n", control2str(ind), ast->name);
|
||||
@@ -4961,6 +4976,11 @@ static void setsubstate(struct skinny_subchannel *sub, int state)
|
||||
pthread_t t;
|
||||
int actualstate = state;
|
||||
|
||||
if (!l->device) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (sub->substate == SUBSTATE_ONHOOK) {
|
||||
return;
|
||||
}
|
||||
@@ -5350,15 +5370,20 @@ static void dumpsub(struct skinny_subchannel *sub, int forcehangup)
|
||||
struct skinny_subchannel *activatesub = NULL;
|
||||
struct skinny_subchannel *tsub;
|
||||
|
||||
if (!l->device) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return;
|
||||
}
|
||||
|
||||
if (skinnydebug) {
|
||||
ast_verb(3, "Sub %d - Dumping\n", sub->callid);
|
||||
}
|
||||
|
||||
|
||||
if (!forcehangup && sub->substate == SUBSTATE_HOLD) {
|
||||
l->activesub = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (sub == l->activesub) {
|
||||
d->hookstate = SKINNY_ONHOOK;
|
||||
transmit_speaker_mode(d, SKINNY_SPEAKEROFF);
|
||||
@@ -5462,6 +5487,11 @@ static int handle_transfer_button(struct skinny_subchannel *sub)
|
||||
l = sub->line;
|
||||
d = l->device;
|
||||
|
||||
if (!d) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!sub->related) {
|
||||
/* Another sub has not been created so this must be first XFER press */
|
||||
if (!(sub->substate == SUBSTATE_HOLD)) {
|
||||
@@ -5506,6 +5536,11 @@ static int handle_callforward_button(struct skinny_subchannel *sub, int cfwdtype
|
||||
struct skinny_device *d = l->device;
|
||||
struct ast_channel *c = sub->owner;
|
||||
|
||||
if (!d) {
|
||||
ast_log(LOG_WARNING, "Device for line %s is not registered.\n", l->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (d->hookstate == SKINNY_ONHOOK) {
|
||||
d->hookstate = SKINNY_OFFHOOK;
|
||||
transmit_speaker_mode(d, SKINNY_SPEAKERON);
|
||||
|
Reference in New Issue
Block a user