optimize CDR rating after timed rate perf regression, RT#15739
[freeside.git] / httemplate / misc / phonenums.cgi
1 <% objToJson(\@phonenums) %>
2 <%init>
3
4 my( $exchangestring, $svcpart ) = $cgi->param('arg');
5
6 my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } );
7 die "unknown svcpart $svcpart" unless $part_svc;
8
9 my @phonenums = ();
10
11 if ( $exchangestring ) {
12
13   my @exports = $part_svc->part_export_did;
14   if ( scalar(@exports) > 1 ) {
15     die "more than one DID-providing export attached to svcpart $svcpart";
16   } elsif ( ! @exports ) {
17     die "no DID providing export attached to svcpart $svcpart";
18   }
19   my $export = $exports[0];
20     
21   my %opts = ();
22   if ( $exchangestring eq 'tollfree' ) {
23       $opts{'tollfree'} = 1;
24   }
25   #elsif ( $exchangestring =~ /^([\w\s\:\,\(\)\-]+), ([A-Z][A-Z])$/ ) {
26   elsif ( $exchangestring =~ /^(.+), ([A-Z][A-Z])$/ ) {
27       $opts{'ratecenter'} = $1;
28       $opts{'state'} = $2;
29   }
30   else {
31       $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
32         or die "unparsable exchange: $exchangestring";
33       my( $areacode, $exchange ) = ( $1, $2 );
34       $opts{'areacode'} = $areacode;
35       $opts{'exchange'} = $exchange;
36   }
37
38   my $something = $export->get_dids(%opts);
39   @phonenums = @{ $something };
40
41 }
42
43 </%init>