This invention pertains to communications, and particularly to methods and apparatus for managing accounts for subscribers of communications services.
Communications companies (e.g., telecommunications operators) typically enlist or obtain subscribers for the companies' services. For each such subscriber the company generally maintains information for a subscriber account in a corresponding record of a database or the like. Either periodically or upon initiative of the company, the company uses the database to conduct a mass operation of sending some sort of notification to its subscribers. The notification sending operation may involve some (a subset) or all of the subscribers, and typically the notifications of the same sending operation are fairly uniform in purpose and content. For example, one type of separate notification sending operation may be a billing or invoicing operation, whereas another type of separate notification sending operation may be an information distribution operation (apprising of such things as changes of service or terms of service, advertising of additional service options, or the like). Some notification sending operations are performed cyclically, e.g., periodically (such as once per month, for example) or upon occurrence of predetermined events or triggers.
Some subscribers/customers may pay a flat fee for communications services. Many customers or subscribers have an account which is structured or arranged (e.g., by contract), at least in part, so that the customer is assessed a communications fee which is dependent upon an amount of time or other network resource which is utilized by the customer (e.g., degree or quality of service, calendar or clock time of service, for example). For some customers the fee or charge reduces a prepaid amount existing in the customer's account (in which case it is known as a prepaid account). Alternatively, the fee or charge accumulates against the credit of the customer and is presented for subsequent payment (in which case it is known as a postpaid account).
For charging purposes the communications network provides some type of monitoring of resource consumption by the customers. The monitoring can occur at faculties or nodes involved in setup or administration of the services (e.g., of a call or connection). The resource monitoring and/or other types of reports from the communications network are communicated to a real-time charging system which associates the call or session with a customer's account as maintained by the charging system, and may send reports (e.g., Call Detail Record (CDR) files) to a billing system which is maintained by the communications operator. The billing system likewise has an account which is associated with the customer, and which includes other (e.g., historical) information. Examples of charging and billing systems are described, e.g., in U.S. patent application Ser. No. 12/256,990, entitled Real-Time Flexible Account Selection for Communications, which is incorporated herein by reference.
As indicated above, each notification sending operation performed by a communications company is essentially of uniform nature. For example, a communications company performs a billing or invoicing operation distinctly and separately (e.g., in different jobs) from an information distribution operation. Moreover, the billing or invoicing operations are typically segregated or stratified into different operations depending on certain characteristics, e.g., account characteristics. For example, separate billing or invoicing operations are performed for post-paid accounts on the one hand, and pre-paid accounts on the other. Many of these notification sending operations are performed repetitively and even cyclically for the member accounts, yet they are separately performed in view of some characteristic or differentiator (e.g., either an account or operation type differentiator).
In one of its aspects, the technology disclosed herein comprises an accounts management node of a communications system. The node comprises a computer comprising one or more processors configured, after initiation of a current cyclical job, to use computer-executable decision logic for determining what appropriate output action is to be taken with respect to plural affected accounts. The node further comprises a generator under control of the computer and configured to automatically generate an appropriate output action for each affected account.
In an example embodiment, the computer is configured to execute instructions stored on a computer-readable medium for performing the acts of: (1) determining which of plural cyclical jobs is to be executed as the current job upon attainment of an input time; (2) determining which of plural subscriber accounts are the plural affected accounts associated with the current job; and then (3) in the course of execution of the current job, for each of the plural affected accounts, employing the computer-executable decision logic to make a separate determination of an appropriate output action to be taken for the respective affected account, the determination being made in dependence upon subscriber-related information stored in a computer-readable database.
In an example embodiment the computer of the node is further configured to execute the instructions stored on the computer-readable medium to employ the computer-executable decision logic to make a separate determination for each affected account, and wherein the subscriber-related information is not uniform for all affected accounts associated with the current job.
In an example embodiment, the computer is configured to execute the instructions stored on the computer-readable medium whereby act (1) comprises comparing the input time with respective trigger times for each of the plural cyclical jobs, a trigger time being stored in a computer-readable record for the current job. The computer is further configured to execute the instructions stored on the computer-readable medium for performing the acts of: (a) using criteria stored in the computer-readable record for the current job to calculate a new trigger time for the current job; (b) storing the new trigger time in the record for the current job as the trigger time; and (c) repeating act (1) using the new trigger time as the trigger time for the current job. In an example implementation, the computer is further configured to execute the instructions stored on the computer-readable medium to perform acts (a)-(c) after acts (2)-(4) have been performed for all affected accounts associated with the current job.
In an example embodiment the computer is configured to execute the instructions stored on the computer-readable medium to set a flag in a computer-readable record for the current job that the current job is being executed.
In an example implementation, the computer is further configured to execute the instructions stored on the computer-readable medium, while performing any of act (1) through act (4) for a first current task, to initiate act (1) with a new input time as the input time to determine a further current task, and then to perform act (2) through act (4) with respect to the further current task.
In an example embodiment, at least one of the affected accounts for the current job is a pre-paid account
In an example embodiment, at least one of the affected accounts for the current job is a post-paid account
In an example embodiment, at least some of the affected accounts for the current job are pre-paid accounts and at least some of the affected accounts for the current job are post-paid accounts.
In an example embodiment, the appropriate output action for at least one of the affected accounts comprises generation of a notification.
In an example embodiment, the notification is an electronic notification.
In an example embodiment, the notification is a printed notification.
In an example embodiment, the appropriate output action for at least one of the affected accounts comprises performance of a financial transaction.
In another of its aspects, the technology disclosed herein concerns a method of managing accounts of a communications system and of operating an account management node of a communications system.
The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of preferred embodiments as illustrated in the accompanying drawings in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. That is, those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are included within its spirit and scope. In some instances, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail. All statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that block diagrams herein can represent conceptual views of illustrative circuitry embodying the principles of the technology. Similarly, it will be appreciated that any flow charts, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
The functions of the various elements including functional blocks labeled or described as “processors” or “controllers” may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared or distributed. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may include, without limitation, digital signal processor (DSP) hardware, read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.
The technology disclosed herein pertains to generic cycle management which can be used for any kind of cycle management, either existing or future. The cycle management nodes and methods described herein can be pre-defined in some embodiments, but the node and its management methods and techniques are dynamically (re)configurable.
As shown in
The computer 30 can be schedule-prompted or otherwise requested to execute or perform various jobs. Of interest herein are the jobs performed by computer 30 which are cyclical in nature (e.g., repeated either periodically or upon repeated request, demand, or prompt). Each of these jobs are provided with a job identifier (“Cycle_Id”) and (optionally) a job name (“Cycle_name”). Of the various potential cyclical jobs, any particular job which is executing at a given time is known as a “current cyclical job”. Significantly, after initiation of a current cyclical job, computer 30 uses computer-executable decision logic for determining what appropriate output action is to be taken with respect to plural affected accounts to which the current cyclical job pertains. As explained herein, action generator 32 is under control of computer 30 and is configured to automatically generate an appropriate output action for each affected account.
Thus, at least in its aspects described herein, the computer 30 does not merely execute a batch job in which computer 30 knows in advance what (essentially uniform) actions are to be taken with respect to customer accounts. Rather, upon initiating the current cyclical job, computer 30 knows that the current cyclical job is to be run, but upon initiation does not yet know what action is to be taken with respect to the accounts that are affected by the current cyclical job. Moreover, the actions that are to be taken with respect to the accounts are not necessarily uniform, but rather are based on decision logic which is essentially separately and subsequently (after determination of which accounts are the affected account) invoked with respect to each affected account. For each affected account the decision logic can be conditional (e.g. conditionally based on information associated with the affected account).
In the example format shown in
After determination at act 3-2 that a current cyclical job exists, as act 3-4 the cycle management logic 42 determines which of plural subscriber accounts are the plural affected accounts associated with the current job. In other words, cycle management logic 42 locates and identifies each subscription or account which belongs to or is associated with the current cyclical job. To do so, cycle management logic 42 checks or searches one or more tables such as the table illustrated as Table Cycle_Account_mapping 52 shown in
In one example embodiment, the Table Cycle_Account_mapping 52 comprises a trilogy of related fields for each account, specifically the Cycle_Id, Account_Id, and Last_run fields. While
It will be appreciated that the account mapping table can be structured or formatted differently in other embodiments. For example, in an alternate embodiment a separate table such as Table Cycle_Account_mapping 52 can exist for each account, with each table having essentially only the three related fields pertinent to one account.
It should be understood from the foregoing that Table Cycle_Account_mapping 52, however formatted, can be composed so that one Account_Id is associated with one or more Cycle_Ids. Most often each Cycle_Id is associated with many Account_Ids, but can also be associated with one Account_Id.
Execution of the current cyclical job (having the identity referred to as Cycle_Id) can begin before act 3-4 (just described), but no later than act 3-5. Act 3-5 comprises cycle management logic 42 employing, for each of the plural affected accounts located at act 3-4, computer-executable decision logic 54 to make a separate determination of an appropriate output action to be taken for the respective affected subscriber or account. When consulted or evaluated with respect to an individual account (on the basis of Account Id), the computer-executable decision logic 54 is structured, ordered, or arranged so that its execution determines or selects an appropriate action to be taken with respect to such individual subscriber or account. The determination made by computer-executable decision logic 54 is made dependent upon at least one condition, and when more than one condition is involved the determination can obtain information pertinent to resolving the conditions from subscriber or account information stored in computer-readable medium 38.
For an example embodiment
Thus, by evaluating at least one and possibly plural conditional factors, the tree of computer-executable decision logic 54 defines what action is appropriate for the current cyclical job (knowing the current cyclical job by its Cycle_Id). One such conditional factor, which is the first conditional factor of the tree for each Account_Id, is the Cycle_Id of the current cyclical job now being executed. Other conditional factors can involve or invoke (e.g., depend upon) information about the affected account as such information is obtained from computer-readable medium 38.
The types of subscriber or account information upon which conditions or routing through the decision tree of computer-executable decision logic 54 can be based are myriad. For example, such subscriber or account information can include account data (e.g., account balance, subscriber class, expiration date); current location of a mobile terminal (if the terminal is a mobile terminal in a radio access network); accumulated service usage; type of subscription associated with or attributed to the account; community(ies) to which the subscriber may belong; characteristics or biographical information of a person to whom the account belongs; and services for which the account is registered or entitled to participate, just to name a few.
As an example, one sample version of computer-executable decision logic 54 can have the evaluation nodes illustrated in
The foregoing discussion of
From the foregoing it should further be appreciated that the computer-executable decision logic 54 is flexible and programmable by operator to dynamically include or exclude various conditions, opportunities, or offers as the operator may deem appropriate. Thus, an appropriate action for an affected account can be discerned or defined with use of the computer-executable decision logic 54, and using the computer-executable decision logic 54 can result in appropriate actions being triggered to certain subscriptions at pre-defined and recurring times. Indeed there can be different decisions (e.g., different appropriate actions) for different affected accounts belonging to the same Cycle_Id
Mention is made above of account information stored in other external places such as computer-readable medium 38.
Both
In one example situation, if the triggered Cycle_Id is defined for bill cycle management, an order can be sent to the billing system to do a bill run for this particular subscription (or for every subscription belonging to this Cycle_Id). In another example situation, if the triggered Cycle_Id is defined for notification cycle management, an order is sent to the notification system to give the subscriber (or every subscriber belonging to this Cycle_Id) a particular notification (e.g. a USSD message). Although some Cycle_Ids may comprise the sending of a bill or sending of a notification to all affected accounts, in other scenarios differing appropriate actions may result and be undertaken with respect to differing affected accounts associated by the Cycle_Id.
In view of the foregoing, the action generator 32 can take diverse and plural forms. For example, as illustrated in
Act 3-6 of
Act 3-7 of
Act 3-8 is executed only after all affected accounts associated with the Cycle_Id of the current cyclical job have been processed. Act 3-8 of
The calculation of the new value for the field Cycle_current_nextDateTime can depend on the value of the field Cycle_current_startDateTime, as well as the field Cycle_trigger_date and the field Cycle_trigger_time. The field Cycle_trigger_time includes a defined trigger time at the trigger date (e.g., the date in the field Cycle_trigger_date) when to trigger operation of cycle management logic 42for the current cyclical job. Typically the value in field Cycle_trigger_time is in terms of an hour (or possibly an hour and minutes) of the day. The value in the field Cycle_trigger_date, which is the defined trigger date when to trigger use of cycle management logic 42 for the current cyclical job, is understood by reference to Table 1.
Act 3-9 of
The implementation of cycle management logic 42 can be realized in a Service Data Point (SDP), which is a node or machine that holds the account and its data. The Service Data Point (SDP) also calculates usage costs and withdraw money from the account in real time. The implementation of cycle management logic 42 can utilize a database which already exists in a billing and/or charging system, or new databases. As mentioned above,
Each subscription can belong to several jobs, e.g., to several Cycle_Ids. Each Cycle_Id can be (and usually is) assigned to several subscriptions, e.g., have plural affected accounts. Each Cycle_Id also has a Cycle_current_trigger_date & Cycle_current_trigger_time, as well as a valid timeframe. The current triggering date is automatically updated after the latest trigger.
It will be appreciated that several instances of the logic, e.g., several instances of cycle management logic 42, could run or execute in parallel.
The technology disclosed herein enables general cycle management to handle all types of cyclic jobs, including existing jobs and jobs developed in the future. If a need for a new type of cycle management arises, no re-design is necessary, rather a matter of configuration. This will save many design hours and will shorten the lead-time to market for any new cycle management which may be needed.
The technology disclosed herein will also render a charging system more flexible when it comes to handling of different kinds of cyclic jobs. The technology disclosed herein will also permit a charging system to take a further step into the area of convergent charging.
The description above contains many specificities, these should not be construed as limiting the scope of the invention but as merely providing illustrations of some of the presently preferred embodiments of this invention. Thus the scope of this invention should be determined by the appended claims and their legal equivalents. Therefore, it will be appreciated that the scope of the present invention fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the present invention is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” All structural, chemical, and functional equivalents to the elements of the above-described preferred embodiment that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the present claims. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the present invention, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”