You have a very good point. Example:
There is a prepaid customer with a total balance of 1000 E. To prevent
unauthorized use of his account, he poses the constraint never to exceed 100
E or 50000 SMS/week. How do you handle that?
BR,
Nikos
----- Original Message -----
From: "Alejandro Guerrieri" <[email protected]>
To: "Rene Kluwen" <[email protected]>
Cc: <[email protected]>; <[email protected]>
Sent: Sunday, August 01, 2010 9:28 PM
Subject: Re: Discussion: Prepaid counting
This patch will definitely have its place for many people's requirement, but
it's not generic enough for general usage imho.
Personally speaking, I don't like the idea of clogging any boxes' code with
non-generic stuff. The billing approach would work for some people, but
surely won't be flexible enough for others.
I like Stipe's "plugin approach" on his (commercial) smppbox: messages can
be routed thru plugins, where you can implement all kind of stuff and
add/remove them from your message pipeline. Using that approach, all kind of
billing mechanisms could be implemented (along with many other stuff of
course).
Regards,
--
Alejandro Guerrieri
[email protected]
On 01/08/2010, at 03:08, Rene Kluwen wrote:
Suppose I add 2 tables to sqlbox:
mysql> describe sms_users;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| binfo | varchar(100) | NO | PRI | NULL | |
| balance | float(10,0) | NO | | 0 | |
+---------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
And:
mysql> describe sms_rates;
+---------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| prefix | varchar(100) | NO | PRI | | |
| smsc | varchar(100) | NO | PRI | | |
| rate | float(10,4) | NO | | 0.0000 | |
| country | varchar(255) | YES | | | |
+---------+--------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
And suppose I match prefix/smsc against sms_rates and draw the variable
"rate" from it.
Next, I check the sms_users table with the binfo field (not sure if this
is
a good idea or not) and I withdraw "rate" from "balance" if "balance" is
big
enough. Once balance reaches 0, sqlbox will refuse to relay further
messages
to bearerbox.
Attached is a patch that does the trick (for now, only mysql engines).
Note:
This code hasn't been tested yet and probably contains a bug or two.
But I am posting it anyway to see what the almighty Kannel Developers have
to say about it.
This patch is especially useful if you want your clients to have access to
an open smppbox with a limited amount of credits. But also it works for
smsboxes and sqlboxes, as you please.
I made a small patch to open smppbox that allows passing of binfo.
== Rene
<prepaid_1.patch>