From Freeside
< Freeside:4:Documentation:Developer
Revision as of 08:16, 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 - Freeside Perl modules


Freeside perl modules and CLI utilities.

Utility classes

FS::Schema - Freeside database schema

FS::Setup - Setup subroutines

FS::Upgrade - Upgrade subroutines

FS::Conf - Freeside configuration values

FS::ConfItem - Freeside configuration option meta-data.

FS::ConfDefaults - Freeside configuration default and available values

FS::UID - User class (not yet OO)

FS::CurrentUser - Package representing the current user

FS::CGI - Non OO-subroutines for the web interface.

FS::Locales - Locales

FS::Msgcat - Message catalog

FS::SearchCache - Search cache

FS::AccessRight - Access control rights.

FS::Report - Report data objects

FS::Report::Table - Report data objects

FS::Report::Table::Monthly - Report data objects

FS::XMLRPC - Backend XML::RPC server

FS::Misc - Miscellaneous subroutines

FS::payby - Payment types

FS::ClientAPI_SessionCache - ClientAPI session cache

FS::Pony - A pony

FS::cust_main::Search - Customer searching

FS::cust_main::Import - Batch customer importing

Database record classes

FS::Record - Database record base class

FS::m2m_Common - Mixin class for classes in a many-to-many relationship

FS::m2name_Common - Base class for tables with a related table listing names

FS::option_Common - Base class for option sub-classes

FS::class_Common - Base class for classification classes

FS::category_Common - Base class for category (grooups of classifications) classes

FS::conf - Configuration value class

FS::payinfo_Mixin - Mixin class for records in tables that contain payinfo.

FS::access_user - Employees / internal users

FS::access_user_session - Access sessions

FS::access_user_pref - Employee preferences

FS::access_group - Employee groups

FS::access_usergroup - Employee group membership

FS::access_groupagent - Group reseller access

FS::access_right - Access rights

FS::sched_item - Installers / schedulable resources

FS::sched_avail - Installer/resource availability

FS::svc_acct_pop - POP (Point of Presence, not Post Office Protocol) class

FS::part_pop_local - Local calling area class

FS::part_referral - Referral class

FS::pkg_referral - Package referral class

FS::cust_main_county - Locale (tax rate) class

FS::cust_tax_exempt - Tax exemption record class

FS::cust_tax_adjustment - Tax adjustment record class

FS::cust_tax_exempt_pkg - Line-item specific tax exemption record class

FS::svc_Common - Service base class

FS::svc_Parent_Mixin - Mixin class for svc_ classes with a parent_svcnum field

FS::svc_acct - Account (shell, RADIUS, POP3) class

FS::acct_snarf - External mail account class

FS::acct_rt_transaction - Time worked application to account class

FS::radius_usergroup - RADIUS user group membership

FS::radius_group - RADIUS groups

FS::svc_domain - Domain class

FS::domain_record - DNS zone entries

FS::registrar - Domain registrar class

FS::cgp_rule - Communigate pro rule class

FS::cgp_rule_condition - Communigate pro rule condition class

FS::cgp_rule_action - Communigate pro rule action class

FS::svc_forward - Mail forwarding class

FS::svc_mailinglist - (Customer) Mailing list class

FS::mailinglist - Mailing list class

FS::mailinglistmember - Mailing list member class

FS::svc_www - Web virtual host class.

FS::svc_broadband - DSL, wireless and other broadband class.

FS::svc_dsl - DSL

FS::dsl_device - DSL device MAC addresses

FS::dsl_note - DSL order notes

FS::addr_block - Address block class

FS::router - Router class

FS::tower - Tower class

FS::tower_sector - Tower sector class

FS::part_virtual_field - Broadband virtual field class

FS::svc_phone - Phone service class

FS::phone_device - Phone device class

FS::part_device - Device definition class

FS::phone_avail - Phone number availability cache

FS::lata - LATA number to name mapping class

FS::msa - MSA number to name mapping class

FS::rate_center - Rate center list (for bulk DID orders)

FS::did_vendor - Bulk DID order vendor class

FS::did_order - Bulk DID order class

FS::did_order_item - Bulk DID order item class

FS::cdr - Call Detail Record class

FS::cdr_batch - Call Detail Record batch class

FS::cdr_calltype - CDR calltype class

FS::cdr_carrier - CDR carrier class

FS::cdr_type - CDR type class

FS::svc_external - Externally tracked service class.

FS::svc_pbx - PBX service class

FS::pbx_extension - PBX extension class

FS::pbx_device - PBX device class

FS::svc_cert - Certificate service class

FS::svc_dish - Dish network service class

FS::svc_cable - Cable service class

FS::cable_model - Cable-modem model class

FS::cable_provider - Cable provider class

FS::svc_alarm - Alarm service class

FS::alarm_system - Alarm system class

FS::alarm_type - Alarm type (inputs and outputs) class

FS::alarm_station - Alarm central station class

FS::svc_conferencing - Conferencing service class

FS::conferencing_type - Conferencing type class

FS::conferencing_quality - Conferencing quality class

FS::svc_video - Video (IPTV/video-on-demand) service class

FS::inventory_class - Inventory classes

FS::inventory_item - Inventory items

FS::part_svc - Service definition class

FS::part_svc_class - Service class class

FS::part_svc_column - Column constraint class

FS::export_svc - Class linking service definitions (see FS::part_svc) with exports (see FS::part_export)

FS::part_export - External provisioning export class

FS::part_export_option - Export option class

FS::pkg_category - Package category class (invoice oriented)

FS::pkg_class - Package class class

FS::part_pkg - Package definition class

FS::part_pkg_msgcat - Package definition localization class

FS::part_pkg_usageprice - Package definition usage pricing add-on class

FS::cust_pkg_usageprice - Customer package usage pricing add-on class

FS::part_pkg_currency - Package definition local currency prices

FS::currency_exchange - Currency exchange rates

FS::part_pkg_link - Package definition link class

FS::part_pkg_taxclass - Tax class class

FS::part_pkg_option - Package definition option class

FS::part_pkg_report_option - Package reporting classification class

FS::part_pkg_vendor - Package external mapping class

FS::pkg_svc - Class linking package definitions (see FS::part_pkg) with service definitions (see FS::part_svc)

FS::qual - Service qualification class

FS::qual_option - Qualification option class

FS::reg_code - One-time registration codes

FS::reg_code_pkg - Class linking registration codes (see FS::reg_code) with package definitions (see FS::part_pkg)

FS::rate - Rate plans for call billing

FS::rate_region - Rate regions for call billing

FS::rate_prefix - Rate region prefixes for call billing

FS::rate_detail - Rate plan detail for call billing

FS::rate_tier - Rate tiers for call billing

FS::rate_tier_details - Rater tier details for call billing

FS::usage_class - Usage class class

FS::sales - Sales person class

FS::sales_pkg_class - Sales person package class commission class

FS::agent - Agent (reseller) class

FS::agent_currency - Agent (reseller) currency class

FS::agent_pkg_class - Agent (reseller) package class commission class

FS::agent_type - Agent type class

FS::type_pkgs - Class linking agent types (see FS::agent_type) with package definitions (see FS::part_pkg)

FS::payment_gateway - Payment gateway class

FS::payment_gateway_option - Payment gateway option class

FS::agent_payment_gateway - Agent payment gateway class

FS::cust_svc - Service class

FS::part_export_machine - Export hostname choice class

FS::svc_export_machine - Customer export hostname class

FS::cust_pkg - Customer package class

FS::cust_pkg_option - Customer package option class

FS::cust_pkg_detail - Customer package details class

FS::cust_pkg_discount - Customer package discount class

FS::cust_bill_pkg_discount - Customer package discount line item application class

FS::discount - Discount class

FS::discount_class - Discount class class

FS::reason_type - Reason type class

FS::reason - Reason class

FS::cust_pkg_reason - Package reason class

FS::contact_class - Contact class class

FS::contact - Contact class

FS::contact_phone - Contact phone class

FS::phone_type - Phone type class

FS::contact_email - Contact email class

FS::prospect_main - Prospect class

FS::cust_main - Customer class

FS::cust_main::Billing - Customer billing class

FS::cust_main::Billing_Realtime - Customer real-time billing class

FS::cust_main::Packages - Customer packages class

FS::cust_payby - Customer payment information class

FS::cust_location - Customer location class

FS::cust_main_Mixin - Mixin class for records that contain fields from cust_main

FS::cust_main_invoice - Invoice destination class

FS::cust_main_credit_limit - Customer credit limit events class

FS::cust_class - Customer classification class

FS::cust_category - Customer category class

FS::cust_tag - Customer tag class

FS::part_tag - Tag definition class

FS::cust_main_exemption - Customer tax exemption class

FS::cust_main_note - Customer note class

FS::cust_note_class - Customer note classification class

FS::banned_pay - Banned payment information class

FS::cust_bill - Invoice class

FS::cust_statement - Informational statement class

FS::cust_bill_pkg - Invoice line item class

FS::cust_bill_pkg_detail - Invoice line item detail class

FS::legacy_cust_bill - Legacy data invoice class

FS::part_event - (New) Billing event definition class

FS::part_event_option - (New) Billing event option class

FS::part_event::Condition - (New) Billing event condition base class

FS::part_event::Action - (New) Billing event action base class

FS::part_event_condition - (New) Billing event condition class

FS::part_event_condition_option - (New) Billing event condition option class

FS::part_event_condition_option_option - (New) Billing event condition compound option class

FS::cust_event - (New) Customer event class

FS::cust_bill_ApplicationCommon - Base class for bill application classes

FS::cust_pay - Payment class

FS::cust_pay_pending - Pending payment class

FS::cust_pay_void - Voided payment class

FS::cust_bill_pay - Payment application class

FS::cust_bill_pay_pkg - Line-item specific payment application class

FS::cust_bill_pay_batch - Batch payment application class

FS::cust_credit - Credit class

FS::cust_refund - Refund class

FS::cust_credit_refund - Refund application to credit class

FS::cust_credit_bill - Credit application to invoice class

FS::cust_credit_bill_pkg - Line-item specific credit application to invoice class

FS::cust_credit_source_bill_pkg - Line-item sources for triggered package credits

FS::cust_pay_refund - Refund application to payment class

FS::pay_batch - Credit card transaction queue class

FS::cust_pay_batch - Credit card transaction member queue class

FS::prepay_credit - Prepaid "calling card" credit class.

FS::nas - Network Access Server class

FS::port - NAS port class

FS::session - User login session class

FS::queue - Job queue

FS::queue_arg - Job arguments

FS::queue_depend - Job dependencies

FS::queue_stat - Job statistics

FS::msg_template - Message templates (customer notices)

FS::msgcat - Message catalogs (error messages)



Historical database record classes

FS::h_Common - History table base class

FS::h_cust_pay - Historical record of customer payment changes

FS::h_cust_credit - Historical record of customer credit changes

FS::h_cust_bill - Historical record of customer tax changes (old-style)

FS::h_cust_svc - Object method for h_cust_svc objects

FS::h_cust_tax_exempt - Historical record of customer tax changes (old-style)

FS::h_domain_record - Historical DNS entry objects

FS::h_svc_acct - Historical account objects

FS::h_svc_broadband - Historical broadband connection objects

FS::h_svc_cert - Historical certificate services

FS::h_svc_dish - Historical Dish Network services

FS::h_svc_domain - Historical domain objects

FS::h_svc_dsl - Historical DSL objects

FS::h_svc_external - Historical externally tracked service objects

FS::h_svc_forward - Historical mail forwarding alias objects

FS::h_svc_hardware - Historical isntalled hardware service objects

FS::h_svc_mailinglist - Historical mailing list objects

FS::h_svc_pbx - Historical PBX objects

FS::h_svc_phone - Historical phone number objects

FS::h_svc_port - Historical port number objects

FS::h_svc_www - Historical web virtual host objects

Remote API modules

FS::SelfService - Self-service API

FS::SelfService::XMLRPC - Self-service XML-RPC API

FS::API - Backoffice XML-RPC API

User Interface classes

FS::UI::Web - Web user-interface class

FS::UI::bytecount - Byte counter user-interface class

Command-line utilities

Setup and upgrade

freeside-adduser - Command line interface to add (freeside) users.

freeside-deluser - Command line interface to delete (freeside) users.

freeside-dbdef-create - Recreate database schema cache

freeside-setup - Create new database

freeside-upgrade - Upgrades database schema for new freeside verisons.

freeside-lata-import - Seed LATA data

freeside-msa-import - Seed MSA data


freeside-daily - Run daily billing and collection events.

freeside-monthly - Run monthly billing and invoice collection events.

freeside-expiration-alerter - Emails notifications of credit card expirations.

Cron (payment batches)

freeside-eftca-download - Download EFT Canada batch results

freeside-eftca-upload - Upload an EFT Canada batch

freeside-paymentech-download - Download Chase Paymentech batch results

freeside-paymentech-upload - Upload a Chase Paymentech batch


freeside-cdr-sftp_and_import - Download and import CDR files

freeside-ipifony-download - Download usage data from IPifony

Misc. Tools (retreiving data)

freeside-email - Prints email addresses of all users on STDOUT

freeside-username_list - List all usernames in the sytem

freeside-phonenum_list - List all phone numbers in the system

Misc. Tools (taking actions)

freeside-fetch - Send a freeside page to a list of employees.

freeside-prune-applications - Removes stray applications of credit, payment to bills, refunds, etc.


freeside-reexport - Command line tool to re-trigger export jobs for existing services

freeside-reset-fixed - Command line tool to set the fixed columns for existing services


freeside-radgroup - Command line utility to manipulate radius groups

freeside-sqlradius-dedup-group - Command line tool to eliminate duplicate usergroup entries from radius tables

freeside-sqlradius-reset - Command line interface to reset and recreate RADIUS SQL tables

freeside-sqlradius-seconds - Command line time-online tool


freeside-cdrd - CDR daemon

freeside-cdrrated - Real-time CDR rating daemon

freeside-cdrrewrited - CDR rewriting daemon

freeside-prepaidd - Real-time daemon for prepaid packages

freeside-queued - Job queue daemon

freeside-selvservice-server - Self-service server

freeside-selfservice-xmlrpcd - Self-service XML-RPC server

freeside-sqlradius-radacctd - Real-time radacct import daemon

freeside-torrus-srvderive - Torrus virtual port combining daemon

freeside-xmlrpcd - Back-office XML-RPC server


To quote perl(1), "If you're intending to read these straight through for the first time, the suggested order will tend to reduce the number of forward references."

If you've never used OO modules before, might help you out.


Freeside is a billing and administration package for wired and wireless ISPs, VoIP, hosting, service and content providers and other online businesses.

The Freeside home page is at <>.

The main documentation is at <>.


A mailing list for users is available. Send a blank message to <> to subscribe.

A mailing list for developers is available. It is intended to be lower volume and higher SNR than the users list. Send a blank message to <> to subscribe.

Commercial products and services are available; see <> and <>.



Jeremy Davis

Jason Hall

Ivan Kohler

Mark Wells


Peter Bowen

Jeff Finucane

Kristian Hoffman

Erik Levinson

Brian McCane

Richard Siddall

Matt Simerson


See httemplate/docs/credits.html


perl(1), main Freeside documentation at <>


Those modules which would be useful separately should be pulled out, renamed appropriately and uploaded to CPAN. So far: DBIx::DBSchema, Net::SSH and Net::SCP...