Ronald Wiplinger
2005-Jul-23 03:28 UTC
[Asterisk-Users] ASTCC gives me only the time, but no cost
I try to track down an error that causes that Astcc just reports the time, but
not the costs.
I could narrow the problem down into this sub routine:
sub calccost() {
my ($adjconn, $adjcost, $answeredtime, $increment) = @_;
eval { my $adjtime = int(($answeredtime + $increment - 1) / $increment) *
$increment };
my $cost;
print STDERR "Adjusted time is $adjtime, cost is $adjcost with $adjconn
fee\n";
eval { $cost = int($adjcost * $adjtime / 60) };
$cost += $adjconn;
print STDERR "Total cost is $cost\n";
return $cost;
I have added changes some lines
} elsif ($res eq "ANSWER") {
--> my $increment = $carddata->{inc};
--x my $cost = &calccost($adjconn, $adjcost,
$answeredtime, $increment);
--> print STDERR " adjconn is $adjconn\n adjcost is
$adjcost\n answeredtime is $answeredtime\n \
inc is $carddata->{inc}\n increment is $increment";
$carddata->{used} += $cost;
print STDERR "Total used is now
$carddata->{used}\n";
&savecdr($cardno, $callerid, $phoneno, $trunk, $res,
$answeredtime, $cost,$callstart);
&savedata($carddata);
The result is:
[Jul 23 12:20:29] == Spawn extension (Line-optimize, 901185228376786, 512)
exited non-zero on 'Local/901185228376786@Line-optimize-3a9b,2'
res is ANSWER, answered time is 26
Adjusted time is , cost is 603 with 0 fee
Total cost is 0
adjconn is 0
adjcost is 603
answeredtime is 26
inc is 6
Total used is now 70
Why? What do I need to correct?
bye
Ronald Wiplinger
[Jul 23 12:20:29] -- AGI Script astcc.agi completed, returning 0
Darren Wiebe
2005-Jul-23 06:42 UTC
[Asterisk-Users] ASTCC gives me only the time, but no cost
The problem is in the line beginning with eval. It should read as follows.
my $adjtime = eval { $adjtime = int((($answeredtime -
$numdata->{includedseconds}) + $increment - 1) / $increment) * $increment;
return $adjtime };
Darren Wiebe
darren@aleph-com.net
Ronald Wiplinger wrote:
> I try to track down an error that causes that Astcc just reports the
> time, but not the costs.
>
>
> I could narrow the problem down into this sub routine:
>
>
> sub calccost() {
> my ($adjconn, $adjcost, $answeredtime, $increment) = @_;
> eval { my $adjtime = int(($answeredtime + $increment - 1) /
> $increment) * $increment };
> my $cost;
> print STDERR "Adjusted time is $adjtime, cost is $adjcost with
> $adjconn fee\n";
> eval { $cost = int($adjcost * $adjtime / 60) };
> $cost += $adjconn;
> print STDERR "Total cost is $cost\n";
> return $cost;
>
>
> I have added changes some lines
>
> } elsif ($res eq "ANSWER") {
> --> my $increment = $carddata->{inc};
> --x my $cost = &calccost($adjconn, $adjcost,
> $answeredtime, $increment);
> --> print STDERR " adjconn is $adjconn\n adjcost
is
> $adjcost\n answeredtime is $answeredtime\n \
> inc is $carddata->{inc}\n increment is
$increment";
> $carddata->{used} += $cost;
> print STDERR "Total used is now
$carddata->{used}\n";
> &savecdr($cardno, $callerid, $phoneno, $trunk,
> $res, $answeredtime, $cost,$callstart);
> &savedata($carddata);
>
>
> The result is:
> [Jul 23 12:20:29] == Spawn extension (Line-optimize,
> 901185228376786, 512) exited non-zero on
> 'Local/901185228376786@Line-optimize-3a9b,2'
> res is ANSWER, answered time is 26
> Adjusted time is , cost is 603 with 0 fee
> Total cost is 0
> adjconn is 0
> adjcost is 603
> answeredtime is 26
> inc is 6
> Total used is now 70
>
> Why? What do I need to correct?
>
>
> bye
>
> Ronald Wiplinger
> [Jul 23 12:20:29] -- AGI Script astcc.agi completed, returning 0
>
>
>
>
>
>
> _______________________________________________
> 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
>
Ronald Wiplinger
2005-Jul-23 07:32 UTC
[Asterisk-Users] ASTCC gives me only the time, but no cost
Darren Wiebe wrote:> The problem is in the line beginning with eval. It should read as > follows. > > my $adjtime = eval { $adjtime = int((($answeredtime - > $numdata->{includedseconds}) + $increment - 1) / $increment) * > $increment; > return $adjtime }; >Thanks, I solved it by removing "$adjtime = eval" Are there other errors in the cvs verion? bye Ronald Wiplinger