REAL TIME SUBSCRIBER BILLING AT A SUBSCRIBER LOCATION IN AN UNSTRUCTURED COMMUNICATION NETWORK

Abstract: A system (30, 40, 50) and method are provided for real time subscriber billing at a subscriber location (10) in an unstructured communications network. Account information is stored for at least one subscriber at the subscriber location (10). A determination is made, based on the account information, whether the subscriber has a sufficient balance for a desired service. Service is authorized or denied to the subscriber based on the determination. Additional account information is stored at the service provider location (30) and used to monitor the service record of the subscriber and update the service provided to the subscriber, accordingly.

Description: REAL TIME SUBSCRIBER BILLING AT A SUBSCRIBER LOCATION IN AN UNSTRUCTURED COMMUNICATION NETWORK CROSS REFERENCE TO RELATED APPLICATION This application is a Continuation-in-part Application of U.S. Patent Application No. 08/806,387, filed February 27, 1997. BACKGROUND The present invention relates to a system and method for real time subscriber billing. More particularly, the present invention relates to a system and method for real time subscriber billing at a subscriber location in an unstructured communication network. There are a variety of methods for billing subscribers for services such as telephone, pay-per-view TV, Internet, water, gas, and so on. The most common method is to bill subscribers monthly for such services. When bills are based on usage, billing is usually performed after the service is used. Usage information is collected by a billing system, the amount to be billed is calculated based on the usage information, and bills are printed and sent to die subscribers once a month. The usage information is typically collected by storing a Detail Use Record (DUR) in a temporary memory location in the equipment which monitors subscriber usage. In a telephone system, the DUR Memory is often located at an end office switch to which a subscriber line is directly attached. In an Internet environment, the DUR Memory is typically located at the server location or at the service provider. In a pay-per-view TN system, the DUR Memory is typically located at the subscriber location. The DUR includes all the information needed to calculate the charges for a particular communication session. For example, in a telephone billing system, the DUR is referred to as the Call Detail Record (CDR). The CDR typically includes the telephone number of the subscriber placing the call, the telephone number called, the time of the call, and the duration of the call. In a pay-per-view TN system, the DUR typically includes die identification number of the subscriber ordering a program and the program identification number for the program ordered. On a regular basis, depending on the size of the DUR Memory and the activity, the DUR is retrieved from the DUR Memory by the billing system. The billing system then applies a billing algorithm against the DUR to calculate the subscriber's charges for usage. Additional charges for equipment rental, flat monthly service charges, taxes, and so on, are calculated by the billing system and added to d e usage charges. The total bill is then printed as an invoice and mailed to the subscriber. Only upon receipt of the printed invoice does the subscriber discover the charges accumulated. This often presents a problem for the subscriber when it comes time to pay the bill, since the charges may be greater than anticipated. If a subscriber fails to pay the bill on time, a service provider may try and contact die subscriber and attempt to get the bill paid. If the bill is not paid, the service provider eventually disconnects die service. This procedure often takes months, and bills often accumulate to the point where the subscriber cannot afford to keep the services. Another common billing method is multi-metering. This method, which is commonly employed in telephone systems, uses multi-metering pulses to calculate charges based on usage. According to this method, pulses representing the cost of usage are generated at regular intervals during a telephone call. The value of each multi-metering pulse is the same, but the timing of the generation of the pulses varies with the cost of the particular call. For example, if the pulses each represent $0.10, and the charge for a local call is $0.10 for three minutes, a pulse is generated every three minutes. If the charge for a domestic long distance call is $1.00 a minute, a pulse representing $0.10 is generated every six seconds. If the charge for an international long distance call is $4.00 a minute, a pulse representing $0.10 is generated every 1.5 seconds. The pulses are detected, counted, and used to calculate use based charges. An example of a multi-metering pulse detector is provided in U.S. Patent No. 4,868,873 to Kamil. For business and private phones, multi-metering pulses are typically transmitted to the telephone inaudibly and displayed to die caller on a display unit attached to die telephone. This permits the caller to determine the charge accumulation as the call progresses. When multi-metering pulses are used in public telephones, a caller typically deposits money in the telephone, and die total value deposited is displayed in a display unit attached to die phone. Alternately, the caller can insert a smart card or a memory card with a prepaid balance into a reader on the telephone or dial a number indicated on d e card, and die balance on the card is displayed in the display unit. As the call progresses, the balance displayed is decremented by the charge for each pulse. For example, if a customer deposits $1.00 in a telephone and places a local call which costs $1.00 for every three minutes, and pulses representing $0.10 are generated every three minutes, me balance displayed is decremented by $0.10 every three minutes. In this example, the customer can talk for thirty minutes before the pulses zero the deposit. Anodier type of billing method is a prepaid telephone service, an example of which is disclosed in U.S. Patent No. 4,706,275 to Kamil. According to diis method, a subscriber sends a service provider a payment or authorizes that a prepaid amount be charged to his or her credit card. This prepaid amount is credited to the subscriber's account widi the service provider. To access die service, the subscriber dials die number of the service provider or a special exchange and keys in an identifying code, such as a Personal Identification Number (PIN). The subscriber's account is checked, and if it is in good standing, die subscriber is provided widi a dial tone to place a long distance call as well as the account balance. The billing system decrements the subscriber's balance as the call progresses. Another billing method is proposed by U.S. Patent No. 4,484,217 to Block. This patent discloses a memod for pay-per-view television billing in which credit information is stored at die subscriber location. The subscriber is permitted access to television program transmissions depending on a comparison of the stored credit information and cost signals that are contained in the transmission. A problem with all of these billing methods is diat the calculation of the bill occurs at a remote location outside die standard network routing path of the subscriber. That is, usage information must be sent to an entity such as a service provider or a special exchange outside the standard network routing path of die subscriber. The service provider or special exchange calculates the bill, dien returns the billing charges to the subscriber. This sending of billing information to and from an entity outside die standard network routing path of die subscriber can be both time-consuming and expensive. In addition, in an unstructured communication system, i.e., a communication system without any central control/supervision device, there is no way to monitor subscriber activity and ti us no way to bill, manage, or control resources. Thus, there is a need to monitor the activity of subscribers in an unstructured communication network. SUMMARY It is an object of the present invention to provide a real time subscriber billing system that calculates charges for a desired service at a subscriber location in an unstructured communication network. It is another object of the present invention to provide a real time subscriber billing system that authorizes service based on a subscriber's usable balance. It is yet another object of the present invention to permit monitoring of subscriber activity at the subscriber location in an unstructured communication network. It is yet another object of the present invention to simplify subscriber payment procedures and provide a subscriber with information concerning his or her usable balance at any time. It is yet another object of the present invention to offer subscribers the ability to pay for other products or services purchased or billed dirough his or her account. It is yet another object of the invention to provide a subscriber with control over who is authorized to charge services or products to his or her account. According to die present invention, these and odier objects are met by a system and method for real time subscriber billing at a subscriber location in an unstructured communication network. Account balance and service information is stored for at least one subscriber at the subscriber location. A determination is made whetiier the subscriber has a sufficient balance for a desired service based on die stored account information at the subscriber location. Service is authorized or denied to the subscriber based on diis determination. Additional account information can be stored at the service provider, such as account billing and service history, a current credit limit, a current deposit amount, service authorization, billing rates, etc. This account information can be used by the service provider to monitor the subscriber's service record and update die service provided to die subscriber, accordingly. BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and otiier objects, features, and advantages of the present invention will be more readily understood upon reading die following detailed description in conjunction with die drawings in which: Figure la illustrates an exemplary system for real time subscriber billing according to a first aspect of the present invention; Figure lb illustrates an exemplary Channel Billing Monitor according to one embodiment of die present invention; Figure lc illustrates in detail an exemplary Network Routing Device for real time subscriber billing according to die first aspect of the present invention; Figures 2a-2d illustrate a central office switch for real time subscriber billing according to a first embodiment of die present invention; Figures 3a-3d illustrate a central office tandem switch for real time subscriber billing according to a second embodiment of die present invention; Figures 4a-4d illustrate a network for real time subscriber billing according to a diird embodiment of me present invention; Figures 5a-5d illustrate a central office switch connected to a cellular/wireless system for real time subscriber billing according to a fourth embodiment of the present invention; Figures 6a-6h illustrate a remote calling system for real time subscriber billing according to a fifth embodiment of die present invention; Figure 7 illustrates an exemplary routine for initiating a communications warning message according to die present invention; Figure 8 illustrates an exemplary real time charge routine according to the present invention; Figure 9 illustrates an exemplary real time warning message routine according to die present invention; Figure 10 illustrates an exemplary change of service routine according to die present invention; Figure 11 illustrates an exemplary system for real time subscriber billing according to a second aspect of die present invention; and Figures 12a and 12b illustrate an exemplary system for real time subscriber billing at a subscriber location in an unstructured communication network according to a sixth embodiment of the present invention. DETAILED DESCRIPTION For ease of discussion, die following embodiments will be described widi reference to a telephone network. One skilled in die art will appreciate, however, that die present invention is not limited to a telephone network but is applicable to any type of subscriber system. Figure la illustrates an exemplary system for real time subscriber billing according to a first aspect of the present invention. In Figure la, there are four subscribers, Sub. 1, Sub. n, Sub. IR, and Sub. nR, identified widi die reference numeral 10. The subscribers 10 can, for example, be standard telephone network subscribers. Subscribers Sub. 1 and Sub. n represent subscribers initiating calls, and subscribers Sub. IR and Sub. nR represent subscribers receiving calls. Although four subscribers are shown, one skilled in the art will appreciate that die real time billing system according to die first aspect of the present invention can be applicable to any number of subscribers. Channel Billing Monitors 20 and Network Routing Devices 30 are arranged in a standard network routing path of the subscribers 10. That is, the Channel Billing Monitors 20 and die Network Routing Devices 30 are arranged within the padi connecting the initiating subscribers, Sub. 1 and Sub. n, to the receiving subscribers, Sub. IR and Sub nR. As shown by die dashed lines in Figure la, the Channel Billing Monitors 20 can be located at the subscriber locations or at the Network Routing Devices 30. Alternately, the Channel Billing Monitors 20 can be arranged separately at any place along the standard network routing padi, between the initiating subscribers and die receiving subscribers. The Channel Billing Monitors 20 detect cost signals representing predetermined charge amounts generated during a call or the elapsed time during a call. The cost signals can be generated by the Network Routing Devices 30 or the Charge Processor 40. The Channel Billing Monitors can be implemented with, for example, a device such as diat shown in Figure lb which can detect and count cost signals. Referring to Figure lb, the Channel Billing Monitor 20 is connected to Sub. n and a Network Routing Device 30. The Channel Billing Monitor 20 includes an amplifier 22 for amplifying the signal from Sub. n, a Filter 23 for filtering the signal, a Pulse Detector 24 for detecting die cost signal, and a Pulse Counter 25 for counting die detected cost signals. The count of the cost signals is delivered to a Microprocessor 27a and compared with subscriber account information stored in a Memory 28b to determine what service to provide die subscriber. The Microprocessor 28a communicates with die Processor 60 (shown in Fig. lc) via die Data Port 29 to update die subscriber account information. The Channel Billing Monitor 20 also includes a relay switch 21 driven by a relay driver 27 as instructed by die Microprocessor 28a. For example, if the subscriber does not have an adequate usable balance, die Microprocessor 28a instructs the relay driver 27 to open the switch 21 to disconnect Sub. n. For certain calls such as emergency calls or calls to the service provider, the Microprocessor 28a can instruct the relay driver 27 to close the switch 21 and connect Sub. n. The Channel Billing Monitor also includes a Tone Detector 26 for detecting, for example, touch tones dialed by Sub. n and delivering tifctese tones to the Microprocessor 28a. The Network Routing Devices 30 route calls from the initiating subscribers to the receiving subscribers. The Network Routing Devices 30 can be implemented widi, for example, central office switches, end office switches, or tandem switches, depending on die placement of the Network Routing Devices 30 in the network routing path. Specific examples of Network Routing Devices are described widi reference to Figures 2a, c, 3a, c, 4a, c, 5a, c and 6a, e. As shown in Figure la, Common Channel Signalling (CCS) can be employed between the Network Routing Devices 30. This permits data to be sent and received during a call without affecting the voice padi. Real time billing processing can occur at any of the Channel Billing Monitors 20, the Network Routing Devices 30, or at the subscriber locations. For real time billing processing occurring in a Channel Billing Monitor 20, the number of cost signals generated or the time elapsed is detected, counted, and compared with stored subscriber account information to determine what service to provide die subscriber. For real time billing processing occurring at a Network Routing Device 30 or at a subscriber location, the number of cost signals generated or the time elapsed is detected by die Channel Billing Monitor at the Network Routing Device 30 or at the subscriber location. The number of cost signals or the elapsed time is then counted and compared wid stored subscriber account information to determine what service to provide the subscriber. Real time billing processing at the subscriber location can occur at either the initiating subscriber's end, die receiving subscriber's end, or both. For example, if calls are to be charged to die initiating subscriber, the real time billing processing can occur at the initiating subscriber's end. If die calls are to be charged to die receiving subscriber, e.g., for collect calls, the real time billing processing can occur at the receiving subscriber's end. There can also be instances in which charges for calls can be shared between die initiating subscribers and die receiving subscribers, in which case real time billing processing occurs at each of die subscribers participating in the call. Real time billing processing can also be performed in a Charge Processor 40. This can be desirable, for example, if real time billing is to be implemented in existing standard network equipment that does not have real time billing capabilities. For real time billing processing occurring in the Charge Processor 40, the number of cost signals generated or the elapsed time is detected by a Channel Billing Monitor 20 and delivered to die Charge Processor 40. The Charge Processor 40 counts the number of cost signals generated or the elapsed time and, based on a comparison of the counted number of cost signals or elapsed time with stored subscriber account information, determines what service to provide. The subscriber account information can be stored in the Charge Processor 40, or at the subscriber location, the Channel Billing Monitor 20, or the Network Routing Device 30. The Charge Processor 40 can be implemented widi, for example, a microprocessor. Stored subscriber account information can be updated periodically or at any time by die Business Management System 50 which manages subscriber payments. Depending on where subscriber account information is stored and where real time billing processing occurs, call charges and subscriber account information can be forwarded from a Channel Billing Monitor 20, a Network Routing Device 30, a subscriber location, or the Charge Processor 40 to the Business Management System 50 on a regular basis or upon completion of each call. The Business Management System 50 reconciles payments made by die subscriber with die call charges and forwards diis information to the Channel Billing Monitor 20, the Network Routing Device 30, die subscriber location, or the Charge Processor 40 which updates die subscriber's account, accordingly. Depending on where die real time billing processing is performed, all die elements shown in Figure la are not necessary. For example, if real time billing processing occurs in the Channel Billing Monitor 20, the Network Routing Device 30, or at a subscriber location, the Charge Processor 40 is not necessary. Also, Channel Billing Monitors 20 are only necessary at diose places where cost signals or elapsed time are detected, e.g., at die subscriber location, the Network Routing Devices 30, or at a point in the network routing path in between. There need not be Channel Billing Monitors at all of these locations. Figure la merely shows Channel Billing Monitors at various different locations for ease of illustration. Figure lc illustrates in detail an exemplary network routing device for performing real time subscriber billing according to die first aspect of the present invention. As indicated by die dashed lines in Figure lc, the Network Routing Device 30 is connected between subscribers Sub. A and Sub. B, bodi referenced by reference numeral 10. The Network Routing Device 30 is also connected to die external Billing Management System 50. For ease of illustration, the Network Routing Device 30 shown in Figure lc performs all the real time billing processing, without requiring connection to the Charge Processor 40 shown in Figure la. Referring to Figure lc, the Network Routing Device 30 includes a Processor 60 which performs real time billing calculations. The Processor 60 can be implemented widi, for example, a microprocessor. The Network Routing Device 30 also includes a memory 70 for storing information relating to the subscriber and services. The memory 70 can be subdivided into four submemories: the Communications Control Memory 72, the Billing Data Memory 74, the Tariff Memory 76, and die Detail Use Record Memory 78. The Communications Control Memory 72 stores information regarding die status of the subscribers, including, for example, whether a subscriber is on hook or off hook, as well as the telephone number called and other information. The Billing Data Memory 74 stores information regarding die subscriber's usable balance. The Tariff Memory 76 stores information relating to the charges for various types of services, i.e., the tariff, as wells as taxes and flat rate charges. The Detailed Use Record Memory 78 stores detailed information regarding call charges. Although shown as four submemories for ease of illustration, these submemories can be incorporated into fewer or divided between more memories. According to one aspect of the present invention, the Processor 60 determines what service to provide die subscriber based on a comparison of a count of cost signals and die subscriber's usable balance. While a call charged to a subscriber is in progress, cost signals, e.g., timed pulses, are generated at regular time intervals. The cost signals can be generated, for example, by the Processor 60. Each cost signal represents a predetermined charge amount. The time between pulses, referred to as the pulse rate, can be determined by die destination of die call or, in the case of a collect call, by the origin of the call, as well as other characteristics of the call, such as bandwiddi. The rates can, for example, be established by a tariff which can be changed periodically by downloading tariff information from, for example, a central office switch into the Tariff Memory 76. The pulses are detected by die Channel Billing Monitor (not shown), and die Processor 60 counts the number of pulses generated from the origination of a call to the end of die call. For example, the Processor 60 deducts die beginning pulse number from the ending pulse number or adds die number of pulses generated. The counting can, for security purposes, be continuous from the first call, the pulse number never being reset to zero. This avoids die opportunity for fraudulently resetting the subscriber's account to zero before it is actually used up. Alternately, the number of pulses count can be reset by deducting die number of pulses paid for from the total number of pulses used. The subscriber's usable balance can be represented by a Pulse Use Limit (PUL) and a Pulse Use Credit (PUC) stored in the Billing Data Memory 74. The PUL and die PUC are expressed as a number of pulses, the PUL representing a deposit paid by a subscriber, and the PUC representing a credit limit established for the subscriber. The Processor 60 can be programmed to continuously compare the number of pulses generated widi the PUL or the PUC or to decrement die PUL or the PUC by one pulse for every pulse generated during a call. Instead of using pulses of a predetermined value to establish the use limit or the credit limit, local currency values can be used to establish these limits. For example, a Subscriber Use Limit (SUL) and a Subscriber Credit Limit (SCL) can be stored in the Billing Data Memory 74 for each subscriber. The SUL and die SCL are similar to the PUL and die PUC, respectively, except that die SUL and die SCL are expressed in local currency instead of a number of pulses. The SUL and SCL can be decremented in the same manner as the PUL or the PUC for every pulse generated during a call. The amount of the PUC/SCL may exceed the amount of the PUL/SUL. Thus, if die subscriber has an authorized PUC/SCL, die subscriber may be authorized to exceed the PUL/SUL by die amount of die PUC/SCL. When die use equals die PUL/SUL or the PUC/SCL, the Class of Service (COS) provided to die subscriber can be altered. The COS can be automatically altered according, for example, to a predetermined service provider policy for each subscriber or subscriber class. That is, the COS can be changed in accordance widi a predetermined service provider policy. For example, when the pulses used equals the PUL/SUL or the PUC/SUC, die Processor 60 can prevent any incoming or outgoing calls of any kind, permit incoming calls and inhibit outgoing calls, or permit outgoing local calls but inhibit incoming calls and outgoing long distance calls. Alternately, the COS can be altered when d e difference between the use and die PUL/SUL or PUC/SUC reaches a predetermined amount. The COS can also be linked to special promotions or discounts offered to specific subscribers or classes of subscribers. This can include discounts for volume use or the use of multiple services, etc. For example, when usage reaches a certain level during a given period, discounts can be applied to die subscriber billing rates. According to another aspect of the invention, instead of detecting and counting cost signals as a basis for determining what service to provide a subscriber, the Processor 60 can count the elapsed time during a call and determine the COS to provide die subscriber on this basis. The Processor 60 calculates call charges in real time during a call, applying die duration of the call to die appropriate section of the tariff stored in die Tariff Memory 76. The call charges are then stored as a DUR in the DUR Memory 78. For a telephone call, the call charges are stored as a CDR which includes die called number, the call duration, the call charges, and any such other information as may be desired by die subscriber or the service provider. The Business Management System 50 can notify the Processor 60 of payments made by die subscriber via the Data Port 55. The Processor 60 updates the subscriber's account with die payment amount. The Processor 60 also updates die subscriber's account with flat charges, e.g., " mondily equipment rental fees, and subtracts these charges from the subscriber's balance. If die subscriber has not submitted a payment in a predetermined amount of time, the Business Management System 50 can instruct the Processor 60 to disable the subscriber's service. The Network Routing Device 30 also includes a System Routing Device 80 for routing calls between subscribers Sub. A and Sub. B, Terminal Alert Generators 82 for generating ring signals to alert a receiving subscriber to go off-hook, and Signal Detector/Decoders 84 for detecting when an initiating subscriber has gone off-hook as well as the number called and providing diis information to the Processor 60. For example, when a call to Sub. B is initiated by Sub. A, this is detected by die Signal Detector/Decoder A which also detects die telephone number called. The Signal Detector/Decoder A delivers this information, including die subscriber number, the called number, the billing rate, and die start time of the call to the Processor 60. The Processor 60 determines what service to provide die subscriber and calculates die connect time available to the subscriber based on die value of die subscriber's usable balance stored, for example, in the Billing Data Memory 74. For a call to be charged to Sub. A, Sub. A's balance is checked. If die Processor 60 determines that Sub. A has a sufficient usable balance to make the call to Sub. B, the Processor 60 instructs the Communication Progress Message Generator 65 to generate an appropriate message, such as a dial tone or an error message. This message is transmitted to Sub. A via d e System Routing Device 80. The Processor 60 also instructs the Terminal Alert Generator B to generate a ring signal which is transmitted to Sub. B. The status of the Terminal Alert Generator can be stored, for example, in the Communications Control Memory 72. The call is then routed by die System Routing Device 80 from Sub. A to Sub. B. As the call progresses, the Processor 60 decrements die subscriber's balance at the appropriate intervals, depending on die tariff stored in die Tariff Memory 76. For example, the first three minutes can be one charge and each subsequent minute or portion thereof an additional charge. The Processor 60 is notified of the time of call termination by the Signal Detector/Decoder 84. Depending on whedier the call termination occurs before or after Sub. A's balance is reached, one of die following procedures is followed. If die Processor 60 is notified diat the call is terminated before the Sub. A's usable balance is reached, die Processor 60 calculates the charges for the call and deducts die calculated charges from the remaining balance. If Sub. A's usable balance is reached before the Processor 60 is notified tiiat the call has ended, die Processor 60 issues the instruction to terminate the call. There are various ways in which a subscriber can be informed of charges. For example, as the deposit or remaining credit limit is decremented during a call, die subscriber can be notified of die remaining balance through audible tones or a digital voice signal. A series of tones representing specific balances, e.g., a $10 balance remaining, a $5 balance, a $2 balance, or one minute remaining, can be transmitted to die subscriber. A digital voice signal can also be used to announce die value of die subscriber's remaining balance or time remaining before the call is cut off. Alternately or in addition to die warning tones or voice, a button can be provided on die telephone keypad which die subscriber can push to display on an attached display unit the amount of time remaining, the value of die subscriber's balance, or the amount of charges accumulated to date. The attached display unit can be implemented widi, for example, an LCD, LED, CRT, Plasma display, or other visual display attached to die telephone. Anodier way in which the subscriber can be informed of die charges accumulated to date or the remaining balance is by pressing a predetermined sequence of buttons on die telephone keypad, including identifying information such as a PIN. The subscriber can then connected to a Voice Response System (NRS). In response to digital voice prompts from the VRS, die subscriber identifies die information desired. The VRS can provide die value of die subscriber's balance or a list of call charges, depending on the subscriber's request. The subscriber can also be informed of die charges accumulated to date by facsimile on demand. The subscriber dials a predetermined sequence of numbers on the telephone keypad, including identifying information such as a PIN. If dialing from a facsimile machine, the subscriber simply presses start, and die list of chargeable calls since the last billing is retrieved from the DUR memory 78 and forwarded to the subscriber's facsimile machine. If the subscriber has called from a telephone instead of a facsimile machine, he or she is prompted to input the facsimile number which the bill is to be delivered to. The subscriber is provided widi a facsimile bill within a time period determined by die Processor 60. For example, if the Processor 60 allows, the facsimile bill can be sent while the subscriber is on the line. If not, the facsimile bill can be sent one hour or twenty four hours later, depending on the capacity of the system. The subscriber can be notified by die VRS of die approximate time that die facsimile bill will be sent. The subscriber can choose to have the billed calls sorted in the facsimile bill. For example, a subscriber can enter a two digit number which is then used as a sort code. The two digit number can be entered after a special tone at the end of die dialing sequence or by pressing a predetermined key, such as *, and dien the two digit code. The subscriber can also be informed of charges by an invoice printed, for example, by the Business Management System 50. The printed invoices can serve as written confirmation and can be mailed to die subscriber on a regular basis or upon the request of the subscriber. In Figure lc, real time billing processing occurs in a Network Routing Device 30. According to a first embodiment of the present invention, die Network Routing Device can be implemented widi a central office switch to which the subscriber is attached. Figure 2a illustrates a central office (CO) switch 100 in which real time subscriber billing can be performed according to die first embodiment. In Figure 2a, the CO switch 100 is connected to a subscriber 200 via a subscriber line 210. The CO switch 100 provides die subscriber 200 with telephone service. Although only one subscriber is shown in Figure 2a, any number of subscribers can be connected to die CO switch 100. In Figure 2a, real time billing processing can be performed in the central processing unit (CPU) 110 included in die CO switch 100. Figure 2b is a flowchart illustrating an exemplary real time billing process performed by the CO switch shown in Figure 2a. As shown in Figure 2b, the process begins at step 2000 at which a subscriber with a prepaid deposit or credit limit goes off hook, and die CO switch 100 verifies the subscriber's record which includes die subscriber's telephone number, the COS, die subscriber's usable balance, etc. Next, at step 2010, the CO switch 100 runs a Communications Warning Message Routine (CWMR), described widi reference to Figure 7, to issue an off hook warning message to the subscriber. At step 2020, the CO switch 100 stores the telephone number dialed by the subscriber in, for example, the Communications Control Memory 72. At step 2030, the CO switch 100 runs a Real Time Charge Routine (RTCR), described witii reference to Figure 8. At step 2040, a determination is made whetiier the subscriber has a sufficient usable balance or is approved an overrun based on die RTCR. If not, tib.e process proceeds to step 2050 at which the CO switch 100 denies the telephone call. From step 2050, the process proceeds to step 2060 at which the CO switch 100 performs the Real Time Warning Message Routine (RTWMR), described with reference to Figure 9, and issues a warning to the subscriber. If the subscriber hangs up, the RTWMR ends. Otiierwise, the RTWMR continues until die end of message. The process then ends at step 2140. If, at step 2040, it is determined that die subscriber has a sufficient usable balance or overrun is approved, die process proceeds to step 2070 at which die CO switch 100 processes the call. At step 2080, die CO switch 100 determines if the called number answers. If not, the process proceeds to step 2090, at which a determination is made whetiier the call attempt has ended, e.g., because die calling subscriber has gone off hook. If, at step 2080, the CO switch 100 determines mat die called number has answered, die CO switch runs the RTCR again immediately at step 2100 so that all charges can be applied in real time. At step 2110, a determination is made whetiier a call disconnect routine has been invoked because, based on die RTCR, the subscriber does not have a sufficient balance or an approved overrun to go forward widi the call. If the call disconnect routine is not invoked, die process proceeds to step 2120. At step 2120, die CO switch 100 determines whether the call has ended, e.g., because eitiier end has hung up. If the call has not ended, die process returns to step 2100. If, at step 2110, the call disconnect routine has been invoked, at step 2120 it is determined mat the call has ended, or at step 2090 it is determined tiiat the call attempt has ended, die process proceeds to step 2130. At step 2130, die CO switch 100 disconnects d e call, updates die subscriber record with the final charge value for the call, and creates the final CDR for the call. The process then proceeds to step 2140, where it ends. In Figure 2a, real time billing processing occurs in the CPU 110 which performs the real time billing calculations and includes die RTCR and die subscriber account balances. Alternately, real time billing processing can be performed in an Application Central Processor Unit (Apps.CPU) 300 connected to the CO switch 100 via a switch interface 310 as shown in Figure 2c. In this case, the RTCR and die subscriber account balances are stored in die Apps.CPU 300. Figure 2d shows an exemplary real time billing process performed in the CO switch configuration illustrated in Figure 2c. The flowchart in Figure 2d is similar to that in Figure 2b. In Figure 2d, die process begins at step 2005 at which the subscriber goes off hook, and die CO switch 100 notifies the Apps.CPU 300 of die subscriber ID, i.e., the subscriber's telephone number. Next, at step 2015, the Apps.CPU 300 directs the CO switch 100 to start the CWMR to issue an off hook warning message. At step 2025, the CO switch 100 stores the telephone number dialed and forwards die number along with the subscriber ID again to the Apps.CPU 300. At step 2035, the Apps.CPU runs the RTCR for the subscriber ID. At step 2040, a determination is made whetiier the subscriber has a sufficient usable balance or is approved an overrun for the call, based on die RTCR. If not, die process proceeds to step 2055 at which the Apps.CPU 300 instructs the CO switch to deny the call and start the RTWMR. The CO switch 100 denies die call to the subscriber, and die process proceeds to step 2140, where it ends. If, at step 2040, it is determined tiiat the subscriber has a sufficient usable balance or is approved an overrun, the process proceeds to step 2065 at which die Apps.CPU 300 authorizes the CO switch 100 to process the call. At step 2075, the CO switch 100 processes the call and informs die Apps.CPU 300 of die answer status. At step 2080, the CO switch 100 determines whetiier the called number answers. If the called number does not answer, the process proceeds to step 2090 at which it is determined whetiier the call attempt has ended. If die call attempt has not ended, die process returns to step 2080. If, at step 2080, the CO switch 100 determines mat the called number has answered, die process proceeds to step 2105 at which die CO switch informs the Apps.CPU 300 of the call answer, and the Apps.CPU runs the RTCR again immediately so that all charges can be applied in real time. Next, at step 2110, it is determined, based on die RTCR, whetiier the call disconnect routine has been invoked. If die call disconnect routine has not been invoked, die process proceeds to step 2120 at which the CO switch 100 determines whether the call has ended. If die call has not ended, die process returns to step 2105. If, at step 2110 the call disconnect routine has been invoked, or at step 2120, the CO switch 100 determines that the call has ended, or at step 2090 it is determined tiiat the call attempt has ended, die process proceeds to step 2135. At step 2135, the CO switch 100 disconnects the call and informs the Apps.CPU 300 of the disconnect time so that the Apps.CPU can update die subscriber record of die final charge value and create the final CDR for the call. From step 2135, the process proceeds to step 2140, at which it ends. In the embodiment above, real time billing processing occurs in the central office switch or in a processing unit attached to die central office switch that provides telephone service to the subscriber. Real time billing processing can also occur in a switch that is not connected directly to die subscriber line or trunk. This may be desirable, for example, in networks where CO switches are not capable of real time billing processing. In such a case, according to a second embodiment of die present invention, the real time billing processing can be performed in a tandem CO switch which is connected to an end office switch tiiat provides die subscriber with telephone service. Figure 3a illustrates a tandem central office switch in which real time billing system processing can be performed according to die second embodiment of die present invention. In Figure 3a, the tandem CO switch 120 is connected to an end office CO switch 105 which provides a subscriber 200 with telephone service. The real time billing processing can be performed in a CPU 130 included in the tandem CO switch 120. The tandem CO switch 120 is connected to die end office CO switch 105 via standard central office trunks 140. This connection between the tandem CO switch 120 and the end office CO switch 105 can incorporate any method of signaling that provides standard interoffice call handling information such as call se p, call tear down, calling and called number identification, etc. The information transport protocol between CO switches, including end office switches and tandem switches, can be any standard switch protocol, including but not limited to, SS-7, R-2, R-1.5, or R-l. The subscriber 200 is referred to as a virtual subscriber. Virtual subscribers are handled in much the same way as directly connected subscribers, except that to determine die calling party, the tandem CO switch 120 interrogates the incoming network trunk 140 on which the call is forwarded by die end office switch CO 105. Upon determining the calling party, the tandem CO switch 120 handles die process in much the same way as described above. COS limitations do not include local calls which are switched between two subscribers on the end office switch. Figure 3b is a flowchart illustrating an exemplary real time billing process performed by die tandem central office switch shown in Figure 3a. Referring to Figure 3b, the process begins at step 3000 at which the tandem CO switch 120 is notified of an incoming interoffice trunk call from the end office CO switch 105. At step 3010, the tandem CO switch 120 receives the telephone number dialed from the end office CO switch 105, requests and receives the calling subscriber number, and checks for a Virtual Subscriber Record (VSUB) for the calling subscriber. The VSUB contains information concerning the subscriber 200 such as account balances, credit information, class of service, record of calls, etc. The VSUB can be stored, for example, in the Billing Data Memory 74 in the tandem CO switch 120. At step 3020, die tandem CO switch 120 performs the RTCR for the VSUB. At step 3030, the tandem CO switch 120 determines whether there is a sufficient balance or an approved overrun for the VSUB, based on the RTCR. If not, the tandem CO switch 120 denies die call at step 3040. From there, the process proceeds to step 3120, at which it ends. If, at step 3030, it is determined tiiat there is a sufficient balance or an approved overrun, the process proceeds to step 3050. At step 3050, die tandem CO switch 120 processes the call. At step 3060, the tandem CO switch 120 determines whether the called number answers. If the called number does not answer, the process proceeds to step 3070 at which the tandem CO switch 120 determines whetiier the call attempt has ended. If die call attempt has not ended, die process returns to step 3060. If, at step 3060, the tandem CO switch 120 determines that the called number has answered, die process proceeds to step 3080 at which die RTCR is run again immediately so tiiat all charges can be applied in real time. At step 3090, a determination is made whetiier the call disconnect routine has been invoked because, based on die RTCR, die VSUB does not have approval to proceed with the call. If the call disconnect routine has not been invoked, die process proceeds to step 3100. At step 3100, die tandem CO switch 120 determines whether the call has ended. If die call has not ended, die process returns to step 3080. From a determination at step 3090 that the call disconnect routine has been invoked, a determination at step 3100 tiiat the call has ended, or a determination at step 3070 that die call attempt has ended, die process proceeds to step 3110. At step 3110, die tandem CO switch 120 disconnects the call, updates die VSUB record wid the final charge value, and creates the final CDR for the call. From step 3110, the process proceeds to step 3120, at which it ends. In Figure 3a, real time billing processing occurs in the CPU 130 which performs the real time billing calculations and includes die RTCR and die subscriber account balances. Alternately, real time billing processing can be performed in the Apps.CPU 300 connected to die tandem CO switch 120 via a switch interface 310 as shown in Figure 3c. In this case, the RTCR and the subscriber account balances are stored in the Apps.CPU 300. An exemplary real time billing process performed by die tandem CO switch configuration illustrated in Figure 3c is shown as a flowchart in Figure 3d. The flowchart in Figure 3d is similar to that in Figure 3b. In Figure 3d, die process begins at step 3000 at which the tandem CO switch 120 is notified of an incoming interoffice trunk call from the end office CO switch 105. At step 3015, the tandem CO switch 120 receives the telephone number dialed from the end office CO switch 105, requests and receives the calling subscriber number, and forwards this information to the Apps.CPU 300. The Apps.CPU 300 checks for a VSUB for the calling subscriber, which can be programmed into die Apps.CPU. At step 3025, the Apps.CPU 300 performs the RTCR for the VSUB. At step 3035, a determination is made whetiier there is a sufficient usable balance or an approved overrun for the VSUB based on die RTCR. If not, the process proceeds to step 3045 at which the Apps.CPU 300 instructs the tandem CO switch 120 to deny die call. If, at step 3035, it is determined that there is a sufficient usable balance or an approved overrun for the VSUB, the process proceeds to step 3055 at which the Apps.CPU 300 authorizes the tandem CO switch 120 to process the call. The tandem CO switch 120 processes the call and informs the Apps.CPU 300 of the answer status. Next, at step 3060, the tandem CO switch 120 determines whetiier the called number answers. If not, the process proceeds to step 3070 at which die tandem CO switch 120 determines whether the call attempt has ended. If die call attempt has not ended, die process remrns to step 3060. If, at step 3060, the tandem CO switch 120 determines that the called number has answered, die process proceeds to step 3085 at which the tandem CO switch informs the Apps.CPU 300 that the called number has answered, and die Apps.CPU 300 runs the RTCR again immediately so that all charges can be applied in real time. Next, at step 3090, a determination is made whetiier the call disconnect routine has been invoked by die Apps.CPU because, based on die RTCR, die VSUB does not have sufficient approval to proceed with the call. If the call disconnect routine has not been invoked, die process proceeds to step 3100. At step 3100, die tandem CO switch 120 determines whetiier the call has ended. If die call has not ended, die process remrns to step 3085. From step 3045, or if, at step 3090 it is determined tiiat the call disconnect routine has been invoked, at step 3100 it is determined tiiat the call has ended, or at step 3070 it is determined tiiat the call attempt has ended, die process proceeds to step 3115 at which the tandem CO switch 120 disconnects the call and informs the Apps.CPU 300 of the disconnect time so that the Apps.CPU can update die VSUB record of die final charge value. The App.CPU 300 updates tite subscriber record widi the final charge value at step 3117 and creates the final CDR for this call. The process then ends at step 3120. According to a third embodiment of die present invention, rather than having one deposit or credit for each subscriber, there can be one debit or credit account covering multiple subscribers. This can be useful, for example, in a business that has more than one line or a Public Call Office (PCO) operated by a franchise or independent operator. According to tiiis embodiment, a group of trunks, subscriber lines, or services can be identified as a single Billing Group (BG). All the features of the real time subscriber billing system, including prepaid deposits and credit limits, can be applied to die BG as a whole in the same way as previously described for a single subscriber. The trunks, lines, and services associated widi the BG can originate in more than one switch. Service group billing permits subscribers to charge telephone, paging, cellular, and otiier communication services to a single account. For example, all charges from the BG can be charged to a main billing number. The COS for auxiliary billing numbers can be established by die main billing number. Figure 4a illustrates a network tandem CO switch 150 in which real time billing processing can be performed according to the third embodiment of the present invention. In Figure 4a, the BG is represented by a private/ foreign network 400. The private/foreign network 400 comprises one or more switches which are run/administered by an entity other than that runnmg/administering the network tandem CO switch 150. The private/foreign network 400 is connected to die network tandem switch 150 via standard central office trunks 410. The connection between the network tandem CO switch 150 and die private/foreign network 400 can incorporate any method of signaling that provides standard interoffice call handling information such as call semp, call tear down, calling and called number identification, etc. In Figure 4a, the real time billing processing can be performed in a CPU 160 in the network tandem CO switch 150. The CPU 160 is programmed with trunk groups for each different private/foreign network connected. The network tandem CO switch 150 monitors the trunk(s) and runs the RTCR. Figure 4b is a flowchart illustrating an exemplary real time subscriber billing process performed in die network tandem CO switch shown in Figure 4a. Referring to Figure 4b, the network tandem CO switch 150 is notified of an incoming interoffice trunk call from the private/foreign network 400 at step 4000. At step 4010, the network tandem CO switch 150 receives the telephone number dialed, identifies die trunk ID, and checks for a Trunk Record (TR) for this trunk. The trunk ID uniquely identifies die trunk by a trunk number and contains information on the type of signalling used as well as die COS, die subscriber's usable balance, etc. The TR contains information for the trunk such as account balances, credit information, class of service, record of calls, etc. The TR can, for example, be stored in Billing Data Memory 74 in the network tandem CO switch 150. The network tandem CO switch 150 also performs the RTCR for the TR. At step 4020, the network tandem CO switch 150 determines whether there is a sufficient usable balance or an approved overrun for the TR based on die RTCR. If not, die process proceeds to step 4030 at which the network tandem CO switch 150 denies die call. If, at step 4020, it is determined tiiat there is a sufficient usable balance or an approved overrun for the TR, the process proceeds to step 4040 at which the network tandem CO switch 150 processes the call. Next, at step 4050, the network tandem CO switch 150 determines whether the called number answers. If not, the process proceeds to step 4060 at which a determination is made whetiier the call attempt has ended. If die call attempt has not ended, die process remrns to step 4050. If, at step 4050, it is determined tiiat the called number has answered, die process proceeds to step 4070 at which die network tandem CO switch 150 runs the RTCR again immediately so tiiat all charges can be applied in real time. Next, at step 4080, a determination is made whetiier the call disconnect routine has been invoked because, based on die RTCR, die TR does not have sufficient approval to proceeds witii the call. If the call disconnect routine has not been invoked, die process proceeds to step 4090. At step 4090, die network tandem CO switch 150 determines whether the call has ended. If die call has not ended, die process returns to step 4070. From step 4030, a determination at step 4080 tiiat the call disconnect routine has been invoked, a determination at step 4090 tiiat the call has ended, or a determination at step 4060 mat the call attempt has ended, die process proceeds to step 4100. At step 4100, die network tandem CO switch 150 disconnects die call, updates die TR witii the final charge value, and creates the final CDR for the call. The process then proceeds to step 4110 at which it ends. In Figure 4a, real time billing processing occurs in the CPU 160 which stores the RTCR and the trunk account balances. Alternately, real time billing processing can be performed in an Apps.CPU 300 connected to die network tandem CO switch 150 via a switch interface 310 as shown in Figure 4c. In this case, the RTCR and the trunk account balances are stored in the Apps.CPU 300. Figure 4d is a flowchart illustrating an exemplary real time billing process performed in the network tandem CO switch configuration shown in Figure 4c. Figure 4d is similar to Figure 4b. Referring to Figure 4d, die process begins at step 4000 at which the network tandem CO switch 150 is notified of an incoming interoffice trunk call from the private/foreign network 400. At step 4015, the network tandem CO switch 150 receives the telephone number dialed, identifies the trunk ID, and forwards this information to the attached Apps.CPU 300. The Apps.CPU 300 checks for a TR for this trunk. At step 4017, the Apps.CPU 300 performs the RTCR for the TR. At step 4020, a determination is made whetiier there is a sufficient usable balance or an approved overrun for the TR based on die RTCR. If not, the process proceeds to step 4035 at which the Apps.CPU 300 instructs the network tandem CO switch 150 to deny die call.. If, at step 4020, it is determined tiiat there is a sufficient usable balance or an approved overrun for the TR, the process proceeds to step 4045 at which die Apps.CPU 300 autiiorizes the network tandem CO switch 150 to process the call. At step 4047, the network tandem CO switch 150 processes the call and informs the Apps.CPU 300 of the answer status. At step 4050, the network tandem CO switch 150 determines whether the called number answers. If not, the process proceeds to step 4060 at which die network tandem CO switch 150 determines whether the call attempt has ended. If die call attempt has not ended, the process remrns to step 4050. If, at step 4050, it is determined tiiat the called number has answered, die process proceeds to step 4075 at which die network tandem CO switch 150 notifies the Apps.CPU 300 of the call connection. The Apps.CPU 300 runs the RTCR again immediately so tiiat all charges can be applied in real time. At step 4080, a determination is made whetiier the call disconnect routine has been invoked. If die call disconnect routine has been invoked, die process proceeds to step 4085 at which die Apps.CPU 300 issues a disconnect request to the network tandem CO switch 150 to disconnect die trunk call. If, at step 4080, it is determined tiiat the call disconnect routine has not been invoked, die process proceeds to step 4090 at which a determination is made whether the call has ended. If die call has not ended, die process remrns to step 4075. From step 4035, step 4085, a determination at step 4090 that the call has ended, or a determination at step 4060 mat the call attempt has ended, die process proceeds to step 4105 at which the network tandem CO switch 150 disconnects the call and informs the Apps.CPU 300 of die disconnect time. Then, the process proceeds to step 4107 at which die Apps.CPU updates the TR with the final charge value and creates the final CDR for this call. Finally, the process proceeds to step 4110 at which it ends. The present invention is not limited to wireline subscribers but may also be applicable to cellular and/or wireless subscribers. Thus, according to a fourth embodiment, the real time billing system can be implemented in a central office switch connected to a cellular/wireless system to which subscribers are attached. Figure 5a illustrates a telephone company CO tandem switch 170 in which real time subscriber billing can be performed according to the fourth embodiment. In Figure 5a, the telephone company tandem CO switch 170 is connected to a cellular/wireless system 500 which provides wireless subscribers 200 with telephone service via, for example, a radio frequency (RF) link 220. In Figure 5a, real time billing processing can be performed in the CPU 180 in the telephone company tandem CO switch 170. The telephone company tandem CO switch 170 is connected to die cellular /wireless system 500 via intersystem links 195 for voice paths and via a inter-system controller link 190 for inter-system data transfer exchanges. Figure 5b is a flowchart illustrating an exemplary real time billing process performed in die telephone company tandem CO switch shown in Figure 5a. Referring to Figure 5b, the process begins at step 5000 at which the telephone company tandem CO switch 170 is notified of an incoming call from the attached cellular/wireless system 500 via the inter system controller link 190. The telephone company CO switch 170 is notified of die telephone number dialed and die calling subscriber number and checks for a VSUB for the calling subscriber. The VSUB can, for example, be stored in the Billing Data Memory 74 in the telephone company tandem CO switch 170. At step 5020, die telephone company tandem CO switch 170 performs the RTCR for the VSUB. A determination is made at step 5030 whetiier there is a sufficient usable balance or an approved overrun for die VSUB based on die RTCR. If not, the process proceeds to step 5040 at which the telephone company tandem CO switch 170 denies die call and informs the cellular/wireless system 500 of the call disconnect. From there, the process proceeds to step 5120, at which it ends. If, at step 5020, it is determined tiiat there is a sufficient usable balance or an approved credit, the process proceeds to step 5050 at which die telephone company tandem CO switch 170 processes the call and informs the cellular/wireless system 500 of the call status. Next, at step 5060, the telephone company tandem CO switch 170 determines whether the called number answers. If not, the process proceeds to step 5070 at which a determination is made whetiier the call attempt has ended. If die call attempt has not ended, die process remrns to step 5060. If, at step 5060, the telephone company tandem CO switch 170 determines that the called number has answered, the process proceeds to step 5080 at which the telephone company tandem CO switch runs the RTCR again immediately so that all charges can be applied in real time. Next, at step 5090, a determination is made whetiier the call disconnect routine has been invoked. If die call disconnect routine has not been invoked, die process proceeds to step 5100 at which die telephone company tandem CO switch 170 determines whether the call has ended. If die call has not ended, die process remrns to step 5080. If, at step 5090 the call disconnect routine has been invoked, at step 5100 it is determined tiiat the call has ended, or at step 5070 it is determined tiiat the call attempt has ended, the process proceeds to step 5110 at which the telephone company tandem CO switch 170 disconnects die call and updates die VSUB record witii the final charge value for this call. The telephone company tandem CO switch 170 creates the final CDR for this call and informs the attached cellular/wireless system 500 of the call disconnect. From step 5110, the process proceeds to step 5120, at which it ends. In Figure 5a, real time billing processing occurs in the CPU 180 which stores the RTCR and die subscriber account balance. Alternately, real time billing processing can be performed in an Apps.CPU 300 that is connected to die CPU 180 via a switch interface 310 as shown in Figure 5c. In this case, the RTCR and die subscriber account balance are stored in the Apps.CPU 300. Figure 5d is a flowchart illustrating an exemplary real time billing process performed in tine telephone company tandem CO switch configuration shown in Figure 5c. Figure 5d is similar to Figure 5b. Referring to Figure 5d, die process begins at step 5000 at which the telephone company tandem CO switch 170 is notified of an incoming call from the attached cellular/wireless system 500. At step 5015, the telephone company tandem CO switch 170 is notified by die cellular/wireless system 500 via the inter system controller link 190 of the subscriber ID, receives the telephone number dialed, and forwards this information to the Apps.CPU 300. The Apps.CPU 300 checks for a VSUB for the calling subscriber, which can, for example, be programmed into the Apps.CPU. At step 5025, the Apps.CPU 300 performs the RTCR for the VSUB. At step 5030, a determination is made whetiier there is a sufficient usable balance or an approved overrun for the VSUB based on die RTCR. If not, die process proceeds to step 5040 at which the Apps.CPU 300 informs die telephone company tandem CO switch 170 of the denial and instructs the switch to deny die call. From there, the process proceeds to step 5120, at which it ends. If, at step 5025, it is determined that there is a sufficient usable balance or an approved overrun for the VSUB, die process proceeds to step 5055 at which the Apps.CPU 300 instructs the telephone company tandem CO switch 170 to process the call. The telephone company tandem CO switch 170 processes the call and informs the Apps.CPU and die cellular/wireless system 500 of the call status. Next, at step 5060, the telephone company tandem CO switch 170 determines whether the called number answers. If not, the process proceeds to step 5070 at which a determination is made whetiier the call attempt has ended. If the call attempt has not ended, die process returns to step 5060. If, at step 5060, it is determined tihat the called number has answered, die process proceeds to step 5085 at which die telephone company tandem CO switch 170 informs the Apps.CPU 300 and die attached cellular/ wireless system 500 via the inter-system controller link 195 of the call answer. The Apps.CPU 300 runs the RTCR again immediately so that all charges can be applied in real time. At step 5090, a determination is made whetiier the call disconnect routine has been invoked. If not, die process proceeds to step 5100 at which a determination is made whetiier the call has ended. If die call has not ended, die process remrns to step 5085. From a determination at step 5090 that die call disconnect routine has been invoked, a determination at step 5100 at the call has ended, or a determination at step 5070 that the call attempt has ended, die process proceeds to step 5110 at which die telephone company tandem CO switch 170 disconnects die call and informs the Apps.CPU 300 of the disconnect time so that the Apps.CPU can update die VSUB record of the final charge value. The Apps.CPU creates the final CDR for this call. The telephone company tandem CO switch 170 informs the attached cellular/ wireless system 500 of the call disconnect. From step 5110, the process proceeds to step 5120, at which it ends. According to a fifth embodiment of the present invention, the real time billing system can be implemented in a remote calling system which enables a subscriber to charge for calls placed from a telephone other than the subscriber's phone. There are two approaches for billing for remote calling: remote call billing and subscriber line remote call billing. In remote call billing, when calling from a telephone within a network on a telephone other than the subscriber's phone, the subscriber identifies himself or herself to the network by, for example, keying in a credit identifying code followed by die telephone number to be called. The subscriber is prompted for identifying information such as a PIN and die telephone number to be charged for the call. This information is supplied by die subscriber and transmitted by a home switch or an attached computer in which real time billing processing occurs to a Remote Billing Computer (RBC) in the network. The RBC queries the home switch of the subscriber to determine if the subscriber has a sufficient balance in his or her account to make the call. The RBC can temporarily charge the subscriber account with a sum sufficient to make a typical call and forward a limit to the servicing switch. The servicing switch then sets up a temporary subscriber account with the amount authorized by die home switch. As die call progresses and die servicing switch limit approaches, the servicing switch can automatically request additional limits from the RBC. The RBC then subtracts an additional amount from the balance in the home switch and forwards this amount to the servicing switch to be added to die temporary limit. At the end of die call, any remaining unused amount in the servicing switch is returned to die RBC which, in mm, remrns the unused amount to the home switch of the subscriber. The remaining amount is added back to die subscriber's balance. Additional information can also be forwarded by die servicing switch to the RBC for transmission to the home switch. This can include the cost of the call, the telephone number dialed, die calling telephone number, date, start time, and ending time of the call, and so on. In subscriber line remote billing, a subscriber can charge calls inside or outside of a network to his or her account by, for example, dialing a predetermined number and entering his or her own telephone number and PIN. The predetermined number is a number at the home switch of the subscriber. When the subscriber enters the predetermined number and PIN, die switch to which the subscriber is connected provides an outgoing line. The subscriber receives a dial tone and can place a call in a normal manner. The call is charged as described above. Features that can be provided by the remote calling system according to die fifth embodiment of die present invention include a Personal Phone Number (PPN) and One Number Calling (ONC). The subscriber calls a predetermined phone number and identifies die telephone, pager, voice-mail, e-mail or facsimile machine for calls to be forwarded to. The type of call is detected by, for example, a network switch or a device attached to it for differentiating die type of call. For example, it can differentiate between voice, fax, and computer communications. Any calls to the subscriber's original number are automatically forwarded to the programmed number. The forwarding charges can be paid by the subscriber or the calling party. If the calling party is to pay, a voice response can ask the calling party if he or she wants the call forwarded. Figure 6a illustrates a remote calling system in which the real time subscriber billing system can be implemented according to the fifth embodiment of the present invention. In Figure 6a, a telephone company network includes CO switches 100a and 100b which can perform real time billing processing for calls made from lines other than the subscribers' lines of record. The CO switches 100a and 100b include CPUs 110a and 110b, respectively, in which the real time billing processing occurs. The CO switches 100a and 100b are connected to subscribers 200a and 200b via subscriber lines 210a and 210b, respectively. The CO switches 100a and 100b are connected to a Public Switched Telephone Network (PSTN) 600 via internetwork trunks 610a and 610b and information transport links 620a and 620b, respectively. A subscriber need not be directly connected to a CO switch capable of real time billing to receive calls. For example, as shown in Figure 6a, a subscriber 200c can be connected directly to the PSTN 600, via a trunk 630. Although only three subscribers are shown in Figure 6a, one skilled in the art will appreciate that the real time billing system according to tihe fifth embodiment of die present invention can be applicable to any number of subscribers. Also included in the remote calling system shown in Figure 6a is a Network Application Processor (NAP) 305 connected to die PSTN 600 via a Network Interoffice Information Link (NL) 325. The NAP 305 serves as an RBC. Information regarding calls is transferred between die CO switches 100 and ±e NAP 305 via die link 325, the PSTN 600, the trunks 610a and 610b, and the links 620a and 620b using any number of protocols, including, for example, SS7, WAN, LAN, Rl, R1.5, R2, etc. Similar to that of credit card calling, a subscriber in the remote billing system in Figure 6a can program his or her line with identifying information such as a PIN and then can, by dialing a special code, a home line number, and die PIN, call anotiier line and charge that call to his or her home line account in real time. For example, a subscriber with a home subscriber line 200a can place a call from the subscriber line 200c and charge the call to the subscriber line 200a. Figures 6b-d depict a flowchart illustrating an exemplary real time billing process performed in the remote calling system shown in Figure 6a. Referring to Figure 6b, the process begins at step 6000 at which a CO switch 100 is notified tiiat a subscriber line has gone off hook and dialed die special code indicating tiiat a remote call operation is requested. The CO switch is also notified of die target telephone number which the subscriber wishes to call. The CO switch in which the call originates is referred to as die Origin CO switch. The CO switch connected to the subscriber line to which the call is to be charged is referred to as the Home CO switch. The subscriber line to which the call is to be charged is referred to as the home subscriber line, and die subscriber line from which the call request originates is referred to as die requesting subscriber line. For example, referring to Figure 6a, if a subscriber places a call from a requesting subscriber line 200b, and die subscriber's home subscriber line is 200a, the Origin CO switch corresponds to switch 100b, and die Home CO switch corresponds to switch 100a. At step 6010, the Origin CO switch sends a tone or a voice request to the requesting subscriber line to input the number of the home subscriber line and die PIN of die subscriber. At step 6020, a determination is made whetiier the requesting subscriber line complies with the request. If the requesting subscriber line does comply witii the request, the process proceeds to step 6050 at which die Origin CO switch sends a tone or a voice request to the requesting subscriber line to wait for approval of the subscriber's account. At step 6060, the Origin CO switch determines if the requesting subscriber line and die home subscriber line reside in the same switch, i.e., if the Origin CO switch and die Home CO switch are die same. If die Origin CO switch and die Home CO switch are the same, the process proceeds to step 6070 at which it is determined whether the Home CO switch is capable of real time billing. If the Home CO switch is not capable of real time billing or if it is determined at step 6020 tiiat the requesting subscriber line has not complied with the request of the Origin CO switch, the process proceeds to step 6030 at which the Origin CO sends a denial tone or a voice response to the requesting subscriber line and disconnects die line. The process then proceeds to step 6040 at which it ends. If, at step 6060, it is determined tiiat the Origin CO switch and die Home CO switch are not the same, the process proceeds to step 6080 at which the Origin CO switch sends a request to the NAP 305 requesting account approval for the call. The Origin CO switch sends die number of the home subscriber line, die home subscriber PIN, and die number of the requesting subscriber line to the NAP 305 via the NL 325. Next, at step 6090, the NAP 305 checks an internal list of CO switches to determine if die Home CO switch is capable of real time billing. If is not, the process proceeds to step 6100 at which die NAP 305 sends a denial signal to die Origin CO switch. Next, at step 6110, the Origin CO switch sends a denial tone and/or a voice message response to the requesting subscriber line indicating tiiat the call is denied and tiien disconnects the line. The process then proceeds to step 6120 at which it ends. If, at step 6090, die Home CO switch is determined to be capable of real time billing, the process proceeds to step 6130 at which the NAP 305 determines the necessary amount required for the initial/secondary period of die call. The initial/secondary periods are time periods which can be established, for example, by the service provider. These periods can be different for different types of calls, e.g., there can be a different time period for a local call versus a long distance toll call. Next, at step 6140, die NAP 305 sends to the Home CO switch a request for the amount determined at step 6130 via tine NL 325. The NAP also sends to the Home CO switch the number of the home subscriber line, the home PIN, and die number of the requesting subscriber line. From step 6140 or a determination at step 6070 that the Home CO switch is capable of real time billing, the process proceeds to step 6150 at which the Home CO switch receives a request and checks for the required amount in the subscriber's account and die validity of die number of the requesting subscriber line. From there the process proceeds to step 6160 in Figure 5c. At step 6160 it is determined whetiier the home PIN is valid. If die home PIN is not valid, die process proceeds to step 6170 at which it is determined whetiier the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is the same as the Home CO switch, the process returns to step 6110. If not, the process proceeds to step 6180 at which the Home CO switch sends to die NAP 305 a signal indicating denial. Then, at step 6190, die NAP 305 sends to die Origin CO switch a signal indicating denial, and tine process remrns to step 6110. If, at step 6160, the PIN is determined to be valid, die process proceeds to step 6200 at which a determination is made whetiier the Home CO switch approves the request for the amount from the subscriber's account. If not, the process proceeds to step 6210 at which it is determined whetiier the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is not the same as the Home CO switch, the process remrns to step 6180. If the Origin CO switch is die same as the Home CO switch, the process remrns to step 6110. If, at step 6200, it is determined tiiat the Home CO switch approves the request, the process proceeds to step 6220 at which the Home CO switch reserves the credit amount against this subscriber's record. If this is an initial request for this call and this subscriber, the amount is reserved as die initial request. If this is an additional request for an additional amount for the same call, die Home CO switch reserves the amount as an additional reserve against this subscriber for this call. Next, at step 6230, a determination is made whetiier the Origin CO switch is the same as die Home CO switch. If not, the process proceeds to step 6240 at which die Home CO switch sends to the NAP 305 a signal indicating approval for the call. Next, at step 6250, die NAP 305 sends to tine Origin CO switch a signal indicating approval for this call. From step 6250 or a determination at step 6230 that the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6260 at which the Origin CO switch creates a VSUB for the call. The VSUB is created by the Origin CO expressly and temporarily for this call. At step 6270, die Origin CO switch processes the call. At step 6280, a determination is made whetiier the called number answers. If not, the process proceeds to step 6290 at which a determination is made whetiier the call attempt has ended. If the call attempt has not ended, the process remrns to step 6280. If the call attempt has ended, die process proceeds to step 6300 at which the Origin CO disconnects tine requesting subscriber line, deletes die VSUB, and notifies the NAP 305 via the NL 325 that the call attempt has ended. If, at step 6280, it is determined tiiat the called number has answered, die process proceeds to step 6310 at which die Origin CO switch performs the RTCR for the call and VSUB. From step 6310, the process proceeds to step 6320 shown in Figure 6d. At step 6320, a determination is made whetiier the Origin CO switch VSUB account balance is a predetermined percentage, e.g., 75-85% , used up. This predetermined percentage is selected, for example, by the service provider. If the account balance is between 75-85% used up, the process proceeds to step 6330 at which a determination is made whetiier the Origin CO switch is the same as the Home CO switch. If not, the process remrns to step 6080 shown in Figure 6b. If the Origin CO switch and the Home CO switch are the same, the process proceeds to step 6340 at which the Origin CO switch checks the home subscriber record for an additional amount. The additional amount is based upon an additional time period which can be established, for example, by the service provider and can be different for different types of calls. If no additional amount is available in the subscriber's account, the process returns to step 6310. If an additional amount is available, the process proceeds to step 6350 shown in Figure 6c at which the Origin CO switch adds die additional amount to die VSUB and reserves the additional amount as an additional reserve to the home subscriber line record for this call. From step 6350, the process remrns to step 6310. If, at step 6320, it is determined tiiat the VSUB record is not 75-85% used up, tihe process proceeds to step 6360 at which a determination is made whetiier the call disconnect routine has been invoked. If so, die process proceeds to step 6370 at which it is determined whetiier the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6400 at which die Origin CO switch disconnects die call, updates die VSUB record and die home subscriber line with the final charges, releases all reserve balances for this call, and creates a CDR. The process then proceeds to step 6410 at which it ends. If, at step 6360, it is determined tiiat the call disconnect routine has not been invoked, die process proceeds to step 6380 at which a determination is made whetiier the call has ended. If tihe call has not ended, the process remrns to step 6310 shown in Figure 6c. If the call has ended, a determination is made at step 6390 whetiier the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6400. If not, the process proceeds to step 6420 at which die Origin CO switch disconnects die call, finalizes the VSUB record witii the final call charges, creates a CDR, and sends to die NAP 305 die call record report concerning the total charges used. At step 6430, tihe Origin CO switch sends die call record to an external or internal storage device, for example the DUR Memory 78, where it can be retained for future reference. At step 6440, the call record is stored. From step 6300 shown in Figure 6c or step 6440, the process proceeds to step 6450 at which the NAP 305 sends to die Home CO the VSUB call record as received from the Origin CO switch. At step 6460, the Home CO switch applies the VSUB call record to die home subscriber line, releases all reserve balances for this call to the home subscriber record, and creates a CDR. Finally, at step 6470, the process ends. In Figure 6a, real time billing processing occurs in the CPUs 110a and 110b in which the RTCRs are stored. Alternately, real time billing processing can be performed in Apps.CPUs 300a and 300b attached to the CO switches 100a and 100b via switch interfaces 310a and 310b, respectively, as shown in Figure 6e. In this case, the RTCRs are stored in the Apps.CPUs 300a and 300b. The information transport links 620a and 620b are connected to die Apps.CPUs 300a and 300b, respectively. Figures 6f-h depict a flowchart illustrating an exemplary real time billing process performed in die remote calling system shown in Figure 6e. Figures 6f-h are similar to Figures 6b-d. Referring to Figure 6f, the process begins at step 6000 at which an Origin CO switch is notified tiiat a subscriber line has gone off hook and dialed die special code indicating tiiat a remote call operation is requested. The Origin CO switch is also notified of die target telephone number which the subscriber wishes to call. At step 6010, the Origin CO switch sends a tone or a voice request to the requesting subscriber line to input the number of the home subscriber and die PIN of die subscriber. At step 6020, a determination is made whetiier the requesting subscriber line complies with the request. If the requesting subscriber line does not comply witii the request, the process proceeds to step 6030 at which the Origin CO sends a denial tone or a voice response to the requesting subscriber line and disconnects die call. The process then proceeds to step 6040, at which it ends. If, at step 6020, it is determined that the requesting subscriber line has complied witii the request of the Origin CO switch, the process proceeds to step 6050 at which die Origin CO switch sends a tone or a voice request to the requesting subscriber line to wait for approval of the subscriber's account. Then, at step 6055, the Origin CO switch sends to die attached Apps.CPU via die switch interface 310 the number of the home subscriber line, the PIN, the called telephone number, and number of the requesting subscriber line. Next, at step 6060, the Origin CO Apps.CPU determines if die Origin CO switch and die Home CO switch are the same. If the Origin CO switch and die Home CO switch are the same, the process proceeds to step 6075 at which the Origin CO switch Apps.CPU checks for the validity of the number of the home subscriber line and for the required amount. At step 6085, the Origin CO switch Apps.CPU determines the amount required for initial/secondary periods die call. The process then proceeds to step 6160 described witii reference to Figure 6g. If, at step 6060, the Origin CO and the Home CO are not determined to be die same, the process proceeds to step 6087 at which die Origin CO Apps.CPU sends a request to the NAP 305 requesting account approval for the call. The Origin CO Apps.CPU 300 sends the number of the home subscriber line, the home subscriber PIN, and die number of the requesting subscriber line to the NAP 305 via the NL 325. Next, at step 6090, the NAP 305 checks an internal list of CO switches to determine if the Home CO switch is capable of real time billing. If is not, the process proceeds to step 6105 at which the NAP 305 sends a signal indicating denial to me Origin CO switch Apps.CPU. Then, at step 6115, the Origin CO Apps.CPU sends to the Origin CO switch a disconnect command to end tihe call. At step 6117, the Origin CO switch sends a denial tone or a voice message response to the requesting subscriber indicating tiiat the call is denied and then disconnects die line. The process then proceeds to step 6120 at which it ends. If, at step 6090, die Home CO switch is determined to be capable of real time billing, the process proceeds to step 6130 at which the NAP 305 determines the necessary amount for the initial/secondary period of die call. Next, at step 6140, die NAP 305 sends to the Home CO switch a request for credit for the amount determined in step 6130. The NAP 305 also sends tihe number of the home subscriber line, the home subscriber PIN, and die number of the requesting subscriber line to the Home CO switch. Next, at step 6150, the Home CO switch receives a request for an amount from the subscriber's account and checks for the required amount and die validity of die number of the requesting subscriber line. From step 6150 or step 6085, the process proceeds to step 6160 shown in Figure 6g. At step 6160, the Home CO switch checks to see if die PIN is valid. If die PIN is not valid, die process proceeds to step 6170 at which a determination is made whether the Origin CO switch is the same as the Home CO switch. If not, the process proceeds to step 6180 at which the Home CO Apps.CPU sends to die NAP 305 a signal indicating denial. The process then remrns to step 6105 shown in Figure 6f. If, at step 6160, the PIN is determined to be valid, tihe process proceeds to step 6200 at which a determination is made whetiier the Home CO switch approves the request for the amount. If not, the process proceeds to step 6210 at which it is determined whetiier the Origin CO switch is the same as the Home CO switch. If not, the process remrns to step 6180. If the Origin CO switch is the same as the Home CO switch, the process remrns to step 6115 shown in Figure 6f. If, at step 6200, it is determined tiiat the Home CO switch approves the request, the process proceeds to step 6220 at which die Home CO switch reserves the requested amount against the subscriber's record. Next, at step 6230, a determination is made whetiier the Origin CO switch is the same as the Home CO switch. If not, the process proceeds to step 6240 at which the Home CO switch sends to die NAP 305 a signal indicating approval for the call. Next, at step 6255, the NAP 305 sends to the Origin CO Apps.CPU a signal indicating approval for the call. From step 6255 or a determination at step 6230 ti at the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6265 at which the Origin CO Apps.CPU creates a VSUB record for the call and instructs the Origin CO to process the call. The VSUB is created by die Origin CO expressly and temporarily for this call. Next, at step 6270, the Origin CO switch processes the call. At step 6280, the Origin CO switch determines whetiier the called number has answered. If not, die process proceeds to step 6290 at which a determination is made whether the call attempt has ended. If the call attempt has ended, the process proceeds to step 6295 at which die Origin CO switch disconnects die requesting subscriber line and informs the Origin Apps.CPU of the call termination. Then, the process proceeds to step 6297 shown in Figure 6h. At step 6297, the Origin CO Apps.CPU deletes die VSUB. Next, at step 6299, a determination is made whetiier the Origin CO switch is the same as the Home CO switch. If not, the process proceeds to step 6303 at which the Origin CO Apps.CPU notifies NAP 305 that tihe call attempt was unsuccessful. Referring again to Figure 6g, if, at step 6280, it is determined that the called number has answered, die process proceeds to step 6305 at which the Origin CO switch sends a call connect status to the Origin Apps.CPU. Next, at step 6310 shown in Figure 6h, the Origin CO Apps.CPU runs the RTCR for the VSUB. At step 6320, a determination is made whetiier the Origin CO Apps.CPU VSUB account balance is a predetermined percentage, e.g. between 75-85, used up. If so, tihe process proceeds to step 6330 at which a determination is made whetiier the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6345 at which the Origin CO Apps.CPU checks the home subscriber record for an additional amount. If no additional amount is available, the process remrns to step 6310. If an additional amount is available, the process proceeds to step 6355 shown in Figure 6g at which the Origin CO Apps.CPU adds die additional amount to the VSUB and reserves the additional amount as an additional reserve to the home subscriber line record for this call. The process then remrns to step 6310. If, at step 6330, the Origin CO is determined not to be me same as the Home CO switch, the process remrns to step 6087 shown in Figure 6f. If, at step 6320, it is determined tiiat the VSUB record is not between 75-85 % used up, the process proceeds to step 6360 at which a determination is made whetiier the call disconnect routine has been invoked. If so, die process proceeds to step 6370 at which it is determined whether the Origin CO switch is the same as the Home CO switch. If the Origin CO switch is the same as the Home CO switch, the process proceeds to step 6405 at which the Origin CO switch disconnects die call and updates the Origin Apps.CPU with the disconnect time. Then, at step 6407, the Origin Apps.CPU finalizes the VSUB record witii the final call charges, updates die home subscriber line with these final charges, releases all reserve balances for this call, and creates a CDR. The process then proceeds to step 6410 at which the routine ends. If, at step 6360, it is determined tiiat the call disconnect routine has not been invoked, die process proceeds to step 6380 at which a determination is made whetiier the call has ended. If not, the process remrns to step 6310. If the call has ended, a determination is made at step 6390 whetiier the Origin CO switch is the same as tihe Home CO switch. If so, the process proceeds to step 6405. If, at step 6390, die Origin CO switch is not the same as the Home CO switch, the process proceeds to step 6415 at which die Origin CO switch disconnects die call and updates the Origin Apps.CPU with the call termination time. Then, at step 6425, the Origin CO Apps.CPU finalizes the VSUB record witii the final call charges, creates a CDR, and sends to die NAP 305 a call record report concerning the total charges used. Then, at step 6435, the Origin CO Apps.CPU sends die call record to an internal or external storage device. The call record is stored at step 6440. Next, at step 6450, the NAP 305 sends to die Home CO switch die VSUB call record as received from the Origin CO switch. At step 6460, the Home CO switch applies the VSUB record to the home subscriber line, releases all reserve balances for this call to the home subscriber record, and creates a CDR. From step 6460, a determination at step 6299 that the Origin CO switch is the same as the Home CO switch, or step 6303, the process proceeds to step 6470 at which it ends. Figure 7 illustrates an exemplary routine for initiating a communications warning message according to die present invention. Referring to Figure 7, the Communications Warning Message Routine (CWMR) for initiating a warning message begins at step 7000, with the subscriber initiating a new communication by, for example, lifting the telephone handset to place a call. Next, at step 7010, tihe subscriber's balance, including for example the PUL/SUL and/or PUC/SUC, is looked up. At step 7020, the subscriber balance is compared witii a predetermined first limit to determine if the balance exceeds die first limit. If not, the routine proceeds to step 7030, at which die subscriber's balance is compared with a predetermined second limit to determine if it exceeds die second limit. If not, the routine proceeds to step 7040, at which the subscriber's balance is compared witii a predetermined tiiird limit to determine if the balance exceeds die tiiird limit. If not, the routine continues comparing the subscriber's balance with a series of predetermined limits up to step 7050 at which the subscriber's balance is compared witii a predetermined nth limit, the last of a series of predetermined limits, to determine if the balance is within the nth limit. If the balance is not within the nth limit, the routine proceeds to step 7060 at which a disconnect warning is issued to tihe subscriber, indicating tiiat the subscriber does not have a sufficient balance to establish a new communication. The routine then ends at step 7130. If, at step 7030, it is determined tiiat the subscriber's balance exceeds die second limit, a first warning is issued to die subscriber at step 7070. A first warning flag is then set at step 7080 so that the first warning message is not reissued during the communication. If, at step 7040, it is determined tiiat the subscriber's balance exceeds the third limit, a second warning is issued to die subscriber at step 7090. A second warning flag is then set at step 7100 so that the second warning message is not reissued during the communication. If, at step 7050, it is determined tiiat the subscriber's balance exceeds die nth, a nth - 1 warning is issued to die subscriber at step 7110. An nth - 1 warning flag is then set at step 7120 so tiiat the nth - 1 warning message is not reissued during the communication. If, at step 7020, it is determined tiiat the subscriber's balance exceeds die first limit, or from steps 7060, 7080, 7100, or 7120, the routine proceeds to step 7130 at which it ends. Figure 8 illustrates an exemplary real time charge routine according to die present invention. Referring to Figure 8, the Real Time Charge Routine (RTCR) starts at step 8000, at which it is determined if it is an appropriate time for a charge to be accumulated against a subscriber's balance. The appropriate time for the charge to be accumulated can be prior to, during, or after a commumcation is completed, depending, for example, on a prearranged agreement between die service provider and die subscriber. If at step 8000 it is determined that it is an appropriate time to accumulate a charge, a determination is made at step 8010 whetiier the commumcation is a flat rate communication, that is a communication with a single rate. An example of a flat rate communication is a local telephone call that is charged a flat rate of $0.50. If the communication is a flat rate commumcation, the flat rate charge is calculated at step 8020. If die communication is determined at step 8010 not to be a flat rate communication, a determination is made at step 8030 whetiier a complex charge is to be calculated for the communication. For example, a call may be charged $1.00 for the first three minutes and tiien $0.50 cents for every minute tihereafter in the case of a voice channel. For a data connection, there may be a $2.00 charge plus a $0.10 charge for every megabyte transferred. There may also be different charges for upstream and downstream data transmissions. If a complex charge is to be calculated, this calculation is performed at step 8040. If it is determined at step 8030 that there is no complex charge to be calculated, die conclusion is made at step 8050 tiiat a simple charge is to be calculated for the call, for example, $0.10 a minute, $0.01 per kilobit per minute capacity, $0.15 per megabyte throughput, etc. The simple charge is then calculated at step 8060. If, at step 8000, it is determined tihat it is not an appropriate time for a charge, a determination is made at step 8070 whetiier the communication is new or ongoing. If the communication is new, the routine remrns to step 8010. Once the flat, complex, or simple charges are calculated at steps 8010, 8040, and 8060, a determination is made at step 8080 whetiier there is a sufficient usable balance in the subscriber's account for the call. If there is not a sufficient balance, a determination is made at step 8090 whetiier or not to allow over run of the balance, i.e., to exceed die balance. If at step 8080 it is determined tiiat there is a sufficient balance in the subscriber's account or at step 8090 it is determined to allow over run, a charge is applied to die debit or credit account at step 8100. From there, the routine proceeds to step 8110 which invokes the RTWMR described witii reference to Figure 9. If, at step 8090, it is determined tihat an overrun should not be allowed, the routine proceeds to step 8120 at which the RTWMR is invoked. Next, die COS routine is performed at step 8130, described in detail witii reference to Figure 10, and a communication disconnect routine is performed at step 8140 to disconnect die communication. From a determination at step 8070 that the communication is not new or from step 8140, the routine proceeds to step 8150, where it ends. Figure 9 illustrates an exemplary real time warning message routine according to the present invention. Referring to Figure 9, the Real Time Warning Message Routine (RTWMR) is invoked at step 8110 or step 8120 shown in Figure 8. The RTWMR begins at step 9000 at which the subscriber starts a new communication by, for example, lifting the telephone handset to place a call. Next, at step 9010, die subscriber's balance is looked up. At step 9020, the subscriber's balance is compared with a predetermined first limit to determine if tihe balance exceeds the first limit. If not, the routine proceeds to step 9030 at which the subscriber's balance is compared witii a predetermined second limit to determine if it exceeds die second limit. If not, the routine proceeds to step 9040 at which the subscriber's balance is compared witii a predetermined tiiird limit to determined if the balance exceeds die tiiird limit. If not, the routine continues comparing the subscriber's balance with predetermined limits up until step 9050 at which the subscriber's balance is compared witii a predetermined nth limit, the last of a series of predetermined limits, to determine if the balance is within that limit. If the subscriber's balance is not within the nth limit, the routine proceeds to step 9060 at which a disconnect warning is issued. If, at step 9030, tihe second limit is exceeded, die process proceeds to step 9070 at which a determination is made whetiier a first warning flag is set. If the first warning flag is not set, the routine proceeds to step 9080 at which a first warning message is issued. Next, die routine proceeds to step 9090 at which the first warning flag is set. If, at step 9040, the third limit is exceeded, die routine proceeds to step 9100 at which a determination is whether a second warning flag is set. If the second warning flag is not set, the routine proceeds to step 9110 at which a second warning message is issued. Next, at step 9120, die second warning flag is set. If, at step 9050, the subscriber's balance is determined to be within the nth limit, the routine proceeds to step 9130 at which a determination is made whether the ntiι-1 warning flag is set. If not, the routine proceeds to step 9140 at which an nth warning message is issued. Next, at step 9150, die nth-1 warning flag is set. If, at step 9020, it is determined tiiat the subscriber's balance exceeds die first limit, or from steps 9060, 9090, 9120, or 9150, the routine proceeds to step 9160 at which it ends. Figure 10 illustrates an exemplary change of service routine according to die present invention. The change of service (COS) routine can be invoked, for example, at step 8130 in Figure 8. Referring to Figure 10, the routine begins at step 10000 at which it is determined whetiier the subscriber has a sufficient balance for the current COS. If not, the appropriate COS authorized for tihe subscriber's usable balance is looked up at step 10010. For example, the COS authorized for particular subscriber balances for the subscriber can be looked up. Next, at step 10020, die COS is changed to die autiiorized COS. From step 10020 or a determination at step 10000 tiiat the subscriber has sufficient balance for the current COS, the routine ends at step 10030. In die embodiments described above, real time billing processing occurs in the standard network routing path of subscribers in a structured, i.e., supervised, communication network. It may also be necessary for real time billing to occur in an unstructured, unsupervised communication network, i.e, a communication network without any central control device. For example, subscribers may be directly connected to each other without using a structured network. A radio telephone based system can permit such subscriber to subscriber communication. Also, a subscriber may be using services at his/her location, without using a structured communication network. In such systems, there is no way of monitoring or charging for subscriber use. Figure 11 illustrates an exemplary system for real time subscriber billing at a subscriber location in an unstructured, unsupervised communication network, according to a second aspect of die present invention. Figure 11 is similar to Figure la, except in Figure 11, there are two subscribers, Sub. I and Sub. IR identified witii the reference numeral 15, and die subscribers are connected directly to each other, without the use of any Network Routing Devices. The subscribers 15 can, for example, be radio telephone subscribers. Subscriber Sub. I represents a subscriber initiating a call, and subscriber Sub. IR represents a subscriber receiving a call. Although two subscribers are shown, one skilled in the art will appreciate that the real time billing system according to die second aspect of die present invention can be applicable to any number of subscribers. According to exemplary embodiment, a Channel Billing Monitor 20 is arranged at eitiier or both of the subscriber locations. Although shown in Figure 11 as being located at Sub. I, die Channel Billing Monitor 20 can be located instead at die Sub. IR, or there can be a Channel Billing Monitor 20 at both subscriber locations. Only one Channel Billing Monitor 20 is shown in Figure 11 in the interest of simplicity. The Channel Billing Monitor 20 detects cost signals representing predetermined charge amounts generated during a call, elapsed time during a call, or predetermined amounts of data processed. The cost signals can be generated by, for example, the Charge Processor 40, which is also located at die subscriber location. The Channel Billing Monitor 20 can be implemented witii, for example, a device such as tiiat shown in Figure lb which can detect and count cost signals, elapsed time, or amounts of data processed. Subscriber account information, such as deposits, payments, and credit limits, can be loaded into the Channel Billing Monitor 20 directly or through the Charge Processor 40 by the Business Management System 50 in the manner described above with reference to Figure lb. Alternately, this information can be loaded by die subscriber inserting a memory card or by providing the subscriber with an authorization number when, for example, a bill is paid. The subscriber can then enter this number when initiating a call. The subscriber can be informed of charges and die account balance by, for example, one or more audible tone(s), a displayed message, an invoice printed by die Business Management System 50 or by the subscriber's own device, or in any other manner described above with reference to Figure lb. Alternately, the subscriber's account information can be loaded onto a memory card which can be sent to the Business Management System 50, and die Business Management System 50 can, in mm, print an invoice to send to tihe subscriber. According to an exemplary embodiment, the Business Management System 50 can be located at die service provider location. Figure 12a illustrates an exemplary system for real time billing at a subscriber location in an unstructured, unsupervised communication network, according to a sixth embodiment of tihe present invention. In order to illustrate real billing processing at the subscriber location according to tiiis embodiment, direct communication between two radio telephones 700a and 700b is described. It should be understood, however, tiiat the present invention is not limited to radio telephones but is applicable to any type of subscriber terminal, e.g., a personal computer, a personal digital assistant, etc. In this example, each radio telephone includes a transmitter (Tx), a receiver (Rx), a display, and a keyboard. In addition, each radio telephone can be assigned a unique number or address. Alternately, a group of radio telephones can be assigned the same group address. This may be useful when there is a need to communicate with a group of radio telephones, e.g., for a conference call or for a subscriber bulletin from the service provider. Each transmission includes the address ofthe transmitting radio telephone and the address ofthe radio telephone for which the transmission is intended. Each radio telephone monitors all received transmissions, and when a transmission is received for the particular address of tiiat radio telephone, that transmission is accepted, e.g., by transmission of an acknowledgment message to die transmitting radio telephone address indicated in the transmitted message. Sub. I initiates a call from the radio telephone 700a to Sub. IR at the radio telephone 700b by, for example, inputting the address ofthe radio telephone 700b on the keyboard ofthe radio telephone 700a. The address may also be entered in any other suitable manner, e.g., by inputting a voice command or by inputting an abbreviated address which retrieves the corresponding address from memory. After entering the address ofthe radio telephone 700b, Sub. I then presses a Tx button on the radio telephone 700a, and the call is initiated. The call is received via a Tx on the radio telephone 700b. The radio telephone 700b monitors all received transmissions. When the radio telephone recognizes its address in the transmission from the radio telephone 700a, the radio telephone accepts d e transmission, e.g., by sending an acknowledgment to the radio telephone 700a. The connection is confirmed upon receipt of d e acknowledgment message by die radio telephone 700a, and die communication link is established. One or both ofthe Tx and the Rx ofthe radio telephone 700a and 700b can be designed so tiiat Sub. 1 can only initiate a call, and/or Sub IR can only receive a call if one or both ofthe subscribers have a usable balance. For example, the Tx and die Rx of each radio telephone can be designed to use unique encryption/decryption keys which expire after a predetermined amount of time, e.g, monthly, quarterly, etc. The subscribers can be issued new keys at die predetermined time intervals, as long as they have usable balances in their account. If the subscribers do not have usable balances, they will not be issued new keys and will be unable to transmit and/or receive messages. Alternately, the subscribers can be issued restricted keys, or the old keys can be made valid only for restricted calls, e.g., emergency calls. Yet another alternative is for the radio telephones 700a and 700b to be designed such tiiat an internal program keeps track ofthe usable balance and accepts and activates the new key only if tiiere is a usable balance. Direct communications between the radio telephones 700a and 700b may be terrestrial or satellite based. If the call is a terrestrial communication, it is set up directly between the radio telephone 700a and the radio telephone 700b via a link 750. If the call is satellite based, it is set up between the radio telephone 700a and d e radio telephone 700b via a link 825 between the radio telephone 700a and a satellite 800 and a link 875 between the satellite 800 and die radio telephone 700b. Although in a satellite based communication, the call is relayed via the satellite 800, the call is not transmitted through a structured communication network with a central control device and is thus considered to be transmitted through an unstructured network with communications direct from subscriber to subscriber. In Figure 12a, real time billing processing occurs within the radio telephone 700a, for example in a CPU. The CPU performs the real time billing calculations and includes the RTCR and the subscriber account balance. When the PUL/SUL or PUC/SUC reaches a predetermined limit, the COS can be altered, accordingly. For example, initiation of transmissions can be prohibited until the bill is paid, but reception of transmissions can be permitted without interruption. The radio telephone 700a can display die amount remaining in the PUL/SUL or PUC/SUC so that the subscriber can have the option of authorizing the service provider to charge his/her credit card to avoid interruption of service. For example, the radio telephone 700a can be programmed to automatically call the service provider to authorize a charge against the subscriber's credit card, bank account, or other financial resource, when the balance in the radio telephone reaches a predetermined amount. Figure 12b is a flowchart illustrating an exemplary real time billing process performed by the radio telephone 700a shown in Figure 12a. It should be appreciated tiiat real time billing processing can also be performed by radio telephone 700b, either in addition to or instead of radio telephone 700a. As shown in Figure 12b, the process begins at step 12000 at which a subscriber with a prepaid deposit or credit limit initiates a call, and die radio telephone 700a verifies the subscriber's record which includes die subscriber's number, the COS, the subscriber's usable balance, etc. Next, at step 12010, the radio telephone 700a runs a Communications Warning Message Routine (CWMR), described with reference to Figure 7, to issue a warning message (off hook warning message) to the subscriber, if one is appropriate. At step 12020, the radio telephone 700a stores the address entered by tihe subscriber in an internal memory. At step 12030, the radio telephone 700a runs a Real Time Charge Routine (RTCR), described witii reference to Figure 8. At step 12040, a determination is made whether the subscriber has a sufficient usable balance or is approved an overrun based on the RTCR. If not, the process proceeds to step 12050 at which the radio telephone 700a denies die call. From step 12050, the process proceeds to step 12060 at which point the radio telephone 700a performs the Real Time Warning Message Routine (RTWMR), described witii reference to Figure 9, and issues a warning to the subscriber. If the subscriber hangs up, the RTWMR ends. Otherwise, the RTWMR continues until the end of message. The process then ends at step 12140. If, at step 12040, it is determined tiiat the subscriber has a sufficient usable balance or overrun is approved, die process proceeds to step 12070 at which call is processed, i.e., an attempt is made to set up a call. At step 12080, the radio telephone 700a determines if the called address answers. If not, the process proceeds to step 12090, at which point a determination is made whetiier the call attempt has ended, e.g., because die calling subscriber has terminated the call attempt. If, at step 12080, the radio telephone 700a determines tiiat the called number has answered, tihe radio telephone runs the RTCR again immediately at step 12100 so that all charges can be applied in real time. At step 12110, a determination is made whetiier a call disconnect routine has been invoked because, based on the RTCR, the subscriber does not have a sufficient balance or an approved overrun to go forward witii the call. If the call disconnect routine is not invoked, die process proceeds to step 12120. At step 12120, die radio telephone 700a determines whether the call has ended, e.g., because either end has hung up. If the call has not ended, the process remrns to step 12100. If, at step 12110, the call disconnect routine has been invoked, at step 12120 it is determined tiiat the call has ended, or at step 12090 it is determined tiiat the call attempt has ended, die process proceeds to step 12130. At step 12130, die radio telephone 700a disconnects the call, updates d e subscriber record witii the final charge value for the call, and creates the final CDR for the call. The process then proceeds to step 12140, where it ends. Although described above with reference to subscribers in direct communication with each other, the real time billing, system according to die sixth embodiment can also be used to monitor and charge for other services rendered at a single subscriber location. For example, a subscriber may need autiiorization to run a computer program for which he or she is charged for use, e.g., x dollars for y amount of data processed or y hours of use. When the usage reaches a predetermined limit of data processed or a time limit, the program can cease to function or function only partially until a payment is made. According to the present invention, the real time billing system can also be used to monitor subscriber activity. For example, a service provider may need to know how much a communication link is being used to plan for accommodating growth on the system. The service provider may also want information regarding attempted transmissions that fail, malfunctions on the communication link, and so on, to monitor the performance ofthe communication link. In addition, a service provider may want to know how much a service is being used. Such data can be stored at the service provider location and updated periodically or immediately, e.g., in the case of an equipment malfunction. In addition to tihe various features of the real time billing system described above, there are additional features which can be provided by die real time subscriber billing system. For example, there can also be a phone lock feature, in which the subscriber can alter the COS from a telephone by, for example, pressing a predetermined sequence of keys on die telephone pad including identifying information such as a PIN. This phone lock feature establishes a COS selected by tihe subscriber until a new COS is selected by tihe subscriber using the same method. For example, the subscriber can select a COS in which a telephone is limited to dialing local calls unless a PIN is keyed in before or after the dialed number. Another feature provided by the real time subscriber billing system according to the present invention is electronic funds transfer. Using this feature, the subscriber can authorize the telephone company to electronically transfer funds from a bank account or a credit card account to replenish the subscriber's balance on a regular basis. Another feature provided by die real time subscriber billing system according to the present invention is the payment for purchases which are ordered by phone. The subscriber's credit card numbers, names, addresses, and otiher pertinent credit information can be stored in the real time billing system to simplify use of the phone as an order entry device. To use this feature, the subscriber places a call to purchase a product or a service. After identifying die product or service, the subscriber releases the appropriate credit card number and otiier pertinent information by pressing a predetermined sequence of keys on the telephone pad, including die PIN. The subscriber can pay at his or her convenience and need not make any payment as long as the subscriber's balance is positive. The subscriber can be notified montiily or at other regular intervals as to how much must be paid to reestablish the original subscriber's balance. The subscriber can increase his or her balance at any time. The real time subscriber billing system can also be the basis of a credit/debit card charging system. That is, a subscriber can charge products or services, such as power, gas, water, etc., to his or her prepaid deposit or credit limit. For regular charges such as utility services, the billing can be automatically charged to die subscriber's account and paid to die utility company by the telephone company. For other purchases, each transaction can be approved by die subscriber and can be computed only if die subscriber's balance is not exceeded. The procedures for charging the subscriber's account can be similar to those described above for calling from a remote telephone or from a radio telephone in direct communication witii another radio telephone. In addition, die subscriber can arrange for the increase of deposits or the payment of the account by any third party. According to another aspect of the present invention, a Lineless Telephone Number (LTN) is provided. A subscriber who places a deposit or is granted a credit limit can be assigned a telephone number without requiring the subscriber to have a physical telephone line. The number can be answered by a prerecorded voice. A subscriber can retrieve messages on his or her LTN and can leave messages for all callers or for specific callers. This service can be particularly useful for subscribers that cannot afford a private phone or pager. Subscribers can also use the LTNs to place calls. When calls are placed from the home switch, a remote telephone, or a radio telephone in direct communication with another radio telephone, billing can be processed and managed as previously described for regular subscribers placing such calls. The embodiments above have been described witii reference to telephone services. However, it should be understood that die invention is also applicable to other types of subscriber systems, such as the Internet, cable television and utilities such as gas and water. The present invention is particularly suited for making purchases through the Internet. Instead of providing a credit card or debit card number to a vendor to purchase products or services, a subscriber can establish an account with a bank, e.g., an Internet bank, with a predetermined deposit or credit limit which can be loaded into the subscriber's terminal as the subscriber's usable balance. To pay for a purchase made via the Internet or any other form of remote purchase, the subscriber authorizes payments by the bank to the vendor. The authorization process deducts the amount from the usable balance and provides die vendor with a secure authorization code which the vendor presents to the bank for payment. In this manner, the subscriber effectively issues a secure electronic check to the vendor. To enhance security, especially for large transactions, a secure message can also be sent by the subscriber terminal to the bank simultaneously or shortly after the purchase is made, authorizing payment. Another alternative is for the bank to verify the transaction by interrogating the subscriber terminal, e.g., by accessing a special memory in the subscriber terminal, prior to payment ofthe funds to the vendor. The above-described exemplary embodiments are intended to be illustrative in all respects, rather than restrictive, of the present invention. Thus the present invention is capable of many variations in detailed implementation that can be derived from die description contained herein by a person skilled in the art. All such variations and modifications are considered to be within the scope and spirit of the present invention as defined by the following claims.

Claims: WHAT IS CLAIMED IS: 1. A system for real time subscriber billing at a subscriber location in an unstructured communication network, the system comprising: means for storing account information for at least one subscriber at the subscriber location; means for determining, based on said account information, whether the subscriber has a sufficient balance for a desired service; and means for authorizing or denying service to the subscriber based on tihe determination. 2. The system of claim 1, wherein additional account information is stored at a service provider location and is used to monitor the service history of the subscriber and update tihe service provided to the subscriber, accordingly. 3. The system of claim 1, wherein the described service is a communication session. 4. The system of claim 3, wherein the communication session is between subscribers directly connected to each otiier. 5. The system of claim 4, wherein each subscriber is assigned a unique address. 6. The system of claim 4, wherein a group of subscribers is assigned a group address. 7. The system of claim 3, wherein the communication session is a telephone call, an Internet session, or a pay-per-view television program. 8 The system of claim 1, wherein the desired service is authorization to run a computer program. 9. The system of claim 1, wherein said determining means repeats said determination during said service. 10. The system of claim 9, further comprising: means for detecting cost signals generated at predetermined intervals, an amount of time elapsed, or an amount of data processed during the service; means for counting a number of cost signals generated, die amount of time elapsed, or an amount of data processed; and means for comparing the count with a predetermined threshold, wherein the determining means bases the determination on said comparison. 11. The system of claim 10, further comprising means for warning the subscriber when the count approaches the threshold. 12. A method for real time subscriber billing at a subscriber location, in an unstmctured communication network, the method comprising the steps of: storing account information for at least one subscriber; determining, based on said account information, whether the subscriber has a sufficient balance for a desired service; and authorizing or denying service to the subscriber based on die determination. 13. The method of claim 12, wherein additional account information is stored at a service provider location and is used to monitor the service history of the subscriber and update die service provided to die subscriber, accordingly. 14. The metiiod of claim 12, wherein the desired service is a communication session. 15. The method of claim 14, wherein the communication session is between subscribers directly connected to each otiier. 16. The method of claim 15, wherein each subscriber is assigned a unique address. 17. The method of claim 15, wherein a group of subscribers is assigned a group address. 18. The method of claim 14, wherein the communication session is a telephone call, an Internet session, or a pay-per-view television program. 19. The method of claim 14, wherein the desired service is authorization to run a computer program. 20. The method of claim 14, wherein said step of determining is repeated during the service. 21. The metiiod of claim 20, further comprising: detecting cost signals generated at predetermined intervals, an amount of time elapsed, or an amount of data processed during die service; counting the number of cost signals, the amoimt of time elapsed, or the amount of data processed; and comparing the count with a predetermined tiireshold, wherein the step of deterrnining bases the determination on said comparison. 22. The method of claim 21, further comprising warning the subscriber when the count approaches the threshold.

Inventors: BLOCK ROBERT S, BLOCK, ROBERT, S.
Applicants: BLOCK ROBERT S, BLOCK, ROBERT, S.
Application year: 1998
Main classification: G06F17
IPC codes: G06Q40, H04L12, H04L29, H04M15, H04M17, H04N7