+my $conf = new FS::Conf;
+my $countrydefault = $conf->config('countrydefault') || 'US';
+
+my $fields = FS::svc_phone->table_info->{'fields'};
+my %labels = map { $_ => ( ref($fields->{$_})
+ ? $fields->{$_}{'label'}
+ : $fields->{$_}
+ );
+ } keys %$fields;
+
+my @fields = qw( countrycode phonenum sim_imsi );
+push @fields, 'domain' if $conf->exists('svc_phone-domain');
+
+$labels{forward_svcnum} = mt('Route to service');
+push @fields, { field => 'forward_svcnum',
+ link => [ $p.'view/cust_svc.cgi?', 'forward_svcnum' ],
+ value_callback => sub {
+ my $self = shift;
+ if ($self->forward_svcnum) {
+ my $cust_svc = FS::cust_svc->by_key($self->forward_svcnum);
+ if ( $cust_svc ) {
+ return $cust_svc->svc_x->label;
+ }
+ }
+ '';
+ },
+ };
+
+
+push @fields, qw( pbx_title );
+$labels{pbx_title} = 'PBX';
+
+if ( $conf->exists('showpasswords') ) {
+ push @fields, qw( sip_password );
+} else {
+ push @fields, { 'field' => 'sip_password', #'_HIDDEN_sip_password',
+ 'type' => 'fixed',
+ 'value' => '<I>('. mt('hidden') .')</I>',
+ };
+}
+
+push @fields, qw( pin phone_name forwarddst email );
+
+push @fields, { field => 'sms_carrierid',
+ #type=>'cdr_carrier',
+ value_callback => sub {
+ $_[0]->sms_carriername,
+ },
+ },
+ 'sms_account',
+ 'max_simultaneous',
+;
+
+if ( $conf->exists('svc_phone-lnp') ) {
+ push @fields, 'lnp_status',
+ 'lnp_reject_reason',
+ { field => 'portable', type => 'checkbox', },
+ 'lrn',
+ { field => 'lnp_desired_due_date', type => 'date', },
+ { field => 'lnp_due_date', type => 'date', },
+ 'lnp_other_provider',
+ 'lnp_other_provider_account',
+ ;
+}
+
+$labels{circuit_label} = mt('Circuit');
+push @fields, { field => 'circuit_label',
+ link => [ $p.'view/svc_circuit.cgi?', 'circuit_svcnum' ]
+ };
+
+push @fields, 'sip_server';
+