Hi Carlos kamailio version 4.1 El 11/05/2014 21:32, "Carlos Ruiz Díaz" <carlos.ruizd...@gmail.com> escribió:
> What Kamailio version are you using? > > > On Sat, May 10, 2014 at 9:33 PM, Rene Montilva <renemonti...@gmail.com>wrote: > >> Hi Carlos >> >> kamailio config: >> >> log("L_INFO", "saldo:$var(credit) y seg:$var(cost_per_sec) "); >> >> >> if($var(cost_per_sec) > $var(credit)) { >> >> sl_send_reply("402","payment required"); >> exit; >> } >> >> >> 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; >> >> } >> >> >> >> >> >> i got this by syslog >> >> $var(credit) = "0.0005"; >> $var(cost_per_sec) = "0.0006"; >> >> >> >> #$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 >> >> if (!cnxcc_set_max_credit("$var(client)", >> "$var(credit)", >> "$var(cost_per_sec)", >> "$var(i_pulse)", >> "$var(f_pulse)")) { >> sl_send_reply("402", "Sin saldo PAPA"); >> xlog("Error setting up credit control"); >> exit; >> } >> >> >> >> /usr/sbin/kamailio[13336]: INFO: <script>: Setting up money based credit >> control >> /usr/sbin/kamailio[13336]: INFO: <script>: saldo:0.0005 y seg:0.0006 >> /usr/sbin/kamailio[13336]: WARNING: <core> [rvalue.c:1016]: >> rval_get_int(): automatic string to int conversion for "0.0005" failed >> /usr/sbin/kamailio[13336]: WARNING: <core> [rvalue.c:1920]: >> rval_expr_eval_int(): rval expression conversion to int failed >> (707,17-707,17) >> /usr/sbin/kamailio[13336]: WARNING: <core> [rvalue.c:1016]: >> rval_get_int(): automatic string to int conversion for "0.0006" failed >> /usr/sbin/kamailio[13336]: WARNING: <core> [rvalue.c:1920]: >> rval_expr_eval_int(): rval expression conversion to int failed >> (707,19-707,36) >> >> >> it still established the call >> >> >> with the function, kamailio doesn't evaluate the variable >> >> if($var(cost_per_sec) > $var(credit)) { >> >> sl_send_reply("402","payment required"); >> exit; >> } >> >> >> >> >> >> On Fri, May 9, 2014 at 4:41 PM, Carlos Ruiz Díaz < >> carlos.ruizd...@gmail.com> wrote: >> >>> >>> >>> >>> On Fri, May 9, 2014 at 3:52 PM, Rene Montilva <renemonti...@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.ruizd...@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.ruizd...@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 <renemonti...@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.ruizd...@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 < >>>>>>>> renemonti...@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@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@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@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@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@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@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@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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users