Browse Source

- database tables for i18n

Jan Janak 20 years ago
parent
commit
1867e3f252

+ 525 - 0
db/schema/i18n-cs.xml

@@ -0,0 +1,525 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE data PUBLIC "-//iptel.org//DTD DBSchema V1.0//EN"
+  "http://iptel.org/dbschema/dtd/1.0/dbschema.dtd" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+<data>
+    <row>
+	<value col="i18n.code">100</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Navazuji spojeni</value>
+    </row>
+    <row>
+	<value col="i18n.code">180</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Vyzvani</value>
+    </row>
+    <row>
+	<value col="i18n.code">181</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Hovor je presmerovan</value>
+    </row>
+
+    <row>
+	<value col="i18n.code">182</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Jste v poradi</value>
+    </row>
+    <row>
+	<value col="i18n.code">183</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Probiha navazovani spojeni</value>
+    </row>
+    <row>
+	<value col="i18n.code">200</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Uspesne provedeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">202</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Bude vyrizeno pozdeji</value>
+    </row>
+    <row>
+	<value col="i18n.code">300</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Existuje vice moznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">301</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Trvale presmerovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">302</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Docasne presmerovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">305</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Pouzijte jiny server</value>
+    </row>
+    <row>
+	<value col="i18n.code">380</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Alternativni sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">400</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Chyba protokolu</value>
+    </row>
+    <row>
+	<value col="i18n.code">401</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Overeni totoznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">402</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Placena sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">403</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Zakazano</value>
+    </row>
+    <row>
+	<value col="i18n.code">404</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">405</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nepovoleny prikaz</value>
+    </row>    
+    <row>
+	<value col="i18n.code">406</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Neni povoleno</value>
+    </row>
+    <row>
+	<value col="i18n.code">407</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Server vyzaduje overeni totoznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">408</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Casovy limit vyprsel</value>
+    </row>
+    <row>
+	<value col="i18n.code">410</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">413</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Prilis dlouhy identifikator</value>
+    </row>
+    <row>
+	<value col="i18n.code">414</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Request-URI je prilis dlouhe</value>
+    </row>
+    <row>
+	<value col="i18n.code">415</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nepodporovany typ dat</value>
+    </row>
+    <row>
+	<value col="i18n.code">416</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nepodporovany typ identifikatoru</value>
+    </row>
+    <row>
+	<value col="i18n.code">420</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Neplatne cislo linky</value>
+    </row>
+    <row>
+	<value col="i18n.code">421</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Zadejte cislo linky</value>
+    </row>
+    <row>
+	<value col="i18n.code">423</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Prilis kratky interval</value>
+    </row>
+    <row>
+	<value col="i18n.code">480</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Docasne nedostupne</value>
+    </row>
+    <row>
+	<value col="i18n.code">481</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Spojeni nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">482</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Zprava se zacyklila</value>
+    </row>
+    <row>
+	<value col="i18n.code">483</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Prilis mnoho kroku</value>
+    </row>
+    <row>
+	<value col="i18n.code">484</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Neuplna adresa</value>
+    </row>
+    <row>
+	<value col="i18n.code">485</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nejednoznacne</value>
+    </row>
+    <row>
+	<value col="i18n.code">486</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Volany je zaneprazdnen</value>
+    </row>
+    <row>
+	<value col="i18n.code">487</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Prikaz predcasne ukoncen</value>
+    </row>
+    <row>
+	<value col="i18n.code">488</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nebylo akceptovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">491</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Cekam na odpoved</value>
+    </row>
+    <row>
+	<value col="i18n.code">493</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nelze dekodovat</value>
+    </row>
+    <row>
+	<value col="i18n.code">500</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Interni chyba serveru</value>
+    </row>
+    <row>
+	<value col="i18n.code">501</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Neni implementovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">502</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Chybna brana</value>
+    </row>
+    <row>
+	<value col="i18n.code">503</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Sluzba neni dostupna</value>
+    </row>
+    <row>
+	<value col="i18n.code">504</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Casovy limit serveru vyprsel</value>
+    </row>
+    <row>
+	<value col="i18n.code">505</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nepodporovana verze protokolu</value>
+    </row>
+    <row>
+	<value col="i18n.code">513</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Zprava je prilis dlouha</value>
+    </row>
+    <row>
+	<value col="i18n.code">600</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Uzivatel je zaneprazdnen</value>
+    </row>
+    <row>
+	<value col="i18n.code">603</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Odmitnuto</value>
+    </row>
+    <row>
+	<value col="i18n.code">604</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Neexistujici uzivatel nebo sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">606</value>
+	<value col="i18n.lang">cs_CZ.ascii</value>
+	<value col="i18n.nr">Nelze akceptovat</value>
+    </row>
+
+<!--
+
+    <row>
+	<value col="i18n.code">100</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Navazuji spojeni</value>
+    </row>
+    <row>
+	<value col="i18n.code">180</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Vyzvani</value>
+    </row>
+    <row>
+	<value col="i18n.code">181</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Hovor je presmerovan</value>
+    </row>
+    <row>
+	<value col="i18n.code">182</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Jste v poradi</value>
+    </row>
+    <row>
+	<value col="i18n.code">183</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Probiha navazovani spojeni</value>
+    </row>
+    <row>
+	<value col="i18n.code">200</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Uspesne provedeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">202</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Bude vyrizeno pozdeji</value>
+    </row>
+    <row>
+	<value col="i18n.code">300</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Existuje vice moznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">301</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Trvale presmerovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">302</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Docasne presmerovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">305</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Pouzijte jiny server</value>
+    </row>
+    <row>
+	<value col="i18n.code">380</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Alternativni sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">400</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Chyba protokolu</value>
+    </row>
+    <row>
+	<value col="i18n.code">401</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Overeni totoznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">402</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Placena sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">403</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Zakazano</value>
+    </row>
+    <row>
+	<value col="i18n.code">404</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">405</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nepovoleny prikaz</value>
+    </row>    
+    <row>
+	<value col="i18n.code">406</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Neni povoleno</value>
+    </row>
+    <row>
+	<value col="i18n.code">407</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Server vyzaduje overeni totoznosti</value>
+    </row>
+    <row>
+	<value col="i18n.code">408</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Casovy limit vyprsel</value>
+    </row>
+    <row>
+	<value col="i18n.code">410</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">413</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Prilis dlouhy identifikator</value>
+    </row>
+    <row>
+	<value col="i18n.code">414</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Request-URI je prilis dlouhe</value>
+    </row>
+    <row>
+	<value col="i18n.code">415</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nepodporovany typ dat</value>
+    </row>
+    <row>
+	<value col="i18n.code">416</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nepodporovany typ identifikatoru</value>
+    </row>
+    <row>
+	<value col="i18n.code">420</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Neplatne cislo linky</value>
+    </row>
+    <row>
+	<value col="i18n.code">421</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Zadejte cislo linky</value>
+    </row>
+    <row>
+	<value col="i18n.code">423</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Prilis kratky interval</value>
+    </row>
+    <row>
+	<value col="i18n.code">480</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Docasne nedostupne</value>
+    </row>
+    <row>
+	<value col="i18n.code">481</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Spojeni nenalezeno</value>
+    </row>
+    <row>
+	<value col="i18n.code">482</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Zprava se zacyklila</value>
+    </row>
+    <row>
+	<value col="i18n.code">483</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Prilis mnoho kroku</value>
+    </row>
+    <row>
+	<value col="i18n.code">484</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Neuplna adresa</value>
+    </row>
+    <row>
+	<value col="i18n.code">485</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nejednoznacne</value>
+    </row>
+    <row>
+	<value col="i18n.code">486</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Volany je zaneprazdnen</value>
+    </row>
+    <row>
+	<value col="i18n.code">487</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Prikaz predcasne ukoncen</value>
+    </row>
+    <row>
+	<value col="i18n.code">488</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nebylo akceptovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">491</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Cekam na odpoved</value>
+    </row>
+    <row>
+	<value col="i18n.code">493</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nelze dekodovat</value>
+    </row>
+    <row>
+	<value col="i18n.code">500</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Interni chyba serveru</value>
+    </row>
+    <row>
+	<value col="i18n.code">501</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Neni implementovano</value>
+    </row>
+    <row>
+	<value col="i18n.code">502</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Chybna brana</value>
+    </row>
+    <row>
+	<value col="i18n.code">503</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Sluzba neni dostupna</value>
+    </row>
+    <row>
+	<value col="i18n.code">504</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Casovy limit serveru vyprsel</value>
+    </row>
+    <row>
+	<value col="i18n.code">505</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nepodporovana verze protokolu</value>
+    </row>
+    <row>
+	<value col="i18n.code">513</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Zprava je prilis dlouha</value>
+    </row>
+    <row>
+	<value col="i18n.code">600</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Uzivatel je zaneprazdnen</value>
+    </row>
+    <row>
+	<value col="i18n.code">603</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Odmitnuto</value>
+    </row>
+    <row>
+	<value col="i18n.code">604</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Neexistujici uzivatel nebo sluzba</value>
+    </row>
+    <row>
+	<value col="i18n.code">606</value>
+	<value col="i18n.lang">cs_CZ.iso-8859-2</value>
+	<value col="i18n.nr">Nelze akceptovat</value>
+    </row>
+-->
+</data>

+ 266 - 0
db/schema/i18n-en.xml

@@ -0,0 +1,266 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE data PUBLIC "-//iptel.org//DTD DBSchema V1.0//EN"
+  "http://iptel.org/dbschema/dtd/1.0/dbschema.dtd" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+<data>
+    <row>
+	<value col="i18n.code">100</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Trying</value>
+    </row>
+    <row>
+	<value col="i18n.code">180</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Ringing</value>
+    </row>
+    <row>
+	<value col="i18n.code">181</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Call Is Being Forwarded</value>
+    </row>
+
+    <row>
+	<value col="i18n.code">182</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Queued</value>
+    </row>
+    <row>
+	<value col="i18n.code">183</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Session Progress</value>
+    </row>
+    <row>
+	<value col="i18n.code">200</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">OK</value>
+    </row>
+    <row>
+	<value col="i18n.code">202</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Pending</value>
+    </row>
+    <row>
+	<value col="i18n.code">300</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Multiple Choices</value>
+    </row>
+    <row>
+	<value col="i18n.code">301</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Moved Permanently</value>
+    </row>
+    <row>
+	<value col="i18n.code">302</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Moved Temporarily</value>
+    </row>
+    <row>
+	<value col="i18n.code">305</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Use Proxy</value>
+    </row>
+    <row>
+	<value col="i18n.code">380</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Alternative Service</value>
+    </row>
+    <row>
+	<value col="i18n.code">400</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Bad Request</value>
+    </row>
+    <row>
+	<value col="i18n.code">401</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Unauthorized</value>
+    </row>
+    <row>
+	<value col="i18n.code">402</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Payment Required</value>
+    </row>
+    <row>
+	<value col="i18n.code">403</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Forbidden</value>
+    </row>
+    <row>
+	<value col="i18n.code">404</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Not Found</value>
+    </row>
+    <row>
+	<value col="i18n.code">405</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Method Not Allowed</value>
+    </row>
+    <row>
+	<value col="i18n.code">406</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Not Acceptable</value>
+    </row>
+    <row>
+	<value col="i18n.code">407</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Proxy Authentication Required</value>
+    </row>
+    <row>
+	<value col="i18n.code">408</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Request Timeout</value>
+    </row>
+    <row>
+	<value col="i18n.code">410</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Gone</value>
+    </row>
+    <row>
+	<value col="i18n.code">413</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Request Entity Too Large</value>
+    </row>
+    <row>
+	<value col="i18n.code">414</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Request-URI Too Long</value>
+    </row>
+    <row>
+	<value col="i18n.code">415</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Unsupported Media Type</value>
+    </row>
+    <row>
+	<value col="i18n.code">416</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Unsupported URI Scheme</value>
+    </row>
+    <row>
+	<value col="i18n.code">420</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Bad Extension</value>
+    </row>
+    <row>
+	<value col="i18n.code">421</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Extension Required</value>
+    </row>
+    <row>
+	<value col="i18n.code">423</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Interval Too Brief</value>
+    </row>
+    <row>
+	<value col="i18n.code">480</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Temporarily Unavailable</value>
+    </row>
+    <row>
+	<value col="i18n.code">481</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Call/Transaction Does Not Exist</value>
+    </row>
+    <row>
+	<value col="i18n.code">482</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Loop Detected</value>
+    </row>
+    <row>
+	<value col="i18n.code">483</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Too Many Hops</value>
+    </row>
+    <row>
+	<value col="i18n.code">484</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Address Incomplete</value>
+    </row>
+    <row>
+	<value col="i18n.code">485</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Ambiguous</value>
+    </row>
+    <row>
+	<value col="i18n.code">486</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Busy Here</value>
+    </row>
+    <row>
+	<value col="i18n.code">487</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Request Terminated</value>
+    </row>
+    <row>
+	<value col="i18n.code">488</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Not Acceptable Here</value>
+    </row>
+    <row>
+	<value col="i18n.code">491</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Request Pending</value>
+    </row>
+    <row>
+	<value col="i18n.code">493</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Undecipherable</value>
+    </row>
+    <row>
+	<value col="i18n.code">500</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Server Internal Error</value>
+    </row>
+    <row>
+	<value col="i18n.code">501</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Not Implemented</value>
+    </row>
+    <row>
+	<value col="i18n.code">502</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Bad Gateway</value>
+    </row>
+    <row>
+	<value col="i18n.code">503</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Service Unavailable</value>
+    </row>
+    <row>
+	<value col="i18n.code">504</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Server Time-out</value>
+    </row>
+    <row>
+	<value col="i18n.code">505</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Version Not Supported</value>
+    </row>
+    <row>
+	<value col="i18n.code">513</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Message Too Large</value>
+    </row>
+    <row>
+	<value col="i18n.code">600</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Busy Everywhere</value>
+    </row>
+    <row>
+	<value col="i18n.code">603</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Decline</value>
+    </row>
+    <row>
+	<value col="i18n.code">604</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Does Not Exist Anywhere</value>
+    </row>
+    <row>
+	<value col="i18n.code">606</value>
+	<value col="i18n.lang">en_US.ascii</value>
+	<value col="i18n.nr">Not Acceptable</value>
+    </row>
+</data>

+ 41 - 0
db/schema/i18n.xml

@@ -0,0 +1,41 @@
+<?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" [
+
+<!ENTITY % entities SYSTEM "entities.xml">
+%entities;
+
+]>
+
+<table xmlns:xi="http://www.w3.org/2001/XInclude" 
+    xmlns:my="http://iptel.org/dbschema/mysql">
+    <name>i18n</name>
+    <version>1</version>
+    
+    <column id="i18n.code">
+	<name>code</name>
+	<type>int</type>
+    </column>
+    <column>
+	<name>reason_re</name>
+	<type>string</type>
+	<default><null/></default>
+	<null/>
+    </column>
+    <column id="i18n.lang">
+	<name>lang</name>
+	<type>string</type>
+    </column>
+    <column id="i18n.nr">
+	<name>new_reason</name>
+	<type>string</type>
+	<null/>
+    </column>
+    <index>
+	<name>i18n_idx</name>
+	<colref linkend="i18n.code"/>
+    </index>
+
+    <xi:include href="i18n-en.xml" xpointer="xpointer(data/row)"/>
+    <xi:include href="i18n-cs.xml" xpointer="xpointer(data/row)"/>
+</table>

+ 2 - 0
db/schema/ser.xml

@@ -67,6 +67,8 @@
     <xi:include href="presentity_contact.xml"/>
     <xi:include href="presentity_contact.xml"/>
     <xi:include href="watcherinfo.xml"/>
     <xi:include href="watcherinfo.xml"/>
 
 
+    <xi:include href="i18n.xml"/>
+
     <!-- User with read/write access -->
     <!-- User with read/write access -->
     <user>
     <user>
 	<username>ser</username>
 	<username>ser</username>

+ 4 - 0
db/schema/version.xml

@@ -115,4 +115,8 @@
 	<value col="tn"><xi:include href="watcherinfo.xml" xpointer="xpointer(table/name/text())"/></value>
 	<value col="tn"><xi:include href="watcherinfo.xml" xpointer="xpointer(table/name/text())"/></value>
 	<value col="tv"><xi:include href="watcherinfo.xml" xpointer="xpointer(table/version/text())"/></value>
 	<value col="tv"><xi:include href="watcherinfo.xml" xpointer="xpointer(table/version/text())"/></value>
     </row>
     </row>
+    <row>
+	<value col="tn"><xi:include href="i18n.xml" xpointer="xpointer(table/name/text())"/></value>
+	<value col="tv"><xi:include href="i18n.xml" xpointer="xpointer(table/version/text())"/></value>
+    </row>
 </table>
 </table>

+ 1 - 0
scripts/dbtext/ser_db/attr_types

@@ -6,3 +6,4 @@ rpid:string:2:
 fr_timer:string:0:
 fr_timer:string:0:
 fr_inv_timer:string:2:
 fr_inv_timer:string:2:
 flags:string:0:
 flags:string:0:
+gflags:string:0:

+ 103 - 0
scripts/dbtext/ser_db/i18n

@@ -0,0 +1,103 @@
+code(int) reason_re(str,null) lang(str) new_reason(str,null) 
+100::en_US.ascii:Trying
+180::en_US.ascii:Ringing
+181::en_US.ascii:Call Is Being Forwarded
+182::en_US.ascii:Queued
+183::en_US.ascii:Session Progress
+200::en_US.ascii:OK
+202::en_US.ascii:Pending
+300::en_US.ascii:Multiple Choices
+301::en_US.ascii:Moved Permanently
+302::en_US.ascii:Moved Temporarily
+305::en_US.ascii:Use Proxy
+380::en_US.ascii:Alternative Service
+400::en_US.ascii:Bad Request
+401::en_US.ascii:Unauthorized
+402::en_US.ascii:Payment Required
+403::en_US.ascii:Forbidden
+404::en_US.ascii:Not Found
+405::en_US.ascii:Method Not Allowed
+406::en_US.ascii:Not Acceptable
+407::en_US.ascii:Proxy Authentication Required
+408::en_US.ascii:Request Timeout
+410::en_US.ascii:Gone
+413::en_US.ascii:Request Entity Too Large
+414::en_US.ascii:Request-URI Too Long
+415::en_US.ascii:Unsupported Media Type
+416::en_US.ascii:Unsupported URI Scheme
+420::en_US.ascii:Bad Extension
+421::en_US.ascii:Extension Required
+423::en_US.ascii:Interval Too Brief
+480::en_US.ascii:Temporarily Unavailable
+481::en_US.ascii:Call/Transaction Does Not Exist
+482::en_US.ascii:Loop Detected
+483::en_US.ascii:Too Many Hops
+484::en_US.ascii:Address Incomplete
+485::en_US.ascii:Ambiguous
+486::en_US.ascii:Busy Here
+487::en_US.ascii:Request Terminated
+488::en_US.ascii:Not Acceptable Here
+491::en_US.ascii:Request Pending
+493::en_US.ascii:Undecipherable
+500::en_US.ascii:Server Internal Error
+501::en_US.ascii:Not Implemented
+502::en_US.ascii:Bad Gateway
+503::en_US.ascii:Service Unavailable
+504::en_US.ascii:Server Time-out
+505::en_US.ascii:Version Not Supported
+513::en_US.ascii:Message Too Large
+600::en_US.ascii:Busy Everywhere
+603::en_US.ascii:Decline
+604::en_US.ascii:Does Not Exist Anywhere
+606::en_US.ascii:Not Acceptable
+100::cs_CZ.ascii:Navazuji spojeni
+180::cs_CZ.ascii:Vyzvani
+181::cs_CZ.ascii:Hovor je presmerovan
+182::cs_CZ.ascii:Jste v poradi
+183::cs_CZ.ascii:Probiha navazovani spojeni
+200::cs_CZ.ascii:Uspesne provedeno
+202::cs_CZ.ascii:Bude vyrizeno pozdeji
+300::cs_CZ.ascii:Existuje vice moznosti
+301::cs_CZ.ascii:Trvale presmerovano
+302::cs_CZ.ascii:Docasne presmerovano
+305::cs_CZ.ascii:Pouzijte jiny server
+380::cs_CZ.ascii:Alternativni sluzba
+400::cs_CZ.ascii:Chyba protokolu
+401::cs_CZ.ascii:Overeni totoznosti
+402::cs_CZ.ascii:Placena sluzba
+403::cs_CZ.ascii:Zakazano
+404::cs_CZ.ascii:Nenalezeno
+405::cs_CZ.ascii:Nepovoleny prikaz
+406::cs_CZ.ascii:Neni povoleno
+407::cs_CZ.ascii:Server vyzaduje overeni totoznosti
+408::cs_CZ.ascii:Casovy limit vyprsel
+410::cs_CZ.ascii:Nenalezeno
+413::cs_CZ.ascii:Prilis dlouhy identifikator
+414::cs_CZ.ascii:Request-URI je prilis dlouhe
+415::cs_CZ.ascii:Nepodporovany typ dat
+416::cs_CZ.ascii:Nepodporovany typ identifikatoru
+420::cs_CZ.ascii:Neplatne cislo linky
+421::cs_CZ.ascii:Zadejte cislo linky
+423::cs_CZ.ascii:Prilis kratky interval
+480::cs_CZ.ascii:Docasne nedostupne
+481::cs_CZ.ascii:Spojeni nenalezeno
+482::cs_CZ.ascii:Zprava se zacyklila
+483::cs_CZ.ascii:Prilis mnoho kroku
+484::cs_CZ.ascii:Neuplna adresa
+485::cs_CZ.ascii:Nejednoznacne
+486::cs_CZ.ascii:Volany je zaneprazdnen
+487::cs_CZ.ascii:Prikaz predcasne ukoncen
+488::cs_CZ.ascii:Nebylo akceptovano
+491::cs_CZ.ascii:Cekam na odpoved
+493::cs_CZ.ascii:Nelze dekodovat
+500::cs_CZ.ascii:Interni chyba serveru
+501::cs_CZ.ascii:Neni implementovano
+502::cs_CZ.ascii:Chybna brana
+503::cs_CZ.ascii:Sluzba neni dostupna
+504::cs_CZ.ascii:Casovy limit serveru vyprsel
+505::cs_CZ.ascii:Nepodporovana verze protokolu
+513::cs_CZ.ascii:Zprava je prilis dlouha
+600::cs_CZ.ascii:Uzivatel je zaneprazdnen
+603::cs_CZ.ascii:Odmitnuto
+604::cs_CZ.ascii:Neexistujici uzivatel nebo sluzba
+606::cs_CZ.ascii:Nelze akceptovat

+ 1 - 0
scripts/dbtext/ser_db/version

@@ -22,3 +22,4 @@ lcr:1
 presentity:1
 presentity:1
 presentity_contact:1
 presentity_contact:1
 watcherinfo:1
 watcherinfo:1
+i18n:1

+ 114 - 1
scripts/mysql/my_create.sql

@@ -29,6 +29,7 @@ INSERT INTO version (table_name, table_version) VALUES ('lcr', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
+INSERT INTO version (table_name, table_version) VALUES ('i18n', '1');
 
 
 CREATE TABLE acc (
 CREATE TABLE acc (
     id INT AUTO_INCREMENT NOT NULL,
     id INT AUTO_INCREMENT NOT NULL,
@@ -96,7 +97,7 @@ CREATE TABLE credentials (
     ha1 VARCHAR(32) NOT NULL,
     ha1 VARCHAR(32) NOT NULL,
     ha1b VARCHAR(32) NOT NULL DEFAULT '',
     ha1b VARCHAR(32) NOT NULL DEFAULT '',
     uid VARCHAR(64) NOT NULL,
     uid VARCHAR(64) NOT NULL,
-    UNIQUE KEY (auth_username, realm),
+    KEY (auth_username, realm),
     KEY uid (uid)
     KEY uid (uid)
 );
 );
 
 
@@ -115,6 +116,7 @@ INSERT INTO attr_types (name, raw_type) VALUES ('rpid', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
+INSERT INTO attr_types (name, raw_type) VALUES ('gflags', '0');
 
 
 CREATE TABLE global_attrs (
 CREATE TABLE global_attrs (
     name VARCHAR(32) NOT NULL,
     name VARCHAR(32) NOT NULL,
@@ -323,6 +325,117 @@ CREATE TABLE watcherinfo (
     KEY wi_wuri_idx (w_uri)
     KEY wi_wuri_idx (w_uri)
 );
 );
 
 
+CREATE TABLE i18n (
+    code INT NOT NULL,
+    reason_re VARCHAR DEFAULT NULL,
+    lang VARCHAR NOT NULL,
+    new_reason VARCHAR,
+    KEY i18n_idx (code)
+);
+
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'en_US.ascii', 'Trying');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'en_US.ascii', 'Ringing');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'en_US.ascii', 'Call Is Being Forwarded');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'en_US.ascii', 'Queued');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'en_US.ascii', 'Session Progress');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'en_US.ascii', 'OK');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'en_US.ascii', 'Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'en_US.ascii', 'Multiple Choices');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'en_US.ascii', 'Moved Permanently');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'en_US.ascii', 'Moved Temporarily');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'en_US.ascii', 'Use Proxy');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'en_US.ascii', 'Alternative Service');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'en_US.ascii', 'Bad Request');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'en_US.ascii', 'Unauthorized');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'en_US.ascii', 'Payment Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'en_US.ascii', 'Forbidden');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'en_US.ascii', 'Not Found');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'en_US.ascii', 'Method Not Allowed');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'en_US.ascii', 'Proxy Authentication Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'en_US.ascii', 'Request Timeout');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'en_US.ascii', 'Gone');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'en_US.ascii', 'Request Entity Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'en_US.ascii', 'Request-URI Too Long');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'en_US.ascii', 'Unsupported Media Type');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'en_US.ascii', 'Unsupported URI Scheme');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'en_US.ascii', 'Bad Extension');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'en_US.ascii', 'Extension Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'en_US.ascii', 'Interval Too Brief');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'en_US.ascii', 'Temporarily Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'en_US.ascii', 'Call/Transaction Does Not Exist');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'en_US.ascii', 'Loop Detected');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'en_US.ascii', 'Too Many Hops');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'en_US.ascii', 'Address Incomplete');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'en_US.ascii', 'Ambiguous');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'en_US.ascii', 'Busy Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'en_US.ascii', 'Request Terminated');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'en_US.ascii', 'Not Acceptable Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'en_US.ascii', 'Request Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'en_US.ascii', 'Undecipherable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'en_US.ascii', 'Server Internal Error');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'en_US.ascii', 'Not Implemented');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'en_US.ascii', 'Bad Gateway');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'en_US.ascii', 'Service Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'en_US.ascii', 'Server Time-out');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'en_US.ascii', 'Version Not Supported');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'en_US.ascii', 'Message Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'en_US.ascii', 'Busy Everywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'en_US.ascii', 'Decline');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'en_US.ascii', 'Does Not Exist Anywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'cs_CZ.ascii', 'Navazuji spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'cs_CZ.ascii', 'Vyzvani');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'cs_CZ.ascii', 'Hovor je presmerovan');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'cs_CZ.ascii', 'Jste v poradi');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'cs_CZ.ascii', 'Probiha navazovani spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'cs_CZ.ascii', 'Uspesne provedeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'cs_CZ.ascii', 'Bude vyrizeno pozdeji');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'cs_CZ.ascii', 'Existuje vice moznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'cs_CZ.ascii', 'Trvale presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'cs_CZ.ascii', 'Docasne presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'cs_CZ.ascii', 'Pouzijte jiny server');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'cs_CZ.ascii', 'Alternativni sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'cs_CZ.ascii', 'Chyba protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'cs_CZ.ascii', 'Overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'cs_CZ.ascii', 'Placena sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'cs_CZ.ascii', 'Zakazano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'cs_CZ.ascii', 'Nepovoleny prikaz');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'cs_CZ.ascii', 'Neni povoleno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'cs_CZ.ascii', 'Server vyzaduje overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'cs_CZ.ascii', 'Casovy limit vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'cs_CZ.ascii', 'Prilis dlouhy identifikator');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'cs_CZ.ascii', 'Request-URI je prilis dlouhe');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'cs_CZ.ascii', 'Nepodporovany typ dat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'cs_CZ.ascii', 'Nepodporovany typ identifikatoru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'cs_CZ.ascii', 'Neplatne cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'cs_CZ.ascii', 'Zadejte cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'cs_CZ.ascii', 'Prilis kratky interval');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'cs_CZ.ascii', 'Docasne nedostupne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'cs_CZ.ascii', 'Spojeni nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'cs_CZ.ascii', 'Zprava se zacyklila');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'cs_CZ.ascii', 'Prilis mnoho kroku');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'cs_CZ.ascii', 'Neuplna adresa');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'cs_CZ.ascii', 'Nejednoznacne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'cs_CZ.ascii', 'Volany je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'cs_CZ.ascii', 'Prikaz predcasne ukoncen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'cs_CZ.ascii', 'Nebylo akceptovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'cs_CZ.ascii', 'Cekam na odpoved');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'cs_CZ.ascii', 'Nelze dekodovat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'cs_CZ.ascii', 'Interni chyba serveru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'cs_CZ.ascii', 'Neni implementovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'cs_CZ.ascii', 'Chybna brana');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'cs_CZ.ascii', 'Sluzba neni dostupna');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'cs_CZ.ascii', 'Casovy limit serveru vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'cs_CZ.ascii', 'Nepodporovana verze protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'cs_CZ.ascii', 'Zprava je prilis dlouha');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'cs_CZ.ascii', 'Uzivatel je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'cs_CZ.ascii', 'Odmitnuto');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'cs_CZ.ascii', 'Neexistujici uzivatel nebo sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'cs_CZ.ascii', 'Nelze akceptovat');
+
 GRANT ALL ON ser.* TO 'ser'@'%' IDENTIFIED BY 'heslo';
 GRANT ALL ON ser.* TO 'ser'@'%' IDENTIFIED BY 'heslo';
 GRANT ALL ON ser.* TO 'ser'@'localhost' IDENTIFIED BY 'heslo';
 GRANT ALL ON ser.* TO 'ser'@'localhost' IDENTIFIED BY 'heslo';
 FLUSH PRIVILEGES;
 FLUSH PRIVILEGES;

+ 113 - 3
scripts/oracle/or_create.sql

@@ -26,6 +26,7 @@ INSERT INTO version (table_name, table_version) VALUES ('lcr', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
+INSERT INTO version (table_name, table_version) VALUES ('i18n', '1');
 
 
 CREATE TABLE acc (
 CREATE TABLE acc (
     id int NOT NULL,
     id int NOT NULL,
@@ -92,9 +93,7 @@ CREATE TABLE credentials (
     flags int NOT NULL DEFAULT '0',
     flags int NOT NULL DEFAULT '0',
     ha1 string(32) NOT NULL,
     ha1 string(32) NOT NULL,
     ha1b string(32) NOT NULL DEFAULT '',
     ha1b string(32) NOT NULL DEFAULT '',
-    uid string(64) NOT NULL,
-     UNIQUE (auth_username, realm, ),
-
+    uid string(64) NOT NULL
 );
 );
 
 
 CREATE TABLE attr_types (
 CREATE TABLE attr_types (
@@ -111,6 +110,7 @@ INSERT INTO attr_types (name, raw_type) VALUES ('rpid', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
+INSERT INTO attr_types (name, raw_type) VALUES ('gflags', '0');
 
 
 CREATE TABLE global_attrs (
 CREATE TABLE global_attrs (
     name string(32) NOT NULL,
     name string(32) NOT NULL,
@@ -311,3 +311,113 @@ CREATE TABLE watcherinfo (
 
 
 );
 );
 
 
+CREATE TABLE i18n (
+    code int NOT NULL,
+    reason_re string DEFAULT NULL,
+    lang string NOT NULL,
+    new_reason string
+);
+
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'en_US.ascii', 'Trying');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'en_US.ascii', 'Ringing');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'en_US.ascii', 'Call Is Being Forwarded');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'en_US.ascii', 'Queued');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'en_US.ascii', 'Session Progress');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'en_US.ascii', 'OK');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'en_US.ascii', 'Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'en_US.ascii', 'Multiple Choices');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'en_US.ascii', 'Moved Permanently');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'en_US.ascii', 'Moved Temporarily');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'en_US.ascii', 'Use Proxy');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'en_US.ascii', 'Alternative Service');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'en_US.ascii', 'Bad Request');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'en_US.ascii', 'Unauthorized');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'en_US.ascii', 'Payment Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'en_US.ascii', 'Forbidden');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'en_US.ascii', 'Not Found');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'en_US.ascii', 'Method Not Allowed');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'en_US.ascii', 'Proxy Authentication Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'en_US.ascii', 'Request Timeout');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'en_US.ascii', 'Gone');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'en_US.ascii', 'Request Entity Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'en_US.ascii', 'Request-URI Too Long');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'en_US.ascii', 'Unsupported Media Type');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'en_US.ascii', 'Unsupported URI Scheme');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'en_US.ascii', 'Bad Extension');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'en_US.ascii', 'Extension Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'en_US.ascii', 'Interval Too Brief');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'en_US.ascii', 'Temporarily Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'en_US.ascii', 'Call/Transaction Does Not Exist');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'en_US.ascii', 'Loop Detected');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'en_US.ascii', 'Too Many Hops');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'en_US.ascii', 'Address Incomplete');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'en_US.ascii', 'Ambiguous');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'en_US.ascii', 'Busy Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'en_US.ascii', 'Request Terminated');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'en_US.ascii', 'Not Acceptable Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'en_US.ascii', 'Request Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'en_US.ascii', 'Undecipherable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'en_US.ascii', 'Server Internal Error');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'en_US.ascii', 'Not Implemented');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'en_US.ascii', 'Bad Gateway');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'en_US.ascii', 'Service Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'en_US.ascii', 'Server Time-out');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'en_US.ascii', 'Version Not Supported');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'en_US.ascii', 'Message Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'en_US.ascii', 'Busy Everywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'en_US.ascii', 'Decline');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'en_US.ascii', 'Does Not Exist Anywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'cs_CZ.ascii', 'Navazuji spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'cs_CZ.ascii', 'Vyzvani');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'cs_CZ.ascii', 'Hovor je presmerovan');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'cs_CZ.ascii', 'Jste v poradi');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'cs_CZ.ascii', 'Probiha navazovani spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'cs_CZ.ascii', 'Uspesne provedeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'cs_CZ.ascii', 'Bude vyrizeno pozdeji');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'cs_CZ.ascii', 'Existuje vice moznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'cs_CZ.ascii', 'Trvale presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'cs_CZ.ascii', 'Docasne presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'cs_CZ.ascii', 'Pouzijte jiny server');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'cs_CZ.ascii', 'Alternativni sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'cs_CZ.ascii', 'Chyba protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'cs_CZ.ascii', 'Overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'cs_CZ.ascii', 'Placena sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'cs_CZ.ascii', 'Zakazano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'cs_CZ.ascii', 'Nepovoleny prikaz');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'cs_CZ.ascii', 'Neni povoleno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'cs_CZ.ascii', 'Server vyzaduje overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'cs_CZ.ascii', 'Casovy limit vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'cs_CZ.ascii', 'Prilis dlouhy identifikator');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'cs_CZ.ascii', 'Request-URI je prilis dlouhe');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'cs_CZ.ascii', 'Nepodporovany typ dat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'cs_CZ.ascii', 'Nepodporovany typ identifikatoru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'cs_CZ.ascii', 'Neplatne cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'cs_CZ.ascii', 'Zadejte cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'cs_CZ.ascii', 'Prilis kratky interval');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'cs_CZ.ascii', 'Docasne nedostupne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'cs_CZ.ascii', 'Spojeni nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'cs_CZ.ascii', 'Zprava se zacyklila');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'cs_CZ.ascii', 'Prilis mnoho kroku');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'cs_CZ.ascii', 'Neuplna adresa');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'cs_CZ.ascii', 'Nejednoznacne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'cs_CZ.ascii', 'Volany je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'cs_CZ.ascii', 'Prikaz predcasne ukoncen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'cs_CZ.ascii', 'Nebylo akceptovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'cs_CZ.ascii', 'Cekam na odpoved');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'cs_CZ.ascii', 'Nelze dekodovat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'cs_CZ.ascii', 'Interni chyba serveru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'cs_CZ.ascii', 'Neni implementovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'cs_CZ.ascii', 'Chybna brana');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'cs_CZ.ascii', 'Sluzba neni dostupna');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'cs_CZ.ascii', 'Casovy limit serveru vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'cs_CZ.ascii', 'Nepodporovana verze protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'cs_CZ.ascii', 'Zprava je prilis dlouha');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'cs_CZ.ascii', 'Uzivatel je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'cs_CZ.ascii', 'Odmitnuto');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'cs_CZ.ascii', 'Neexistujici uzivatel nebo sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'cs_CZ.ascii', 'Nelze akceptovat');
+

+ 116 - 2
scripts/postgres/pg_create.sql

@@ -26,6 +26,7 @@ INSERT INTO version (table_name, table_version) VALUES ('lcr', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('presentity_contact', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
 INSERT INTO version (table_name, table_version) VALUES ('watcherinfo', '1');
+INSERT INTO version (table_name, table_version) VALUES ('i18n', '1');
 
 
 CREATE TABLE acc (
 CREATE TABLE acc (
     id SERIAL NOT NULL,
     id SERIAL NOT NULL,
@@ -94,10 +95,10 @@ CREATE TABLE credentials (
     flags INTEGER NOT NULL DEFAULT '0',
     flags INTEGER NOT NULL DEFAULT '0',
     ha1 VARCHAR(32) NOT NULL,
     ha1 VARCHAR(32) NOT NULL,
     ha1b VARCHAR(32) NOT NULL DEFAULT '',
     ha1b VARCHAR(32) NOT NULL DEFAULT '',
-    uid VARCHAR(64) NOT NULL,
-    UNIQUE (auth_username, realm)
+    uid VARCHAR(64) NOT NULL
 );
 );
 
 
+CREATE INDEX  ON credentials (auth_username, realm);
 CREATE INDEX uid ON credentials (uid);
 CREATE INDEX uid ON credentials (uid);
 
 
 CREATE TABLE attr_types (
 CREATE TABLE attr_types (
@@ -116,6 +117,7 @@ INSERT INTO attr_types (name, raw_type) VALUES ('rpid', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_timer', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('fr_inv_timer', '2');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
 INSERT INTO attr_types (name, raw_type) VALUES ('flags', '0');
+INSERT INTO attr_types (name, raw_type) VALUES ('gflags', '0');
 
 
 CREATE TABLE global_attrs (
 CREATE TABLE global_attrs (
     name VARCHAR(32) NOT NULL,
     name VARCHAR(32) NOT NULL,
@@ -335,3 +337,115 @@ CREATE TABLE watcherinfo (
 CREATE INDEX wi_ruri_idx ON watcherinfo (r_uri);
 CREATE INDEX wi_ruri_idx ON watcherinfo (r_uri);
 CREATE INDEX wi_wuri_idx ON watcherinfo (w_uri);
 CREATE INDEX wi_wuri_idx ON watcherinfo (w_uri);
 
 
+CREATE TABLE i18n (
+    code INTEGER NOT NULL,
+    reason_re VARCHAR DEFAULT NULL,
+    lang VARCHAR NOT NULL,
+    new_reason VARCHAR
+);
+
+CREATE INDEX i18n_idx ON i18n (code);
+
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'en_US.ascii', 'Trying');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'en_US.ascii', 'Ringing');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'en_US.ascii', 'Call Is Being Forwarded');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'en_US.ascii', 'Queued');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'en_US.ascii', 'Session Progress');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'en_US.ascii', 'OK');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'en_US.ascii', 'Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'en_US.ascii', 'Multiple Choices');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'en_US.ascii', 'Moved Permanently');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'en_US.ascii', 'Moved Temporarily');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'en_US.ascii', 'Use Proxy');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'en_US.ascii', 'Alternative Service');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'en_US.ascii', 'Bad Request');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'en_US.ascii', 'Unauthorized');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'en_US.ascii', 'Payment Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'en_US.ascii', 'Forbidden');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'en_US.ascii', 'Not Found');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'en_US.ascii', 'Method Not Allowed');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'en_US.ascii', 'Proxy Authentication Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'en_US.ascii', 'Request Timeout');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'en_US.ascii', 'Gone');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'en_US.ascii', 'Request Entity Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'en_US.ascii', 'Request-URI Too Long');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'en_US.ascii', 'Unsupported Media Type');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'en_US.ascii', 'Unsupported URI Scheme');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'en_US.ascii', 'Bad Extension');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'en_US.ascii', 'Extension Required');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'en_US.ascii', 'Interval Too Brief');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'en_US.ascii', 'Temporarily Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'en_US.ascii', 'Call/Transaction Does Not Exist');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'en_US.ascii', 'Loop Detected');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'en_US.ascii', 'Too Many Hops');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'en_US.ascii', 'Address Incomplete');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'en_US.ascii', 'Ambiguous');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'en_US.ascii', 'Busy Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'en_US.ascii', 'Request Terminated');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'en_US.ascii', 'Not Acceptable Here');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'en_US.ascii', 'Request Pending');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'en_US.ascii', 'Undecipherable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'en_US.ascii', 'Server Internal Error');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'en_US.ascii', 'Not Implemented');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'en_US.ascii', 'Bad Gateway');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'en_US.ascii', 'Service Unavailable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'en_US.ascii', 'Server Time-out');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'en_US.ascii', 'Version Not Supported');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'en_US.ascii', 'Message Too Large');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'en_US.ascii', 'Busy Everywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'en_US.ascii', 'Decline');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'en_US.ascii', 'Does Not Exist Anywhere');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'en_US.ascii', 'Not Acceptable');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('100', 'cs_CZ.ascii', 'Navazuji spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('180', 'cs_CZ.ascii', 'Vyzvani');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('181', 'cs_CZ.ascii', 'Hovor je presmerovan');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('182', 'cs_CZ.ascii', 'Jste v poradi');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('183', 'cs_CZ.ascii', 'Probiha navazovani spojeni');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('200', 'cs_CZ.ascii', 'Uspesne provedeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('202', 'cs_CZ.ascii', 'Bude vyrizeno pozdeji');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('300', 'cs_CZ.ascii', 'Existuje vice moznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('301', 'cs_CZ.ascii', 'Trvale presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('302', 'cs_CZ.ascii', 'Docasne presmerovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('305', 'cs_CZ.ascii', 'Pouzijte jiny server');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('380', 'cs_CZ.ascii', 'Alternativni sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('400', 'cs_CZ.ascii', 'Chyba protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('401', 'cs_CZ.ascii', 'Overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('402', 'cs_CZ.ascii', 'Placena sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('403', 'cs_CZ.ascii', 'Zakazano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('404', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('405', 'cs_CZ.ascii', 'Nepovoleny prikaz');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('406', 'cs_CZ.ascii', 'Neni povoleno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('407', 'cs_CZ.ascii', 'Server vyzaduje overeni totoznosti');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('408', 'cs_CZ.ascii', 'Casovy limit vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('410', 'cs_CZ.ascii', 'Nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('413', 'cs_CZ.ascii', 'Prilis dlouhy identifikator');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('414', 'cs_CZ.ascii', 'Request-URI je prilis dlouhe');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('415', 'cs_CZ.ascii', 'Nepodporovany typ dat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('416', 'cs_CZ.ascii', 'Nepodporovany typ identifikatoru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('420', 'cs_CZ.ascii', 'Neplatne cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('421', 'cs_CZ.ascii', 'Zadejte cislo linky');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('423', 'cs_CZ.ascii', 'Prilis kratky interval');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('480', 'cs_CZ.ascii', 'Docasne nedostupne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('481', 'cs_CZ.ascii', 'Spojeni nenalezeno');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('482', 'cs_CZ.ascii', 'Zprava se zacyklila');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('483', 'cs_CZ.ascii', 'Prilis mnoho kroku');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('484', 'cs_CZ.ascii', 'Neuplna adresa');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('485', 'cs_CZ.ascii', 'Nejednoznacne');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('486', 'cs_CZ.ascii', 'Volany je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('487', 'cs_CZ.ascii', 'Prikaz predcasne ukoncen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('488', 'cs_CZ.ascii', 'Nebylo akceptovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('491', 'cs_CZ.ascii', 'Cekam na odpoved');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('493', 'cs_CZ.ascii', 'Nelze dekodovat');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('500', 'cs_CZ.ascii', 'Interni chyba serveru');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('501', 'cs_CZ.ascii', 'Neni implementovano');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('502', 'cs_CZ.ascii', 'Chybna brana');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('503', 'cs_CZ.ascii', 'Sluzba neni dostupna');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('504', 'cs_CZ.ascii', 'Casovy limit serveru vyprsel');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('505', 'cs_CZ.ascii', 'Nepodporovana verze protokolu');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('513', 'cs_CZ.ascii', 'Zprava je prilis dlouha');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('600', 'cs_CZ.ascii', 'Uzivatel je zaneprazdnen');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('603', 'cs_CZ.ascii', 'Odmitnuto');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('604', 'cs_CZ.ascii', 'Neexistujici uzivatel nebo sluzba');
+INSERT INTO i18n (code, lang, new_reason) VALUES ('606', 'cs_CZ.ascii', 'Nelze akceptovat');
+