mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-08 19:08:14 +00:00
Updates for 1.8.10.0-rc3
Updated: 1) .version 2) ChangeLog 3) Removed old summaries 4) Merged r355732, r356475, r357093 git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.8.10.0-rc3@357264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
62
ChangeLog
62
ChangeLog
@@ -1,3 +1,65 @@
|
||||
2012-02-28 Asterisk Development Team <asteriskteam@digium.com>
|
||||
|
||||
* Asterisk 1.8.10.0-rc3 Released.
|
||||
|
||||
* main/channel.c: Fix callerid of Originated calls.
|
||||
|
||||
The callerid of originated calls (independent of mechanism) was not
|
||||
being passed to the outbound channel. This patch fixes that. Thanks
|
||||
to Matt Riddell for tracking this down.
|
||||
(closes issue ASTERISK-19385)
|
||||
Reported by: ornix
|
||||
patches:
|
||||
callerid.diff uploaded by Matt Riddell (license #5023)
|
||||
|
||||
* channels/chan_sip.c: Fix ACK routing for non-2xx responses.
|
||||
|
||||
When we send an ACK for a 2xx response to an INVITE, we are supposed
|
||||
to use the learned route set. However, when we receive a non-2xx
|
||||
final response to an INVITE, we are supposed to send the ACK to the
|
||||
same place we initially sent the INVITE.
|
||||
|
||||
We had been doing this up until the changes went in that would build
|
||||
a route set from provisional responses. That introduced a regression
|
||||
where we would use the learned route set under all circumstances.
|
||||
|
||||
With this change, we now will set the destination of our ACK based on
|
||||
the invitestate. If it is INV_COMPLETED then that means that we have
|
||||
received a non-2xx final response (INV_TERMINATED indicates a 2xx
|
||||
response was received). If it is INV_CANCELLED, then that means the
|
||||
call is being canceled, which means that we should be ACKing a 487
|
||||
response.
|
||||
|
||||
The other change introduced here is setting the invitestate to
|
||||
INV_CONFIRMED when we send an ACK *after* the reqprep instead of
|
||||
before. This way, we can tell in reqprep more easily what the
|
||||
invitestate is prior to sending the ACK.
|
||||
|
||||
(closes issue ASTERISK-19389)
|
||||
reported by Karsten Wemheuer
|
||||
patches:
|
||||
ASTERISK-19389v2.patch uploaded by Mark Michelson (license #5049)
|
||||
|
||||
* channels/chan_sip.c: Fix regressions with regards to route-set
|
||||
creation on early dialogs.
|
||||
|
||||
This fixes two main issues:
|
||||
1. Asterisk would send a CANCEL to the route created by the provisional
|
||||
response instead of using the same destination it did in the initial
|
||||
INVITE.
|
||||
2. If a new route set arrives in a 200 OK than was in the 1XX response
|
||||
(perfectly possible if our outbound INVITE gets forked), then the
|
||||
route set in the 200 OK needs to overwrite the route set in the 1XX
|
||||
response.
|
||||
(closes issue ASTERISK-19358)
|
||||
Reported by: Karsten Wemheuer
|
||||
Tested by: Karsten Wemheuer
|
||||
patches:
|
||||
ASTERISK-19358.patch uploaded by Mark Michelson (license 5049)
|
||||
ASTERISK-19358.patch uploaded by Stefan Schmidt (license 6034)
|
||||
|
||||
Review: https://reviewboard.asterisk.org/r/1749
|
||||
|
||||
2012-02-10 Asterisk Development Team <asteriskteam@digium.com>
|
||||
|
||||
* Asterisk 1.8.10.0-rc2 Released.
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.8.10.0-rc2</title></head>
|
||||
<body>
|
||||
<h1 align="center"><a name="top">Release Summary</a></h1>
|
||||
<h3 align="center">asterisk-1.8.10.0-rc2</h3>
|
||||
<h3 align="center">Date: 2012-02-10</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 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.10.0-rc1.</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 mjordan<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/branches/1.8?view=revision&revision=354882">354882</a></td><td>mjordan</td><td>Create 1.8.10.0-rc2</td>
|
||||
<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=354884">354884</a></td><td>mjordan</td><td>Commit r353371,353999,353915,354495,354542,354547 for rc2</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 | 57 ++++
|
||||
apps/app_parkandannounce.c | 1
|
||||
asterisk-1.8.10.0-rc1-summary.html | 284 ---------------------
|
||||
asterisk-1.8.10.0-rc1-summary.txt | 491 -------------------------------------
|
||||
channels/chan_agent.c | 171 ++++++++++--
|
||||
channels/chan_sip.c | 280 +++++++++++++--------
|
||||
include/asterisk/dnsmgr.h | 27 ++
|
||||
main/dnsmgr.c | 31 +-
|
||||
9 files changed, 420 insertions(+), 924 deletions(-)
|
||||
</pre><br/>
|
||||
<hr/>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,95 +0,0 @@
|
||||
Release Summary
|
||||
|
||||
asterisk-1.8.10.0-rc2
|
||||
|
||||
Date: 2012-02-10
|
||||
|
||||
<asteriskteam@digium.com>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Summary
|
||||
2. Contributors
|
||||
3. Other Changes
|
||||
4. 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.10.0-rc1.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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 mjordan
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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|
|
||||
|--------+-------+--------------------------------------------+----------|
|
||||
|354882 |mjordan|Create 1.8.10.0-rc2 | |
|
||||
|--------+-------+--------------------------------------------+----------|
|
||||
| | |Commit | |
|
||||
|354884 |mjordan|r353371,353999,353915,354495,354542,354547 | |
|
||||
| | |for rc2 | |
|
||||
+------------------------------------------------------------------------+
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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 | 57 ++++
|
||||
apps/app_parkandannounce.c | 1
|
||||
asterisk-1.8.10.0-rc1-summary.html | 284 ---------------------
|
||||
asterisk-1.8.10.0-rc1-summary.txt | 491 -------------------------------------
|
||||
channels/chan_agent.c | 171 ++++++++++--
|
||||
channels/chan_sip.c | 280 +++++++++++++--------
|
||||
include/asterisk/dnsmgr.h | 27 ++
|
||||
main/dnsmgr.c | 31 +-
|
||||
9 files changed, 420 insertions(+), 924 deletions(-)
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -1280,7 +1280,7 @@ static int auto_congest(const void *arg);
|
||||
static struct sip_pvt *find_call(struct sip_request *req, struct ast_sockaddr *addr, const int intended_method);
|
||||
static void free_old_route(struct sip_route *route);
|
||||
static void list_route(struct sip_route *route);
|
||||
static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards);
|
||||
static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards, int resp);
|
||||
static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sockaddr *addr,
|
||||
struct sip_request *req, const char *uri);
|
||||
static struct sip_pvt *get_sip_pvt_byid_locked(const char *callid, const char *totag, const char *fromtag);
|
||||
@@ -10352,7 +10352,15 @@ static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, in
|
||||
snprintf(tmp, sizeof(tmp), "%d %s", seqno, sip_methods[sipmethod].text);
|
||||
|
||||
add_header(req, "Via", p->via);
|
||||
if (p->route) {
|
||||
/*
|
||||
* Use the learned route set unless this is a CANCEL on an ACK for a non-2xx
|
||||
* 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) {
|
||||
set_destination(p, p->route->hop);
|
||||
add_route(req, is_strict ? p->route->next : p->route);
|
||||
}
|
||||
@@ -13579,15 +13587,15 @@ static int transmit_request(struct sip_pvt *p, int sipmethod, int seqno, enum xm
|
||||
{
|
||||
struct sip_request resp;
|
||||
|
||||
if (sipmethod == SIP_ACK) {
|
||||
p->invitestate = INV_CONFIRMED;
|
||||
}
|
||||
|
||||
reqprep(&resp, p, sipmethod, seqno, newbranch);
|
||||
if (sipmethod == SIP_CANCEL && p->answered_elsewhere) {
|
||||
add_header(&resp, "Reason", "SIP;cause=200;text=\"Call completed elsewhere\"");
|
||||
}
|
||||
|
||||
if (sipmethod == SIP_ACK) {
|
||||
p->invitestate = INV_CONFIRMED;
|
||||
}
|
||||
|
||||
return send_request(p, &resp, reliable, seqno ? seqno : p->ocseq);
|
||||
}
|
||||
|
||||
@@ -14150,8 +14158,9 @@ static void list_route(struct sip_route *route)
|
||||
}
|
||||
}
|
||||
|
||||
/*! \brief Build route list from Record-Route header */
|
||||
static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards)
|
||||
/*! \brief Build route list from Record-Route header
|
||||
\param resp the SIP response code or 0 for a request */
|
||||
static void build_route(struct sip_pvt *p, struct sip_request *req, int backwards, int resp)
|
||||
{
|
||||
struct sip_route *thishop, *head, *tail;
|
||||
int start = 0;
|
||||
@@ -14169,9 +14178,12 @@ static void build_route(struct sip_pvt *p, struct sip_request *req, int backward
|
||||
p->route = NULL;
|
||||
}
|
||||
|
||||
/* We only want to create the route set the first time this is called */
|
||||
p->route_persistent = 1;
|
||||
|
||||
/* We only want to create the route set the first time this is called except
|
||||
it is called from a provisional response.*/
|
||||
if ((resp < 100) || (resp > 199)) {
|
||||
p->route_persistent = 1;
|
||||
}
|
||||
|
||||
/* Build a tailq, then assign it to p->route when done.
|
||||
* If backwards, we add entries from the head so they end up
|
||||
* in reverse order. However, we do need to maintain a correct
|
||||
@@ -19957,7 +19969,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
||||
* */
|
||||
parse_ok_contact(p, req);
|
||||
if (!reinvite) {
|
||||
build_route(p, req, 1);
|
||||
build_route(p, req, 1, resp);
|
||||
}
|
||||
if (!req->ignore && p->owner) {
|
||||
if (get_rpid(p, req)) {
|
||||
@@ -20007,7 +20019,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
||||
* */
|
||||
parse_ok_contact(p, req);
|
||||
if (!reinvite) {
|
||||
build_route(p, req, 1);
|
||||
build_route(p, req, 1, resp);
|
||||
}
|
||||
if (!req->ignore && p->owner) {
|
||||
struct ast_party_redirecting redirecting;
|
||||
@@ -20033,7 +20045,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
||||
* */
|
||||
parse_ok_contact(p, req);
|
||||
if (!reinvite) {
|
||||
build_route(p, req, 1);
|
||||
build_route(p, req, 1, resp);
|
||||
}
|
||||
if (!req->ignore && p->owner) {
|
||||
if (get_rpid(p, req)) {
|
||||
@@ -20133,7 +20145,7 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest
|
||||
parse_ok_contact(p, req);
|
||||
/* Save Record-Route for any later requests we make on this dialogue */
|
||||
if (!reinvite)
|
||||
build_route(p, req, 1);
|
||||
build_route(p, req, 1, resp);
|
||||
|
||||
if(set_address_from_contact(p)) {
|
||||
/* Bad contact - we don't know how to reach this device */
|
||||
@@ -22637,7 +22649,7 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
|
||||
*recount = 1;
|
||||
|
||||
/* Save Record-Route for any later requests we make on this dialogue */
|
||||
build_route(p, req, 0);
|
||||
build_route(p, req, 0, 0);
|
||||
|
||||
if (c) {
|
||||
ast_party_redirecting_init(&redirecting);
|
||||
@@ -24519,7 +24531,7 @@ static int handle_request_subscribe(struct sip_pvt *p, struct sip_request *req,
|
||||
if (sipdebug)
|
||||
ast_debug(4, "Initializing initreq for method %s - callid %s\n", sip_methods[req->method].text, p->callid);
|
||||
check_via(p, req);
|
||||
build_route(p, req, 0);
|
||||
build_route(p, req, 0, 0);
|
||||
} else if (req->debug && req->ignore)
|
||||
ast_verbose("Ignoring this SUBSCRIBE request\n");
|
||||
|
||||
|
||||
@@ -5351,6 +5351,16 @@ struct ast_channel *__ast_request_and_dial(const char *type, format_t format, co
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* I seems strange to set the CallerID on an outgoing call leg
|
||||
* to whom we are calling, but this function's callers are doing
|
||||
* various Originate methods. This call leg goes to the local
|
||||
* user. Once the local user answers, the dialplan needs to be
|
||||
* able to access the CallerID from the CALLERID function as if
|
||||
* the local user had placed this call.
|
||||
*/
|
||||
ast_set_callerid(chan, cid_num, cid_name, cid_num);
|
||||
|
||||
ast_set_flag(chan->cdr, AST_CDR_FLAG_ORIGINATED);
|
||||
ast_party_connected_line_set_init(&connected, &chan->connected);
|
||||
if (cid_num) {
|
||||
|
||||
Reference in New Issue
Block a user