[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. |