[Voip] Erklärung LCDial Datenbank
Andreas Marksteiner
(spam-protected)
Thu Jan 19 21:09:50 CET 2006
Hallo Leute,
Für alle, die an den LCDial Einträgen arbeiten wollen.
Erklärung Datenbank:
Ein INSERT Statement fügt einen Eintrag in die Datenbank ein, als
Parameter werden die Werte der Attribute des einzufügenden Elements
übergeben. Die einzelnen Einträge in den Tabellen sind durch einen
pro Tabelle und Eintrag einzigartigen "primary key" ausgezeichnet -
oft eben eine fortlaufende Zahl.
Ein Dump des momentan aktuellen Status findet sich unter:
http://sandwich.funkfeuer.at/files/lcd.sql
Die Tables:
"country" - die ist eigentlich denke ich schon vollständig - sollte
ein Land fehlen, kann man es noch dazufügen
Attribute: countrycode, coutryname, countryid (primary key -
fortlaufend)
Beispiel: INSERT INTO `country` VALUES ('AUT', 'Austria', 14);
"countryprefix" - da fehlen auch für Österreich glaub ich noch ein
paar Prefixes
Attribute: countryprefixid (primary key - forlaufend), prefix,
countrycode, subcode
Einzelne Prefixes sind z.B. 43 (für Österreich), ABER auch alle
Vorwahlen z.B. 43676, 43664 usw.
Beispiel Österreich:
INSERT INTO `countryprefix` VALUES (224, '43', 'AUT', 'FIX');
INSERT INTO `countryprefix` VALUES (225, '43650', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (226, '43663', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (227, '43664', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (228, '43666', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (229, '43669', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (230, '43676', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (231, '43678', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (232, '43686', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (233, '43688', 'AUT', 'MOB');
INSERT INTO `countryprefix` VALUES (234, '43699', 'AUT', 'MOB');
Wenn man in dieser Tabelle Einträge hinzufügen will, kann die
fortlaufende ID des nächsten Eintrage natürlich nicht
INSERT INTO `countryprefix` VALUES (235, '43123', 'AUT', 'MOB');
sein, sondern man muss in der Tabelle "countryprefix" den Eintrag im
der höchsten ID raussuchen, also aktuell 2017 --> der Eintrag muss
lauten
INSERT INTO `countryprefix` VALUES (2018, '43123', 'AUT', 'MOB');
"provider" - da können wir bei bedarf Provider einfügen bzw. ist hier
definiert, wie Asterisk über den Provider routen kann
Attribute: providerid (primary key - fortlaufend), providername
(beschreibender Providername), dialstr (wichtig für Asterisk), status
(wird auf 0 gesetzt - hab mir den Zweck noch nicht angeschaut - nehme
an, man kann hier einen Provider deaktivieren)
INSERT INTO `provider` VALUES (1, 'SipDiscount', 'SIP/00%
(spam-protected)|30', 0);
INSERT INTO `provider` VALUES (2, 'Dummy NoGo', 'Local/
(spam-protected)|30', 0);
Momentan haben wir nur die 2 Einträge "SipDiscount" und einen "Dummy
NoGo", wobei zweiterer auf unserem Asterisk die Extension 6666 wählt,
wo "unavailable" abgespielt wird und der call beendet wird - das ist
also der "Provider" für verbotene Destinationen.
"providerdestination" - hier wird festgehalten, welcher provider -
welche ziele anbietet
Attribute: providerdestinationid (primary key - fortlaufend),
countryprefixid (foreign key - verweist in der table "coutryprefix"
auf die zeile, wo der wert mit dem im attribut "countryprefixid"
übereinstimmt), providerid (foreign key - verweist in der table
"provider" auf einen bestimmten provider)
z.B. INSERT INTO `providerdestination` VALUES (1, 224, 1);
bedeuted, dass der coutryprefix 224 (also präfix 43 - AUT, FIX -
siehe table countryprefix) vom Provider 1 (SipDiscount) angeboten wird.
"providerrate" - hier stehen die tarife der einzelnen provider zu den
einzelnen Destinationen
Attribute: providerrateid (primary key - fortlaufend), providerid
(foreign key - zeigt auf den entsprechenden Eintrag in der
Providertabelle), countryprefixid (foreign key - zeigt auf den
entsprechenden country präfix eintrag)
z.B.
INSERT INTO `providerrate` VALUES (2, 1, 224, 0);
bedeuted dass der provider 1 (SipDiscount) anrufe zum präfix 43 um 0
Cent anbietet
INSERT INTO `providerrate` VALUES (3, 2, 230, 0);
bedeuted, dass der provider 2 (Dummy NoGo) das präfix 43676 um 0 Cent
anbietet
FAZIT: grundsätzlich müßt ihr immer Einträge für die Tabellen
providerdestination und providerrate vorbereiten. Es wird z.B. das
Präfix 43 zu "SipDiscount" gerouted, aber die spezielleren präfixes
z.B. 43676 (alle nicht zulässigen/kostenpflichtigen destinationen)
werden zu "Dummy NoGo" geschickt.
Bitte auch prüfen, ob es für Österreich vielleicht noch mehr prefixes
gibt, die "verboten" werden sollen/müssen (tele2,
Mehrwertnummern, ... keine Ahnung, was es da noch geben könnte). Neu
entdeckte Präfixes müssen zusätzlich in der Tabelle "coutryprefix"
eingefügt werden.
Insgesamt müßt ihr euch immer absprechen, wer welche Länder/Bereiche
machen will/wird bzw. am besten macht es vielleicht erst eine Person
und dann eine weitere, weil sonst leicht die fortlaufenden Nummern
(primary keys) durcheinanderkommen und die sind ja wichtig, weil sie
für andere Tabellen die Referenzpunkte sind.
Hoffe ich habe das soweit sinnvoll/verständlich erklärt. Fragen?
Grüße, Andi.
More information about the Voip
mailing list