11d8b6e0f3b6b706edb41e8b55ed0a8d6d84d028
[freeside.git] / FS / FS.pm
1 package FS;
2
3 use strict;
4 use vars qw($VERSION);
5
6 $VERSION = '4.0git';
7
8 #find missing entries in this file with:
9 # for a in `ls *pm | cut -d. -f1`; do grep 'L<FS::'$a'>' ../FS.pm >/dev/null || echo "missing $a" ; done
10
11 1;
12 __END__
13
14 =head1 NAME
15
16 FS - Freeside Perl modules
17
18 =head1 SYNOPSIS
19
20 Freeside perl modules and CLI utilities.
21
22 =head2 Utility classes
23
24 L<FS::Schema> - Freeside database schema
25
26 L<FS::Setup> - Setup subroutines
27
28 L<FS::Upgrade> - Upgrade subroutines
29
30 L<FS::Conf> - Freeside configuration values
31
32 L<FS::ConfItem> - Freeside configuration option meta-data.
33
34 L<FS::ConfDefaults> - Freeside configuration default and available values
35
36 L<FS::UID> - User class (not yet OO)
37
38 L<FS::CurrentUser> -  Package representing the current user
39
40 L<FS::CGI> - Non OO-subroutines for the web interface.
41
42 L<FS::Locales> - Locales
43
44 L<FS::Msgcat> - Message catalog
45
46 L<FS::SearchCache> - Search cache
47
48 L<FS::AccessRight> - Access control rights.
49
50 L<FS::Report> - Report data objects
51
52 L<FS::Report::Table> - Report data objects
53
54 L<FS::Report::Table::Monthly> - Report data objects
55
56 L<FS::XMLRPC> - Backend XML::RPC server
57
58 L<FS::Misc> - Miscellaneous subroutines
59
60 L<FS::payby> - Payment types
61
62 L<FS::ClientAPI_SessionCache> - ClientAPI session cache
63
64 L<FS::Pony> - A pony
65
66 L<FS::cust_main::Search> - Customer searching
67
68 L<FS::cust_main::Import> - Batch customer importing
69
70 =head2 Database record classes
71
72 L<FS::Record> - Database record base class
73
74 L<FS::m2m_Common> - Mixin class for classes in a many-to-many relationship
75
76 L<FS::m2name_Common> - Base class for tables with a related table listing names
77
78 L<FS::option_Common> - Base class for option sub-classes
79
80 L<FS::class_Common> - Base class for classification classes
81
82 L<FS::category_Common> - Base class for category (grooups of classifications) classes
83
84 L<FS::conf> - Configuration value class
85
86 L<FS::payinfo_Mixin>  - Mixin class for records in tables that contain payinfo.
87
88 L<FS::access_user> - Employees / internal users
89
90 L<FS::access_user_session> - Access sessions
91
92 L<FS::access_user_pref> - Employee preferences
93
94 L<FS::access_group> - Employee groups
95
96 L<FS::access_usergroup> - Employee group membership
97
98 L<FS::access_groupagent> - Group reseller access
99
100 L<FS::access_right> - Access rights
101
102 L<FS::svc_acct_pop> - POP (Point of Presence, not Post
103 Office Protocol) class
104
105 L<FS::part_pop_local> - Local calling area class
106
107 L<FS::part_referral> - Referral class
108
109 L<FS::pkg_referral> - Package referral class
110
111 L<FS::cust_main_county> - Locale (tax rate) class
112
113 L<FS::cust_tax_exempt> - Tax exemption record class
114
115 L<FS::cust_tax_adjustment> - Tax adjustment record class
116
117 L<FS::cust_tax_exempt_pkg> - Line-item specific tax exemption record class
118
119 L<FS::svc_Common> - Service base class
120
121 L<FS::svc_Parent_Mixin> - Mixin class for svc_ classes with a parent_svcnum field
122
123 L<FS::svc_acct> - Account (shell, RADIUS, POP3) class
124
125 L<FS::acct_snarf> - External mail account class
126
127 L<FS::acct_rt_transaction> - Time worked application to account class
128
129 L<FS::radius_usergroup> - RADIUS user group membership
130
131 L<FS::radius_group> - RADIUS groups
132
133 L<FS::svc_domain> - Domain class
134
135 L<FS::domain_record> - DNS zone entries
136
137 L<FS::registrar> - Domain registrar class
138
139 L<FS::cgp_rule> - Communigate pro rule class
140
141 L<FS::cgp_rule_condition> - Communigate pro rule condition class
142
143 L<FS::cgp_rule_action> - Communigate pro rule action class
144
145 L<FS::svc_forward> - Mail forwarding class
146
147 L<FS::svc_mailinglist> - (Customer) Mailing list class
148
149 L<FS::mailinglist> - Mailing list class
150
151 L<FS::mailinglistmember> - Mailing list member class
152
153 L<FS::svc_www> - Web virtual host class.
154
155 L<FS::svc_broadband> - DSL, wireless and other broadband class.
156
157 L<FS::svc_dsl> - DSL
158
159 L<FS::dsl_device> - DSL device MAC addresses
160
161 L<FS::dsl_note> - DSL order notes
162
163 L<FS::addr_block> - Address block class
164
165 L<FS::router> - Router class
166
167 L<FS::tower> - Tower class
168
169 L<FS::tower_sector> - Tower sector class
170
171 L<FS::part_virtual_field> - Broadband virtual field class
172
173 L<FS::svc_phone> - Phone service class
174
175 L<FS::phone_device> - Phone device class
176
177 L<FS::part_device> - Device definition class
178
179 L<FS::phone_avail> - Phone number availability cache
180
181 L<FS::lata> - LATA number to name mapping class
182
183 L<FS::msa> - MSA number to name mapping class
184
185 L<FS::rate_center> - Rate center list (for bulk DID orders)
186
187 L<FS::did_vendor> - Bulk DID order vendor class
188
189 L<FS::did_order> - Bulk DID order class
190
191 L<FS::did_order_item> - Bulk DID order item class
192
193 L<FS::cdr> - Call Detail Record class
194
195 L<FS::cdr_batch> - Call Detail Record batch class
196
197 L<FS::cdr_calltype> - CDR calltype class
198
199 L<FS::cdr_carrier> - CDR carrier class
200
201 L<FS::cdr_type> - CDR type class
202
203 L<FS::svc_external> - Externally tracked service class.
204
205 L<FS::svc_pbx> - PBX service class
206
207 L<FS::pbx_extension> - PBX extension class
208
209 L<FS::svc_cert> - Certificate service class
210
211 L<FS::svc_dish> - Dish network service class
212
213 L<FS::svc_cable> - Cable service class
214
215 L<FS::cable_model> - Cable-modem model class
216
217 L<FS::cable_provider> - Cable provider class
218
219 L<FS::svc_alarm> - Alarm service class
220
221 L<FS::alarm_system> - Alarm system class
222
223 L<FS::alarm_type> - Alarm type (inputs and outputs) class
224
225 L<FS::alarm_station> - Alarm central station class
226
227 L<FS::svc_conferencing> - Conferencing service class
228
229 L<FS::conferencing_type> - Conferencing type class
230
231 L<FS::conferencing_quality> - Conferencing quality class
232
233 L<FS::svc_video> - Video (IPTV/video-on-demand) service class
234
235 L<FS::inventory_class> - Inventory classes
236
237 L<FS::inventory_item> - Inventory items
238
239 L<FS::part_svc> - Service definition class
240
241 L<FS::part_svc_class> - Service class class
242
243 L<FS::part_svc_column> - Column constraint class
244
245 L<FS::export_svc> - Class linking service definitions (see L<FS::part_svc>)
246 with exports (see L<FS::part_export>)
247
248 L<FS::part_export> - External provisioning export class
249
250 L<FS::part_export_option> - Export option class
251
252 L<FS::pkg_category> - Package category class (invoice oriented)
253
254 L<FS::pkg_class> - Package class class
255
256 L<FS::part_pkg> - Package definition class
257
258 L<FS::part_pkg_msgcat> - Package definition localization class
259
260 L<FS::part_pkg_usageprice> - Package definition usage pricing add-on class
261
262 L<FS::cust_pkg_usageprice> - Customer package usage pricing add-on class
263
264 L<FS::part_pkg_currency> - Package definition local currency prices
265
266 L<FS::currency_exchange> - Currency exchange rates
267
268 L<FS::part_pkg_link> - Package definition link class
269
270 L<FS::part_pkg_taxclass> - Tax class class
271
272 L<FS::part_pkg_option> - Package definition option class
273
274 L<FS::part_pkg_report_option> - Package reporting classification class
275
276 L<FS::part_pkg_vendor> - Package external mapping class
277
278 L<FS::pkg_svc> - Class linking package definitions (see L<FS::part_pkg>) with
279 service definitions (see L<FS::part_svc>)
280
281 L<FS::qual> - Service qualification class
282
283 L<FS::qual_option> - Qualification option class
284
285 L<FS::reg_code> - One-time registration codes
286
287 L<FS::reg_code_pkg> - Class linking registration codes (see L<FS::reg_code>) with package definitions (see L<FS::part_pkg>)
288
289 L<FS::rate> - Rate plans for call billing
290
291 L<FS::rate_region> - Rate regions for call billing
292
293 L<FS::rate_prefix> - Rate region prefixes for call billing
294
295 L<FS::rate_detail> - Rate plan detail for call billing
296
297 L<FS::rate_tier> - Rate tiers for call billing
298
299 L<FS::rate_tier_details> - Rater tier details for call billing
300
301 L<FS::usage_class> - Usage class class
302
303 L<FS::sales> - Sales person class
304
305 L<FS::sales_pkg_class> - Sales person package class commission class
306
307 L<FS::agent> - Agent (reseller) class
308
309 L<FS::agent_currency> - Agent (reseller) currency class
310
311 L<FS::agent_pkg_class> - Agent (reseller) package class commission class
312
313 L<FS::agent_type> - Agent type class
314
315 L<FS::type_pkgs> - Class linking agent types (see L<FS::agent_type>) with package definitions (see L<FS::part_pkg>)
316
317 L<FS::payment_gateway> - Payment gateway class
318
319 L<FS::payment_gateway_option> - Payment gateway option class
320
321 L<FS::agent_payment_gateway> - Agent payment gateway class
322
323 L<FS::cust_svc> - Service class
324
325 L<FS::part_export_machine> - Export hostname choice class
326
327 L<FS::svc_export_machine> - Customer export hostname class
328
329 L<FS::cust_pkg> - Customer package class
330
331 L<FS::cust_pkg_option> - Customer package option class
332
333 L<FS::cust_pkg_detail> - Customer package details class
334
335 L<FS:;cust_pkg_discount> - Customer package discount class
336
337 L<FS:;cust_bill_pkg_discount> - Customer package discount line item application class
338
339 L<FS::discount> - Discount class
340
341 L<FS::discount_class> - Discount class class
342
343 L<FS::reason_type> - Reason type class
344
345 L<FS::reason> - Reason class
346
347 L<FS::cust_pkg_reason> - Package reason class
348
349 L<FS::contact_class> - Contact class class
350
351 L<FS::contact> - Contact class
352
353 L<FS::contact_phone> - Contact phone class
354
355 L<FS::phone_type> - Phone type class
356
357 L<FS::contact_email> - Contact email class
358
359 L<FS::prospect_main> - Prospect class
360
361 L<FS::cust_main> - Customer class
362
363 L<FS::cust_main::Billing> - Customer billing class
364
365 L<FS::cust_main::Billing_Realtime> - Customer real-time billing class
366
367 L<FS::cust_main::Packages> - Customer packages class
368
369 L<FS::cust_payby> - Customer payment information class
370
371 L<FS::cust_location> - Customer location class
372
373 L<FS::cust_main_Mixin> - Mixin class for records that contain fields from cust_main
374
375 L<FS::cust_main_invoice> - Invoice destination class
376
377 L<FS::cust_class> - Customer classification class
378
379 L<FS::cust_category> - Customer category class
380
381 L<FS::cust_tag> - Customer tag class
382
383 L<FS::part_tag> - Tag definition class
384
385 L<FS::cust_main_exemption> - Customer tax exemption class
386
387 L<FS::cust_main_note> - Customer note class
388
389 L<FS::cust_note_class> - Customer note classification class
390
391 L<FS::banned_pay> - Banned payment information class
392
393 L<FS::cust_bill> - Invoice class
394
395 L<FS::cust_statement> - Informational statement class
396
397 L<FS::cust_bill_pkg> - Invoice line item class
398
399 L<FS::cust_bill_pkg_detail> - Invoice line item detail class
400
401 L<FS::legacy_cust_bill> - Legacy data invoice class
402
403 L<FS::part_bill_event> - (Old) Invoice event definition class
404
405 L<FS::cust_bill_event> - (Old) Completed invoice event class
406
407 L<FS::part_event> - (New) Billing event definition class
408
409 L<FS::part_event_option> - (New) Billing event option class
410
411 L<FS::part_event::Condition> - (New) Billing event condition base class
412
413 L<FS::part_event::Action> - (New) Billing event action base class
414
415 L<FS::part_event_condition> - (New) Billing event condition class
416
417 L<FS::part_event_condition_option> - (New) Billing event condition option class
418
419 L<FS::part_event_condition_option_option> - (New) Billing event condition compound option class
420
421 L<FS::cust_event> - (New) Customer event class
422
423 L<FS::cust_bill_ApplicationCommon> - Base class for bill application classes
424
425 L<FS::cust_pay> - Payment class
426
427 L<FS::cust_pay_pending> - Pending payment class
428
429 L<FS::cust_pay_void> - Voided payment class
430
431 L<FS::cust_bill_pay> - Payment application class
432
433 L<FS::cust_bill_pay_pkg> - Line-item specific payment application class
434
435 L<FS::cust_bill_pay_batch> - Batch payment application class
436
437 L<FS::cust_credit> - Credit class
438
439 L<FS::cust_refund> - Refund class
440
441 L<FS::cust_credit_refund> - Refund application to credit class
442
443 L<FS::cust_credit_bill> - Credit application to invoice class
444
445 L<FS::cust_credit_bill_pkg> - Line-item specific credit application to invoice class
446
447 L<FS::cust_pay_refund> - Refund application to payment class
448
449 L<FS::pay_batch> - Credit card transaction queue class
450
451 L<FS::cust_pay_batch> - Credit card transaction member queue class
452
453 L<FS::prepay_credit> - Prepaid "calling card" credit class.
454
455 L<FS::nas> - Network Access Server class
456
457 L<FS::port> - NAS port class
458
459 L<FS::session> - User login session class
460
461 L<FS::queue> - Job queue
462
463 L<FS::queue_arg> - Job arguments
464
465 L<FS::queue_depend> - Job dependencies
466
467 L<FS::msg_template> - Message templates (customer notices)
468
469 L<FS::msgcat> - Message catalogs (error messages)
470
471 L<FS::clientapi_session>
472
473 L<FS::clientapi_session_field>
474
475 =head2 Historical database record classes
476
477 L<FS::h_Common> - History table base class
478
479 L<FS::h_cust_pay> - Historical record of customer payment changes
480
481 L<FS::h_cust_credit> - Historical record of customer credit changes
482
483 L<FS::h_cust_bill> - Historical record of customer tax changes (old-style)
484
485 L<FS::h_cust_svc> - Object method for h_cust_svc objects
486
487 L<FS::h_cust_tax_exempt> - Historical record of customer tax changes (old-style)
488
489 L<FS::h_domain_record> - Historical DNS entry objects
490
491 L<FS::h_svc_acct> - Historical account objects
492
493 L<FS::h_svc_broadband> - Historical broadband connection objects
494
495 L<FS::h_svc_cert> - Historical certificate services
496
497 L<FS::h_svc_dish> - Historical Dish Network services
498
499 L<FS::h_svc_domain> - Historical domain objects
500
501 L<FS::h_svc_dsl> - Historical DSL objects
502
503 L<FS::h_svc_external> - Historical externally tracked service objects
504
505 L<FS::h_svc_forward> - Historical mail forwarding alias objects
506
507 L<FS::h_svc_hardware> - Historical isntalled hardware service objects
508
509 L<FS::h_svc_mailinglist> - Historical mailing list objects
510
511 L<FS::h_svc_pbx> - Historical PBX objects
512
513 L<FS::h_svc_phone> - Historical phone number objects
514
515 L<FS::h_svc_port> - Historical port number objects
516
517 L<FS::h_svc_www> - Historical web virtual host objects
518
519 =head2 Remote API modules
520
521 L<FS::SelfService> - Self-service API
522
523 L<FS::SelfService::XMLRPC> - Self-service XML-RPC API
524
525 =head2 User Interface classes
526
527 L<FS::UI::Web> - Web user-interface class
528
529 L<FS::UI::bytecount> - Byte counter user-interface class
530
531 =head2 Command-line utilities
532
533 L<freeside-adduser> - Command line interface to add (freeside) users.
534
535 L<freeside-daily> - Run daily billing and collection events.
536
537 L<freeside-monthly> - Run monthly billing and invoice collection events.
538
539 L<freeside-dbdef-create> - Recreate database schema cache
540
541 L<freeside-deluser> - Command line interface to delete (freeside) users.
542
543 L<freeside-expiration-alerter> - Emails notifications of credit card expirations.
544
545 L<freeside-email> -  Prints email addresses of all users on STDOUT
546
547 L<freeside-fetch> - Send a freeside page to a list of employees.
548
549 L<freeside-prepaidd> - Real-time daemon for prepaid packages
550
551 L<freeside-prune-applications> - Removes stray applications of credit, payment to bills, refunds, etc.
552
553 L<freeside-queued> - Job queue daemon
554
555 L<freeside-radgroup> - Command line utility to manipulate radius groups
556
557 L<freeside-reexport> - Command line tool to re-trigger export jobs for existing services
558
559 L<freeside-reset-fixed> - Command line tool to set the fixed columns for existing services
560
561 L<freeside-sqlradius-dedup-group> - Command line tool to eliminate duplicate usergroup entries from radius tables
562
563 L<freeside-sqlradius-radacctd> - Real-time radacct import daemon
564
565 L<freeside-sqlradius-reset> - Command line interface to reset and recreate RADIUS SQL tables
566
567 L<freeside-sqlradius-seconds> - Command line time-online tool
568
569 L<freeside-upgrade> - Upgrades database schema for new freeside verisons.
570
571 =head1 Notes
572
573 To quote perl(1), "If you're intending to read these straight through for the
574 first time, the suggested order will tend to reduce the number of forward
575 references."
576
577 If you've never used OO modules before,
578 http://www.perl.com/doc/FMTEYEWTK/easy_objects.html might help you out.
579
580 =head1 DESCRIPTION
581
582 Freeside is a billing and administration package for wired and wireless ISPs,
583 VoIP, hosting, service and content providers and other online businesses.
584
585 The Freeside home page is at <http://www.sisd.com/freeside>.
586
587 The main documentation is at <http://www.sisd.com/mediawiki>.
588
589 =head1 SUPPORT
590
591 A mailing list for users is available.  Send a blank message to
592 <freeside-users-subscribe@sisd.com> to subscribe.
593
594 A mailing list for developers is available.  It is intended to be lower volume
595 and higher SNR than the users list.  Send a blank message to
596 <freeside-devel-subscribe@sisd.com> to subscribe.
597
598 Commercial support is available; see
599 <http://www.sisd.com/freeside/commercial.html>.
600
601 =head1 AUTHORS
602
603 =head2 CORE TEAM
604
605 Jeremy Davis
606
607 Ivan Kohler
608
609 Mark Wells
610
611 =head2 CORE EMERITUS
612
613 Peter Bowen
614
615 Jeff Finucane
616
617 Jason Hall
618
619 Kristian Hoffman
620
621 Erik Levinson
622
623 Brian McCane
624
625 Richard Siddall
626
627 Matt Simerson
628
629 =head2 CONTRIBUTORS
630
631 See httemplate/docs/credits.html
632
633 =head1 SEE ALSO
634
635 perl(1), main Freeside documentation at <http://www.sisd.com/mediawiki/>
636
637 =head1 BUGS
638
639 Those modules which would be useful separately should be pulled out, 
640 renamed appropriately and uploaded to CPAN.  So far: DBIx::DBSchema, Net::SSH
641 and Net::SCP...
642
643 =cut
644