Freeside:4:Documentation:Developer/FS/svc phone

From Freeside
< Freeside:4:Documentation:Developer‎ | FS
Revision as of 08:30, 18 November 2015 by Jeremyd (talk | contribs) (Edit via perl MediaWiki framework (1.13))

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


FS::svc_phone - Object methods for svc_phone records


 use FS::svc_phone;

 $record = new FS::svc_phone \%hash;
 $record = new FS::svc_phone { 'column' => 'value' };

 $error = $record->insert;

 $error = $new_record->replace($old_record);

 $error = $record->delete;

 $error = $record->check;

 $error = $record->suspend;

 $error = $record->unsuspend;

 $error = $record->cancel;


An FS::svc_phone object represents a phone number. FS::svc_phone inherits from FS::Record. The following fields are currently supported:

primary key
countrycode; phonenum; sim_imsi
sip_password; pin
Voicemail PIN
phone_name; pbxsvc
Optional svcnum from svc_pbx
Forwarding destination
Email address for virtual fax (fax-to-email) services
LNP Status (can be null, native, portedin, portingin, portin-reject, portingout, portout-reject)
portable; lrn; lnp_desired_due_date; lnp_due_date; lnp_other_provider
If porting the number in or out, name of the losing or winning provider, respectively.
Account number of other provider. See lnp_other_provider.
See lnp_status. If lnp_status is portin-reject or portout-reject, this is an optional reject reason.
Class of Service for E911 service (per the NENA 2.1 standard).
Type of Service for E911 service.
The FS::svc_circuit record for the physical circuit that transports this phone line.
The hostname of the SIP server that this phone number is routed to.


Creates a new phone number. To add the number to the database, see "insert".
Note that this stores the hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the hash method.
search_sql STRING
Class method which returns an SQL fragment to search for the given string.
Returns the phone number.
Adds this phone number to the database. If there is an error, returns the error, otherwise returns false.
Delete this record from the database.
replace OLD_RECORD
Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false.
Called by the suspend method of FS::cust_pkg (see FS::cust_pkg).
Called by the unsuspend method of FS::cust_pkg (see FS::cust_pkg).
Called by the cancel method of FS::cust_pkg (see FS::cust_pkg).
Checks all fields to make sure this is a valid phone number. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods.
_check duplicate
Internal method to check for duplicate phone numers.
Checks the supplied PIN against the PIN in the database. Returns true for a sucessful authentication, false if no match.
radius_reply; radius_check; sms_cdr_carrier
Returns the FS::cdr_carrier assigned as the SMS carrier for this phone.
Returns the name of the SMS carrier, or an empty string if there isn't one.
Returns the FS::svc_circuit assigned as the trunk for this phone line.
Returns the label of the circuit (the part_svc label followed by the circuit ID), or an empty string if there isn't one.
Returns any FS::phone_device records associated with this service.
Returns the phone_name field if it has a value, or the package contact name if there is one, or the customer contact name.
psearch_cdrs OPTIONS
Returns a paged search (FS::PagedSearch) for Call Detail Records associated with this service. By default, "associated with" means that either the "src" or the "charged_party" field of the CDR matches the "phonenum" field of the service. To access the CDRs themselves, call "->fetch" on the resulting object.
Accepts the following options:
for_update => 1: SELECT the CDRs "FOR UPDATE".
status => "" (or "processing-tiered", "done"): Return only CDRs with that processing status.
inbound => 1: Return CDRs for inbound calls (that is, those that match on 'dst'). With "status", will filter on inbound processing status.
default_prefix => "XXX": Also accept the phone number of the service prepended with the chosen prefix.
begin, end: Start and end of a date range, as unix timestamp.
cdrtypenum: Only return CDRs with this type.
calltypenum: Only return CDRs with this call type.
disable_src => 1: Only match on 'charged_party', not 'src'.
disable_charged_party => 1: Only match on 'src', not 'charged_party'.
nonzero: Only return CDRs where duration > 0.
by_svcnum: not supported for svc_phone
billsec_sum: Instead of returning all of the CDRs, return a single record (as an FS::cdr object) with the sum of the 'billsec' field over the entire result set.
get_cdrs (DEPRECATED)
Like psearch_cdrs, but returns all the FS::cdr objects at once, in a single list. Arguments are the same as for psearch_cdrs. This can take an unreasonably large amount of memory and is best avoided.
Takes the same options as psearch_cdrs, but returns a single row containing "count" (the number of CDRs) and the sums of the following fields: duration, billsec, rated_price, rated_seconds, rated_minutes.
Note that if any calls are not rated, their rated_* fields will be null. If you want to use those fields, pass the 'status' option to limit to calls that have been rated. This is intentional; please don't "fix" it.


Returns a hashref of allowed values and descriptions for the e911_class field.
Returns a hashref of allowed values and descriptions for the e911_type field.



FS::svc_Common, FS::Record, FS::cust_svc, FS::part_svc, FS::cust_pkg, schema.html from the base documentation.


Hey! The above document had some coding errors, which are explained below:

Around line 805:
You can't have =items (as at line 809) unless the first thing after the =over is an =item