X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fmisc%2Fphonenums.cgi;h=aae04f5d1c6ba24bfe931b947cf3c5f5171e072e;hp=784a19016de1edb996ea68fd894e0310629320ee;hb=ded6a5654efd56d2f271970c992133600e0223b1;hpb=424ae31847c4fd44e6ed55ec275c8e668c7d2b51 diff --git a/httemplate/misc/phonenums.cgi b/httemplate/misc/phonenums.cgi index 784a19016..aae04f5d1 100644 --- a/httemplate/misc/phonenums.cgi +++ b/httemplate/misc/phonenums.cgi @@ -1,4 +1,4 @@ -<% objToJson(\@phonenums) %> +<% encode_json({ error => $error, phonenums => \@phonenums}) %>\ <%init> my( $exchangestring, $svcpart ) = $cgi->param('arg'); @@ -7,6 +7,7 @@ my $part_svc = qsearchs('part_svc', { 'svcpart'=>$svcpart } ); die "unknown svcpart $svcpart" unless $part_svc; my @phonenums = (); +my $error; if ( $exchangestring ) { @@ -21,21 +22,26 @@ if ( $exchangestring ) { my %opts = (); if ( $exchangestring eq 'tollfree' ) { $opts{'tollfree'} = 1; - } - elsif ( $exchangestring =~ /^([\w\s]+), ([A-Z][A-Z])$/ ) { + } 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 { + } else { $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i - or die "unparsable exchange: $exchangestring"; + or die "unparseable exchange: $exchangestring"; my( $areacode, $exchange ) = ( $1, $2 ); $opts{'areacode'} = $areacode; $opts{'exchange'} = $exchange; } - my $something = $export->get_dids(%opts); - @phonenums = @{ $something }; + local $@; + local $SIG{__DIE__}; + my $something = eval { $export->get_dids(%opts) }; + $error = $@; + + @phonenums = @{ $something } if $something; }