1. Field of the Invention
The present invention relates to usage measurement collection and analysis within communications networks.
2. Background of Invention
An increasingly large number of individuals use portable computing devices, such as laptop computers, personal data assistants (PDAs), smart phones and the like, to support mobile communications. The number of computing devices, and the number of networks that these devices connect to, has increased dramatically in recent years. Similarly, an increasing number of wireless Internet access services have been appearing in airports, cafes and book stores.
Typically users gain access to these networks by purchasing a subscription plan from a service provider. One type of subscription plan is a flat rate subscription plan. In a flat rate subscription plan a subscriber pays a fee for a billing cycle and is entitled to a set amount of network usage (i.e., a usage quota) during the billing cycle. For example, a user may pay $30 for a month and be entitled to 500 minutes of network time. The usage quota can be specified as a time per billing cycle amount (e.g., 500 minutes per month) or as a data volume per billing cycle amount (e.g., 1000 kBytes per month). In some flat rate subscription plans the usage quota is unlimited.
Another type of usage plan is an actual usage subscription plan. In an actual usage subscription plan a subscriber pays a set rate based on the actual amount of network usage during a billing cycle. For example, a user may pay $1 per minute of network usage. Actual usage plans can have incentives/penalties based on a subscriber's usage during a billing cycle. For example, in a subscription plan a subscriber may pay $1 per minute for the first 500 minutes and $2 per minute for every minute beyond 500 minutes during the billing cycle. Subscription plans can combine aspects of flat rate plans and usage plans. For example, a subscriber may pay $30 per month for 500 minutes of network usage and $1 per minute for every minute used after 500 minutes.
In the plans described above, as well as other subscriber plans, it is useful to police a subscriber's usage against one or more quotas. Usage collection and usage analysis are required steps in policing a subscriber's network usage against one or more usage quotas. Usage collection involves collecting raw usage metrics from network devices. Usage collection can occur periodically throughout a billing cycle (e.g., collect data every week). Raw data is aggregated to calculate usage totals during the subscriber's billing period. Usage analysis involves evaluating a subscriber usage total against a usage quota specified by a subscription plan to determine if the usage quota was breached. If the quota is breached, the service provider applies policy enforcement according to the subscription plan. For example, the service provider may send a message to the subscriber, redirect traffic, terminate the session, or generate a billing record.
Usage collection generates large volumes of data putting loads on both network devices and metering nodes. Thus, this data is expensive to collect. This data is of low value to the service provider if it does not identify a quota breach. Further, usage analysis is expensive to compute and is an intensive input/output operation that does not result in identifying a quota breach in the vast majority (approximately 98% or greater) of evaluations. Typically, the rate of usage quota breaches is very low, because only a small percentage of subscribers (approximately less than 5%) have usage patterns which breach usage quotas during their billing period. Further, the majority of usage quotas are breached during the last few days of a subscribers billing period while evaluations occur throughout the billing cycle.
RADIUS and Diameter protocols are frequently used to gather usage metrics. For further information regarding RADIUS and Diameter protocols, see, e.g., “RFC 2865: Remote Authentication Dial In User Service (RADIUS),” “RFC 4072: Diameter Extensible Authentication Protocol (EAP) Application,” “RFC 2866: RADIUS Accounting,” and “RFC 3588, Diameter Base Protocol,” all of which are by the Internet Engineering Task Force (“IETF”), the disclosure of all of which are hereby incorporated by reference.
A typical Authentication, Authorization and Accounting (“AAA”) transaction consists of the following exchanges: an Access-Request message including subscriber id and credentials, an Access-Accept message including authorized session parameters, Accounting-Interim messages containing cumulative usage metrics for a pre-determined collection interval, and an Accounting-Stop message containing final usage metrics for the session. The Access-Request message will typically result in a database lookup to validate subscriber credentials and to retrieve service profiles. The Access-Accept message can contain an Interim Interval which instructs the node when to send interim usage updates. The Access-Accept message can also contain a Class attribute which contains an opaque octet string that the node will echo back in every usage update (Interim and Final).
The previous method of calculating an interim interval for gathering customer network usage measurement updates only at Access-Request time is not suitable for long lived sessions because the usage breach probability typically increases over the subscriber's billing period.
What are needed are cost effective systems and methods for usage measurement collection and analysis based on the probability that a user will breach the user's quota for allowed network services. Further, these systems and methods should be able to operate within the RADIUS and Diameter protocols.
Embodiments of the present invention provide systems and methods that improve usage measurement collection and usage measurement analysis operations. Subscriber characteristics are used to calculate the probability of a quota breach at a given time and usage collection intervals are adapted to eliminate the usage analysis step when the usage breach probability is judged to be too low. The present invention proposes several methods for determining the usage breach probability. The present invention significantly increases the capacity of a usage metering system. That is, the present invention increases the number of metered subscribers that can be supported by a given system (network devices and metering node).
In an embodiment, the usage breach probability is calculated using a formula containing (a) values known at the time a session begins (e.g., billing date, repeat offender status, threshold values) and/or (b) values known at the time of interim/final usage collections (e.g., session duration, cumulative usage). The usage breach probability can be updated when the usage update is received by the metering node. There are a variety of approaches in which the usage breach probability may be determined, including but not limited to heuristics, regression, other statistical and data mining approaches, as well as rules of thumb. In embodiments, the approach and/or formula to calculate the usage breach probability can be specific to the class of customer (e.g., premium versus standard customer packages), specific to individual customers or common to all customers. Through analysis of historical data patterns and use of statistical methods, confidence measures can be assigned to the method or formula to be used to generate the usage breach probability, such that the confidence measure gives an indication of the approach likely to provide the most accurate estimate of a breach probability.
In embodiments, both dynamic and static subscriber characteristics relative to a current usage session can be used. An example of a static characteristic includes, for example, the number of previous usage breaches by a customer. Dynamic characteristics can be dynamic relative to the start of a usage session or relative to the usage session generally. An example of a dynamic characteristic relative to the start of a usage session is the type of service requested. An example of a dynamic characteristic relative to the usage session is the total amount of usage.
In a further embodiment, a subscriber characteristic used in usage breach probability calculations includes a subscriber's billing date. The probability of a quota breach increases towards the end of the billing period. For example, usage analysis could be skipped for the first five (5) days of a monthly billing interval.
In a further embodiment, a subscriber characteristic used in usage breach probability calculations includes the number of previous quota breaches. The probability of a “repeat-offender” subscriber hitting a quota is significantly higher than the general subscriber population.
In a further embodiment, a subscriber characteristic used in usage breach probability calculations includes knowledge of when previous quota breaches occurred (e.g., how many days into the billing period).
In a further embodiment, a subscriber characteristic used in usage breach probability calculations includes knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays).
In a further embodiment, the present invention is used within the RADIUS and Diameter protocols.
In a further embodiment, when the present invention is used within the RADIUS and Diameter protocols, an evaluation of the usage breach probability is made at Access-Request time and the result of this evaluation can be returned in a session state attribute (e.g., RADIUS Class attribute) to avoid database lookups at each and every usage collection time. The session state attribute can be returned in the Access-Accept message, in subsequent Accounting-Interim, or in Accounting-Stop messages. The probability can also be used to determine an appropriate interim usage collection interval which would be communicated to the network device in the appropriate attribute (e.g., RADIUS: Acct-Interim-Interval AVP (“attribute value pair”) and Diameter: Accounting-Interim-Interval AVP).
In a further embodiment of the present invention, the breach quota probability is stored in the Class AVP as a formula containing (a) values determined at Access-Request time and/or (b) values determined on interim/final usage collection. The probability can be updated when the usage update is received by the metering node.
In a further embodiment, the present invention can use a Session Time AVP in the Access-Accept message to trigger a session re-authorization. When the Access-Request for re-authorization is received by the metering node, a new probability and/or interim interval calculation is performed.
In a further embodiment, the present invention can provide a probability expiry time window with the usage breach probability in the Class AVP. When the interim usage in received, the probability expiry time is checked and if it has expired, a new usage breach probability, new validity time window and potentially new interim interval are calculated. A Change of Authorization (CoA) message is used to communicate the new values.
In a further embodiment, the present invention can combine RADIUS and Diameter embodiments depending on network device capabilities.
It is an objective of the present invention that it may be incorporated into any product that includes a usage metering function.
Further embodiments, features, and advantages of the invention, as well as the structure and operation of the various embodiments of the invention are described in detail below with reference to accompanying present drawings.
The present invention is described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. The drawing in which an element first appears is indicated by the left-most digit in the corresponding reference number.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope thereof and additional fields in which the invention would be of significant utility.
User equipment 110 is any device that provides a user access to various networks. User equipment 110 can include, but is not limited to, a laptop computer, a cellular phone, a smart phone, a PDA, other wireless mobile devices, or wired network device. Access network 120 represent networks that may require a user of user equipment 110 to have a subscription before a user is granted accessed. Access network can be a wireline or a wireless network. Network access server (NAS) 130 is the point of access for user equipment 110. AAA server 140 performs authentication, authorization and accounting functions. It should be noted that authentication, authorization and accounting functions can be split across two or more servers (e.g., authentication/authorization server and accounting server). Subscriber profile repository (SPR) 150 stores user credentials and profiles that are used by AAA server 140 to perform AAA functions. Metering server 160 performs usage collection and usage analysis functions. Subscriber usage repository 170 stores user usage data. It should be noted that AAA and metering functions can be deployed on a single physical node. Further, SPR 150 and subscriber usage repository 170 can be deployed on a single physical database.
In some embodiments, the methods of the present invention are described in terms of a typical AAA transaction in the RADIUS and Diameter protocols. These descriptions are for exemplary purposes only and are not intended to be limiting. As would be appreciated by one of ordinary skill in the art, the present invention is applicable to any subscriber metering applications.
Referring to
In step 202, AAA server 140 receives an access request message from network access server 130. An access request message indicates that the user of user equipment 110 would like a usage session to be authorized. Access request message includes a subscriber identifier (e.g., johnsmith@realm) and subscriber credentials (e.g., a password).
In step 204, AAA server 140 looks up the subscriber's service profile from subscriber profile repository 150 to validate the subscriber credentials and retrieve the subscriber's usage quota. AAA server 140 also looks up the cumulative total of the subscriber's usage for the current billing cycle from subscriber usage repository 170. The cumulative total is compared to the usage quota to determine if the subscriber has exceeded his or her usage quota for the current billing cycle. If the subscriber credentials are valid and the subscriber has not exceeded his or her usage quota, a session is authorized.
In step 206, once the session is authorized, user equipment 110 receives an access accept message. This allows the user of the network device to begin a session. The access accept message includes an interim interval. During the session, network access server 130 tracks the bytes sent and received by user equipment 110. The interim interval tells the network access server 130 the frequency at which it is to send usage data to AAA server 140 during the session (e.g., every hour during the session). In conventional systems, the interim interval is static throughout the session.
In step 208, at time T1, the first interim interval occurs and network access server 130 sends an accounting request interim message that includes a usage update from user equipment 110 to AAA server 140. AAA server 140 updates the cumulative usage total and compares the cumulative usage total to the usage quota as described in step 204.
In step 210, AAA server 140 sends a accounting response to network access server 130 according to the results of the comparison of the usage quota and the cumulative usage total.
At time T2, the second interim interval occurs and network access server 130 sends an accounting request interim message and the cumulative usage total is updated as described in step 208. Further, the cumulative usage total is again compared to the usage quota as described in step 204 and an accounting response is sent as described in step 210.
Steps 208, 204, and 210 are repeated throughout the session as interim intervals occur.
In step 212, in response to a subscriber ending the session, network access server 130 sends an accounting request stop message that includes a final usage update that is analyzed by AAA server 140 according to step 204.
It should be appreciated from
In step 302, an access request is received indicating that a subscriber would like a usage session to be authorized.
In step 304, the subscriber credentials and services profiles are retrieved. Step 304 may involve retrieving information from a database. In method 300, service profiles can contain more detailed information about subscribers than conventional service profiles. In addition to containing subscriber's usage quota for the current billing cycle, service profiles can also contain information that allows a probability that the subscriber will breach his or her usage quota during the current session to be calculated. This will be described in greater detail with respect to step 310.
In step 306, a determination is made whether access is authorized. That is, the subscriber credentials are checked to see if they are valid and a determination is made as to whether the subscriber has exceeded his or her usage quota. If access is not authorized, method 300 continues to step 308. If access is authorized, method 300 continues to step 310.
In step 308, the subscriber is denied access and method 300 exits. Step 308 can include sending the subscriber a message indicating why the session was not authorized.
In step 310, a session has been authorized and a usage breach probability is calculated. The usage breach probability represents the probability that the subscriber will breach his or her usage quota during the session. The usage breach probability can be based on any information and network usage statistics available at the time the session begins. For example, usage breach probability can be based on, but not limited to, the following information and network usage statistics: the current date, the billing date, the number of breaches for the subscriber, the number of breaches for all subscribers, when breaches have occurred in the past for the subscriber, when breaches have occurred for all subscribers, knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays), cumulative usage for the subscriber, and usage quota for the subscriber. Further, the following rules can be used to determine the usage breach probability: the probability of a quota breach increases towards the end of the billing period, the probability of a “repeat-offender” subscriber breaching a quota is significantly higher than the general subscriber population, a subscriber is more likely to breach at a time in the billing cycle when historic breaches have occurred, and breaches are more likely to occur at peak usage periods.
In step 312, the calculated usage breach probability is used to determine the interim interval for the session, in that a higher usage breach probability would be associated with a shorter interim interval. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to determine the interim interval for the subscriber. This allows resources to be optimized by using resources to monitor the subscribers most likely to breach.
In step 314, an access accept message indicating the interim interval is communicated.
In step 316, a usage update is collected. This usage update is collected when the interim interval has elapsed or because the subscriber has ended the session.
In step 318, the usage breach probability is updated based on information received in the usage update. That is, the usage breach probability can be increased or decreased based on information contained in the usage update. For example, if the amount of usage in the current session is sufficiently high, the usage breach probability may increase.
In step 320, a determination as to the degree the usage data should be analyzed is made. The degree to which the usage data should be analyzed is based on the updated usage breach probability. For example, a new cumulative usage total may be calculated if the usage breach probability exceeds a first threshold and the new cumulative usage total may be evaluated against the subscriber's usage quota if the usage breach probability exceeds a second threshold. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to optimize the level of analysis for all subscribers. In an exemplary embodiment, data is aggregated at step 320 and a determination is made whether the cumulative usage total should be evaluated against the usage quota. If it is determined that an evaluation should take place, method 300 continues to step 322. If it is determined that an evaluation is not necessary, method 300 continues to step 326.
In step 322, the cumulative usage total is evaluated against the subscriber's usage quota and a determination is made as to whether a usage breach has occurred. In some instances, this may involve retrieving the usage quota from a database. If a breach has occurred method 300 continues to step 324. If a breach has not occurred, method 300 continues to step 326.
In step 324, after it is determined that a breach has occurred, the appropriate breach action occurs. For example, a message can be sent to the subscriber indicating the breach (e.g., SMS), subscriber traffic can be redirected, the subscriber's session can terminate, a billing record may be generated, or any combination of the above actions can be performed. Further, the subscriber's service profile can be updated accordingly.
In step 326, a determination is made as to whether the update is a final update. If the update is a final update, method 300 continues to step 328. If the update is not a final update, method 300 continues to step 316.
In step 328, a subscriber session is ended and information in the subscriber's service profile is updated accordingly.
The breach probability calculation module 410 computes the usage breach probability in the manner described above, namely the calculations are based on any information and network usage statistics available at the time of the calculation. Such information and network usage statistics includes both static and dynamic information. Such information includes, but is not limited to, the current date, the billing date, the number of breaches for the subscriber, the number of breaches for all subscribers, when breaches have occurred in the past for the subscriber, when breaches have occurred for all subscribers, knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays), cumulative usage for the subscriber, and usage quota for the subscriber.
A subscriber profile interface 420 obtains subscriber profile data from an outside source, e.g., a subscriber profile repository 150, and makes it available to the breach probability calculation module 410 and the breach analysis module 460. Similarly, a subscriber usage interface 430 obtains usage data from an outside source, e.g., a subscriber usage repository 170, and makes it available to the breach probability calculation module 410 and the breach analysis module 460. Unlike the situation in the conventional approach where the interim interval is fixed, the usage update interval module 440 updates the initial interim interval, based on the current value of the usage breach probability. Such dynamic adjustment represents one of the innovative contributions of a number of embodiments of the current invention. In one class of exemplary embodiments, the dynamic adjustment relies on dynamic factors (i.e., those factors that vary at the start of a session or during a particular session), rather than a reliance on static factors (i.e., those factors whose values do not varying during a particular session).
Network provider interface 450 provides a coupling between the usage policing system 400 and the rest of the network provider equipment. In various embodiments, the coupling supports communication to network provider equipment via RADIUS, Diameter or a mixed set of protocols. The coupling also optionally supports, for example, connectivity to an external user interface such that the network provider can provide various inputs (e.g., selection of different types of rules of usage breach probability calculation, or selection of different inputs to the usage update interval function) for input to the breach probability calculation module 410, breach analysis module 460, and usage update interval module 440.
The breach analysis module 460 is used to analyze dynamic changes in the data to determine whether the breach probability has exceeded one or more thresholds that will trigger a network response. For example, one threshold may be a marketing threshold. When the breach probability exceeds a marketing threshold, breach analysis module 460 provides a marketing threshold exceeded indication to the marketing system interface 470. The breach analysis module 460 is also used to capture the subscriber information at the time of an actual breach. This information can then be stored for future use, such that the calculation of a breach probability can be increasingly more accurate.
Optionally, a marketing system interface 470 is also included, which provides a marketing message when it receives an marketing threshold exceeded indication. The marketing message is then transmitted to a marketing system that may be external to generate a marketing email that notifies the customer that they may soon exceed their usage quota, and provide a means for the customer to purchase more bandwidth or expand their service capabilities.
In a typical scenario, the usage policing system 400 operates as follows. An access request is received via the network provider interface 450 indicating that a subscriber would like a usage session to be authorized. The subscriber credentials and services profiles are retrieved via the subscriber profile interface 420 and subscriber usage interface 430. As noted above, the service profiles can contain more detailed information about subscribers than conventional service profiles. In addition to containing subscriber's usage quota for the current billing cycle, service profiles can also contain information that allows a probability that the subscriber will breach his or her usage quota during the current session to be calculated.
External to the usage policing system 400, a determination is made whether access is authorized. That is, the subscriber credentials are checked to see if they are valid and a determination is made as to whether the subscriber has exceeded his or her usage quota. If access is not authorized, the subscriber is denied access, with possibility a message being forwarded to the subscriber as to the reason for the denial of access.
Upon the authorization of a session, a usage breach probability is calculated by the breach probability calculation module 410. The usage breach probability represents the probability that the subscriber will breach his or her usage quota during the session. The usage breach probability can be based on any information and network usage statistics available at the time the session begins. For example, usage breach probability can be based on, but not limited to, the following information and network usage statistics: the current date, the billing date, the number of breaches for the subscriber, the number of breaches for all subscribers, when breaches have occurred in the past for the subscriber, when breaches have occurred for all subscribers, knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays), cumulative usage for the subscriber, and usage quota for the subscriber. Further, the following rules can be used to determine the usage breach probability: the probability of a quota breach increases towards the end of the billing period, the probability of a “repeat-offender” subscriber breaching a quota is significantly higher than the general subscriber population, a subscriber is more likely to breach at a time in the billing cycle when historic breaches have occurred, and breaches are more likely to occur at peak usage periods.
The calculated usage breach probability is used by the usage update interval module 440 to determine the interim interval for the session, in that a higher usage breach probability would be associated with a shorter interim interval. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to determine the interim interval for the subscriber. This allows resources to be optimized by using resources to monitor the subscribers most likely to breach. The interim interval is communicated externally via the network provider interface 450.
Upon the lapse of the interim interval, or an end of the subscriber session, a usage update is collected and input to the breach probability calculation module 410. The breach probability calculation module 410 updates the calculation of the usage breach probability, using the information contained in the usage update. As noted above, if the amount of usage in the current session is sufficiently high, the usage breach probability may increase.
The breach analysis module 460 also determines the degree the usage data should be analyzed. The degree to which the usage data should be analyzed is based on the updated usage breach probability. For example, a new cumulative usage total may be calculated if the usage breach probability exceeds a first threshold and the new cumulative usage total may be evaluated against the subscriber's usage quota if the usage breach probability exceeds a second threshold. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to optimize the level of analysis for all subscribers.
Should the second threshold be exceeded, the cumulative usage total is evaluated against the subscriber's usage quota by the breach analysis module 460 and a determination is made as to whether a usage breach has occurred. If a breach has occurred, the appropriate breach action occurs. For example, a message can be sent to the subscriber indicating the breach (e.g., SMS), subscriber traffic can be redirected, the subscriber's session can terminate, a billing record may be generated, or any combination of the above actions can be performed. Further, the subscriber's service profile can be updated accordingly.
If a breach has not occurred, a determination is made by the breach analysis module 460 as to whether the update is a final update, as would be the case when a subscriber seeks to end a session. In the case of a final update, a subscriber session is ended and information in the subscriber's service profile is updated accordingly.
In a further embodiment of the current invention, the usage policing system 400 may optionally generate a marketing response based on the analysis of the subscriber information available. For example, a subscriber who initiates a request to view a video would be notified of the likelihood of an upcoming usage breach such that the subscriber could obtain additional usage quota to support the video request. Such a marketing notification would be based on a current usage breach probability, and preferably would precede a usage breach event by sufficient time so as to add to the growth of the subscriber-network provider relationship. Such a capability is embodied in the marketing system interface 170, whose coupling to the breach probability calculation module 410 provides the current usage breach probability to the marketing system interface 170. When the current usage breach probability exceeds a marketing threshold, a marketing message may be initiated by the marketing system interface 170 as described above.
As described earlier, the ability to optimize usage collection and analysis takes advantage of the statistical correlation between various types of information and the usage breach probability of a particular subscriber. The statistical correlation can be captured in a variety of functional relationships. For example, if the three breach factors of day-of-week (designated as breach factor f1), cumulative-usage (f2), and usage-quota (f3) were particularly informative as to the likelihood of a subsequent breach, a possible relationship may be captured as follows:
Usage breach probability=A*f1+B*f2+C*f3
where A, B, and C are coefficients that have been developed so as to maximize the accuracy of the usage breach probability calculation. Various means may be used to determine these coefficients, including regression analysis. Moreover, the scope of this approach is not limited to linear relationships, but encompasses non-linear relationships, discrete relationships, and time-varying relationships. Similar relationships can also be developed for the interim interval, that can found to depend on such factors as usage breach probability and actual overall usage.
In a further embodiment of the current invention, as the usage breach probability analytical models proliferate, a network provider may be presented (optionally via a user interface) with a wide variety of suitable predictive models for the optimal collection and analysis of usage data. In terms of subscribers, predictive functional relationships may be determined for individual subscribers, for classes of subscribers (e.g. premium subscribers). Default formulae may be provided for use by network providers (for use in situations where no better formulae is available). Recommended formulae may also be offered for use in well defined situations. In order for a network provider to make choices between default formulae, recommended formulae, or customized formulae that may have been developed by the network provider for its unique situations, a confidence level may be attached to each of the formulae to assist in making a choice.
In step 502, AAA server 140 receives an access request message from network access server 130.
In step 504, AAA server 140 looks up the subscriber's service profile from subscriber profile repository 150 to validate the subscriber credentials and retrieve the subscriber's usage quota. AAA server 140 also looks up the cumulative total of the subscriber's usage for the current billing cycle from subscriber usage repository 170. The cumulative total is compared to the usage quota to determine if the subscriber has exceeded his or her usage quota for the current billing cycle. If the subscriber credentials are valid and the subscriber has not exceeded his or her usage quota, a session is authorized.
In step 506, AAA server 140 calculates the initial usage breach probability as described in step 310 of method 300.
In step 508, once the session is authorized, user equipment 110 receives an access accept message. The access accept message includes an interim interval. The interim interval is based on the usage breach probability as described in step 312 of method 300.
In step 510, at time T1, the first interim interval occurs and network access server 130 sends an accounting request interim message that includes a usage update from user equipment 110 to AAA server 140.
In step 512, a usage breach probability evaluation occurs according to steps 318 and 320 of method 300. As shown after the evaluation, step 504 is not performed. This is because the usage breach probability indicates that the likelihood of a breach is low and usage data should not be analyzed according to step 320 of method 300.
In step 514, AAA server 140 sends an accounting response to network access server 130 based on the usage breach probability evaluation.
At time T2, the second interim interval occurs and network access server 130 sends an accounting request interim message as described in step 510. Further, a breach evaluation is performed as described in step 512. However, in contrast to the previous breach evaluation, lookups of step 504 are performed. This is because the usage breach probability is now high enough that the lookups should be performed. Again, an accounting response is sent according to step 514.
Steps 510, 512, and 514 are repeated throughout the session as interim intervals occur. However, step 504 is performed only when the usage breach probability evaluation indicates it is necessary.
In step 516, in response to a subscriber ending the session, network access server 130 sends an accounting request stop message that includes a final usage update that is analyzed by AAA server 140 according to step 512.
As shown in
In step 602, an access request is received indicating that a subscriber would like a usage session to be authorized.
In step 604, the subscriber credentials and services profiles are retrieved. Step 604 may involve retrieving information from a database. In method 600, service profiles can contain more detailed information about subscribers than conventional service profiles. In addition to containing subscriber's usage quota for the current billing cycle, service profiles contain information that allow a probability that the subscriber will breach his or her usage quota during the current session to be calculated. This will be described in greater detail with respect to step 610.
In step 606, a determination is made whether access is authorized. That is, the subscriber credentials are checked to see if they are valid and a determination is made as to whether the subscriber has exceeded his or her usage quota. If access is not authorized, method 600 continues to step 608. If access is authorized, method 600 continues to step 610.
In step 608, the subscriber is denied access and method 600 exits. Step 608 can include sending the subscriber a message indicating why the session was not authorized.
In step 610, a session has been authorized and a usage breach probability is calculated. The usage breach probability represents the probability that the subscriber will breach his or her usage quota during the session. The usage breach probability can be based on any available information and network usage statistics at the time the session begins. For example, usage breach probability can be based on, but not limited to, the following information and network usage statistics: current date, the billing date, the number of breaches for the subscriber, the number of breaches for all subscribers, when breaches have occurred for the subscriber, when breaches have occurs for all subscribers, knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays), cumulative usage for the subscriber, and usage quota for the subscriber. Further, the following rules can be used to determine the usage breach probability: the probability of a quota breach increases towards the end of the billing period, the probability of a “repeat-offender” subscriber breaching a quota is significantly higher than the general subscriber population, a subscriber is more likely to breach when historic breaches have occurred, and breaches are more likely to occur peak at peak usage periods.
In step 612, the interim interval for the session is determined and a session time value is calculated based on the usage breach probability. The session time value creates a trigger for a subscriber to request reauthorization. Further, in an embodiment where there are multiple subscriber sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to determine the a session time value for the subscriber. This allows resources to be optimized by conserving resource to monitor the subscribers most likely to breach. It should be noted, that when a session time value is calculated based on the usage breach probability, the interim time interval can be based on either the usage breach probability or may be determined based on other information.
In step 614, an access accept message indicating the interim interval and the session time value is communicated.
In step 615, a determination is made if a request for reauthorization has been received. If a request for reauthorization has been received, method 600 continues to step 604 whether the subscriber is reauthorized using the same procedure as the initial authorization. A reauthorization allows steps 610 and 612 to be repeated. Thus, this allows a new usage breach probability to be calculated and a new interim interval and session time to be communicated.
In step 616, a usage update is collected. This usage update can be collected because the interim interval has elapsed or because the subscriber has ended the session.
In step 618, the usage breach probability is updated based on information received in the usage update. That is, the usage breach probability can be increased or decreased based on information contained in the usage update. For example, if the amount of usage in the current session is sufficiently high, the usage breach probability may increase.
In step 620, a determination is made as to the degree the usage data should be analyzed. The degree to which the usage data should be analyzed is based on the updated usage breach probability. For example, a new cumulative usage quota may be calculated if the usage breach probability exceeds a first threshold and the new cumulative usage total may be evaluated against the subscriber's usage quota if the usage breach probability exceeds a second threshold. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to optimize the level of analysis for all subscribers. In the exemplary embodiment, data is aggregated at step 620 and a determination is made is made whether the cumulative usage total should be evaluated against the usage quota. If it is determined that an evaluation should take place, method 600 continues to step 622. If it is determined that an evaluation is not necessary, method 600 continues to step 626.
In step 622, the cumulative usage total is evaluated against the subscriber's usage total and a determination is made as to whether a usage breach has occurred. In some instances, this may involve retrieving the usage quota from a database. If a breach has occurred, method 600 continues to step 624. If a breach has not occurred, method 600 continues to step 626.
In step 624, after it is determined that a breach has occurred, the appropriate breach action occurs. For example, a message can be sent to the subscriber indicating the breach (e.g., SMS), subscriber traffic can be redirected, the subscriber's session can terminate, a billing record may be generated, or any combination of the above actions can be performed. Further, the subscriber's service profile can be updated accordingly.
In step 626, a determination is made as to whether the update is a final update. If the update is a final update, method 600 continues to step 628. If the update is not a final update, method 600 continues to step 615.
In step 628, a subscriber session is ended and information in the subscriber's service profile is updated accordingly.
In step 708, a Session Time AVP is included in the Access-Accept message. The Session Time AVP is used to trigger a session re-authorization.
At time T2, when the Access-Request for re-authorization is received by AAA server 140, a new probability and interim interval calculation is performed. As shown in
In step 802, an access request message is received indicating that a subscriber would like a usage session to be authorized.
In step 804, the subscriber credentials and services profiles are retrieved. Step 804 may involve retrieving information from a database. In method 800, service profiles contain more detailed information about subscribers than service profiles described in the prior art. In addition to containing the subscriber's usage quota for the current billing cycle, service profiles contain information that allow calculation of the probability that the subscriber will breach his or her usage quota during the current session. This will be described in greater detail with respect to step 810.
In step 806, a determination is made to see if access is authorized. That is, the credentials checked to see if they are valid and a determination is made as to whether the subscriber has exceeded his or her usage quota. If access is not authorized, method 800 continues to step 808. If access is authorized, method 800 continues to step 810.
In step 808, the subscriber is denied access and method 800 exits. Step 808 can include sending the subscriber a message indicating why the session was not authorized.
In step 810, a session has been authorized and a usage breach probability is calculated. The usage breach probability represents the probability that the subscriber will breach his or her usage quota during the session. The usage breach probability can be based on any available information and network usage statistics at the time the session begins. For example, usage breach probability can be based on, but not limited to, the following information and network usage statistics: the current date, the billing date, the number of breaches for the subscriber, the number of breaches for all subscribers, when breaches have occurred for the subscriber, when breaches have occurred for all subscribers, knowledge of peak usage patterns (e.g., on-peak/off-peak, weekdays), cumulative usage for the subscriber, and usage quota for the subscriber. Further, the following rules can be used to determine the usage breach probability: the probability of a quota breach increases towards the end of the billing period, the probability of a ‘repeat-offender’ subscriber breaching a quota is significantly higher than the general subscriber population, a subscriber is more likely to breach when historic breaches have occurred, and breaches are more likely to occur peak at peak usage periods.
In step 812, the interim interval for the session is determined and an expiry time window is calculated based on the usage breach probability. The session expiry time window determines how long an interim interval is valid. Further, in an embodiment where there are multiple subscriber sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to determine an expiry time window for the subscriber. This allows resources to be optimized by using resources to monitor the subscribers most likely to breach. It should be noted, that when an expiry time window is calculated based on the usage breach probability, the interim time interval can be based on either the usage breach probability or may be determined based on other information.
In step 814, an access accept message indicating the interim interval and the session time value is communicated.
In step 816, a usage update is collected. This usage update can be collected because the interim interval has elapsed or because the subscriber has ended the session.
In step 818, the usage breach probability is updated based on information received in the usage update. That is, the usage breach probability can be increased or decreased based on information contained in the usage update. For example, if the amount of usage in the current session is sufficient, the usage breach probability may increase.
In step 820, a determination is made as to the degree the usage data should be analyzed. The degree to which the usage data should be analyzed is based on the updated usage breach probability. For example, a new cumulative usage total may be calculated if the usage breach probability exceeds a first threshold and the new cumulative usage total may be evaluated against the subscriber's usage quota if the usage breach probability exceeds a second threshold. Further, in an embodiment where there are multiple subscribers, each with active sessions occurring simultaneously, the usage breach probability of the subscriber can be compared to the usage breach probability of other subscribers with active sessions to optimize the level of analysis for all subscribers. In an exemplary embodiment, data is aggregated at step 820 and a determination is made whether the cumulative usage total should be evaluated against the usage quota. If it is determined that an evaluation should take place, method 800 continues to step 822. If it is determined that an evaluation is not necessary, method 800 continues to step 826.
In step 822, the cumulative usage total is evaluated against the subscriber's usage total and a determination is made as to whether a usage breach has occurred. In some instances, this may involve retrieving the usagc quota from a database. If a breach has occurred, method 800 continues to step 824. If a breach has not occurred, method 800 continues to step 826.
In step 824, after it is determined that a breach has occurred, the appropriate breach action occurs. For example, a message can be sent to the subscriber indicating the breach (e.g., SMS), subscriber traffic can be redirected, the subscriber's session can terminate, a billing record may be generated, or any combination of the above actions can be performed. Further, the subscriber's service profile can be updated accordingly.
In step 826, a determination is made as to whether the update is a final update. If the update is a final update, method 800 continues to step 828. If the update is not a final update, method 800 continues to step 830.
In step 828, a subscriber session is ended and information in the subscriber's service profile is updated accordingly.
In step 830, a determination is made as to whether the time window has expired based on the time expiry window value. If the time window has not expired, method 800 continues to step 816. If the time window has expired, method 800 continues to step 810. Method 800 allows an interim interval to be updated based on updated breach probabilities without requiring session re-authorization.
In
In step 916, a Change of Authorization (CoA) message is sent to the network access server 130 with a new interim interval. It should be noted that the implementation of
Any step from methods 300, 600, and 800 can be used in combination with any of methods 300, 600, and 800 without departing from the scope of the present invention.
Furthermore, methods 300, 600, and 800 can be incorporated into any product that includes a usage metering function.
In an embodiment of the present invention, the methods and systems of the present invention described herein are implemented using well known computers, such as a computer 1000 shown in
Computer 1000 includes one or more processors (also called central processing units, or CPUs), such as processor 1010. Processor 1000 is connected to communication bus 1020. Computer 1000 also includes a main or primary memory 1030, preferably random access memory (RAM). Primary memory 1030 has stored therein control logic (computer software), and data.
Computer 1000 may also include one or more secondary storage devices 1040. Secondary storage devices 1040 include, for example, hard disk drive 1050 and/or removable storage device or drive 1060. Removable storage drive 1060 represents a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup, ZIP drive, JAZZ drive, etc.
Removable storage drive 1060 interacts with removable storage unit 1070. As will be appreciated, removable storage unit 1060 includes a computer usable or readable storage medium having stored therein computer software (control logic) and/or data. Removable storage drive 1060 reads from and/or writes to the removable storage unit 1070 in a well known manner.
Removable storage unit 1070, also called a program storage device or a computer program product, represents a floppy disk, magnetic tape, compact disk, optical storage disk, ZIP disk, JAZZ disk/tape, or any other computer data storage device. Program storage devices or computer program products also include any device in which computer programs can be stored, such as hard drives, ROM or memory cards, etc.
In an embodiment, the present invention is directed to computer program products or program storage devices having software that enables computer 1000, or multiple computer 1000s to perform any combination of the functions described herein
Computer programs (also called computer control logic) arc stored in main memory 1030 and/or the secondary storage devices 1040. Such computer programs, when executed, direct computer 1000 to perform the functions of the present invention as discussed herein. In particular, the computer programs, when executed, enable processor 1010 to perform the functions of the present invention. Accordingly, such computer programs represent controllers of the computer 1000.
Computer 1000 also includes input/output/display devices 1080, such as monitors, keyboards, pointing devices, etc.
Computer 1000 further includes a communication or network interface 1090. Network interface 1090 enables computer 1000 to communicate with remote devices. For example, network interface 1090 allows computer 1000 to communicate over communication networks, such as LANs, WANs, the Internet, etc. Network interface 1090 may interface with remote sites or networks via wired or wireless connections. Computer 1000 receives data and/or computer programs via network interface 1090. The electrical/magnetic signals having contained therein data and/or computer programs received or transmitted by the computer 1000 via interface 1090 also represent computer program product(s).
The invention can work with software, hardware, and operating system implementations other than those described herein. Any software, hardware, and operating system implementations suitable for performing the functions described herein can be used.
Exemplary embodiments of the present invention have been presented. The invention is not limited to these examples. These examples are presented herein for purposes of illustration, and not limitation. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope and spirit of the invention.
Number | Date | Country | |
---|---|---|---|
Parent | 12186831 | Aug 2008 | US |
Child | 13267824 | US |