Bläddra i källkod

srdb1/kamctl: added uid_uri and uid_uri_attrs tables

Daniel-Constantin Mierla 12 år sedan
förälder
incheckning
907e13b708

+ 13 - 0
lib/srdb1/schema/kamailio-uid_uri_db.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE database PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN"
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+  <!ENTITY % entities SYSTEM "entities.xml">
+  %entities;
+]>
+
+<database xmlns:xi="http://www.w3.org/2001/XInclude">
+    <name>uid_uri</name>
+    <xi:include href="uid_uri.xml"/>
+    <xi:include href="uid_uri_attrs.xml"/>
+</database>

+ 2 - 2
lib/srdb1/schema/uid_credentials.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE table PUBLIC "-//iptel.org//DTD DBSchema V1.0//EN"
-  "http://iptel.org/dbschema/dtd/1.0/dbschema.dtd" [
+<!DOCTYPE table PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN" 
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
 
 <!ENTITY % entities SYSTEM "entities.xml">
 %entities;

+ 139 - 0
lib/srdb1/schema/uid_uri.xml

@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN" 
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+
+<table>
+  <name>uid_uri</name>
+  <version>3</version>
+  <type db="mysql">&MYSQL_TABLE_TYPE;</type>
+
+  <column id="id">
+    <name>id</name>
+    <type>unsigned int</type>
+    <size>&table_id_len;</size>
+    <autoincrement/>
+    <primary/>
+    <type db="dbtext">int,auto</type>
+    <description>Unique ID</description>
+  </column>
+
+  <column id="uri.uid">
+	<name>uid</name>
+	<name db="oracle">uuid</name>
+	<type>string</type>
+	<size>&id_len;</size>
+  </column>
+
+  <column id="uri.did">
+	<name>did</name>
+	<type>string</type>
+	<size>&id_len;</size>
+  </column>
+
+  <column id="uri.username">
+	<name>username</name>
+	<type>string</type>
+	<size>&user_len;</size>
+  </column>
+
+  <column id="uri.flags">
+	<name>flags</name>
+	<type>unsigned int</type>
+	<default>0</default>
+	<description>
+	  Various flags (is_from, is_to, is_disabled, is_canon).
+	</description>
+  </column>
+
+  <column id="uri.scheme">
+    <name>scheme</name>
+	<type>string</type>
+	<size>8</size>
+	<default>sip</default>
+	<description>
+	  URI scheme:
+	  - SIP  
+	  - SIPS 
+	  - TEL  
+	  - TELS 
+	</description>
+  </column>
+  
+
+  <index>
+	<name>uri_idx1</name>
+	<colref linkend="uri.username"/>
+	<colref linkend="uri.did"/>
+	<colref linkend="uri.scheme"/>
+  </index>
+
+  <index>
+	<name>uri_uid</name>
+	<colref linkend="uri.uid"/>
+  </index>
+
+  <verbatim db="mysql" id="func.touri">
+	<create>
+	  <![CDATA[
+drop function if exists touri;
+delimiter //
+create function touri (puid varchar(64)) returns varchar(128) 
+READS SQL DATA
+begin
+    declare tscheme varchar(8) default NULL;
+	declare tuser varchar(64) default NULL;
+	declare tdid varchar(64) default NULL;
+	select scheme, username, did into tscheme, tuser, tdid 
+        from uri where uid=puid and canonical(flags) limit 1;
+	return concat(tscheme, ':', tuser, '@', todomain(tdid));
+end
+//
+delimiter ;
+]]>
+	</create>
+	<destroy>
+	  drop function if exists touri;
+	</destroy>
+  </verbatim>
+
+  <verbatim db="mysql" id="func.touid">
+	<create>
+	  <![CDATA[
+drop function if exists touid;
+delimiter //
+create function touid (puri varchar(128)) returns varchar(128) 
+READS SQL DATA
+begin
+    declare tscheme varchar(8) default "sip";
+	declare tuid varchar(128) default NULL;
+	declare i int default 0;
+	declare tdid varchar(128) default NULL;
+	set puri = lower(trim(puri));
+	set i = locate(':', puri);
+	if (i > 0) then
+   	    set tscheme = left(puri, i - 1);
+	    set puri = substr(puri FROM i + 1);
+	end if;
+	set i = locate('@', puri);
+	if (i > 0) then
+        set tdid = todid(substr(puri FROM i + 1));
+	    set puri = left(puri, i - 1);
+	end if;
+	select uid into tuid from uri where scheme=tscheme and
+        username=puri and did=tdid and active(flags);
+	return tuid;
+end
+//
+delimiter ;
+]]>
+	</create>
+	<destroy>
+	</destroy>
+  </verbatim>
+
+</table>

+ 89 - 0
lib/srdb1/schema/uid_uri_attrs.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE table PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN" 
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+
+<table>
+  <name>uid_uri_attrs</name>
+  <version>2</version>
+  <type db="mysql">&MYSQL_TABLE_TYPE;</type>
+
+  <column id="id">
+    <name>id</name>
+    <type>unsigned int</type>
+    <size>&table_id_len;</size>
+    <autoincrement/>
+    <primary/>
+    <type db="dbtext">int,auto</type>
+    <description>Unique ID</description>
+  </column>
+
+  <column id="uriattrs.username">
+	<name>username</name>
+	<type>string</type>
+	<size>&user_len;</size>
+  </column>
+
+  <column id="uriattrs.did">
+    <name>did</name>
+    <type>string</type>
+    <size>&id_len;</size>
+  </column>
+  
+  <column id="uriattrs.name">
+	<name>name</name>
+	<type>string</type>
+	<size>&avp_name_len;</size>
+  </column>
+
+  <column id="uriattrs.value">
+	<name>value</name>
+	<type>string</type>
+	<null/>
+	<size>&avp_val_len;</size>
+  </column>
+
+  <column>
+	<name>type</name>
+	<type>int</type>
+	<default>0</default>
+  </column>
+
+  <column id="uriattrs.flags">
+	<name>flags</name>
+	<type>unsigned int</type>
+	<default>0</default>
+	<description>
+	  Various flags (SER_LOAD and such).
+	</description>
+  </column>
+
+  <column id="uriattrs.scheme">
+    <name>scheme</name>
+    <type>string</type>
+	<size>8</size>
+    <default>sip</default>
+    <description>
+      URI scheme:
+      - SIP  
+      - SIPS 
+      - TEL  
+      - TELS 
+    </description>
+  </column>
+
+  <index>
+	<unique/>
+	<name>uriattrs_idx</name>
+    <colref linkend="uriattrs.username"/>
+	<colref linkend="uriattrs.did"/>
+	<colref linkend="uriattrs.name"/>
+	<colref linkend="uriattrs.value"/>
+	<colref linkend="uriattrs.scheme"/>
+  </index>
+
+</table>

+ 2 - 2
lib/srdb1/schema/uid_user_attrs.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE table PUBLIC "-//iptel.org//DTD DBSchema V1.0//EN"
-  "http://iptel.org/dbschema/dtd/1.0/dbschema.dtd" [
+<!DOCTYPE table PUBLIC "-//kamailio.org//DTD DBSchema V1.1//EN" 
+  "http://kamailio.org/pub/kamailio/dbschema/dtd/1.1/dbschema.dtd" [
 
 <!ENTITY % entities SYSTEM "entities.xml">
 %entities;

+ 10 - 0
utils/kamctl/db_berkeley/kamailio/uid_uri

@@ -0,0 +1,10 @@
+METADATA_COLUMNS
+id(int) uid(str) did(str) username(str) flags(int) scheme(str)
+METADATA_KEY
+
+METADATA_READONLY
+0
+METADATA_LOGFLAGS
+0
+METADATA_DEFAULTS
+NIL|NIL|NIL|NIL|0|'sip'

+ 10 - 0
utils/kamctl/db_berkeley/kamailio/uid_uri_attrs

@@ -0,0 +1,10 @@
+METADATA_COLUMNS
+id(int) username(str) did(str) name(str) value(str) type(int) flags(int) scheme(str)
+METADATA_KEY
+
+METADATA_READONLY
+0
+METADATA_LOGFLAGS
+0
+METADATA_DEFAULTS
+NIL|NIL|NIL|NIL|NIL|0|0|'sip'

+ 0 - 2
utils/kamctl/db_berkeley/kamailio/uid_user_attrs

@@ -8,5 +8,3 @@ METADATA_LOGFLAGS
 0
 METADATA_DEFAULTS
 NIL|NIL|NIL|NIL|0|0
-uid_user_attrs|
-uid_user_attrs|3

+ 6 - 0
utils/kamctl/db_berkeley/kamailio/version

@@ -110,6 +110,12 @@ uacreg|
 uacreg|1
 uid_credentials|
 uid_credentials|7
+uid_uri|
+uid_uri|3
+uid_uri_attrs|
+uid_uri_attrs|2
+uid_user_attrs|
+uid_user_attrs|3
 uri|
 uri|1
 userblacklist|

+ 26 - 0
utils/kamctl/db_sqlite/uid_uri_db-create.sql

@@ -0,0 +1,26 @@
+INSERT INTO version (table_name, table_version) values ('uid_uri','3');
+CREATE TABLE uid_uri (
+    id INTEGER PRIMARY KEY NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL
+);
+
+CREATE INDEX uid_uri_uri_idx1 ON uid_uri (username, did, scheme);
+CREATE INDEX uid_uri_uri_uid ON uid_uri (uid);
+
+INSERT INTO version (table_name, table_version) values ('uid_uri_attrs','2');
+CREATE TABLE uid_uri_attrs (
+    id INTEGER PRIMARY KEY NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    name VARCHAR(32) NOT NULL,
+    value VARCHAR(128),
+    type INTEGER DEFAULT 0 NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL,
+    CONSTRAINT uid_uri_attrs_uriattrs_idx UNIQUE (username, did, name, value, scheme)
+);
+

+ 1 - 0
utils/kamctl/dbtext/kamailio/uid_uri

@@ -0,0 +1 @@
+id(int,auto) uid(string) did(string) username(string) flags(int) scheme(string) 

+ 1 - 0
utils/kamctl/dbtext/kamailio/uid_uri_attrs

@@ -0,0 +1 @@
+id(int,auto) username(string) did(string) name(string) value(string,null) type(int) flags(int) scheme(string) 

+ 0 - 1
utils/kamctl/dbtext/kamailio/uid_user_attrs

@@ -1,2 +1 @@
 id(int,auto) uid(string) name(string) value(string,null) type(int) flags(int) 
-uid_user_attrs:3

+ 3 - 0
utils/kamctl/dbtext/kamailio/version

@@ -50,6 +50,9 @@ subscriber:6
 trusted:5
 uacreg:1
 uid_credentials:7
+uid_uri:3
+uid_uri_attrs:2
+uid_user_attrs:3
 uri:1
 userblacklist:1
 usr_preferences:2

+ 26 - 0
utils/kamctl/mysql/uid_uri_db-create.sql

@@ -0,0 +1,26 @@
+INSERT INTO version (table_name, table_version) values ('uid_uri','3');
+CREATE TABLE uid_uri (
+    id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    flags INT UNSIGNED DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL
+) ENGINE=MyISAM;
+
+CREATE INDEX uri_idx1 ON uid_uri (username, did, scheme);
+CREATE INDEX uri_uid ON uid_uri (uid);
+
+INSERT INTO version (table_name, table_version) values ('uid_uri_attrs','2');
+CREATE TABLE uid_uri_attrs (
+    id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    name VARCHAR(32) NOT NULL,
+    value VARCHAR(128),
+    type INT DEFAULT 0 NOT NULL,
+    flags INT UNSIGNED DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL,
+    CONSTRAINT uriattrs_idx UNIQUE (username, did, name, value, scheme)
+) ENGINE=MyISAM;
+

+ 42 - 0
utils/kamctl/oracle/uid_uri_db-create.sql

@@ -0,0 +1,42 @@
+INSERT INTO version (table_name, table_version) values ('uid_uri','3');
+CREATE TABLE uid_uri (
+    id NUMBER(10) PRIMARY KEY,
+    uuid VARCHAR2(64),
+    did VARCHAR2(64),
+    username VARCHAR2(64),
+    flags NUMBER(10) DEFAULT 0 NOT NULL,
+    scheme VARCHAR2(8) DEFAULT 'sip'
+);
+
+CREATE OR REPLACE TRIGGER uid_uri_tr
+before insert on uid_uri FOR EACH ROW
+BEGIN
+  auto_id(:NEW.id);
+END uid_uri_tr;
+/
+BEGIN map2users('uid_uri'); END;
+/
+CREATE INDEX uid_uri_uri_idx1  ON uid_uri (username, did, scheme);
+CREATE INDEX uid_uri_uri_uid  ON uid_uri (uuid);
+
+INSERT INTO version (table_name, table_version) values ('uid_uri_attrs','2');
+CREATE TABLE uid_uri_attrs (
+    id NUMBER(10) PRIMARY KEY,
+    username VARCHAR2(64),
+    did VARCHAR2(64),
+    name VARCHAR2(32),
+    value VARCHAR2(128),
+    type NUMBER(10) DEFAULT 0 NOT NULL,
+    flags NUMBER(10) DEFAULT 0 NOT NULL,
+    scheme VARCHAR2(8) DEFAULT 'sip',
+    CONSTRAINT uid_uri_attrs_uriattrs_idx  UNIQUE (username, did, name, value, scheme)
+);
+
+CREATE OR REPLACE TRIGGER uid_uri_attrs_tr
+before insert on uid_uri_attrs FOR EACH ROW
+BEGIN
+  auto_id(:NEW.id);
+END uid_uri_attrs_tr;
+/
+BEGIN map2users('uid_uri_attrs'); END;
+/

+ 26 - 0
utils/kamctl/postgres/uid_uri_db-create.sql

@@ -0,0 +1,26 @@
+INSERT INTO version (table_name, table_version) values ('uid_uri','3');
+CREATE TABLE uid_uri (
+    id SERIAL PRIMARY KEY NOT NULL,
+    uid VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL
+);
+
+CREATE INDEX uid_uri_uri_idx1 ON uid_uri (username, did, scheme);
+CREATE INDEX uid_uri_uri_uid ON uid_uri (uid);
+
+INSERT INTO version (table_name, table_version) values ('uid_uri_attrs','2');
+CREATE TABLE uid_uri_attrs (
+    id SERIAL PRIMARY KEY NOT NULL,
+    username VARCHAR(64) NOT NULL,
+    did VARCHAR(64) NOT NULL,
+    name VARCHAR(32) NOT NULL,
+    value VARCHAR(128),
+    type INTEGER DEFAULT 0 NOT NULL,
+    flags INTEGER DEFAULT 0 NOT NULL,
+    scheme VARCHAR(8) DEFAULT 'sip' NOT NULL,
+    CONSTRAINT uid_uri_attrs_uriattrs_idx UNIQUE (username, did, name, value, scheme)
+);
+

+ 56 - 0
utils/kamctl/xhttp_pi/pi_framework.xml

@@ -727,6 +727,30 @@
 		<column><field>type</field><type>DB1_INT</type></column>
 		<column><field>flags</field><type>DB1_INT</type></column>
 	</db_table>
+	<!-- Declaration of uid_uri table-->
+	<db_table id="uid_uri">
+		<table_name>uid_uri</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>uid</field><type>DB1_STR</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>username</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+		<column><field>scheme</field><type>DB1_STR</type></column>
+	</db_table>
+	<!-- Declaration of uid_uri_attrs table-->
+	<db_table id="uid_uri_attrs">
+		<table_name>uid_uri_attrs</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>username</field><type>DB1_STR</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>name</field><type>DB1_STR</type></column>
+		<column><field>value</field><type>DB1_STR</type></column>
+		<column><field>type</field><type>DB1_INT</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+		<column><field>scheme</field><type>DB1_STR</type></column>
+	</db_table>
 	<!-- Declaration of uri table-->
 	<db_table id="uri">
 		<table_name>uri</table_name>
@@ -1741,6 +1765,38 @@
 			</query_cols>
 		</cmd>
 	</mod>
+	<!-- uid_uri provisionning -->
+	<mod><mod_name>uid_uri</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_uri</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>uid</field></col>
+				<col><field>did</field></col>
+				<col><field>username</field></col>
+				<col><field>flags</field></col>
+				<col><field>scheme</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
+	<!-- uid_uri_attrs provisionning -->
+	<mod><mod_name>uid_uri_attrs</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_uri_attrs</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>username</field></col>
+				<col><field>did</field></col>
+				<col><field>name</field></col>
+				<col><field>value</field></col>
+				<col><field>type</field></col>
+				<col><field>flags</field></col>
+				<col><field>scheme</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
 	<!-- uri provisionning -->
 	<mod><mod_name>uri</mod_name>
 		<cmd><cmd_name>show</cmd_name>

+ 32 - 0
utils/kamctl/xhttp_pi/uid_uri_db-mod

@@ -0,0 +1,32 @@
+	<!-- uid_uri provisionning -->
+	<mod><mod_name>uid_uri</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_uri</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>uid</field></col>
+				<col><field>did</field></col>
+				<col><field>username</field></col>
+				<col><field>flags</field></col>
+				<col><field>scheme</field></col>
+			</query_cols>
+		</cmd>
+	</mod>
+	<!-- uid_uri_attrs provisionning -->
+	<mod><mod_name>uid_uri_attrs</mod_name>
+		<cmd><cmd_name>show</cmd_name>
+			<db_table_id>uid_uri_attrs</db_table_id>
+			<cmd_type>DB1_QUERY</cmd_type>
+			<query_cols>
+				<col><field>id</field></col>
+				<col><field>username</field></col>
+				<col><field>did</field></col>
+				<col><field>name</field></col>
+				<col><field>value</field></col>
+				<col><field>type</field></col>
+				<col><field>flags</field></col>
+				<col><field>scheme</field></col>
+			</query_cols>
+		</cmd>
+	</mod>

+ 24 - 0
utils/kamctl/xhttp_pi/uid_uri_db-table

@@ -0,0 +1,24 @@
+	<!-- Declaration of uid_uri table-->
+	<db_table id="uid_uri">
+		<table_name>uid_uri</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>uid</field><type>DB1_STR</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>username</field><type>DB1_STR</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+		<column><field>scheme</field><type>DB1_STR</type></column>
+	</db_table>
+	<!-- Declaration of uid_uri_attrs table-->
+	<db_table id="uid_uri_attrs">
+		<table_name>uid_uri_attrs</table_name>
+		<db_url_id>mysql</db_url_id>
+		<column><field>id</field><type>DB1_INT</type></column>
+		<column><field>username</field><type>DB1_STR</type></column>
+		<column><field>did</field><type>DB1_STR</type></column>
+		<column><field>name</field><type>DB1_STR</type></column>
+		<column><field>value</field><type>DB1_STR</type></column>
+		<column><field>type</field><type>DB1_INT</type></column>
+		<column><field>flags</field><type>DB1_INT</type></column>
+		<column><field>scheme</field><type>DB1_STR</type></column>
+	</db_table>