[Astpp-commit] SF.net SVN: astpp:[2212] trunk
Brought to you by:
darrenkw
|
From: <dar...@us...> - 2008-11-25 06:23:01
|
Revision: 2212
http://astpp.svn.sourceforge.net/astpp/?rev=2212&view=rev
Author: darrenkw
Date: 2008-11-25 06:22:52 +0000 (Tue, 25 Nov 2008)
Log Message:
-----------
Add Thirdlane(tm) specific code.
Modified Paths:
--------------
trunk/astpp-common.pl
trunk/sql/astpp-2008-11-24.sql
Modified: trunk/astpp-common.pl
===================================================================
--- trunk/astpp-common.pl 2008-11-25 05:24:17 UTC (rev 2211)
+++ trunk/astpp-common.pl 2008-11-25 06:22:52 UTC (rev 2212)
@@ -1721,9 +1721,27 @@
sub get_route() {
my ( $astpp_db, $config, $destination, $pricelist, $carddata, $type ) = @_;
my ( $record, $sql, $tmp );
-
- if ($type !~ /ASTPP-DID/)
- {
+ if ($type =~ /ASTPP-DID/) {
+ print STDERR "Call belongs to a DID.\n";
+ $record = &get_did_reseller($astpp_db,$destination,$carddata->{reseller}) if $carddata->{reseller} ne "";
+ $record = &get_did($astpp_db,$destination) if $carddata->{reseller} eq "";
+ $record->{comment} = $record->{city} . "," . $record->{province} . "," . $record->{country};
+ $record->{pattern} = "DID:" . $destination;
+ my $branddata = &get_pricelist( $astpp_db, $pricelist);
+ print STDERR "pattern: $record->{pattern}\n" if $record->{pattern};
+ }
+ elsif ($config->{thirdlane_mods} == 1 && $type =~ m/.\d\d\d-IN/) {
+ print STDERR "Call belongs to a Thirdlane(tm) DID.\n";
+ $destination = $type =~ s/-IN//g;
+ print STDERR "Destination: $destination \n";
+ $record = &get_did_reseller($astpp_db,$destination,$carddata->{reseller}) if $carddata->{reseller} ne "";
+ $record = &get_did($astpp_db,$destination) if $carddata->{reseller} eq "";
+ $record->{comment} = $record->{city} . "," . $record->{province} . "," . $record->{country};
+ $record->{pattern} = "DID:" . $destination;
+ my $branddata = &get_pricelist( $astpp_db, $pricelist);
+ print STDERR "pattern: $record->{pattern}\n" if $record->{pattern};
+ }
+ else {
my @pricelists = split ( m/,/m, $pricelist );
foreach my $pricelistname (@pricelists) {
$pricelistname =~ s/"//g; #Strip off quotation marks
@@ -1759,16 +1777,6 @@
}
print STDERR "Route: $record->{comment} Cost: $record->{cost} Pricelist: $record->{pricelist} Pattern: $record->{pattern}\n" if $record;
}
- elsif ($type =~ /ASTPP-DID/)
- {
- print STDERR "Call belongs to a DID.\n";
- $record = &get_did_reseller($astpp_db,$destination,$carddata->{reseller}) if $carddata->{reseller} ne "";
- $record = &get_did($astpp_db,$destination) if $carddata->{reseller} eq "";
- $record->{comment} = $record->{city} . "," . $record->{province} . "," . $record->{country};
- $record->{pattern} = "DID:" . $destination;
- my $branddata = &get_pricelist( $astpp_db, $pricelist);
- print STDERR "pattern: $record->{pattern}\n" if $record->{pattern};
- }
if ( $record->{inc} eq "" || $record->{inc} == 0 ) {
my $branddata = &get_pricelist( $astpp_db, $pricelist);
$record->{inc} = $branddata->{inc};
@@ -3908,16 +3916,23 @@
sub cleanup_cdrs() {
my ($cdr_db, $config) = @_;
# First we cleanup all calls that are not answered
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'NO ANSWER'") if $config->{astcdr} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'NO ANSWER'") if $config->{astcdr} == 1 && $config->{trackvendorcharges} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'BUSY'") if $config->{astcdr} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'BUSY'") if $config->{astcdr} == 1 && $config->{trackvendorcharges} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'FAILED'") if $config->{astcdr} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'FAILED'") if $config->{astcdr} == 1 && $config->{trackvendorcharges} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'CONGESTION'") if $config->{astcdr} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'CONGESTION'") if $config->{astcdr} == 1 && $config->{trackvendorcharges} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'CANCEL'") if $config->{astcdr} == 1;
- $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'CANCEL'") if $config->{astcdr} == 1 && $config->{trackvendorcharges} == 1;
+ if ($config->{astcdr} == 1) {
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'NO ANSWER'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'BUSY'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'FAILED'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'CONGESTION'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET cost = '0' WHERE disposition REGEXP 'CANCEL'");
+ if ($config->{trackvendorcharges} == 1) {
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'NO ANSWER'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'BUSY'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'FAILED'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'CONGESTION'");
+ $cdr_db->do("UPDATE $config->{asterisk_cdr_table} SET vendor = '0' WHERE disposition REGEXP 'CANCEL'");
+ }
+ if ($config->{thirdlane_mods} == 1) {
+ $cdr_db->do("UPDATE cdr SET accountcode = userfield WHERE accountcode IN ('',NULL)");
+ }
+ }
}
sub print_csv { # Print CDRS on rated calls.
@@ -3950,6 +3965,11 @@
print STDERR
"disposition: $cdrinfo->{disposition} Pricelist: $carddata->{pricelist} reseller: $carddata->{reseller}\n";
if ( $cdrinfo->{disposition} =~ /^ANSWERED$/ || $cdrinfo->{disposition} eq "NORMAL_CLEARING") {
+# if ($config->{thirdlane_mods} == 1 && $cdrinfo->{userfield} =~ m/.\d\d\d-IN/) {
+# print STDERR "Call belongs to a Thirdlane(tm) DID.\n";
+# $cdrinfo->{dst} =~ s/-IN//g;
+# print STDERR "Destination: $cdrinfo->{dst} \n";
+# }
$numdata = &get_route( $astpp_db, $config, $cdrinfo->{dst}, $carddata->{pricelist}, $carddata, $cdrinfo->{userfield} );
print STDERR "PATTERN: $numdata->{pattern}";
if ( !$numdata->{pattern} ) {
Modified: trunk/sql/astpp-2008-11-24.sql
===================================================================
--- trunk/sql/astpp-2008-11-24.sql 2008-11-25 05:24:17 UTC (rev 2211)
+++ trunk/sql/astpp-2008-11-24.sql 2008-11-25 06:22:52 UTC (rev 2212)
@@ -776,6 +776,9 @@
INSERT INTO system (name, value, comment, timestamp) VALUES (
'astman_secret', 'amp111','Asterisk(tm) Manager Interface Secret', '');
+------ 3rd Party PBX Mods
+INSERT INTO system (name, value, comment, timestamp) VALUES (
+'thirdlane_mods','0','Provides a few different modifications across the rating code to work better with Thirdlane(tm) cdrs.','');
--
-- Enough Configuration settings
@@ -1298,3 +1301,10 @@
user VARCHAR(50),
PRIMARY KEY (`id`));
+CREATE TABLE sql_commands (
+id INTEGER NOT NULL AUTO_INCREMENT,
+name VARCHAR(45) NOT NULL default '',
+sql TEXT NOT NULL default '',
+comment TEXT NOT NULL default '',
+timestamp TIMESTAMP NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
+ PRIMARY KEY (`id`));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|