Okay, I'll post both pieces of code. What I was seeing is that calls
where being billed more than I thought they should be. Lets use an
example with the following info:
Call Length: 147 Seconds
Increments: 6 Seconds
Connect Charge: 100
Included Seconds: 30
Cost per minute: 100
1. Present Code:
eval { my $adjtime = int(($answeredtime + $increment - 1) / $increment)
* $increment };
# adjtime = 152
eval { $cost = int($adjcost * $adjtime / 60) };
# cost = 253
$cost += $adjconn;
# Total Cost = 353
2. My Proposed Code:
$total_seconds = ($answeredtime - $numdata->{includedseconds})/$increment;
# Total_Seconds(This variable is not very well named) = 19.5
$bill_increments = ceil($total_seconds);
# We need to bill for 20 6 second increments.
$billseconds = $bill_increments * $increment;
# This translates to 120 seconds.
$cost = ($billseconds / 60) * $adjcost + $adjconn;
Therefore the cost = 300
3. Proposed Correction to original Code
The difference I see is that the first one is double billing for the
included seconds. That would be easier fixed as follows:
eval { my $adjtime = int((($answeredtime - $numdata->{includedseconds})
+ $increment - 1) / $increment) * $increment };
Doing the math this way the cost on the call would come out @ 303
Which example is correct? Which code is easier to follow? :-)
Darren Wiebe
[EMAIL PROTECTED]
Rusty Shackleford wrote:
On Fri, June 17, 2005 5:19 pm, Darren Wiebe said:
Good Day
Has anybody here looked closely at the call cost calculation in ASTCC?
Can you duplicate the way the cost of a call is calculated? I believe
that there is an error in the code. I have fixed it, I think and
submitted a patch but we need user comments. I would appreciate if
anybody involved would slip over to chech out this link on the
bugtracker and provide feedback. http://bugs.digium.com/view.php?id=4480
I may well be wrong but I believe the issue needs visiting. Somebody
was asking me how it calculates costs as they thought they knew what a
call should cost. I said "I'll show you". Mistake, I could not come up
with an answer that made sense.
Darren,
I took a quick look at the patch. I'm not certain, but it appears that
you've taken out the formula that factors in the billing increment. This
forumla, inything other than a 1 second incement, will always "add" time
to the call for any number of seconds not equally divisible by the billing
increment integer, resulting in a slightly higher cost than might be
expected at first glance. This is the way it is supposed to work.
As I said, I only glanced at it briefly. Could you describe your changes
and the error you were seeing?
_______________________________________________
Asterisk-Users mailing list
Asterisk-Users@lists.digium.com
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users
_______________________________________________
Asterisk-Users mailing list
Asterisk-Users@lists.digium.com
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-users