From 73c5ce1a67b0aa2a9fc9184a99fded8357a4b40b Mon Sep 17 00:00:00 2001 From: Liviu Chircu Date: Tue, 17 Aug 2021 13:38:12 +0300 Subject: [PATCH] usrloc DB schema: Extend location.contact from CHAR(255) to TEXT This extension is especially useful with RFC 8599 (SIP Push Notifications), which may lead to sizeable Contact header URIs, often reaching 300+ bytes in size. Credits to John Quick for the suggestion! (cherry picked from commit ec09a18f6c240dd3159e284370bd6f4dc6747f03) --- db/schema/location.xml | 4 +--- scripts/db_berkeley/opensips/location | 2 +- scripts/mysql/usrloc-create.sql | 2 +- scripts/oracle/usrloc-create.sql | 2 +- scripts/pi_http/pi_framework.xml | 2 +- scripts/pi_http/usrloc-table | 2 +- scripts/postgres/usrloc-create.sql | 2 +- scripts/sqlite/usrloc-create.sql | 2 +- 8 files changed, 8 insertions(+), 10 deletions(-) diff --git a/db/schema/location.xml b/db/schema/location.xml index d63d2953c36..ff2aa2fd2fe 100644 --- a/db/schema/location.xml +++ b/db/schema/location.xml @@ -47,9 +47,7 @@ contact - string - &hf_len; - + text Contact header field value provides a URI whoses meaning depends on the type of request or response it is in. diff --git a/scripts/db_berkeley/opensips/location b/scripts/db_berkeley/opensips/location index 2bb9ed84e8a..0395417fad8 100644 --- a/scripts/db_berkeley/opensips/location +++ b/scripts/db_berkeley/opensips/location @@ -7,4 +7,4 @@ METADATA_READONLY METADATA_LOGFLAGS 0 METADATA_DEFAULTS -NIL|''|NULL|''|NULL|NULL|NIL|1.0|'Default-Call-ID'|13|'1900-01-01 00:00:01'|0|NULL|''|NULL|NULL|NULL|NULL|NULL +NIL|''|NULL|NIL|NULL|NULL|NIL|1.0|'Default-Call-ID'|13|'1900-01-01 00:00:01'|0|NULL|''|NULL|NULL|NULL|NULL|NULL diff --git a/scripts/mysql/usrloc-create.sql b/scripts/mysql/usrloc-create.sql index 630290997cb..83b85dc2d2b 100644 --- a/scripts/mysql/usrloc-create.sql +++ b/scripts/mysql/usrloc-create.sql @@ -3,7 +3,7 @@ CREATE TABLE location ( contact_id BIGINT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL, username CHAR(64) DEFAULT '' NOT NULL, domain CHAR(64) DEFAULT NULL, - contact CHAR(255) DEFAULT '' NOT NULL, + contact TEXT NOT NULL, received CHAR(255) DEFAULT NULL, path CHAR(255) DEFAULT NULL, expires INT(10) UNSIGNED NOT NULL, diff --git a/scripts/oracle/usrloc-create.sql b/scripts/oracle/usrloc-create.sql index 6a8d51f3698..f27e5e1ab7a 100644 --- a/scripts/oracle/usrloc-create.sql +++ b/scripts/oracle/usrloc-create.sql @@ -3,7 +3,7 @@ CREATE TABLE location ( contact_id BIGINT(10) PRIMARY KEY, username VARCHAR2(64) DEFAULT '', domain VARCHAR2(64) DEFAULT NULL, - contact VARCHAR2(255) DEFAULT '', + contact CLOB, received VARCHAR2(255) DEFAULT NULL, path VARCHAR2(255) DEFAULT NULL, expires NUMBER(10), diff --git a/scripts/pi_http/pi_framework.xml b/scripts/pi_http/pi_framework.xml index 2452eaf1cde..55e91877f0f 100644 --- a/scripts/pi_http/pi_framework.xml +++ b/scripts/pi_http/pi_framework.xml @@ -1045,7 +1045,7 @@ contact_idDB_BIGINT usernameDB_STR domainDB_STR - contactDB_STR + contactDB_BLOB receivedDB_STR pathDB_STR expiresDB_INT diff --git a/scripts/pi_http/usrloc-table b/scripts/pi_http/usrloc-table index ad4fbc9380e..988a1050e02 100644 --- a/scripts/pi_http/usrloc-table +++ b/scripts/pi_http/usrloc-table @@ -5,7 +5,7 @@ contact_idDB_BIGINT usernameDB_STR domainDB_STR - contactDB_STR + contactDB_BLOB receivedDB_STR pathDB_STR expiresDB_INT diff --git a/scripts/postgres/usrloc-create.sql b/scripts/postgres/usrloc-create.sql index 872b2a05fda..6174f740b4c 100644 --- a/scripts/postgres/usrloc-create.sql +++ b/scripts/postgres/usrloc-create.sql @@ -3,7 +3,7 @@ CREATE TABLE location ( contact_id BIGSERIAL PRIMARY KEY NOT NULL, username VARCHAR(64) DEFAULT '' NOT NULL, domain VARCHAR(64) DEFAULT NULL, - contact VARCHAR(255) DEFAULT '' NOT NULL, + contact TEXT NOT NULL, received VARCHAR(255) DEFAULT NULL, path VARCHAR(255) DEFAULT NULL, expires INTEGER NOT NULL, diff --git a/scripts/sqlite/usrloc-create.sql b/scripts/sqlite/usrloc-create.sql index cfc0864eb34..c8740da8d50 100644 --- a/scripts/sqlite/usrloc-create.sql +++ b/scripts/sqlite/usrloc-create.sql @@ -3,7 +3,7 @@ CREATE TABLE location ( contact_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username CHAR(64) DEFAULT '' NOT NULL, domain CHAR(64) DEFAULT NULL, - contact CHAR(255) DEFAULT '' NOT NULL, + contact TEXT NOT NULL, received CHAR(255) DEFAULT NULL, path CHAR(255) DEFAULT NULL, expires INTEGER NOT NULL,