#! /usr/bin/perl

my $DE=1;

# expand A:+ to all "dangerous" countrys i.e Dom.Rep +1...

use strict;
my $CO = '/usr/lib/isdn/country-de.dat';
my $DAT = $DE ? 'rate-de.dat' : 'rate-at.dat';
my (@all);
my ($n, @a, @c, $c);
open(IN,$CO) || die("Can't read $CO");
while (<IN>) {
    chomp;
    s/\s*(#.*)?$//;
    if (/^N:(.*)/) {
	$n = $1;
	foreach $c (@c) {
	    if($c =~ /^\+[1]/) { 	# [17]
		push(@all, $n);
		last;
	    }		
	}
	@a=@c=();
    }   
    elsif (/^A:(.*)/) {
#	@a = split(/\s*,\s*/,$1);
    }    
    elsif (/^C:(.*)/) {
	@c = split(/\s*,\s*/,$1);
    }    
}
foreach $c (@c) {
    if($c =~ /^\+[17]/) {
	push(@all, $n, @a);
	last;
    }		
}
close(IN);
my ($pnum, %a, %ao, $len);

foreach (@all) {
    $ao{$_}=$_;
}
open(IN,$DAT) || die("Can't read $DAT");
while (<IN>) {
    chomp;
    s/\s*(#.*)?$//;
    if (/^P:\s*(\d+(,\d+)?)/) {
	$pnum=$1;
	@c=();
    }
    elsif (/^A:(.*)/) {	
	if ($1 eq '+') {
	    %a=%ao;
	    foreach $c (@c) {
		delete $a{$c} if(defined($a{$c}));
	    }
	    print "P:$pnum\n";
	    print "A:" if ($DE);
	    $len=2;
	    foreach $c (keys(%a)) {
		print "$c"; 
		$len += length($c)+1;
		if($DE && $len>65) {
		    print "\nA:";
		    $len=2;
		}
		else {
		  print ",";
		}  
	    }
	    print "+" if($DE && keys(%a));
	    print "\n";				
	    next;
	}
	push(@c, split(/\s*,\s*/,$1));
    }    
}
close(IN);
    