mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-17 10:26:49 +00:00
Compare commits
11 Commits
13.29.0-rc
...
13.19.1
Author | SHA1 | Date | |
---|---|---|---|
|
d53653ed7a | ||
|
30b65cf711 | ||
|
cf98ecc2bf | ||
|
c7aadebf98 | ||
|
817622296d | ||
|
aa23f157e5 | ||
|
19f4c11523 | ||
|
13f74973c8 | ||
|
e302e07567 | ||
|
a474f24b42 | ||
|
f1f1d002ce |
1
.lastclean
Normal file
1
.lastclean
Normal file
@@ -0,0 +1 @@
|
||||
40
|
13
asterisk-13.19.1-summary.html
Normal file
13
asterisk-13.19.1-summary.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<!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"><title>Release Summary - asterisk-13.19.1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.19.1</h3><h3 align="center">Date: 2018-02-13</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="#closed_issues">Closed Issues</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><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version 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-13.19.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><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 affected by commits that went into this release.</p><table width="100%" border="0">
|
||||
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
|
||||
<tr valign="top"><td width="33%">1 Richard Mudgett <rmudgett@digium.com><br/></td><td width="33%"><td width="33%">1 Kristijan Vrban <k.vrban@googlemail.com><br/></td></tr>
|
||||
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Bug</h3><h4>Category: CDR/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27656">ASTERISK-27656</a>: CDR: Leaking channel snapshots allocated by stasis_channel.c<br/>Reported by: Kristijan Vrban<ul>
|
||||
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=30b65cf711b28356b14914d177929683021212db">[30b65cf711]</a> Richard Mudgett -- cdr.c: Fix runtime leak of CDR records.</li>
|
||||
</ul><br><h4>Category: Resources/res_stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-27656">ASTERISK-27656</a>: CDR: Leaking channel snapshots allocated by stasis_channel.c<br/>Reported by: Kristijan Vrban<ul>
|
||||
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=30b65cf711b28356b14914d177929683021212db">[30b65cf711]</a> Richard Mudgett -- cdr.c: Fix runtime leak of CDR records.</li>
|
||||
</ul><br><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><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>0 files changed</pre><br></html>
|
90
asterisk-13.19.1-summary.txt
Normal file
90
asterisk-13.19.1-summary.txt
Normal file
@@ -0,0 +1,90 @@
|
||||
Release Summary
|
||||
|
||||
asterisk-13.19.1
|
||||
|
||||
Date: 2018-02-13
|
||||
|
||||
<asteriskteam@digium.com>
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Summary
|
||||
2. Contributors
|
||||
3. Closed Issues
|
||||
4. Diffstat
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Summary
|
||||
|
||||
[Back to Top]
|
||||
|
||||
This release is a point release of an existing major version. The changes
|
||||
included were made to address problems that have been identified in this
|
||||
release series, or are minor, backwards compatible new features or
|
||||
improvements. Users should be able to safely upgrade to this version if
|
||||
this release series is already in use. Users considering upgrading from a
|
||||
previous version 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-13.19.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 affected by commits that went into
|
||||
this release.
|
||||
|
||||
Coders Testers Reporters
|
||||
1 Richard Mudgett 1 Kristijan Vrban
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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.
|
||||
|
||||
Bug
|
||||
|
||||
Category: CDR/General
|
||||
|
||||
ASTERISK-27656: CDR: Leaking channel snapshots allocated by
|
||||
stasis_channel.c
|
||||
Reported by: Kristijan Vrban
|
||||
* [30b65cf711] Richard Mudgett -- cdr.c: Fix runtime leak of CDR
|
||||
records.
|
||||
|
||||
Category: Resources/res_stasis
|
||||
|
||||
ASTERISK-27656: CDR: Leaking channel snapshots allocated by
|
||||
stasis_channel.c
|
||||
Reported by: Kristijan Vrban
|
||||
* [30b65cf711] Richard Mudgett -- cdr.c: Fix runtime leak of CDR
|
||||
records.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
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.
|
||||
|
||||
0 files changed
|
@@ -3,7 +3,6 @@
|
||||
<depend>xmlstarlet</depend>
|
||||
<depend>bash</depend>
|
||||
<depend>res_format_attr_opus</depend>
|
||||
<depend>curl</depend>
|
||||
<defaultenabled>no</defaultenabled>
|
||||
</member>
|
||||
<member name="codec_silk" displayname="Download the SILK codec from Digium. See http://downloads.digium.com/pub/telephony/codec_silk/README.">
|
||||
|
44
contrib/realtime/mssql/mssql_cdr.sql
Normal file
44
contrib/realtime/mssql/mssql_cdr.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
GO
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR(20) NULL,
|
||||
src VARCHAR(80) NULL,
|
||||
dst VARCHAR(80) NULL,
|
||||
dcontext VARCHAR(80) NULL,
|
||||
clid VARCHAR(80) NULL,
|
||||
channel VARCHAR(80) NULL,
|
||||
dstchannel VARCHAR(80) NULL,
|
||||
lastapp VARCHAR(80) NULL,
|
||||
lastdata VARCHAR(80) NULL,
|
||||
start DATETIME NULL,
|
||||
answer DATETIME NULL,
|
||||
[end] DATETIME NULL,
|
||||
duration INTEGER NULL,
|
||||
billsec INTEGER NULL,
|
||||
disposition VARCHAR(45) NULL,
|
||||
amaflags VARCHAR(45) NULL,
|
||||
userfield VARCHAR(256) NULL,
|
||||
uniqueid VARCHAR(150) NULL,
|
||||
linkedid VARCHAR(150) NULL,
|
||||
peeraccount VARCHAR(20) NULL,
|
||||
sequence INTEGER NULL
|
||||
);
|
||||
|
||||
GO
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
|
||||
|
||||
GO
|
||||
|
||||
COMMIT;
|
||||
|
||||
GO
|
||||
|
1835
contrib/realtime/mssql/mssql_config.sql
Normal file
1835
contrib/realtime/mssql/mssql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
54
contrib/realtime/mssql/mssql_voicemail.sql
Normal file
54
contrib/realtime/mssql/mssql_voicemail.sql
Normal file
@@ -0,0 +1,54 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
GO
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR(255) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR(80) NULL,
|
||||
macrocontext VARCHAR(80) NULL,
|
||||
callerid VARCHAR(80) NULL,
|
||||
origtime INTEGER NULL,
|
||||
duration INTEGER NULL,
|
||||
recording IMAGE NULL,
|
||||
flag VARCHAR(30) NULL,
|
||||
category VARCHAR(30) NULL,
|
||||
mailboxuser VARCHAR(30) NULL,
|
||||
mailboxcontext VARCHAR(30) NULL,
|
||||
msg_id VARCHAR(40) NULL
|
||||
);
|
||||
|
||||
GO
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
|
||||
|
||||
GO
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
|
||||
|
||||
GO
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
|
||||
|
||||
GO
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages ALTER COLUMN recording IMAGE;
|
||||
|
||||
GO
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
|
||||
|
||||
GO
|
||||
|
||||
COMMIT;
|
||||
|
||||
GO
|
||||
|
32
contrib/realtime/mysql/mysql_cdr.sql
Normal file
32
contrib/realtime/mysql/mysql_cdr.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR(20),
|
||||
src VARCHAR(80),
|
||||
dst VARCHAR(80),
|
||||
dcontext VARCHAR(80),
|
||||
clid VARCHAR(80),
|
||||
channel VARCHAR(80),
|
||||
dstchannel VARCHAR(80),
|
||||
lastapp VARCHAR(80),
|
||||
lastdata VARCHAR(80),
|
||||
start DATETIME,
|
||||
answer DATETIME,
|
||||
end DATETIME,
|
||||
duration INTEGER,
|
||||
billsec INTEGER,
|
||||
disposition VARCHAR(45),
|
||||
amaflags VARCHAR(45),
|
||||
userfield VARCHAR(256),
|
||||
uniqueid VARCHAR(150),
|
||||
linkedid VARCHAR(150),
|
||||
peeraccount VARCHAR(20),
|
||||
sequence INTEGER
|
||||
);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
|
||||
|
1094
contrib/realtime/mysql/mysql_config.sql
Normal file
1094
contrib/realtime/mysql/mysql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
34
contrib/realtime/mysql/mysql_voicemail.sql
Normal file
34
contrib/realtime/mysql/mysql_voicemail.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR(255) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR(80),
|
||||
macrocontext VARCHAR(80),
|
||||
callerid VARCHAR(80),
|
||||
origtime INTEGER,
|
||||
duration INTEGER,
|
||||
recording BLOB,
|
||||
flag VARCHAR(30),
|
||||
category VARCHAR(30),
|
||||
mailboxuser VARCHAR(30),
|
||||
mailboxcontext VARCHAR(30),
|
||||
msg_id VARCHAR(40)
|
||||
);
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages MODIFY recording BLOB(4294967295) NULL;
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
|
||||
|
38
contrib/realtime/oracle/oracle_cdr.sql
Normal file
38
contrib/realtime/oracle/oracle_cdr.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR2(32 CHAR) NOT NULL
|
||||
)
|
||||
|
||||
/
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR2(20 CHAR),
|
||||
src VARCHAR2(80 CHAR),
|
||||
dst VARCHAR2(80 CHAR),
|
||||
dcontext VARCHAR2(80 CHAR),
|
||||
clid VARCHAR2(80 CHAR),
|
||||
channel VARCHAR2(80 CHAR),
|
||||
dstchannel VARCHAR2(80 CHAR),
|
||||
lastapp VARCHAR2(80 CHAR),
|
||||
lastdata VARCHAR2(80 CHAR),
|
||||
"start" DATE,
|
||||
answer DATE,
|
||||
end DATE,
|
||||
duration INTEGER,
|
||||
billsec INTEGER,
|
||||
disposition VARCHAR2(45 CHAR),
|
||||
amaflags VARCHAR2(45 CHAR),
|
||||
userfield VARCHAR2(256 CHAR),
|
||||
uniqueid VARCHAR2(150 CHAR),
|
||||
linkedid VARCHAR2(150 CHAR),
|
||||
peeraccount VARCHAR2(20 CHAR),
|
||||
sequence INTEGER
|
||||
)
|
||||
|
||||
/
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d')
|
||||
|
||||
/
|
||||
|
1805
contrib/realtime/oracle/oracle_config.sql
Normal file
1805
contrib/realtime/oracle/oracle_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
48
contrib/realtime/oracle/oracle_voicemail.sql
Normal file
48
contrib/realtime/oracle/oracle_voicemail.sql
Normal file
@@ -0,0 +1,48 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR2(32 CHAR) NOT NULL
|
||||
)
|
||||
|
||||
/
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR2(255 CHAR) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR2(80 CHAR),
|
||||
macrocontext VARCHAR2(80 CHAR),
|
||||
callerid VARCHAR2(80 CHAR),
|
||||
origtime INTEGER,
|
||||
duration INTEGER,
|
||||
recording BLOB,
|
||||
flag VARCHAR2(30 CHAR),
|
||||
category VARCHAR2(30 CHAR),
|
||||
mailboxuser VARCHAR2(30 CHAR),
|
||||
mailboxcontext VARCHAR2(30 CHAR),
|
||||
msg_id VARCHAR2(40 CHAR)
|
||||
)
|
||||
|
||||
/
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum)
|
||||
|
||||
/
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir)
|
||||
|
||||
/
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e')
|
||||
|
||||
/
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages MODIFY recording BLOB
|
||||
|
||||
/
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e'
|
||||
|
||||
/
|
||||
|
36
contrib/realtime/postgresql/postgresql_cdr.sql
Normal file
36
contrib/realtime/postgresql/postgresql_cdr.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
-- Running upgrade -> 210693f3123d
|
||||
|
||||
CREATE TABLE cdr (
|
||||
accountcode VARCHAR(20),
|
||||
src VARCHAR(80),
|
||||
dst VARCHAR(80),
|
||||
dcontext VARCHAR(80),
|
||||
clid VARCHAR(80),
|
||||
channel VARCHAR(80),
|
||||
dstchannel VARCHAR(80),
|
||||
lastapp VARCHAR(80),
|
||||
lastdata VARCHAR(80),
|
||||
start TIMESTAMP WITHOUT TIME ZONE,
|
||||
answer TIMESTAMP WITHOUT TIME ZONE,
|
||||
"end" TIMESTAMP WITHOUT TIME ZONE,
|
||||
duration INTEGER,
|
||||
billsec INTEGER,
|
||||
disposition VARCHAR(45),
|
||||
amaflags VARCHAR(45),
|
||||
userfield VARCHAR(256),
|
||||
uniqueid VARCHAR(150),
|
||||
linkedid VARCHAR(150),
|
||||
peeraccount VARCHAR(20),
|
||||
sequence INTEGER
|
||||
);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('210693f3123d');
|
||||
|
||||
COMMIT;
|
||||
|
1184
contrib/realtime/postgresql/postgresql_config.sql
Normal file
1184
contrib/realtime/postgresql/postgresql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
38
contrib/realtime/postgresql/postgresql_voicemail.sql
Normal file
38
contrib/realtime/postgresql/postgresql_voicemail.sql
Normal file
@@ -0,0 +1,38 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL
|
||||
);
|
||||
|
||||
-- Running upgrade -> a2e9769475e
|
||||
|
||||
CREATE TABLE voicemail_messages (
|
||||
dir VARCHAR(255) NOT NULL,
|
||||
msgnum INTEGER NOT NULL,
|
||||
context VARCHAR(80),
|
||||
macrocontext VARCHAR(80),
|
||||
callerid VARCHAR(80),
|
||||
origtime INTEGER,
|
||||
duration INTEGER,
|
||||
recording BYTEA,
|
||||
flag VARCHAR(30),
|
||||
category VARCHAR(30),
|
||||
mailboxuser VARCHAR(30),
|
||||
mailboxcontext VARCHAR(30),
|
||||
msg_id VARCHAR(40)
|
||||
);
|
||||
|
||||
ALTER TABLE voicemail_messages ADD CONSTRAINT voicemail_messages_dir_msgnum PRIMARY KEY (dir, msgnum);
|
||||
|
||||
CREATE INDEX voicemail_messages_dir ON voicemail_messages (dir);
|
||||
|
||||
INSERT INTO alembic_version (version_num) VALUES ('a2e9769475e');
|
||||
|
||||
-- Running upgrade a2e9769475e -> 39428242f7f5
|
||||
|
||||
ALTER TABLE voicemail_messages ALTER COLUMN recording TYPE BYTEA;
|
||||
|
||||
UPDATE alembic_version SET version_num='39428242f7f5' WHERE alembic_version.version_num = 'a2e9769475e';
|
||||
|
||||
COMMIT;
|
||||
|
12
main/cdr.c
12
main/cdr.c
@@ -371,7 +371,7 @@ static ast_cond_t cdr_pending_cond;
|
||||
/*! \brief A container of the active master CDRs indexed by Party A channel uniqueid */
|
||||
static struct ao2_container *active_cdrs_master;
|
||||
|
||||
/*! \brief A container of all active CDRs indexed by Party B channel name */
|
||||
/*! \brief A container of all active CDRs with a Party B indexed by Party B channel name */
|
||||
static struct ao2_container *active_cdrs_all;
|
||||
|
||||
/*! \brief Message router for stasis messages regarding channel state */
|
||||
@@ -971,13 +971,21 @@ static void cdr_all_unlink(struct cdr_object *cdr)
|
||||
|
||||
ast_assert(cdr->is_root);
|
||||
|
||||
/* Hold a ref to the root CDR to ensure the list members don't go away on us. */
|
||||
ao2_ref(cdr, +1);
|
||||
ao2_lock(active_cdrs_all);
|
||||
for (cur = cdr->next; cur; cur = next) {
|
||||
for (cur = cdr; cur; cur = next) {
|
||||
next = cur->next;
|
||||
ao2_unlink_flags(active_cdrs_all, cur, OBJ_NOLOCK);
|
||||
/*
|
||||
* It is safe to still use cur after unlinking because the
|
||||
* root CDR holds a ref to all the CDRs in the list and we
|
||||
* have a ref to the root CDR.
|
||||
*/
|
||||
ast_string_field_set(cur, party_b_name, "");
|
||||
}
|
||||
ao2_unlock(active_cdrs_all);
|
||||
ao2_ref(cdr, -1);
|
||||
}
|
||||
|
||||
/*!
|
||||
|
@@ -202,7 +202,7 @@ static AST_DLLIST_HEAD_STATIC(reload_queue, reload_queue_item);
|
||||
*
|
||||
* This is protected by the module_list lock.
|
||||
*/
|
||||
static struct ast_module *resource_being_loaded;
|
||||
static struct ast_module * volatile resource_being_loaded;
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
|
@@ -34,7 +34,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "asterisk/lock.h"
|
||||
#include "asterisk/channel.h"
|
||||
@@ -1322,6 +1321,13 @@ void ast_translator_deactivate(struct ast_translator *t)
|
||||
AST_RWLIST_UNLOCK(&translators);
|
||||
}
|
||||
|
||||
/*! Calculate the absolute difference between sample rate of two formats. */
|
||||
#define format_sample_rate_absdiff(fmt1, fmt2) ({ \
|
||||
unsigned int rate1 = ast_format_get_sample_rate(fmt1); \
|
||||
unsigned int rate2 = ast_format_get_sample_rate(fmt2); \
|
||||
(rate1 > rate2 ? rate1 - rate2 : rate2 - rate1); \
|
||||
})
|
||||
|
||||
/*! \brief Calculate our best translator source format, given costs, and a desired destination */
|
||||
int ast_translator_best_choice(struct ast_format_cap *dst_cap,
|
||||
struct ast_format_cap *src_cap,
|
||||
@@ -1406,10 +1412,8 @@ int ast_translator_best_choice(struct ast_format_cap *dst_cap,
|
||||
beststeps = matrix_get(x, y)->multistep;
|
||||
} else if (matrix_get(x, y)->table_cost == besttablecost
|
||||
&& matrix_get(x, y)->multistep == beststeps) {
|
||||
int gap_selected = abs(ast_format_get_sample_rate(best)
|
||||
- ast_format_get_sample_rate(bestdst));
|
||||
int gap_current = abs(ast_format_get_sample_rate(src)
|
||||
- ast_format_get_sample_rate(dst));
|
||||
unsigned int gap_selected = format_sample_rate_absdiff(best, bestdst);
|
||||
unsigned int gap_current = format_sample_rate_absdiff(src, dst);
|
||||
|
||||
if (gap_current < gap_selected) {
|
||||
/* better than what we have so far */
|
||||
|
@@ -3241,7 +3241,7 @@ pjsip_dialog *ast_sip_create_dialog_uas(const struct ast_sip_endpoint *endpoint,
|
||||
ast_assert(status != NULL);
|
||||
|
||||
contact_hdr = pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_CONTACT, NULL);
|
||||
if (ast_sip_set_tpselector_from_ep_or_uri(endpoint, pjsip_uri_get_uri(contact_hdr->uri),
|
||||
if (!contact_hdr || ast_sip_set_tpselector_from_ep_or_uri(endpoint, pjsip_uri_get_uri(contact_hdr->uri),
|
||||
&selector)) {
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -429,15 +429,27 @@ static pj_bool_t on_rx_process_uris(pjsip_rx_data *rdata)
|
||||
return PJ_TRUE;
|
||||
}
|
||||
|
||||
while ((contact =
|
||||
(pjsip_contact_hdr *) pjsip_msg_find_hdr(rdata->msg_info.msg, PJSIP_H_CONTACT,
|
||||
contact ? contact->next : NULL))) {
|
||||
|
||||
contact = (pjsip_contact_hdr *) pjsip_msg_find_hdr(
|
||||
rdata->msg_info.msg, PJSIP_H_CONTACT, NULL);
|
||||
|
||||
if (!contact && pjsip_method_creates_dialog(&rdata->msg_info.msg->line.req.method)) {
|
||||
/* A contact header is required for dialog creating methods */
|
||||
static const pj_str_t missing_contact = { "Missing Contact header", 22 };
|
||||
pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata, 400,
|
||||
&missing_contact, NULL, NULL);
|
||||
return PJ_TRUE;
|
||||
}
|
||||
|
||||
while (contact) {
|
||||
if (!contact->star && !is_sip_uri(contact->uri)) {
|
||||
print_uri_debug(URI_TYPE_CONTACT, rdata, (pjsip_hdr *)contact);
|
||||
pjsip_endpt_respond_stateless(ast_sip_get_pjsip_endpoint(), rdata,
|
||||
PJSIP_SC_UNSUPPORTED_URI_SCHEME, NULL, NULL, NULL);
|
||||
return PJ_TRUE;
|
||||
}
|
||||
contact = (pjsip_contact_hdr *) pjsip_msg_find_hdr(
|
||||
rdata->msg_info.msg, PJSIP_H_CONTACT, contact->next);
|
||||
}
|
||||
|
||||
return PJ_FALSE;
|
||||
|
@@ -613,8 +613,12 @@ static void subscription_persistence_update(struct sip_subscription_tree *sub_tr
|
||||
expires = expires_hdr ? expires_hdr->ivalue : DEFAULT_PUBLISH_EXPIRES;
|
||||
sub_tree->persistence->expires = ast_tvadd(ast_tvnow(), ast_samp2tv(expires, 1));
|
||||
|
||||
pjsip_uri_print(PJSIP_URI_IN_CONTACT_HDR, contact_hdr->uri,
|
||||
sub_tree->persistence->contact_uri, sizeof(sub_tree->persistence->contact_uri));
|
||||
if (contact_hdr) {
|
||||
pjsip_uri_print(PJSIP_URI_IN_CONTACT_HDR, contact_hdr->uri,
|
||||
sub_tree->persistence->contact_uri, sizeof(sub_tree->persistence->contact_uri));
|
||||
} else {
|
||||
ast_log(LOG_WARNING, "Contact not updated due to missing contact header\n");
|
||||
}
|
||||
|
||||
/* When receiving a packet on an streaming transport, it's possible to receive more than one SIP
|
||||
* message at a time into the rdata->pkt_info.packet buffer. However, the rdata->msg_info.msg_buf
|
||||
|
Reference in New Issue
Block a user