+
+my %opts = ();
+if ( $exchangestring eq 'tollfree' ) {
+ $opts{'tollfree'} = 1;
+}
+elsif ( $exchangestring =~ /^([\w\s]+), ([A-Z][A-Z])$/ ) {
+ $opts{'ratecenter'} = $1;
+ $opts{'state'} = $2;
+}
+else {
+ $exchangestring =~ /\((\d{3})-(\d{3})-XXXX\)\s*$/i
+ or die "unparsable exchange: $exchangestring";
+ my( $areacode, $exchange ) = ( $1, $2 );
+ $opts{'areacode'} = $areacode;
+ $opts{'exchange'} = $exchange;
+}