# Patent

## Title
System and method for tracking billing events in a mobile wireless network for a network operator

## Abstract

A system and method for tracking billing events in a mobile wireless network for a network operator is disclosed. The method can include, in one embodiment, capturing, by a server, event data associated with a mobile device. The event data specifies communication events at the mobile device and are captured are specific to a network operator which provides services to the mobile device. The method can further include, generating billing data for the mobile device using the event data and associated parameters, and providing, by the server, the billing data to the network operator providing services to the mobile device.

## Background
CLAIM OF PRIORITY
This application is a continuation of U.S. patent application Ser. No. 11/254,327 filed Oct. 19, 2005, now U.S. Pat. No. 8,010,082 entitled FLEXIBLE BILLING ARCHITECTURE, which claims the benefit of U.S. Provisional Patent Application No. 60/620,961 filed Oct. 20, 2004, entitled METHOD AND APPARATUS FOR EVENT BASED BILLING, each of which is incorporated by reference in its entirety.


BACKGROUND
Mobile communication systems transport electronic mail (email), text messages, text files, images, and any other types of digital data and communications to wireless devices. Typically these mobile communication systems bill users on a per-month basis. However, a simple monthly service plan may not effectively or fairly bill for the types of services or operations used by the subscriber.
For example, one subscriber may use a wireless device for relatively short periods of time but often uses the wireless device during those time periods to transmit and receive relatively large files. Alternatively, another subscriber may use the wireless device more frequently but for relatively small data exchanges. In another example, a subscriber may use a relatively large number of services compared with another subscriber. For example the subscriber may access multiple different Internet Service Providers (ISP) email accounts from the same mobile device.
Current mobile communication systems, that transmit different types of digital data, such as messages, files, images, etc., are not capable of effectively billing subscribers for the wide variety of different communication events and services that may be used on mobile devices. The present invention addresses this and other problems associated with the prior art.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a communication system that implements a flexible billing system.
FIG. 2 is a flow diagram describing how events can be formatted and aggregated for different operator requirements.
FIG. 3 is a block diagram showing how transaction events are tracked by a central billing manager.
FIG. 4 is a flow diagram showing how captured events can be aggregated over different dimensions.
FIG. 5 is a block diagram showing how different services and different associated events are tracked by a management server.
FIG. 6 is a block diagram showing how the flexible billing system can uniquely identify different users and services.
FIG. 7 shows a sample event report generated by the flexible billing system.
FIG. 8 shows a sample event table that can be used in the flexible billing system.



DETAILED DESCRIPTION
FIG. 1 shows an example of a mobile text communication network 12 that may operate similarly to the networks described in U.S. patent application Ser. No. 10/339,368 entitled: CONNECTION ARCHITECTURE FOR A MOBILE NETWORK, filed Jan. 8, 2003, and U.S. patent application Ser. No. 10/339,369 entitled: SECURE TRANSPORT FOR MOBILE COMMUNICATION NETWORK, filed Jan. 8, 2003, which are both herein incorporated by reference.
The communication system 12 in one implementation captures event data 42 that is then used for providing more flexible billing reports to network operators. An operator is referred to below as any telecommunication provider that may need to bill or track some portion of the communications conducted over communication system 12.
The communication system 12 includes a mobile wireless network 14, an enterprise network 18, and a communication management system 16 that manages communications between the mobile wireless network 14 and the enterprise network 18. The mobile network 14 includes a mobile device 21 that operates a device client 23 that communicates with an IP infrastructure through a wireless or landline mobile network operator. Since mobile networks 14 are well known, they are not described in further detail. Alternatively, a web browser 24 operated on a personal computer or other computer terminal 22 may communicate with the enterprise network 18 through communication management system 16.
The enterprise network 18 can be any business network, individual user network, or local computer system that maintains local email or other data for one or more users. In the system shown in FIG. 1, the enterprise network 18 can include an enterprise server 30 that may contain a user mailbox 33 accessible by a Personal Computer (PC) 34. In one example, the enterprise server 30 may be a MicrosoftTM ExchangeTM server and the PC 34 may access the mailbox 33 through a MicrosoftTM OutlookTM software application. The mailbox 33 and enterprise server 30 may contain emails, contact lists, calendars, tasks, notes, files, or any other type of data or electronic document that may be accessed by mobile device 21 or personal computer 22. An enterprise client 32 operated in enterprise server 30 operates as a connector for communicating with management server 20.
In another enterprise configuration, a personal computer 36 operates an email box 40 without use of an enterprise server. A personal client 38 on the PC 36 operates as a connector for communicating with devices in mobile network 14 via management server 20. Enterprise client software 32 in the enterprise server 30 or personal client software 38 in the PC 36 enable the mobile device 21 or PC 22 to access email, calendars, and contact information as well as local files in enterprise network 18 associated with PCs 34 and 36.
The communication management system 16 includes one or more management servers 20 that each include a processor 27. The processor 27 operates a transfer agent (not shown) that manages the transactions between the mobile device 21 and PC 22 and the enterprise network 18. A user database (not shown) includes configuration information for different users of the mobile communication service. For example, the user database may include login data for mobile device 21 or remote PC 22.
While referred to as a communication management system 16 and management server 20, this can be any intermediary system that includes one or more intermediary servers that operate between the mobile network 14 and the enterprise network 18. For example, a separate Smart Device Server (SDS) may be used in management system 16 for handling communications with mobile devices in mobile network 14. Correspondingly, a Slingshot Connection Server (SCS) may be used for handling communications with enterprise networks 18.
Flexible Billing System
The management server 16 operates a software billing manager 26 that captures event data 42 used for operator billing. The billing manager outputs the raw data 44 aggregated in periodic intervals, such as every 15 minutes. The aggregation may happen in the reporting database 28 or may happen outside of the database 28.
The captured billing data 44 or 46 may be delivered to a network operator computer either in a batch (e.g. file-based) or real-time (e.g. streaming) format. The billing data is integrated with existing billing infrastructures through the use of built-in or custom billing adapters that convert the data 44 or 46 into a data format used by the operator. The captured event data 44 or 46 can also be formatted into an industry-standard SQL database that can be used with custom query or extraction tools.
Report Configuration
Once an appropriate integration strategy has been devised that meets the operator billing requirements, this information may be used within the billing manager 26 to configure an event table 35 shown in one example in FIG. 8. The event table 35 operates as a filter to identify what attributes are detected for different events by the billing system.
In this example, the event table 35 operates like a filter to notify the billing manager 26, enterprise client 32 and/or personal client 38 what events and/or event attributes should be extracted from the communications between mobile network 14 and enterprise network 18 for different events. The clients 32 or 38 and the billing manager 26 then extract the events and/or associated attributes according to the flagged items in event table 35. The event table shown in FIG. 8 will be described in more detail below.
FIG. 2 shows in more detail how the billing manager 26 in management server 20 may aggregate and format captured events data 42. In operation 50, the billing manager and/or the clients 32 or 38 in enterprise network 18, extract event data during communication activities between the mobile device 21 or remote PC 22 and the enterprise network 18. The extracted event data is output as a raw event stream in operation 52. The raw event stream may be converted into a format and delivery protocol required by the operator in operation 54. For example, the network operator may require the raw event stream to be formatted in a particular database format and then delivered to an operator billing server via an Internet transaction using a File Transport Protocol (FTP).
Alternatively, the raw event stream may be aggregated by the reporting database 28 in operation 56. There are various different aggregation categories and different dimensions within each aggregation category that will be described in more detail below. The aggregated data is then provided for querying in operation 58. In one implementation, the data is aggregated into a format that allows querying using a structured query language, such as Structured Query Language (SQL). The queried data can then be converted into a required format and delivery protocol in operation 60.
Custom queries can be performed in operation 62 to extract data from the aggregated event stream. For example, the custom query in operation 62 can be used for extracting data for billing or reports that are used by the network operator. In operation 64, the billing manager 26 in FIG. 1 may provide a generic billing adapter that generates billing records, reports, session logs, or audit logs. The generic billing adapter abstracts specific billing format and transmission requirements. The extensible framework in FIG. 2 facilitates billing integration with a large variety of different mobile network operators. Industry-standard reporting tools, such as Crystal Reports, may be integrated with the captured event data to provide mobile operators with familiar interfaces and formats.
The billing manager 26 in FIG. 1 can generate a standard set of reports based upon the aggregated event data. This enables operators to have quick and easy access to service and usage data. For example, the billing manger 26 can identify the total requests made by mobile device 21, by service, and by time. User sessions and an average duration of the user sessions can be identified by device, by month provisioned, and by time. Billing reports can also identify the number of requests by type of request, by device, by month provisioned, or by time. Billing reports can also identify provisioned and active users, by month provisioned and by time. Session logs or audio logs can also be generated by date range.
This has several advantages. For example, an operator may be able to bill a subscriber based on the number of user initiated events independently of how long the user is actually connected in a wireless session. Alternatively, the billing manager 26 may also track when and how long each mobile device session is active to provide an alternate flat rate per day, month or year billing plan independent of the number of user initiated events during that identified time period.
Centralized Event-Tracking
FIG. 3 shows in more detail how the billing manager 26 can track specific events in user transactions 70 and 72. This is described in more detail in U.S. patent application Ser. No. 10/339,368 entitled: CONNECTION ARCHITECTURE FOR A MOBILE NETWORK, filed Jan. 8, 2003, and U.S. patent application Ser. No. 10/339,369 entitled: SECURE TRANSPORT FOR MOBILE COMMUNICATION NETWORK, filed Jan. 8, 2003, which have both already been incorporated by reference.
In this example, the mobile device 21 initiates different transaction requests 70. Each transaction request 70 can be associated with a particular user using attributes such as a user_id, IP address, or, phone number. In this example, the transaction requests 70 are all initiated from the same mobile device 21 and all have a same associated user id 76. The billing manager 26 therefore identifies all transaction requests 70 as associated with a same user (subscriber).
In this example, the mobile device 21 sends an edit calendar request 70A to the enterprise network 18. The transaction request 70A is sent to management server 20 which then forwards the request 70A to enterprise network 18. The billing manager 26 in management server 20 identifies the message as an edit calendar transaction according to an associated event code contained in request 70A. Accordingly, the billing manager 26 captures and stores the edit calendar event as entry 74A in billing record 74.
The billing manager 26 may also capture a view email transaction request 70B as entry 74B in billing record 74. In response to the view email request 70B, the enterprise server 30 may send back an email response 75. After viewing the email 75B, the user of mobile device 21 may send a view attachment request 70C for a file identified as attached to the email 75B. The billing manager 26 may also detect and identify the view attachment request 70C. Accordingly, a view attachment entry 74C is entered by billing manager 26 into billing record 74.
It should be noted that the billing manager 26 can detect event data 42 that comes from mobile device 21 and/or from the enterprise network 18. For example, the billing manager 26 may detect the transaction response 76 that contains the attachment requested by view attachment request 70C. It may be necessary to monitor the transaction responses 72 from enterprise network 18 in order to identify other events or event parameters that may not be detectable from the mobile device transaction requests 70. For example, the billing manager 26 may need to also monitor transaction responses 72 in order to determine the size of the returned attachment 76C.
Communications between mobile device 21 and enterprise network 18 may be end-to-end encrypted as described in U.S. patent application Ser. No. 10/339,369 entitled: SECURE TRANSPORT FOR MOBILE COMMUNICATION NETWORK, filed Jan. 8, 2003, which has already been incorporated by reference. In this end-to-end encryption environment, billing manager 26 may not be able to identify the encrypted events in transaction requests 70. In this situation, the billing manager 26 may receive the event information from enterprise client 32 operated by a processor in enterprise server 30.
The enterprise client 32 has access to the end-to-end key that is used to encrypt transaction requests 70. Thus, the client 32 can view the decrypted contents in transaction requests 70. Client 32 also has access to the event table 35 previously sent to enterprise server 30 as described above in FIG. 1. Accordingly, the Enterprise Client (connector) 32 can identify the decrypted events received from and sent to mobile device 21 and then capture the events or event attributes that correspond to the items flagged in event table 35. The personal client 38 in FIG. 1 can operate in a similar manner.
The enterprise client 32 attaches point-to-point encrypted labels to the transaction responses 72 that identify the different events and parameters that can not be identified by billing manger 26 from transaction requests 70. For example the client 32 may attach a view mail event identifier 75A to the email 75B sent back to mobile device 21 in response to transaction request 70B. Similarly, the connector 21 may also include an attachment size label 76A and an attachment type label 76B to the attachment 76C sent back to mobile device 21 in response to view attachment request 70C.
The attachment size label 76A allows the billing manger 26 to generate a billing report that the operator can use to bill subscribers according to transferred file size. The attachment type identifier 76B allows the billing manger 26 to generate billing information based on different types of transferred documents. For example, the operator can provide different billing rates for viewing MPEG files, JPEG files, electronically editable documents, and PDF files.
The mobile device 21, management server 20, or enterprise network 18 may also initiate an email synchronization operation. In this example, the synchronization is initiated by the mobile device 21 via email sync request 70D. The billing manager 26 may record the email sync request 70D as an entry 74D in billing record 74. In addition, or alternatively, the billing manager 26 may capture the transaction 77 generated by client 32 in response to the email sync request 70D. The billing manager 26 may then capture and record the email update label 77A attached to the updated email list 77B sent to mobile device 21 by enterprise client 32.
It is possible in other implementations that the enterprise client 32 does not attach the event labels 75A, 76A, 76B and 77A to transaction responses 72 and alternatively sends the event identifiers either separately or in a batch file back to billing manager 26 for further aggregation.
Of course the transaction requests 70 and transaction responses 72 in FIG. 3 are just examples of the many different types of events that can be sent, received, initiated, or associated with mobile device 21. Some, additional examples of mobile device events and event parameters that may be detected by the billing manager 26 or the enterprise client 32 are described below.
Event Data
The following are examples of different types of event data that may be captured and output for billing, auditing, or reporting purposes by the billing manager 26 or client 32. The specific events captured and made available to operators will vary depending upon what device clients and Internet Service Provider (ISP) data connectors are utilized, and what mobile operator settings are selected during initial configuration of the event table 35. TABLE-US-00001 Provisioning/User Management User account creation User account suspension User account reactivation User account deletion User profile update User password change User password reset ISP account setup ISP account suspension ISP account reactivation ISP account deletion ISP account credential update ISP protocol configured User session activity Session start Session end Device/Browser type Session ID Mail Mail message viewed Mail message sent Mail message deleted Mail message composed Mail message replied Mail message forwarded Mail message marked unread/read Mail attachment downloaded Mail attachment transformed Mail attachment faxed Mail folder viewed Mail folder created Mail folder renamed Mail folder deleted Mail messages moved Mail messages copied Contacts Contact viewed Contact search Contact deleted Contact added Contact edited Call initiated from contact Mail message initiated from contact Calendar Calendar viewed Appointment viewed Appointment deleted Appointment added Appointment edited
Each event record may contain additional attributes which are event-specific. Events may also contain the attributes such as event_id, session_id, event time, device type, and mobile phone number.
Provisioning/User Management activity relates generally to account management operations that may be associated with the mobile device 21 (FIG. 3). For example, creating, suspending, reactivating, or deleting a user account or changing a user password. Similar information may be captured and recorded by the billing manager 26 for transactions associated with Internet Service Provider (ISP) accounts, such as suspending, reactivating, deleting, reconfiguring, etc., ISP accounts.
User Session Activity can include information such as when a communication session started, ended, what type of mobile device or browser was used during the session, and a session identifier. This information may be used for example, when a service provider wishes to provide a service plan based on the amount of time the mobile device 21 is connected to the enterprise network 18. The billing manager 26 or a connector (enterprise or personal client) in the enterprise network 18 may operate a timer that detects when the communication session is first initiated and when the session is terminated. This session information may be recorded separately or in combination with any of the other user events described above or that will be described further below.
The Mail category refers to particular activities associated with viewing or manipulating email data. For example, the billing manager 26 or the enterprise connector can detect email events such as viewing, deleting, composing, sending or replying to emails. Other activities requested and performed for attachments or facsimiles associated with the emails can also be captured as described above in FIG. 3. The mail activities can also include events associated with viewing or manipulating email folders.
The Contacts and Calendar activities are associated viewing or manipulating contact and calendar items in the enterprise network 18. For example, viewing, searching, deleting, creating or editing contact or appointment information.
The billing system can generate or track additional attributes for the different events described above. These additional attributes can include an event identifier, session identifier, event time, device type, or mobile telephone number associated with the captured event. These parameters can be used, for example, to provide billing plans that are based on the amount of time a user is using a particular service or device. Some events when appropriate may also contain attributes such as file size, Internet Service Provider (ISP) and service type, Multipurpose Internet Mail Extension (MIME) type, Internet Protocol (IP) address, etc.
Event Aggregation
Event aggregation reduces the volume of event data that may need to be transmitted to the operator billing system and facilitates trend analysis. Aggregation also allows an operator visibility into user activity by session, to facilitate counts of billable events.
If the operator utilizing aggregated event data wishes greater per-event detail, aggregation can be customized to preserve the desired per-event attribute data. This data may be accessed through standard outputs, such as billing records, session logs, audit logs, or reports. Optionally, an operator may wish to utilize custom billing adapters as described in FIG. 2 to extract the underlying aggregated event data and format it for transmission to one or more billing data collectors.
FIG. 4 shows some of the different types of aggregation that allow the billing system to scale to a larger number of events per day. Aggregated, or not, the event data can be organized in multiple different dimensions. In this example, the event data is organized into any combination of user 82, service 84, and time 80 dimensions. Event counts are represented as measures, and the lowest-level at which event data is recorded in the standard aggregated view is per-session.
The user dimension 82 can identify different user sessions 82A and user profile fields. The sessions 82A belong to users so the sessions for a particular user can be aggregated in user 82B. Then at an enterprise level, all of the aggregated user information 82B for a particular enterprise can be aggregated in user container 82C. All the user information for a particular carrier 82D can then be aggregated together.
The service dimension 84 provides detail on individual events and types of events 84A. The events are aggregated into an event bucket 84B and then aggregated according to which protocols, ISP connectors, and other services 84C are used. Then all services in the system can be aggregated together.
The time dimension 80 provides rollup from hours and minutes to days 80A, months 80B, and years 80C. For example, all the events that happen in a day 80A, month 80B, or year 80C, etc. may be aggregated together.
The aggregation process can execute several times throughout the day to ensure that event data is made available without unreasonable delay. Some operators, however, may require access to real-time event data. To facilitate such data collection, billing adapters allow real-time transmission of un-aggregated event data to an operator's billing collection system. For example, the billing manager 26 can automatically send the captured event data 42 to a remote server via a TCP/IP connection or FTP file transfer.
Billing Models
Through the use of billing adapters and access to aggregated and un-aggregated event data, the billing manager 26 can support any combination of billing models, including service-based; event-based; time-based; and session-based.
Service Based Billing
FIG. 5 shows one example of how service-based billing records may be generated to provide the operator information necessary to bill users on a periodic basis for subscribed services. In order to facilitate this, the billing manager 26 may utilize the following captured data: User account is provisioned; User service configuration is changed; User account is deleted; ISP service is provisioned; ISP service configuration is changed; and ISP service is deleted.
In this example, a same user A operates two different mobile devices 90A and 90B. Of course this is just one example, and the user A may only operate a single mobile device 90 or may operate more than two mobile devices. The mobile device 90A may be owned by a company that employs user A and mobile device 90B may be personally owned by user A.
User A may provision multiple different services on mobile device 90A. For example, the mobile device 90A may be provisioned with three different services, a first enterprise service 92A, a second email service 92B provided by an Internet Service Provider (ISP) 96, and a third email service 92C provided by an ISP 98. The personal mobile device 90B for user A may be configured with the same email service 92C configured on mobile device 90A.
The billing manager 26 identifies all of the raw event data needed to capture and track all of the services provisioned by user A both on device 90A or 90B. For example, the billing manager 26 separates all email events exchanged between device 90A and ISP 96 in email account 92B into report 106A in data 106. Similarly, the billing manger 26 can separate all of the events exchanged between mobile device 90A and enterprise network 104 into report 106C in data 106. The billing manger 26 can also separate all of the email events exchanged between both mobile devices 90A and 90B and ISP 98 for email account 92C into report 106B.
The data 106 allows the operator and service providers 96 and 98 to provide more flexible billing plans. For example, the operator using management server 20 can provide joint billing plans with one or more of the ISPs 96 and 98 where a discounted rate is provided for email access to the ISP service. Alternatively, the operator may provide a discount when the same email service is configured on two different mobile devices 90A and 90B operated by the same user.
In addition, one of the internet services 96 or 98 may have a flat rate billing plan, and the other an event-based billing plan. The billing manger 26 can capture the different events that are required to support the two different billing plans.
For example, ISP 98 may bill at a flat rate and therefore only needs session and service event tracking. The ISP 96, on the other hand, may not charge for viewing email but may charge users for sending email or downloading attachments. The billing manager 26 captures these individual email events so that the ISP 96 can provide this event-based billing plan.
The event data associated with the enterprise service 92A may use yet another billing plan that can also be supported by the separate enterprise entries in report 106C in captured event data 104. All of the different reports 106 in reporting database 28 can then be separately formatted and supplied to the different service providers.
Some communication events may inform the operator that a change in billing may be required. The mobile operator 26 may then start or stop billing of a particular user or enterprise, or change the fee based upon a service change. Capturing user and ISP service configurations allows the operator to charge different rates depending on the number or kind of services (e.g. Yahoo, AOL) enabled. For example, user A may get reduced per service provider rate when more than one service is provisioned. In the service-based billing scheme, operators may also charge additional (flat) fees for add-ons such as use of one or more device clients, email push capability, etc.
User and Service Identification
Referring to FIG. 6, the mobile device 90A is configured to operate with the email service 92B provided by ISP 96. The user of mobile device 90A may send an email read request 110 via management server 20 to ISP 96. The billing manger 26 identifies particular parameters associated with the email read request 110 that associate the request 110 with a particular user and with a particular service.
For example, the billing manager 26 may identify an IP address, device identifier, and/or phone number for mobile device 90A. The device identifier may be an International Mobile Subscriber Identity (IMSI) value and the phone number may be a Mobile Station International Integrated Services Digital Network (MSISDN) value.
The billing manager 26 may use the source IP address contained in the transaction request 110 to associate the event with a particular mobile IP phone or IP device that does have an associated device identification number or phone number. In this case, the billing manager 26 may also track the time of when request 110 was detected. This allows the billing manager 26 to determine what user was assigned the IP address at the time of request 110. Since IP addresses may be assigned to different users over time, tracking both the IP address and time allows the billing manager 26 to more accurately identify the user initiating request 110. This user information is extracted or derived from transaction request 110 and entered into a report 114 in reporting database 28.
The billing manager 26 can also supplement the report 114 with information related to the service 92B used by mobile device 90A. For example, the billing manager 26 can extract a service type value from either request 110 or response 112 that identifies the service provider 96. The billing manger 26 can also extract a service identifier that is associated with a particular account in ISP 96. This service related information can also be captured and stored in report 114.
As described above, the billing manager 26 can also capture events from the transaction 112 sent back from ISP 96 to mobile device 90A in response to request 110. This allows the billing manager 26 to extract additional parameters related to the transaction. For example, the billing manger 26 may extract the size of the email and any attachments in response 112.
Event-Based Billing
Event-based billing was previously described in FIG. 3 and provides the information necessary to bill subscribers on a periodic basis for each chargeable action. The billing manager 26 may use any of the event categories described above or described in FIG. 8 to extract any combination of event data. Examples of potentially billable events include access to content (e.g. mail, contacts) from a particular ISP, voice call initiated from a contact lookup; email message retrieved; email message sent. Event-based billing records typically include actions that the operator has identified as billable, and may exclude other events that are not being billed.
Time-Based Billing
Time-based billing provides the operator the information necessary to bill subscribers on a periodic basis for the amount of time spent connected to the communication management system 16 or to a particular service. The billing manager 26 may utilize events such as the following for its determination of connection time: browser-session login; browser-session logout or timeout; sync session initiated; and device client sync session completed. These billing events are added to an associated user billing account. Time-based billing records may include type of activity and session duration.
Session-Based Billing
Session-based billing is used to bill subscribers on a periodic basis for the number of sessions opened to interact with the communication management system 16. The billing manger 26 may utilize event data such as browser-session login; browser-session logout or timeout; device client sync session initiated; and device client sync session completed. These session-based billing events are added to and associated user account. Session-based billing records can include type of activity and session count.
Combined Billing
Operators may wish to utilize different billing models concurrently. For example, some users may be billed on a service-basis, while others may be billed on an event-basis. In a standard configuration, the billing manager 26 may capture and aggregate event data for all end users. Depending upon the type of billing model chosen by the operator and the chosen billing adapters, it may be preferable for the billing manager 26 to output a single consolidated billing record that can then be used to generate subscriber charges under all supported billing models. If not, billing adapters may be modified to generate billing records customized for the appropriate user populations.
Report Formats and Transmission
The format of billing records can be varied to satisfy mobile operator requirements. Operators deploying the communication management system 16 for example may chose a Comma Separated Values (CSV) flat file; tab-delimited flat file; Call Detail Record (CDR) or Internet Protocol Detail Record (IPDR), including support for compact or Extensible Markup Language (XML) data formats; or custom-format records or transmission.
Transmission of billing records may be accomplished through open standards such as TCP-based Secure Shell Version 2 (SSH2), File Transport Protocol (FTP), and Trivial File Transport Protocol (TFTP), etc. Alternatively, the billing records may be transmitted through User Datagram Protocol (UDP)-based datagrams, or other protocols, as needed, to integrate with existing operator billing systems. Data transmission can utilize Transport Layer Security (TLS) or IP Security (IPsec) to ensure security and integrity of communication. Once confirmed that the desired billable events are recorded by the billing manager 26, operators then specify integration requirements for billing record output and delivery.
FIG. 7 shows an example where an operator utilizes event-based billing on top of aggregation by session with the event data formatted into an IPDR/File standard. The billing record in FIG. 7 has been generated for a time period containing activity for two users, “juser” and “sammy7”. The IPDRDoc metadata is included, showing a total count of events contained in this IPDRDoc, namespace and schema definitions, document ID, and creation time.
In this example, billable events are aggregated by session. Consequently, per-session attributes such as sessionild, startTime, endTime, and device are provided with each IPDR. User information such as username, Mobile Identification Number (MIN), and Network Address Identifier (NAI) are also shown here. Specific fields utilized to uniquely identify a user will depend upon operator requirements and level of integration with operator provisioning and billing systems. As noted above, the billing manager 26 can be extended to store and output custom attributes fields that have not been discussed above.
The billable events shown in FIG. 7 are a subset of the events tracked by the billing manager 26. In this example, the operator may have configured billing manger 26 to charge users based upon the frequency of actions during each user session. Each billable event has been given an easily identifiable name. For example, an event associated with viewing a mail folder “mailFolderViews”, delivering a message “messagesDelivered”; sending a message “messagesSent”; messages sent with attachments “messagesSentWithAttachments”; and viewing the attachment “attachmentsViewed”. More compact representations are also possible if data volume is a concern.
Categorizing Captured Events
FIG. 8 shows in more detail the event table 35 previously referred to in FIGS. 1 and 3. The event table 35 allows events and/or event attributes to be quickly and flexibility categorized into service and non-service events. Service events correspond with direct end user actions and non-service events correspond with administrator generated actions, such as an event generated by the communication management system 16 (FIG. 1). As described above, there are extra attributes that can be tracked for both service and non-service events. For example, a timestamp may be used to indicate when the action causing the event occurred or how long a user accessed a service.
Referring back to FIG. 3, in the case of sync messages, the timestamp may refer to the time returned by the connector (enterprise client 32) for the event. For example, enterprise client 38 in the enterprise network 18 in FIG. 1 may generate the event times corresponding with the sync message 70D sent by mobile device 21. Alternatively, the event times may be generated by the management server 20 upon receiving the sync message or the response transaction 77. When the sync message is end-to-end or sent to an ISP, the event time may be generated and tracked by the management server 20. Hence the time the event occurs may not necessarily be the actual time the user action was initiated.
Extensibility
As also described above, the billing system may be extended to operate outside of the communication management system 16. This may be necessary to support tracking of additional events requested by operators. For example, in FIGS. 1 and 3, the enterprise client 32 in enterprise network 18 or the device client 23 in mobile network 14 may capture events where applicable and either independently generate billing records or send the captured events to billing manager 26 in management server 20 for supplementing billing data 44 or 46.
The billing manager 26 may also be extended to store additional custom data fields specified by the operator on a per-user, per ISP, or per instance basis. Examples of such custom attributes include customer type or billing code, device International Mobile Equipment Identify (IMEI) or International Mobile Subscriber Identify (IMSI); Subscriber ID; Network Access Identifier; device type and firmware revision; Digital Rights Management (DRM) information, transport bearer information, etc. Storage of custom field data typically requires integration with the operator infrastructure or designated vendors. Such extensibility enables support for a wider variety of mobile operator billing plans.

## Claims

1. A method for tracking billing events in a mobile wireless network, the method, comprising:
capturing, by a server, event data from communications associated with a mobile device on the mobile wireless network by:
filtering the communications associated with the mobile device based on a table of relevant billing events and attributes,
wherein filtering the communications comprises identifying the event data including multiple billing events each having various billing attributes associated with the mobile device on the mobile wireless network, and

extracting the identified event data from the communications associated with a mobile device;

periodically aggregating, by the server, the identified event data the including the multiple billing events each having various billing attributes into a raw event stream;
formatting the raw event stream based on the custom requirements of a network operator resulting in customized billing data and
providing, by the server, the customized billing data to the network operator providing services to the mobile device.

2. The method of claim 1, wherein, event data is captured for multiple mobile devices serviced by different network operators; wherein, for each different network operator, customized billing data is formatted to be compatible with each particular network operator.

3. The method of claim 1, wherein, the customized billing data is provided to the network operator in a batch.

4. The method of claim 1, wherein, the customized billing data is provided to the network operator in real-time.

5. The method of claim 1, wherein, the aggregated, raw event stream is formatted to be used with custom queries of the network operator.

6. The method of claim 1, wherein, event data is further captured from communications associated with an enterprise network.

7. The method of claim 1, wherein, the aggregated event stream reduces a volume of event data to be transferred to the network operator providing services to the mobile device.

8. The method of claim 7, further comprising, generating a standard report using the aggregated event stream to be provided to the network operator.

9. The method of claim 8, wherein, the standard report identifies a number total requests made by the mobile device; wherein, the standard report identifies session based data including, one or more of, number of sessions, durations of user sessions.

10. The method of claim 9, wherein, the number of total requests is categorized by one or more of service, and time.

11. The method of claim 1, wherein, the server captures event data for different network operators; wherein, for each different network operator, customized billing data provided to each of the different network operators is formatted to be compatible with each particular network operator.

12. The method of claim 9, wherein, the session based data is categorized by, one or more of, device, time, and date.

13. The method of claim 1, wherein, the billing report enables the network operator to bill a subscriber based on number of sessions or how long the mobile device is connected to the network.

14. The method of claim 1, wherein, the billing report enables the network operator to bill the subscriber of the mobile device based on transferred file size.

15. The method of claim 1, wherein, the customized billing data is generated further using associated parameters of the event data; wherein, the associated parameters include identifiers of file types of files transferred in the communication sessions at the mobile device which enables the network operator to bill the subscriber to access different file types.

16. The method of claim 15, wherein, the different file types include, one or more of, MPEG, JPEG, electronically editable documents, and PDF.

17. The method of claim 1, wherein the event data is categorized into service-based billing reports that identify different services used by the mobile device.

18. A method for tracking billing events in a mobile wireless network, the method, comprising:
capturing event data associated with a mobile device by:
filtering communications associated with the mobile device on the mobile wireless network based on a table of relevant billing events and attributes, and
extracting the identified event data from the communications,
wherein the event data specifies multiple billing events identified from the communications associated with the mobile device on the mobile wireless network, and;
wherein, the event data that is captured is specific to a service provider of an account accessed using the mobile device,


generating billing data for the mobile device using the event data and associated parameters;
periodically aggregating, by the server, the identified event data the including the multiple billing events each having various billing attributes into a raw event stream;
formatting the raw event stream based on the custom requirements of a network operator resulting in customized billing data; and
providing, by the server, the customized billing data to a network operator providing services to the mobile device.

19. The method of claim 18, wherein, the event data is captured by a mobile client on the mobile device, wherein, the customized billing data is generated by the mobile client.

20. The method of claim 18, wherein, the event data is captured by a mobile client on the mobile device, wherein, the customized billing data is generated by the server.

21. The method of claim 18, wherein, the different file types include, one or more of, MPEG, JPEG, electronically editable documents, and PDF.

22. The method of claim 18, wherein, the associated parameters include event codes that are assigned by a mobile client on the mobile device and transmitted from the mobile device to the server.

23. The method of claim 22, wherein, the event codes which uniquely identify different events including, one or more of, viewing and editing of a message, a contact, and an appointment.

24. The method of claim 22, wherein, the event codes which uniquely identify different events including, one or more of, viewing and editing of data files, activation or deactivation of an account.

25. The method of claim 18, further comprising:
identifying event data including sending or viewing a file;
identifying the size of the file associated with the event data;
identifying the send or view event and the size of the file in the customized billing data.

26. The method of claim 18, further comprising:
identifying event data including a file request event;
identifying a type of file transferred pursuant to the file request event;
billing for the file transfer according to the type of identified file.

27. A system for tracking billing events in a mobile wireless network, the system, comprising:
means for capturing event data from communications associated with a mobile device on the mobile wireless network;
wherein, the capturing includes identifying the event data including multiple billing events each having various billing attributes associated with the mobile device on the mobile wireless network, and extracting the identified event data from the communications associated with a mobile device;

means for periodically aggregating the identified event data the including the multiple billing events each having various billing attributes into a raw event stream;
means for using the aggregated raw event stream to perform trend analysis.

28. The system of claim 27, wherein a plurality of the service based events are identified as part of a single wireless session of the mobile device.

29. The system of claim 27, wherein the direct mobile device actions are forwarded to an enterprise network which is configured to perform the service based events.

30. The system of claim 27, further comprising:
means for identifying service providers associated with some of the events and generating billing reports that are service provider specific;
wherein, the trend analysis is performed by the service provider or on behalf of the service provider providing network services to the mobile device.

31. A system for tracking billing events in a mobile wireless network, the system, comprising:
one or more a processors;
a memory unit having instructions stored thereon, wherein the instructions, when executed by the one or more processors, causes the system to:
capture data from communications associated with a mobile device on the mobile wireless network by:
filtering the communications associated with the mobile device based on a table of relevant billing events and attributes,
wherein filtering the communications comprises identifying the event data including multiple billing events each having various billing attributes associated with the mobile device on the mobile wireless network, and

extracting the identified event data from the communications associated with a mobile device;

periodically aggregate the identified event data the including the multiple billing events each having various billing attributes into a raw event stream;
format the raw event stream based on the custom requirements of a network operator resulting in customized billing data; and
provide the customized billing data to the network operator providing services to the mobile device.