Re: [Voip] Erklärung LCDial Datenbank

Andreas Marksteiner (spam-protected)
Thu Jan 19 21:49:54 CET 2006


Hallo Leute,


Anmerkung:
Insgesamt können wir natürlich in den Tables auch kostenpflichtige  
Destinationen verschiedener Provider erfassen. Der günstigste  
Anbieter wird dann automatisch gewählt.

Da sich die Tarife der Provider auch ändern könnten, wäre es z.B.  
sinnvoll ein Script zu schreiben, welches die Tarif Webseiten der/des  
Providers durchgeht und die entsprechenden Updates ( nachzulesen z.B.  
unter http://www.1keydata.com/sql/sqlupdate.html ).

Könnte z.B. aussehen wie folgt (praktisch wird das Statement  
vermutlich noch ein wenig sinnvoller/komplexer sein):
UPDATE providerrate SET rate=1.4 WHERE providerrateid=2

Geparsed müßte z.B. eine Seite wie http://www.sipdiscount.com/en/ 
rates.html werden, wobei es hier afaik schon ein script gibt -->
http://www.voip-info.org/wiki/view/Asterisk+VoIPBuster


Idee zu FunkFeuer Prepaid System
Man könnte z.B. ein System festelegen, wonach jeder interessierte auf  
das FunkFeuer Konto einen Betrag überweist, welcher dann von uns auf  
den/die Provider verteilt bzw. weitergebucht wird.

Da auch Call Records in einer anderen Datenbank zur Verfügung stehen  
- können wir auch sehr leicht ausgeben lassen, welcher user wieviel  
vertelefoniert hat.

Hier gibt es 2 Möglichkeiten, mit mehr/weniger Admin Aufwand
- wir bauen das System so, dass es gleich den Betrag vom  
entsprechenden User Guthaben abbucht
- alle User verhalten sich entsprechend Fair und vertelefonieren nur,  
was sie auch eingezahlt haben (vergleichen also selbst immer den  
vertelefonierten Betrag - der dann wo sinnvoll auf einer FunkFeuer  
Page eingesehen werden kann - und den eingezahlten Betrag)


Grüße, Andi.


Am 19.01.2006 um 21:09 schrieb Andreas Marksteiner:

> 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.
> _______________________________________________
> Voip mailing list
> (spam-protected)
> https://lists.funkfeuer.at/mailman/listinfo/voip





More information about the Voip mailing list