multiple DID provisioning, RT#13721
[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       $opts{'ratecenter'} = $1;
27       $opts{'state'} = $2;
28   }
29   else {
30       $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
31         or die "unparsable exchange: $exchangestring";
32       my( $areacode, $exchange ) = ( $1, $2 );
33       $opts{'areacode'} = $areacode;
34       $opts{'exchange'} = $exchange;
35   }
36
37   my $something = $export->get_dids(%opts);
38   @phonenums = @{ $something };
39
40 }
41
42 </%init>