mirror of
https://github.com/asterisk/asterisk.git
synced 2025-08-25 06:59:25 +00:00
Compare commits
5 Commits
18.13.0-rc
...
18.0.0
Author | SHA1 | Date | |
---|---|---|---|
|
2c1bba3cbe | ||
|
79d749d2b5 | ||
|
6fd94258f8 | ||
|
5cc4a391b3 | ||
|
704cb88799 |
1
.lastclean
Normal file
1
.lastclean
Normal file
@@ -0,0 +1 @@
|
||||
40
|
1162
asterisk-18.0.0-summary.html
Normal file
1162
asterisk-18.0.0-summary.html
Normal file
File diff suppressed because one or more lines are too long
2873
asterisk-18.0.0-summary.txt
Normal file
2873
asterisk-18.0.0-summary.txt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -112,7 +112,7 @@
|
||||
; - [plain] - The plain formatter, this outputs log messages using a
|
||||
; human readable format with the addition of function name
|
||||
; and line number. No color escape codes are ever printed
|
||||
nor are verbose messages treated specially.
|
||||
; nor are verbose messages treated specially.
|
||||
; - [json] - Log the output in JSON. Note that JSON formatted log entries,
|
||||
; if specified for a logger type of 'console', will be formatted
|
||||
; per the 'default' formatter for log messages of type VERBOSE.
|
||||
|
@@ -828,69 +828,17 @@
|
||||
; local - Include all codecs in the local list that
|
||||
; are also in the remote list preserving the local
|
||||
; order.
|
||||
; local_merge - Include all codecs in BOTH lists
|
||||
; preserving the local list order. Codes in the
|
||||
; remote list not in the local list will be placed
|
||||
; at the end of the joint list.
|
||||
; local_merge - Include all codecs in the local list
|
||||
; preserving the local order.
|
||||
; local_first - Include only the first codec in the
|
||||
; local list.
|
||||
; remote - Include all codecs in the remote list that
|
||||
; are also in the local list preserving remote list
|
||||
; order. (default)
|
||||
; remote_merge - Include all codecs in BOTH lists
|
||||
; preserving the remote list order. Codes in the
|
||||
; local list not in the remote list will be placed
|
||||
; at the end of the joint list.
|
||||
; remote_first - Include only the first codec in
|
||||
; the remote list.
|
||||
;codec_prefs_incoming_offer=; This is a string that describes how the codecs
|
||||
; specified on an incoming SDP offer (pending) are
|
||||
; reconciled with the codecs specified on an endpoint
|
||||
; (configured) before being sent to the Asterisk core.
|
||||
; The string actually specifies 4 name:value pair
|
||||
; parameters separated by commas. Whitespace is
|
||||
; ignored and they may be specified in any order.
|
||||
; prefer: <pending | configured>,
|
||||
; operation: <intersect | only_preferred
|
||||
; | only_nonpreferred>,
|
||||
; keep: <first | all>,
|
||||
; transcode: <allow | prevent>
|
||||
;codec_prefs_outgoing_offer=; This is a string that describes how the codecs
|
||||
; specified in the topology that comes from the
|
||||
; Asterisk core (pending) are reconciled with the
|
||||
; codecs specified on an endpoint (configured)
|
||||
; when sending an SDP offer.
|
||||
; The string actually specifies 4 name:value pair
|
||||
; parameters separated by commas. Whitespace is
|
||||
; ignored and they may be specified in any order.
|
||||
; prefer: <pending | configured>,
|
||||
; operation: <intersect | union
|
||||
; | only_preferred | only_nonpreferred>,
|
||||
; keep: <first | all>,
|
||||
; transcode: <allow | prevent>
|
||||
;codec_prefs_incoming_answer=; This is a string that describes how the codecs
|
||||
; specified in an incoming SDP answer (pending)
|
||||
; are reconciled with the codecs specified on an
|
||||
; endpoint (configured) when receiving an SDP
|
||||
; answer.
|
||||
; The string actually specifies 4 name:value pair
|
||||
; parameters separated by commas. Whitespace is
|
||||
; ignored and they may be specified in any order.
|
||||
; prefer: <pending | configured>,
|
||||
; operation: <intersect | union
|
||||
; | only_preferred | only_nonpreferred>,
|
||||
; keep: <first | all>
|
||||
;codec_prefs_outgoing_answer=; This is a string that describes how the codecs
|
||||
; that come from the core (pending) are reconciled
|
||||
; with the codecs specified on an endpoint
|
||||
; (configured) when sending an SDP answer.
|
||||
; The string actually specifies 4 name:value pair
|
||||
; parameters separated by commas. Whitespace is
|
||||
; ignored and they may be specified in any order.
|
||||
; prefer: <pending | configured>,
|
||||
; operation: <intersect | union
|
||||
; | only_preferred | only_nonpreferred>,
|
||||
; keep: <first | all>
|
||||
; order.
|
||||
; remote_merge - Include all codecs in the local list
|
||||
; preserving the remote list order. (default)
|
||||
; remote_first - Include only the first codec in the
|
||||
; remote list that is also in the local list.
|
||||
;preferred_codec_only=no ; Respond to a SIP invite with the single most
|
||||
; preferred codec rather than advertising all joint
|
||||
; codec capabilities. This limits the other side's
|
||||
|
41
contrib/realtime/mysql/mysql_cdr.sql
Normal file
41
contrib/realtime/mysql/mysql_cdr.sql
Normal file
@@ -0,0 +1,41 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- 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');
|
||||
|
||||
-- Running upgrade 210693f3123d -> 54cde9847798
|
||||
|
||||
ALTER TABLE cdr MODIFY accountcode VARCHAR(80) NULL;
|
||||
|
||||
ALTER TABLE cdr MODIFY peeraccount VARCHAR(80) NULL;
|
||||
|
||||
UPDATE alembic_version SET version_num='54cde9847798' WHERE alembic_version.version_num = '210693f3123d';
|
||||
|
1294
contrib/realtime/mysql/mysql_config.sql
Normal file
1294
contrib/realtime/mysql/mysql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
35
contrib/realtime/mysql/mysql_voicemail.sql
Normal file
35
contrib/realtime/mysql/mysql_voicemail.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- 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';
|
||||
|
45
contrib/realtime/postgresql/postgresql_cdr.sql
Normal file
45
contrib/realtime/postgresql/postgresql_cdr.sql
Normal file
@@ -0,0 +1,45 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- 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');
|
||||
|
||||
-- Running upgrade 210693f3123d -> 54cde9847798
|
||||
|
||||
ALTER TABLE cdr ALTER COLUMN accountcode TYPE VARCHAR(80);
|
||||
|
||||
ALTER TABLE cdr ALTER COLUMN peeraccount TYPE VARCHAR(80);
|
||||
|
||||
UPDATE alembic_version SET version_num='54cde9847798' WHERE alembic_version.version_num = '210693f3123d';
|
||||
|
||||
COMMIT;
|
||||
|
1406
contrib/realtime/postgresql/postgresql_config.sql
Normal file
1406
contrib/realtime/postgresql/postgresql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
39
contrib/realtime/postgresql/postgresql_voicemail.sql
Normal file
39
contrib/realtime/postgresql/postgresql_voicemail.sql
Normal file
@@ -0,0 +1,39 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE alembic_version (
|
||||
version_num VARCHAR(32) NOT NULL,
|
||||
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||
);
|
||||
|
||||
-- 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;
|
||||
|
@@ -111,6 +111,7 @@
|
||||
on an endpoint (configured) before being sent to the Asterisk core.
|
||||
The string actually specifies 4 <literal>name:value</literal> pair parameters
|
||||
separated by commas. Whitespace is ignored and they may be specified in any order.
|
||||
Note that this option is reserved for future functionality.
|
||||
|
||||
</para>
|
||||
<para>
|
||||
@@ -171,6 +172,7 @@
|
||||
endpoint (configured) when sending an SDP offer.
|
||||
The string actually specifies 4 <literal>name:value</literal> pair parameters
|
||||
separated by commas. Whitespace is ignored and they may be specified in any order.
|
||||
Note that this option is reserved for future functionality.
|
||||
|
||||
</para>
|
||||
<para>
|
||||
@@ -232,6 +234,8 @@
|
||||
when receiving an SDP answer.
|
||||
The string actually specifies 4 <literal>name:value</literal> pair parameters
|
||||
separated by commas. Whitespace is ignored and they may be specified in any order.
|
||||
Note that this option is reserved for future functionality.
|
||||
|
||||
</para>
|
||||
<para>
|
||||
Parameters:
|
||||
@@ -288,6 +292,8 @@
|
||||
when sending an SDP answer.
|
||||
The string actually specifies 4 <literal>name:value</literal> pair parameters
|
||||
separated by commas. Whitespace is ignored and they may be specified in any order.
|
||||
Note that this option is reserved for future functionality.
|
||||
|
||||
</para>
|
||||
<para>
|
||||
Parameters:
|
||||
@@ -1210,7 +1216,7 @@
|
||||
</enumlist>
|
||||
</description>
|
||||
</configOption>
|
||||
<configOption name="outgoing_call_offer_pref" default="local">
|
||||
<configOption name="outgoing_call_offer_pref" default="remote_merge">
|
||||
<synopsis>Preferences for selecting codecs for an outgoing call.</synopsis>
|
||||
<description>
|
||||
<para>Based on this setting, a joint list of preferred codecs between
|
||||
@@ -1223,24 +1229,20 @@
|
||||
preserving the local order.
|
||||
</para></enum>
|
||||
<enum name="local_merge"><para>
|
||||
Include all codecs in BOTH lists preserving the local order.
|
||||
Remote codecs not in the local list will be placed at the end
|
||||
of the joint list.
|
||||
Include all codecs in the local list preserving the local order.
|
||||
</para></enum>
|
||||
<enum name="local_first"><para>
|
||||
Include only the first codec in the local list.
|
||||
</para></enum>
|
||||
<enum name="remote"><para>
|
||||
Include all codecs in the remote list that are also in the local list
|
||||
preserving the remote order. (default)
|
||||
preserving the remote order.
|
||||
</para></enum>
|
||||
<enum name="remote_merge"><para>
|
||||
Include all codecs in BOTH lists preserving the remote order.
|
||||
Local codecs not in the remote list will be placed at the end
|
||||
of the joint list.
|
||||
Include all codecs in the local list preserving the remote order. (default)
|
||||
</para></enum>
|
||||
<enum name="remote_first"><para>
|
||||
Include only the first codec in the remote list.
|
||||
Include only the first codec in the remote list that is also in the local list.
|
||||
</para></enum>
|
||||
</enumlist>
|
||||
</description>
|
||||
|
@@ -2137,7 +2137,7 @@ int ast_res_pjsip_initialize_configuration(void)
|
||||
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "ignore_183_without_sdp", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, ignore_183_without_sdp));
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "incoming_call_offer_pref", "local",
|
||||
call_offer_pref_handler, incoming_call_offer_pref_to_str, NULL, 0, 0);
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "outgoing_call_offer_pref", "remote",
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "outgoing_call_offer_pref", "remote_merge",
|
||||
call_offer_pref_handler, outgoing_call_offer_pref_to_str, NULL, 0, 0);
|
||||
ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "codec_prefs_incoming_offer",
|
||||
"prefer: pending, operation: intersect, keep: all, transcode: allow",
|
||||
|
@@ -68,34 +68,43 @@ struct ast_format_cap *ast_sip_create_joint_call_cap(const struct ast_format_cap
|
||||
{
|
||||
struct ast_format_cap *joint = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT);
|
||||
struct ast_format_cap *local_filtered = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT);
|
||||
struct ast_format_cap *remote_filtered = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT);
|
||||
|
||||
if (!joint || !local_filtered) {
|
||||
if (!joint || !local_filtered || !remote_filtered) {
|
||||
ast_log(LOG_ERROR, "Failed to allocate %s call offer capabilities\n",
|
||||
ast_codec_media_type2str(media_type));
|
||||
ao2_cleanup(joint);
|
||||
ao2_cleanup(local_filtered);
|
||||
ao2_cleanup(remote_filtered);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
ast_format_cap_append_from_cap(local_filtered, local, media_type);
|
||||
|
||||
/* Remote should always be a subset of local, as local is what defines the underlying
|
||||
* permitted formats.
|
||||
*/
|
||||
ast_format_cap_get_compatible(remote, local_filtered, remote_filtered);
|
||||
|
||||
if (ast_sip_call_codec_pref_test(codec_pref, LOCAL)) {
|
||||
if (ast_sip_call_codec_pref_test(codec_pref, INTERSECT)) {
|
||||
ast_format_cap_get_compatible(local_filtered, remote, joint); /* Get common, prefer local */
|
||||
ast_format_cap_get_compatible(local_filtered, remote_filtered, joint); /* Get common, prefer local */
|
||||
} else {
|
||||
ast_format_cap_append_from_cap(joint, local_filtered, media_type); /* Add local */
|
||||
ast_format_cap_append_from_cap(joint, remote, media_type); /* Then remote */
|
||||
ast_format_cap_append_from_cap(joint, remote_filtered, media_type); /* Then remote */
|
||||
}
|
||||
} else {
|
||||
if (ast_sip_call_codec_pref_test(codec_pref, INTERSECT)) {
|
||||
ast_format_cap_get_compatible(remote, local_filtered, joint); /* Get common, prefer remote */
|
||||
joint = remote_filtered; /* Get common, prefer remote - as was done when filtering initially */
|
||||
remote_filtered = NULL;
|
||||
} else {
|
||||
ast_format_cap_append_from_cap(joint, remote, media_type); /* Add remote */
|
||||
ast_format_cap_append_from_cap(joint, remote_filtered, media_type); /* Add remote */
|
||||
ast_format_cap_append_from_cap(joint, local_filtered, media_type); /* Then local */
|
||||
}
|
||||
}
|
||||
|
||||
ao2_ref(local_filtered, -1);
|
||||
ao2_cleanup(remote_filtered);
|
||||
|
||||
if (ast_format_cap_empty(joint)) {
|
||||
return joint;
|
||||
|
@@ -147,11 +147,11 @@ AST_TEST_DEFINE(low_level)
|
||||
ast_test_status_update(test, "Testing outgoing expected pass\n");
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "local", 1, "alaw,g722", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "local_first", 1, "alaw", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "local_merge", 1, "ulaw,alaw,g722,g729", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "local_merge", 1, "ulaw,alaw,g722", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "remote", 1, "g722,alaw", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "remote_first", 1, "g722", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "remote_merge", 1, "g722,g729,alaw,ulaw", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("!all", "g722,g729,alaw", "remote_merge", 1, "g722,g729,alaw", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("ulaw,alaw,g722", "g722,g729,alaw", "remote_merge", 1, "g722,alaw,ulaw", AST_TEST_PASS);
|
||||
RUN_CREATE_JOINT("!all", "g722,g729,alaw", "remote_merge", 1, "nothing", AST_TEST_PASS);
|
||||
|
||||
return rc >= 1 ? AST_TEST_FAIL : AST_TEST_PASS;
|
||||
}
|
||||
|
Reference in New Issue
Block a user