X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fphonenums.cgi;h=aae04f5d1c6ba24bfe931b947cf3c5f5171e072e;hp=2ed0f617df1e17e293c2fdc9247d81c8ddbc6c1c;hb=ded6a5654efd56d2f271970c992133600e0223b1;hpb=63a268637b2d51a8766412617724b9436439deb6 diff --git a/httemplate/misc/phonenums.cgi b/httemplate/misc/phonenums.cgi index 2ed0f617d..aae04f5d1 100644 --- a/httemplate/misc/phonenums.cgi +++ b/httemplate/misc/phonenums.cgi @@ -1,29 +1,48 @@ -%# [ <% join(', ', map { qq("$_") } @exchanges) %> ] -<% objToJson(\@exchanges) %> +<% encode_json({ error => $error, phonenums => \@phonenums}) %>\ <%init> my( $exchangestring, $svcpart ) = $cgi->param('arg'); -$exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i - or die "unparsable exchange: $exchangestring"; -my( $areacode, $exchange ) = ( $1, $2 ); my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } ); die "unknown svcpart $svcpart" unless $part_svc; -my @exports = $part_svc->part_export_did; -if ( scalar(@exports) > 1 ) { - die "more than one DID-providing export attached to svcpart $svcpart"; -} elsif ( ! @exports ) { - die "no DID providing export attached to svcpart $svcpart"; -} -my $export = $exports[0]; +my @phonenums = (); +my $error; + +if ( $exchangestring ) { -my $something = $export->get_dids('areacode'=>$areacode, - 'exchange'=>$exchange, - ); + my @exports = $part_svc->part_export_did; + if ( scalar(@exports) > 1 ) { + die "more than one DID-providing export attached to svcpart $svcpart"; + } elsif ( ! @exports ) { + die "no DID providing export attached to svcpart $svcpart"; + } + my $export = $exports[0]; + + my %opts = (); + if ( $exchangestring eq 'tollfree' ) { + $opts{'tollfree'} = 1; + } elsif ( $exchangestring =~ /^_REGION (.*)$/ ) { + $opts{'region'} = $1; + #} elsif ( $exchangestring =~ /^([\w\s\:\,\(\)\-]+), ([A-Z][A-Z])$/ ) { + } elsif ( $exchangestring =~ /^(.+), ([A-Z][A-Z])$/ ) { + $opts{'ratecenter'} = $1; + $opts{'state'} = $2; + } else { + $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i + or die "unparseable exchange: $exchangestring"; + my( $areacode, $exchange ) = ( $1, $2 ); + $opts{'areacode'} = $areacode; + $opts{'exchange'} = $exchange; + } -#warn Dumper($something); + local $@; + local $SIG{__DIE__}; + my $something = eval { $export->get_dids(%opts) }; + $error = $@; -my @exchanges = @{ $something }; + @phonenums = @{ $something } if $something; + +}