Type of Service for E911 service.
+=item circuit_svcnum
+
+The L<FS::svc_circuit> record for the physical circuit that transports this
+phone line.
+
+=item sip_server
+
+The hostname of the SIP server that this phone number is routed to.
+
=back
=head1 METHODS
select_table => 'svc_domain',
select_key => 'svcnum',
select_label => 'domain',
+ select_allow_empty => 1,
disable_inventory => 1,
},
+ 'circuit_svcnum' => { label => 'Circuit',
+ type => 'select',
+ select_table => 'svc_circuit',
+ select_key => 'svcnum',
+ select_label => 'label',
+ select_allow_empty=> 1,
+ disable_inventory => 1,
+ },
+
'sms_carrierid' => { label => 'SMS Carrier',
type => 'select',
select_table => 'cdr_carrier',
disable_inventory => 1,
multiple => 1,
},
+ 'sip_server' => {
+ label => 'SIP Host',
+ %dis2,
+ },
},
};
}
=cut
-sub insert {
- my $self = shift;
- my %options = @_;
+sub preinsert_hook_first {
+ my( $self, %options ) = @_;
- if ( $DEBUG ) {
- warn "[$me] insert called on $self: ". Dumper($self).
- "\nwith options: ". Dumper(%options);
- }
-
- local $SIG{HUP} = 'IGNORE';
- local $SIG{INT} = 'IGNORE';
- local $SIG{QUIT} = 'IGNORE';
- local $SIG{TERM} = 'IGNORE';
- local $SIG{TSTP} = 'IGNORE';
- local $SIG{PIPE} = 'IGNORE';
-
- my $oldAutoCommit = $FS::UID::AutoCommit;
- local $FS::UID::AutoCommit = 0;
- my $dbh = dbh;
+ return '' unless $options{'cust_location'};
#false laziness w/cust_pkg.pm... move this to location_Mixin? that would
#make it more of a base class than a mixin... :)
- if ( $options{'cust_location'} ) {
- my $error = $options{'cust_location'}->find_or_insert;
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return "inserting cust_location (transaction rolled back): $error";
- }
- $self->locationnum( $options{'cust_location'}->locationnum );
- }
+ $options{'cust_location'}->custnum( $self->cust_svc->cust_pkg->custnum );
+ my $error = $options{'cust_location'}->find_or_insert;
+ return "inserting cust_location (transaction rolled back): $error"
+ if $error;
+ $self->locationnum( $options{'cust_location'}->locationnum );
#what about on-the-fly edits? if the ui supports it?
- my $error = $self->SUPER::insert(%options);
- if ( $error ) {
- $dbh->rollback if $oldAutoCommit;
- return $error;
- }
-
- $dbh->commit or die $dbh->errstr if $oldAutoCommit;
'';
}
'native', 'portin-reject', 'portout-reject'])
|| $self->ut_enumn('portable', ['','Y'])
|| $self->ut_textn('lnp_reject_reason')
+ || $self->ut_domainn('sip_server')
;
return $error if $error;
=item sms_cdr_carrier
+Returns the L<FS::cdr_carrier> assigned as the SMS carrier for this phone.
+
=cut
sub sms_cdr_carrier {
=item sms_carriername
+Returns the name of the SMS carrier, or an empty string if there isn't one.
+
=cut
sub sms_carriername {
$cdr_carrier->carriername;
}
+=item svc_circuit
+
+Returns the L<FS::svc_circuit> assigned as the trunk for this phone line.
+
+=item circuit_label
+
+Returns the label of the circuit (the part_svc label followed by the
+circuit ID), or an empty string if there isn't one.
+
+=cut
+
+sub svc_circuit {
+ my $self = shift;
+ my $svcnum = $self->get('circuit_svcnum') or return '';
+ return FS::svc_circuit->by_key($svcnum);
+}
+
+sub circuit_label {
+ my $self = shift;
+ my $svc_circuit = $self->svc_circuit or return '';
+ return join(' ', $svc_circuit->part_svc->svc, $svc_circuit->circuit_id);
+}
+
=item phone_device
Returns any FS::phone_device records associated with this service.