<& elements/svc_Common.html, 'table' => 'svc_phone', 'fields' => \@fields, 'labels' => \%labels, 'html_foot' => $html_foot, &> <%init> 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' => '('. mt('hidden') .')', }; } 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'; my $html_foot = sub { my $svc_phone = shift; ### # E911 Info ### my $e911 = emt('E911 Information'). &ntable("#cccccc"). ''. ntable("#cccccc",2). ''.emt('Location').''. ''. $svc_phone->location_label( 'join_string' => '
', 'double_space' => '   ', 'escape_function' => \&encode_entities, 'countrydefault' => $countrydefault, ). ''. ''. '
' ; ### # Devices ### #remove this when svc_phone isa device_Common, as elements/svc_Common will display it my $devices = include('/view/elements/svc_devices.html', 'svc_x' => $svc_phone, 'table' => 'phone_device', ); my $status = include('/view/elements/svc_export_status.html', $svc_phone ); ## # CDR links ## tie my %what, 'Tie::IxHash', 'pending' => 'NULL', 'billed' => 'done', 'skipped' => 'failed', ; my $number = $svc_phone->phonenum; $number = $svc_phone->countrycode. $number unless $svc_phone->countrycode eq '1'; #src & charged party as per voip_cdr.pm #XXX handle toll free too my $search = "charged_party_or_src="; my $cust_pkg = $svc_phone->cust_svc->cust_pkg; if ( $cust_pkg ) { #XXX handle voip_inbound too my @part_pkg = grep { $_->plan eq 'voip_cdr' } $cust_pkg->part_pkg->self_and_bill_linked; foreach my $prefix (grep $_, map $_->option('default_prefix'), @part_pkg) { $number .= ",$prefix$number"; } $search = 'charged_party=' unless !@part_pkg || grep { ! $_->option('disable_src',1) } @part_pkg; } $search .= $number; my @links = map { qq(). "View $_ CDRs"; } keys(%what); my @ilinks = ( qq(). 'View incoming CDRs' ); ### # concatenate & return ### $e911. #$devices. $status. join(' | ', @links ). '
'. join(' | ', @ilinks). '
'; };