diff options
author | Mark Wells <mark@freeside.biz> | 2014-12-23 21:01:03 -0800 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-12-24 10:58:41 -0800 |
commit | fcb43580b83129097a2abf53104ca29f3185d44b (patch) | |
tree | 5300e33e7b25d7a7c8b41f87dbe081a97b4b8eef /FS/FS/part_export.pm | |
parent | 403bd5f61004717ecfecf8c5211141939e3b7176 (diff) |
Thinktel VoIP provisioning, #32084
Diffstat (limited to 'FS/FS/part_export.pm')
-rw-r--r-- | FS/FS/part_export.pm | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm index 9d261f02d..7819a7c86 100644 --- a/FS/FS/part_export.pm +++ b/FS/FS/part_export.pm @@ -535,6 +535,23 @@ sub default_export_machine { die "no default export hostname for export ".$self->exportnum; } +=item svc_role SVC_X + +Returns the role that SVC_X occupies with respect to this export, if any. +This is part of the part_svc's export configuration. + +=cut + +sub svc_role { + my $self = shift; + my $svc_x = shift; + my $cust_svc = $svc_x->cust_svc or return ''; + my $export_svc = qsearchs('export_svc', { exportnum => $self->exportnum, + svcpart => $cust_svc->svcpart }) + or return ''; + $export_svc->role; +} + #these should probably all go away, just let the subclasses define em =item export_insert SVC_OBJECT @@ -683,6 +700,33 @@ sub info { }; } +=item get_dids SELECTION + +Does several things, which is unfortunate. DID phone numbers are organized +in a sort-of hierarchy: state, areacode, exchange, number. Or, for some +vendors: state, region, number. But not always that, either. + +SELECTION is one or more field/value pairs specifying parts of the hierarchy +that have already been selected. C<get_dids> will then return an arrayref of +the possible values for the next selection level. Note that these are not +actual DIDs except at the lowest level. + +Generally, 'state' alone will return an array of area codes or region names +in the state. + +'state' and 'areacode' together will return an array of exchanges (NXX +prefixes), or for some exports, an array of ratecenter names. + +'areacode' and 'exchange', or 'state' and 'ratecenter', or 'region' by itself +will return an array of actual DID numbers. + +Passing 'tollfree' with a true value will override the whole hierarchy and +return an array of tollfree numbers. + +=cut + +# no stub; can('get_dids') should return false by default + #default fallbacks... FS::part_export::DID_Common ? sub can_get_dids { 0; } sub get_dids_can_tollfree { 0; } @@ -692,6 +736,24 @@ sub get_dids_can_edit { 0; } #don't use without can_manual, otherwise the # inventory each edit sub get_dids_npa_select { 1; } +# get_dids_npa_select: if true, then prompt to select state, then area code, +# then city/exchange, then phone number. +# if false, then prompt to select state (actually province), then "region", +# then phone number. +# +# get_dids_can_manual: if true, then there will be a radio button to enter +# a phone number manually. +# +# get_dids_can_tollfree: if true, then the user will be prompted to choose +# both a regular and a toll-free number. The export can have a +# 'restrict_selection' option to enable only one or the other of those. See +# part_export/vitelity.pm for an example. +# +# get_dids_can_edit: if true, then the user can use the selector again to +# change the phone number for a service. if false, then they can't (have to +# reprovision completely). + + =back =head1 SUBROUTINES |