[SR-Users] CNXCC PrePaid module

Carlos Ruiz Díaz carlos.ruizdiaz at gmail.com
Fri May 9 23:11:16 CEST 2014


On Fri, May 9, 2014 at 3:52 PM, Rene Montilva <renemontilva at gmail.com>wrote:

> these are the values before the function call:
>
>  /usr/sbin/kamailio[24933]: INFO: <script>: saldo:0.0005000000 y
> seg:0.000666666666666667
>

You are printing then before the assigment.

*xlog("L_INFO", "saldo:$dbr(ra=>[0,0]) y seg:$dbr(ra=>[0,1]) ");*

use

*xlog("L_INFO", "saldo:$var(credit) y seg:$var(cost_per_second) ");*

I just run a test with your values, and they did work.

$var(credit) = "0.0005";
$var(cost_per_second) = "0.0006";

*if (!cnxcc_set_max_credit("$var(client)",....*


>
> this function doesn't work, maybe are the long value:
>
> *if ($var(credit) < $var(cost_per_second)) {*
> *        sl_send_reply("402", "payment required");*
> *        exit;*
> *}*
>

Did not get that, what does not work?


>
>
>
> On Fri, May 9, 2014 at 3:48 PM, Carlos Ruiz Díaz <
> carlos.ruizdiaz at gmail.com> wrote:
>
>> Oops, correction:
>>
>> *if ($var(credit) < $var(cost_per_second)) {*
>> *        sl_send_reply("402", "payment required");*
>> *        exit;*
>> *}*
>>
>> By the way, please inform of your results after doing your tests.
>>
>> Thanks,
>> Carlos
>>
>>
>> On Fri, May 9, 2014 at 3:17 PM, Carlos Ruiz Díaz <
>> carlos.ruizdiaz at gmail.com> wrote:
>>
>>> Hello,
>>>
>>> "i_pulse" and "f_pulse" are direct translations of the Spanish (I
>>> noticed you speak it) phrases "pulso inicial" and "pulso final", which I
>>> don't think have the same meaning in English. Updating the docs and using
>>> the proper terminology are pending matters on this module.
>>>
>>> Both values represent the initial and interim costs of the call, in your
>>> case, it is being billed second by second (1:1), subtracting "0.000666666666666667"
>>> every second from a pool of credit that is equal to "0.0006500000".
>>>
>>> The message that's being shown, looks like a precision loss error, which
>>> is unlikely because I used numbers even smaller than yours. Please print
>>> the values of $var(credit) and $var(cost_per_sec) before calling the
>>> cnxcc function.
>>>
>>> Furthermore, you should also consider checking your values before
>>> passing them to the function. For example:
>>>
>>> *1. check if the credit is greater than the cost per second, *before*.*
>>>
>>> *if ($var(credit) > $var(cost_per_second)) {*
>>> *        sl_send_reply("402", "payment required");*
>>> *        exit;*
>>> *}*
>>>
>>> There's no reason to call the function when the conditions are not met.
>>> Cnxcc will authorize the call and hang it immediately (1 second later).
>>>
>>> I may need to add this check myself inside the module.
>>>
>>> *2. make sure you are rejecting the call in case of module's error. *
>>>
>>>
>>>
>>>
>>>
>>> *if (!cnxcc_set_max_credit("$var(client)",     "$var(credit)",
>>> "$var(cost_per_sec)",     "$var(i_pulse)",*
>>>
>>> *    "$var(f_pulse)") { *
>>>
>>> *        sl_send_reply("503", "something's wrong in the server"); *
>>>
>>> *        exit; *
>>> *}*
>>>
>>>  Regards,
>>> Carlos
>>>
>>>
>>>
>>>
>>> On Fri, May 9, 2014 at 2:45 PM, Rene Montilva <renemontilva at gmail.com>wrote:
>>>
>>>> Hi Carlos
>>>>
>>>> This my kamailio config:
>>>>
>>>> #!ifdef CNXCC_MONEY
>>>> sql_query("ca", "select * from
>>>> billing.sel_customer_credit('pepe','xxxxxxx","ra");
>>>>
>>>> xlog("L_INFO", "Setting up money based credit control");
>>>>
>>>> if($dbr(ra=>rows)> 0){
>>>> xlog("L_INFO", "saldo:$dbr(ra=>[0,0]) y seg:$dbr(ra=>[0,1]) ");
>>>>
>>>> $var(credit) = $dbr(ra=>[0,0]); # 30$ of credit
>>>> $var(cost_per_sec) = $dbr(ra=>[0,1]); # 1$ per sec
>>>> $var(i_pulse) = "1"; # 1$ to establish the call
>>>> $var(f_pulse) = "1"; # 1$ per second
>>>>
>>>>
>>>> }
>>>>
>>>> sql_result_free ("ra");
>>>>
>>>> # if only one call is established, that call should last 9 seconds.
>>>>
>>>> if (!cnxcc_set_max_credit("$var(client)",
>>>> "$var(credit)",
>>>> "$var(cost_per_sec)",
>>>> "$var(i_pulse)",
>>>>
>>>>
>>>>
>>>> And this are the values by syslog info
>>>>
>>>> INFO: <script>: saldo:0.0006500000 y seg:0.000666666666666667
>>>> ERROR: cnxcc [cnxcc_mod.c:1425]: set_max_credit(): credit value must be
>>>> > 0: 0.000000
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Fri, May 9, 2014 at 3:08 PM, Carlos Ruiz Díaz <
>>>> carlos.ruizdiaz at gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> Can you paste the code you are using, with the values that each
>>>>> variable contain at the moment of initiating the call?
>>>>>
>>>>> Regards,
>>>>>
>>>>>
>>>>> On Fri, May 9, 2014 at 2:35 PM, Rene Montilva <renemontilva at gmail.com>wrote:
>>>>>
>>>>>> Hi list
>>>>>>
>>>>>> I don't understand prepaid logic calculation, because when my credit
>>>>>> is 0 or lees than cost per second, the call is established equal
>>>>>>
>>>>>> $var(i_pulse) and $var(f_pulse) how this works????
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
>>>>>> list
>>>>>> sr-users at lists.sip-router.org
>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Carlos
>>>>> http://caruizdiaz.com
>>>>> http://ngvoice.com
>>>>> +52 55 3048 3303
>>>>>
>>>>> _______________________________________________
>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>>> sr-users at lists.sip-router.org
>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>> sr-users at lists.sip-router.org
>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>
>>>>
>>>
>>>
>>> --
>>> Carlos
>>> http://caruizdiaz.com
>>> http://ngvoice.com
>>> +52 55 3048 3303
>>>
>>
>>
>>
>> --
>> Carlos
>> http://caruizdiaz.com
>> http://ngvoice.com
>> +52 55 3048 3303
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>


-- 
Carlos
http://caruizdiaz.com
http://ngvoice.com
+52 55 3048 3303
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20140509/5a07a0ae/attachment.html>


More information about the sr-users mailing list