+sub e911send {
+ my($self, $svc_phone) = (shift, shift);
+
+ return '' if $self->option('disable_e911');
+
+ my %location = $svc_phone->location_hash;
+ my %e911send = (
+ 'did' => $svc_phone->phonenum,
+ 'address' => $location{'address1'},
+ 'city' => $location{'city'},
+ 'state' => $location{'state'},
+ 'zip' => $location{'zip'},
+ );
+ if ( $svc_phone->phone_name ) {
+ $e911send{'name'} = $svc_phone->phone_name;
+ } else {
+ my $cust_main = $svc_phone->cust_svc->cust_pkg->cust_main;
+ $e911send{'name'} = $cust_main->company || $cust_main->first. ' '.
+ $cust_main->get('last');
+ }
+ if ( $location{address2} =~ /^\s*(\w+)\W*(\d+)\s*$/ ) {
+ $e911send{'unittype'} = $1;
+ $e911send{'unitnumber'} = $2;
+ }
+
+ my $e911_result = $self->vitelity_command('e911send', %e911send);
+
+ return '' unless $result =~ /^(missingdata|invalid)/i;
+
+ return "Vitelity error provisioning E911 for". $svc_phone->phonenum.
+ ": $result";
+}
+