mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-02 02:18:31 +00:00
Update for 22.0.0-rc1
This commit is contained in:
1
CHANGES.md
Symbolic link
1
CHANGES.md
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
ChangeLogs/ChangeLog-22.0.0-rc1.md
|
307
ChangeLogs/ChangeLog-22.0.0-rc1.md
Normal file
307
ChangeLogs/ChangeLog-22.0.0-rc1.md
Normal file
@@ -0,0 +1,307 @@
|
|||||||
|
|
||||||
|
## Change Log for Release asterisk-22.0.0-rc1
|
||||||
|
|
||||||
|
### Links:
|
||||||
|
|
||||||
|
- [Full ChangeLog](https://downloads.asterisk.org/pub/telephony/asterisk/releases/ChangeLog-22.0.0-rc1.md)
|
||||||
|
- [GitHub Diff](https://github.com/asterisk/asterisk/compare/22.0.0-pre1...22.0.0-rc1)
|
||||||
|
- [Tarball](https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-22.0.0-rc1.tar.gz)
|
||||||
|
- [Downloads](https://downloads.asterisk.org/pub/telephony/asterisk)
|
||||||
|
|
||||||
|
### Summary:
|
||||||
|
|
||||||
|
- Commits: 19
|
||||||
|
- Commit Authors: 8
|
||||||
|
- Issues Resolved: 10
|
||||||
|
- Security Advisories Resolved: 1
|
||||||
|
- [GHSA-v428-g3cw-7hv9](https://github.com/asterisk/asterisk/security/advisories/GHSA-v428-g3cw-7hv9): A malformed Contact or Record-Route URI in an incoming SIP request can cause Asterisk to crash when res_resolver_unbound is used
|
||||||
|
|
||||||
|
### User Notes:
|
||||||
|
|
||||||
|
- #### feat: ARI "ChannelToneDetected" event
|
||||||
|
Setting the TONE_DETECT dialplan function on a channel
|
||||||
|
in ARI will now cause a ChannelToneDetected ARI event to be raised
|
||||||
|
when the specified tone is detected.
|
||||||
|
|
||||||
|
|
||||||
|
### Upgrade Notes:
|
||||||
|
|
||||||
|
- #### app_record: Add RECORD_TIME output variable.
|
||||||
|
The RECORD_TIME variable now contains
|
||||||
|
the duration of Record() recordings in milliseconds.
|
||||||
|
|
||||||
|
|
||||||
|
### Commit Authors:
|
||||||
|
|
||||||
|
- Alexei Gradinari: (2)
|
||||||
|
- George Joseph: (7)
|
||||||
|
- Gibbz00: (1)
|
||||||
|
- Joshua C. Colp: (2)
|
||||||
|
- Mike Bradeen: (2)
|
||||||
|
- Naveen Albert: (1)
|
||||||
|
- Sean Bright: (2)
|
||||||
|
- Tinet-Mucw: (2)
|
||||||
|
|
||||||
|
## Issue and Commit Detail:
|
||||||
|
|
||||||
|
### Closed Issues:
|
||||||
|
|
||||||
|
- !GHSA-v428-g3cw-7hv9: A malformed Contact or Record-Route URI in an incoming SIP request can cause Asterisk to crash when res_resolver_unbound is used
|
||||||
|
- 548: [improvement]: Get Record() audio duration/length
|
||||||
|
- 763: [bug]: autoservice thread stuck in an endless sleep
|
||||||
|
- 811: [new-feature]: ARI channel tone detect events.
|
||||||
|
- 845: [bug]: Buffer overflow in handling of security mechanisms in res_pjsip
|
||||||
|
- 847: [bug]: Asterisk not using negotiated fall-back 8K digits
|
||||||
|
- 854: [bug]: wrong properties in stir_shaken.conf.sample
|
||||||
|
- 856: [bug]: res_pjsip_sdp_rtp leaks astobj2 ast_format
|
||||||
|
- 861: [bug]: ChanSpy unable to read audiohook read direction frame when no packet lost on both side of the call
|
||||||
|
- 876: [bug]: ChanSpy unable to write whisper_audiohook when set flag OPTION_READONLY
|
||||||
|
- 879: [bug]: res_stir_shaken/verification.c: Getting verification errors when global_disable=yes
|
||||||
|
|
||||||
|
### Commits By Author:
|
||||||
|
|
||||||
|
- #### Alexei Gradinari (2):
|
||||||
|
- res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
||||||
|
- autoservice: Do not sleep if autoservice_stop is called within autoservice thr..
|
||||||
|
|
||||||
|
- #### George Joseph (5):
|
||||||
|
- stir_shaken.conf.sample: Fix bad references to private_key_path
|
||||||
|
- security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
||||||
|
- app_voicemail: Use ast_asprintf to create mailbox SQL query
|
||||||
|
- res_resolver_unbound: Test for NULL ub_result in unbound_resolver_callback
|
||||||
|
- res_stir_shaken: Check for disabled before param validation
|
||||||
|
|
||||||
|
- #### Mike Bradeen (1):
|
||||||
|
- res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
||||||
|
|
||||||
|
- #### Sean Bright (2):
|
||||||
|
- alembic: Make 'revises' header comment match reality.
|
||||||
|
- res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
||||||
|
|
||||||
|
- #### Tinet-mucw (2):
|
||||||
|
- app_chanspy.c: resolving the issue with audiohook direction read
|
||||||
|
- app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
||||||
|
|
||||||
|
|
||||||
|
### Commit List:
|
||||||
|
|
||||||
|
- Prepare master for Asterisk 22
|
||||||
|
- Update issue guidelines link for bug reports.
|
||||||
|
- .github: NightlyAdmin now calls external CloseStaleIssuesAndPRs
|
||||||
|
- app_record: Add RECORD_TIME output variable.
|
||||||
|
- Revert "app_record: Add RECORD_TIME output variable."
|
||||||
|
- feat: ARI "ChannelToneDetected" event
|
||||||
|
- Update version for Asterisk 22
|
||||||
|
- res_stir_shaken: Check for disabled before param validation
|
||||||
|
- app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
||||||
|
- res_resolver_unbound: Test for NULL ub_result in unbound_resolver_callback
|
||||||
|
- app_voicemail: Use ast_asprintf to create mailbox SQL query
|
||||||
|
- res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
||||||
|
- app_chanspy.c: resolving the issue with audiohook direction read
|
||||||
|
- security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
||||||
|
- res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
||||||
|
- stir_shaken.conf.sample: Fix bad references to private_key_path
|
||||||
|
- res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
||||||
|
- alembic: Make 'revises' header comment match reality.
|
||||||
|
|
||||||
|
### Commit Details:
|
||||||
|
|
||||||
|
#### Prepare master for Asterisk 22
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2023-08-09
|
||||||
|
|
||||||
|
|
||||||
|
#### Update issue guidelines link for bug reports.
|
||||||
|
Author: Joshua C. Colp
|
||||||
|
Date: 2023-10-27
|
||||||
|
|
||||||
|
|
||||||
|
#### .github: NightlyAdmin now calls external CloseStaleIssuesAndPRs
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-03-20
|
||||||
|
|
||||||
|
|
||||||
|
#### app_record: Add RECORD_TIME output variable.
|
||||||
|
Author: Naveen Albert
|
||||||
|
Date: 2024-01-22
|
||||||
|
|
||||||
|
This adds the RECORD_TIME variable to Record(),
|
||||||
|
which is set to the recording duration before
|
||||||
|
the application returns.
|
||||||
|
|
||||||
|
Resolves: #548
|
||||||
|
|
||||||
|
UpgradeNote: The RECORD_TIME variable now contains
|
||||||
|
the duration of Record() recordings in milliseconds.
|
||||||
|
|
||||||
|
#### Revert "app_record: Add RECORD_TIME output variable."
|
||||||
|
Author: Joshua C. Colp
|
||||||
|
Date: 2024-04-30
|
||||||
|
|
||||||
|
This reverts commit 6e8dccdbbf896bcc99046ae249db360698ede0b2.
|
||||||
|
|
||||||
|
#### feat: ARI "ChannelToneDetected" event
|
||||||
|
Author: gibbz00
|
||||||
|
Date: 2024-07-18
|
||||||
|
|
||||||
|
A stasis event is now produced when using the TONE_DETECT dialplan
|
||||||
|
function. This event is published over ARI using the ChannelToneDetected
|
||||||
|
event. This change does not make it available over AMI.
|
||||||
|
|
||||||
|
Fixes: #811
|
||||||
|
|
||||||
|
UserNote: Setting the TONE_DETECT dialplan function on a channel
|
||||||
|
in ARI will now cause a ChannelToneDetected ARI event to be raised
|
||||||
|
when the specified tone is detected.
|
||||||
|
|
||||||
|
#### Update version for Asterisk 22
|
||||||
|
Author: Mike Bradeen
|
||||||
|
Date: 2024-08-14
|
||||||
|
|
||||||
|
|
||||||
|
#### res_stir_shaken: Check for disabled before param validation
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-09-11
|
||||||
|
|
||||||
|
For both attestation and verification, we now check whether they've
|
||||||
|
been disabled either globally or by the profile before validating
|
||||||
|
things like callerid, orig_tn, dest_tn, etc. This prevents useless
|
||||||
|
error messages.
|
||||||
|
|
||||||
|
Resolves: #879
|
||||||
|
|
||||||
|
#### app_chanspy.c: resolving the issue writing frame to whisper audiohook.
|
||||||
|
Author: Tinet-mucw
|
||||||
|
Date: 2024-09-10
|
||||||
|
|
||||||
|
ChanSpy(${channel}, qEoSw): because flags set o, ast_audiohook_set_frame_feed_direction(audiohook, AST_AUDIOHOOK_DIRECTION_READ); this will effect whisper audiohook and spy audiohook, this makes writing frame to whisper audiohook impossible. So add function start_whispering to starting whisper audiohook.
|
||||||
|
|
||||||
|
Resolves: #876
|
||||||
|
|
||||||
|
#### autoservice: Do not sleep if autoservice_stop is called within autoservice thr..
|
||||||
|
Author: Alexei Gradinari
|
||||||
|
Date: 2024-09-04
|
||||||
|
|
||||||
|
It's possible that ast_autoservice_stop is called within the autoservice thread.
|
||||||
|
In this case the autoservice thread is stuck in an endless sleep.
|
||||||
|
|
||||||
|
To avoid endless sleep ast_autoservice_stop must check that it's not called
|
||||||
|
within the autoservice thread.
|
||||||
|
|
||||||
|
Fixes: #763
|
||||||
|
|
||||||
|
#### res_resolver_unbound: Test for NULL ub_result in unbound_resolver_callback
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-08-12
|
||||||
|
|
||||||
|
The ub_result pointer passed to unbound_resolver_callback by
|
||||||
|
libunbound can be NULL if the query was for something malformed
|
||||||
|
like `.1` or `[.1]`. If it is, we now set a 'ns_r_formerr' result
|
||||||
|
and return instead of crashing with a SEGV. This causes pjproject
|
||||||
|
to simply cancel the transaction with a "No answer record in the DNS
|
||||||
|
response" error. The existing "off nominal" unit test was also
|
||||||
|
updated to check this condition.
|
||||||
|
|
||||||
|
Although not necessary for this fix, we also made
|
||||||
|
ast_dns_resolver_completed() tolerant of a NULL result.
|
||||||
|
|
||||||
|
Resolves: GHSA-v428-g3cw-7hv9
|
||||||
|
|
||||||
|
#### app_voicemail: Use ast_asprintf to create mailbox SQL query
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-09-03
|
||||||
|
|
||||||
|
...instead of trying to calculate the length of the buffer needed
|
||||||
|
manually.
|
||||||
|
|
||||||
|
|
||||||
|
#### res_pjsip_sdp_rtp: Use negotiated DTMF Payload types on bitrate mismatch
|
||||||
|
Author: Mike Bradeen
|
||||||
|
Date: 2024-08-21
|
||||||
|
|
||||||
|
When Asterisk sends an offer to Bob that includes 48K and 8K codecs with
|
||||||
|
matching 4733 offers, Bob may want to use the 48K audio codec but can not
|
||||||
|
accept 48K digits and so negotiates for a mixed set.
|
||||||
|
|
||||||
|
Asterisk will now check Bob's offer to make sure Bob has indicated this is
|
||||||
|
acceptible and if not, will use Bob's preference.
|
||||||
|
|
||||||
|
Fixes: #847
|
||||||
|
|
||||||
|
#### app_chanspy.c: resolving the issue with audiohook direction read
|
||||||
|
Author: Tinet-mucw
|
||||||
|
Date: 2024-08-30
|
||||||
|
|
||||||
|
ChanSpy(${channel}, qEoS): When chanspy spy the direction read, reading frame is often failed when reading direction read audiohook. because chanspy only read audiohook direction read; write_factory_ms will greater than 100ms soon, then ast_slinfactory_flush will being called, then direction read will fail.
|
||||||
|
|
||||||
|
Resolves: #861
|
||||||
|
|
||||||
|
#### security_agreements.c: Refactor the to_str functions and fix a few other bugs
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-08-17
|
||||||
|
|
||||||
|
* A static array of security mechanism type names was created.
|
||||||
|
|
||||||
|
* ast_sip_str_to_security_mechanism_type() was refactored to do
|
||||||
|
a lookup in the new array instead of using fixed "if/else if"
|
||||||
|
statments.
|
||||||
|
|
||||||
|
* security_mechanism_to_str() and ast_sip_security_mechanisms_to_str()
|
||||||
|
were refactored to use ast_str instead of a fixed length buffer
|
||||||
|
to store the result.
|
||||||
|
|
||||||
|
* ast_sip_security_mechanism_type_to_str was removed in favor of
|
||||||
|
just referencing the new type name array. Despite starting with
|
||||||
|
"ast_sip_", it was a static function so removing it doesn't affect
|
||||||
|
ABI.
|
||||||
|
|
||||||
|
* Speaking of "ast_sip_", several other static functions that
|
||||||
|
started with "ast_sip_" were renamed to avoid confusion about
|
||||||
|
their public availability.
|
||||||
|
|
||||||
|
* A few VECTOR free loops were replaced with AST_VECTOR_RESET().
|
||||||
|
|
||||||
|
* Fixed a meomry leak in pjsip_configuration.c endpoint_destructor
|
||||||
|
caused by not calling ast_sip_security_mechanisms_vector_destroy().
|
||||||
|
|
||||||
|
* Fixed a memory leak in res_pjsip_outbound_registration.c
|
||||||
|
add_security_headers() caused by not specifying OBJ_NODATA in
|
||||||
|
an ao2_callback.
|
||||||
|
|
||||||
|
* Fixed a few ao2_callback return code misuses.
|
||||||
|
|
||||||
|
Resolves: #845
|
||||||
|
|
||||||
|
#### res_pjsip_sdp_rtp fix leaking astobj2 ast_format
|
||||||
|
Author: Alexei Gradinari
|
||||||
|
Date: 2024-08-23
|
||||||
|
|
||||||
|
PR #700 added a preferred_format for the struct ast_rtp_codecs,
|
||||||
|
but when set the preferred_format it leaks an astobj2 ast_format.
|
||||||
|
In the next code
|
||||||
|
ast_rtp_codecs_set_preferred_format(&codecs, ast_format_cap_get_format(joint, 0));
|
||||||
|
both functions ast_rtp_codecs_set_preferred_format
|
||||||
|
and ast_format_cap_get_format increases the ao2 reference count.
|
||||||
|
|
||||||
|
Fixes: #856
|
||||||
|
|
||||||
|
#### stir_shaken.conf.sample: Fix bad references to private_key_path
|
||||||
|
Author: George Joseph
|
||||||
|
Date: 2024-08-22
|
||||||
|
|
||||||
|
They should be private_key_file.
|
||||||
|
|
||||||
|
Resolves: #854
|
||||||
|
|
||||||
|
#### res_pjsip_logger.c: Fix 'OPTIONS' tab completion.
|
||||||
|
Author: Sean Bright
|
||||||
|
Date: 2024-08-19
|
||||||
|
|
||||||
|
Fixes #843
|
||||||
|
|
||||||
|
|
||||||
|
#### alembic: Make 'revises' header comment match reality.
|
||||||
|
Author: Sean Bright
|
||||||
|
Date: 2024-08-17
|
||||||
|
|
||||||
|
|
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';
|
||||||
|
|
1703
contrib/realtime/mysql/mysql_config.sql
Normal file
1703
contrib/realtime/mysql/mysql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
29
contrib/realtime/mysql/mysql_queue_log.sql
Normal file
29
contrib/realtime/mysql/mysql_queue_log.sql
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
CREATE TABLE alembic_version (
|
||||||
|
version_num VARCHAR(32) NOT NULL,
|
||||||
|
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Running upgrade -> 4105ee839f58
|
||||||
|
|
||||||
|
CREATE TABLE queue_log (
|
||||||
|
id BIGSERIAL NOT NULL,
|
||||||
|
time TIMESTAMP WITHOUT TIME ZONE,
|
||||||
|
callid VARCHAR(80),
|
||||||
|
queuename VARCHAR(256),
|
||||||
|
agent VARCHAR(80),
|
||||||
|
event VARCHAR(32),
|
||||||
|
data1 VARCHAR(100),
|
||||||
|
data2 VARCHAR(100),
|
||||||
|
data3 VARCHAR(100),
|
||||||
|
data4 VARCHAR(100),
|
||||||
|
data5 VARCHAR(100),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58') RETURNING alembic_version.version_num;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
41
contrib/realtime/mysql/mysql_voicemail.sql
Normal file
41
contrib/realtime/mysql/mysql_voicemail.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 -> 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';
|
||||||
|
|
||||||
|
-- Running upgrade 39428242f7f5 -> 1c55c341360f
|
||||||
|
|
||||||
|
ALTER TABLE voicemail_messages DROP COLUMN macrocontext;
|
||||||
|
|
||||||
|
UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5';
|
||||||
|
|
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') RETURNING alembic_version.version_num;
|
||||||
|
|
||||||
|
-- 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;
|
||||||
|
|
1829
contrib/realtime/postgresql/postgresql_config.sql
Normal file
1829
contrib/realtime/postgresql/postgresql_config.sql
Normal file
File diff suppressed because it is too large
Load Diff
29
contrib/realtime/postgresql/postgresql_queue_log.sql
Normal file
29
contrib/realtime/postgresql/postgresql_queue_log.sql
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
BEGIN;
|
||||||
|
|
||||||
|
CREATE TABLE alembic_version (
|
||||||
|
version_num VARCHAR(32) NOT NULL,
|
||||||
|
CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Running upgrade -> 4105ee839f58
|
||||||
|
|
||||||
|
CREATE TABLE queue_log (
|
||||||
|
id BIGSERIAL NOT NULL,
|
||||||
|
time TIMESTAMP WITHOUT TIME ZONE,
|
||||||
|
callid VARCHAR(80),
|
||||||
|
queuename VARCHAR(256),
|
||||||
|
agent VARCHAR(80),
|
||||||
|
event VARCHAR(32),
|
||||||
|
data1 VARCHAR(100),
|
||||||
|
data2 VARCHAR(100),
|
||||||
|
data3 VARCHAR(100),
|
||||||
|
data4 VARCHAR(100),
|
||||||
|
data5 VARCHAR(100),
|
||||||
|
PRIMARY KEY (id),
|
||||||
|
UNIQUE (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO alembic_version (version_num) VALUES ('4105ee839f58') RETURNING alembic_version.version_num;
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
45
contrib/realtime/postgresql/postgresql_voicemail.sql
Normal file
45
contrib/realtime/postgresql/postgresql_voicemail.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 -> 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') RETURNING alembic_version.version_num;
|
||||||
|
|
||||||
|
-- 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';
|
||||||
|
|
||||||
|
-- Running upgrade 39428242f7f5 -> 1c55c341360f
|
||||||
|
|
||||||
|
ALTER TABLE voicemail_messages DROP COLUMN macrocontext;
|
||||||
|
|
||||||
|
UPDATE alembic_version SET version_num='1c55c341360f' WHERE alembic_version.version_num = '39428242f7f5';
|
||||||
|
|
||||||
|
COMMIT;
|
||||||
|
|
Reference in New Issue
Block a user