Methods and apparatus for monitoring configurable performance levels in a wireless device

Apparatus and methods may include a performance module operable to monitor and generate performance statistics on a wireless device based on a received monitoring configuration. In some aspects, the wireless device may forward the performance statistics to another device upon meeting predetermined threshold parameters. The performance statistics may be utilized to generate a performance report viewable by an authorized user.

BACKGROUND

The described embodiments generally relate to wireless communication devices and computer networks. More particularly, the described embodiments relate to the collecting performance statistics on a wireless device.

Wireless networking connects one or more wireless devices to other computer devices without a direct electrical connection, such as a copper wire or optical cable. Wireless devices communicate data, typically in the form of packets, across a wireless or partially wireless computer network and open a “data” or “communication” channel on the network such that the device can send and receive data packets. The wireless devices often have wireless device resources, such as programs and hardware components, which individually and cooperatively operate to use and generate data in accordance to their design and specific protocol or configuration, such as using open communication connections to transmit and receive data on the network.

Wireless devices are being manufactured with increased computing capabilities and are becoming tantamount to personal computers. These “smart” wireless devices, such as cellular telephones, have application programming interfaces (“APIs”) installed onto their local computer platform that allow software developers to create software applications that operate on the cellular telephone. The API sits between the wireless device system software and the software application, making the cellular telephone functionality available to the application without requiring the software developer to have the specific cellular telephone system source code.

In the competitive world of cellular telephone carrier networks, proactive support of high revenue producing customers is desired in order to maintain and increase the profitability of the network carrier. Accordingly, it would be advantageous to provide apparatus and methods for monitoring predetermined performance levels in a wireless device.

SUMMARY

The described embodiments comprise apparatus, methods, computer readable media and processors operable to monitor wireless device performance statistics. Upon meeting a configurable threshold, the corresponding performance data may be automatically forwarded to another device, such as a remote server, that may alert authorized personnel at a customer support facility so they may take appropriate action to resolve any device-related and/or network-related issues corresponding to the performance data. Furthermore, based upon a predetermined reporting parameter, performance statistics from the wireless device may be uploaded to a predetermined device, such as the remote server, and the statistics may then be utilized to generate a summary report of performance.

In one aspect, a method of monitoring performance of a wireless device on a wireless network may comprise obtaining on a wireless device a monitoring configuration comprising a performance parameter and a threshold setting, the performance parameter associated with a performance statistic to be monitored, the threshold setting comprises a limit corresponding to the performance statistic; determining the performance statistic for the wireless device based upon the monitored performance parameter; comparing the determined performance statistic to the corresponding threshold setting; and generating a notification if the determined performance statistic meets the threshold setting.

In a related aspect, a machine readable medium may comprise instructions which, when executed by a machine, cause the machine to perform the above-stated operations. In another related aspect, at least one processor may be configured to perform the above-stated operations.

In a further aspect, a wireless device may comprise means for obtaining a monitoring configuration comprising a performance parameter and a threshold setting, the performance parameter associated with a performance statistic to be monitored, the threshold setting comprises a limit corresponding to the performance statistic; means for determining the performance statistic for the wireless device based upon the monitored performance parameter; means for comparing the determined performance statistic to the corresponding threshold setting; and means for generating a notification if the performance statistic meets the threshold setting.

In another aspect, a wireless device may comprise a memory and a performance module resident in the memory. The performance module may include a monitoring configuration comprising a performance parameter and a predetermined threshold setting, the performance parameter associated with a performance statistic to be monitored, the predetermined threshold setting comprises a limit corresponding to the performance statistic; monitoring logic operable to determine the performance statistic based upon the monitoring configuration; and reporting logic operable to generate a notification message when the performance statistic meets the predetermined threshold setting.

In yet another aspect, a method of monitoring performance of a wireless device may comprise generating a monitoring configuration executable to initiate monitoring, calculating and reporting of at least one performance statistic on a wireless device, the monitoring configuration identifying a performance parameter; forwarding the monitoring configuration for receipt by the wireless device; receiving a calculated performance statistic from the wireless device based on the monitoring configuration; and generating a performance report based on the received performance statistic.

In a related aspect, a machine readable medium may comprise instructions which, when executed by a machine, cause the machine to perform the above-stated operations. In another related aspect, at least one processor may be configured to perform the above-stated operations.

In a further aspect, an apparatus may comprise means for generating a monitoring configuration executable to initiate monitoring, calculating and reporting of at least one performance statistic on a wireless device, the monitoring configuration identifying a performance parameter; means for forwarding the monitoring configuration for receipt by the wireless device; means for receiving a calculated performance statistic from the wireless device based on the monitoring configuration; and means for generating a performance report based on the received performance statistic.

In still another aspect, an apparatus for managing the monitoring of wireless device performance comprises a configuration generator operable to generate and transmit a monitoring configuration for receipt by a wireless device, the monitoring configuration identifying a performance parameter to monitor; an information repository operable to receive and store wireless device performance statistics, the wireless device performance statistics comprising statistics associated with the performance parameter collected by the wireless device based on the monitoring configuration; and a performance manager control module comprising a report generator operable to generate a performance report based on the wireless device performance statistics.

DETAILED DESCRIPTION

FIG. 1illustrates one aspect of a system100comprising apparatus and methods of monitoring and reporting statistics relating to the performance and usage of a wireless device with a wireless network based upon a downloaded performance monitoring configuration. System100is operable to monitor, tally, and upload wireless device-based performance data and statistics124, which include wireless network-related statistics and wireless network independent statistics. For example, in some aspects, such performance data and statistics may include, but are not limited to, information relating to the performance and usage of: software applications on the wireless device, such as media applications, text messaging applications, voice-call applications, Internet access or web browser applications, and word processing and data management applications; hardware components on the wireless device, such as an input mechanism, such as a key, keyboard or voice recognition module, an output mechanism such as a display and a speaker, a power source such as a battery, a memory, a processor, etc. In other words, performance data and statistics may relate to air interface information, such as any data or communications between the device and a communications network and/or another device, as well as non-air interface information, such as functionality occurring on the device. Further, in some aspects, air interface performance data and statistics include, but are not limited to, connection quality information such as call drop-related information, access failure-related information, and service degradation-related information.

System100is operable to monitor predetermined performance data as directed by a monitoring configuration118generated by a performance manager server104. The system100is further operable to notify, such as with an exception report144, a predetermined party, such as a customer service representative, when predetermined performance thresholds188(FIG. 2) for monitored parameters187(FIG. 2) are met. For example, exception report144may be a message indicating that a given threshold has been met, and may additionally include the given performance statistic, the given threshold, and any other performance-related data and/or device status-related information. Additionally, system100may further generate a summary report148based upon analysis of the collected performance statistics124. Additionally, reports may be available to authorized users online and by electronic media, e.g. electronic mail. These reports may be used, for example, to proactively support customers, evaluate the commitment of a network carrier in meeting Service Level Agreements (SLAs) and to monitor service and connection quality of high Average Revenue Per Unit (ARPU) customers.

Generally, system100may include a wireless device102comprising a performance module114in communication with a performance manager server104that provides device control functionality via a wireless network110. Further, performance manager server104may be in communication with customer care workstation106, operated by an authorized user108, such as a customer service representative, a marketing representative and/or a field engineer. Authorized user108may be provided access to the functionality of performance manager server104via a wired connection109or through wireless network110, and may further communicate with wireless device102, for example, via customer care workstation106.

Apparatus and methods of providing performance data may include monitoring performance-related parameters so as to determine performance statistics. As mentioned above, performance statistics may be network-related and/or network independent, and may deal with air interface information and/or non-air interface information. In aspects where connection quality is monitored, for example, performance-related parameters include, but are not limited to, information such as a number and/or rate (Number of Call Drops/Number of Call Successes) of call drops, a number and/or rate (Number of Access Failures/Number of Access Attempts) of access failures, and a number and/or rate (Number of Service Degradations/Number of Call Successes) of service degradations. In this case, for example, a “service degradation” comprises a temporary outage or a signal strength lower than a predetermined acceptable threshold occurring during an established communications connection with the wireless network, i.e. during a call or while in idle mode.

Further, the monitored performance parameters and/or statistics may be compared to a corresponding predetermined threshold, where for a given performance parameter the threshold may represent at least one threshold condition and at least one corresponding threshold value. For example, the threshold condition may be an operator, such as less than, greater than, equal to, and combinations thereof. Similarly, the threshold value may be a value that corresponds to a level of acceptability or a level of unacceptability. As such, or example, the threshold may be an upper limit, a lower limit, and/or a range. Such predetermined thresholds are user configurable, and may be downloaded from performance manager server104. When the monitored parameter and/or statistic meets the corresponding predetermined threshold, then such a state may trigger logging of configured performance information and/or generating a notification to a predetermined party, such as a customer service representative, who may then investigate the condition to correct the problem. Further, the collected performance data may be included in the summary report, which may be used to track a predetermined group of wireless devices, such as similar model type device, devices operating in similar geographic regions or with similar network devices, and/or devices having any predetermined characteristic, such as devices associated with high average revenue users.

The activities performed by the herein-described apparatus and methods may be performed on any form of wireless device or computer module, including a wired or wireless communication portal, including without limitation, wireless modems, PCMCIA cards, access terminals, personal computers, telephones, or any combination or sub-combination thereof.

Referring toFIG. 2, wireless device102may include computer platform112operable to receive and execute software applications and configurations, e.g. performance module114and performance monitoring configuration118, and transmit both exception reports and scheduled reports across wireless network110.

Wireless device102may include any type of computerized, wireless device, such as cellular telephone102, personal digital assistant, two-way text pager, portable computer, and even a separate computer platform that has a wireless communications portal, and which also may have a wired connection to a network or the Internet. The wireless device can be a remote-slave, or other device that does not have an end-user thereof but simply communicates data across the wireless network110, such as remote sensors, diagnostic tools, and data relays.

Wireless device102may also include input mechanism182and output mechanism184interconnected to computer platform112. Input mechanism182is operable to generate an input into wireless device102, and may include a mechanism such as a key or keyboard, a mouse, a touch-screen display, and a voice recognition module. Output mechanism184, may include a display, an audio speaker, and a haptic feedback mechanism, for example, for relaying information to the user of the wireless device102.

Computer platform112may also include a memory186, which may comprise volatile and nonvolatile memory such as read-only and/or random-access memory (RAM and ROM), EPROM, EEPROM, flash cards, or any memory common to computer platforms. Further, memory186may include one or more flash memory cells, or may be any secondary or tertiary storage device, such as magnetic media, optical media, tape, or soft or hard disk. Additionally, memory186may be operable to store collected performance data.

Further, computer platform112may include a processing engine198, which may be an application-specific integrated circuit (ASIC), or other chipset, processor, logic circuit, or other data processing device. Processing engine198is operable to execute an application programming interface (API) layer196that may interface with any resident programs, such as performance module114, stored in memory186. In one aspect, API196is a runtime environment executing on the respective wireless device. One such runtime environment is BINARY RUNTIME ENVIRONMENT FOR WIRELESS® (BREW®) software developed by Qualcomm, Inc., of San Diego, Calif. Other runtime environments may be utilized that, for example, operate to control the execution of applications on wireless computing devices.

Processing engine198includes various processing subsystems200embodied in hardware, software, firmware, executable instructions, data, and combinations thereof, that enable the functionality of wireless device102and the operability of the wireless device on wireless network110. For example, processing subsystems200may allow for initiating and maintaining communications, and exchanging data, with other networked devices. In one aspect, such as in a cellular telephone, processing engine198may include one or a combination of processing subsystems200, such as: sound, non-volatile memory, file system, transmit, receive, searcher, layer1, layer2, layer3, main control, remote procedure, handset, power management, diagnostic, digital signal processor, vocoder, messaging, call manager, BLUETOOTH® system, BLUETOOTH® LPOS, position determination, position engine, user interface (UI), sleep, limited services, security, authentication, subscriber identity module (SIM) and universal SIM (USIM), voice services, graphics, universal serial bus (USB), multimedia such as Motion Picture Experts Group (MPEG) standard multimedia, General Packet Radio Service (GPRS) standard multimedia, etc.

For the disclosed aspects, processing subsystems200may include any subsystem components that interact with applications executing on computer platform112. For example, processing subsystems200may include any subsystem components that receive data reads and data writes from API196on behalf of the resident performance module114. Further, any performance data within the API and within any processing subsystems may be monitored and/or collected by performance module114and stored as collected performance data221in performance log120within memory186.

In some aspects relating to connection quality, for example, in Code Division Multiple Access (CDMA) systems, parameters relating to call drops, call successes, access attempts, access failures and service degradations may be retrieved from a combination of CDMA events and “Over The Air” (OTA) messages, such as may be retrieved from the wireless device processing subsystems. For example, relevant CDMA events may include, but are not limited to, timer values, counter values, and number of access probe attempts, etc. Further, for example, relevant CDMA OTA messages may include, but are not limited to, reverse traffic channel messages and access channel messages.

In other system implementations, such as Universal Mobile Telecommunications System (UMTS), OTA messages may be utilized by performance module114to determine the performance statistics124. For example, refer to U.S. patent application Ser. No. 11/078,235 entitled “Apparatus and Methods for Determining Connection Quality of a Wireless Device on a Wireless Communications Network,” to Fok et al., filed Mar. 10, 2005, incorporated by reference above, for further details relating to the evaluation of sequences of messages for determining performance statistics.

Computer platform112may further include a communications module202embodied in hardware, software, executable instructions, data, and combinations thereof, operable to enable communications among the various components of the wireless device102and wireless network110. Communications module202may comprise any component/port/interface that may include any point of entry into, and/or any point of exit from wireless device, as well as the components relating to the signal transmit and receive chains. As such, communications module202may include interface components for hardwired communications and for wireless communications. For example, communications module202is operable to receive monitoring configuration118generated by performance manager control module130(FIG. 1), as well as being operable to transmit to performance manager server104(FIG. 1) the performance statistics124and any other collected performance data221generated and/or collected by performance module114.

Computer platform112further includes performance module114, which may comprise one or any combination of hardware, software, firmware, data and executable instructions. The performance module114may be loaded into memory186by various mechanisms including, but not limited to, being downloaded from any computer device connected to wireless network110, and being statically loaded on the wireless device102prior to delivery to the end user, such as at the time of manufacture. Computer devices from which performance module114may be downloaded include performance manager server104and customer care workstation106.

The performance module114may include one or a plurality of mechanisms for effecting the functionality described herein. In some aspects, for example, performance module114includes statistic generator logic113operable to generate one or more predetermined performance statistics124. For example, statistic generator logic113may generate performance statistics124associated with one or performance parameters187identified by monitoring configuration118, and store the performance statistic in performance log120. Performance log120may be any type of persistent or non-persistent memory and/or data repository operable to receive and store data, such as performance statistics124, collected performance data221, and/or any other data. Alternately, statistic generator logic113may be preprogrammed to generate a predetermined plurality of performance statistics, among which one or more statistics may be monitored.

In some aspects, performance statistics124may be calculated based upon data within API, processing subsystems, applications, OTA messages and/or combinations of OTA messages and events retrieved through processing subsystems. In some embodiments, monitoring configuration118need not list every parameter relating to a performance statistic124. Software algorithms, comprising portions of statistic generator logic113, may be executable to calculate performance statistics124and may direct the storage of whatever intermediate parameters are required to monitor and calculate the configured performance statistics124.

The performance parameter187of monitoring configuration118may include an identification of data for determining a predetermined performance statistic124, and/or an identification of the statistic itself. Further, it should be noted that the values of the performance data stored in performance log120may be cumulative data over the lifetime of the device, and/or data stored over a predetermined time period, and/or data as of the last reset. Further, any data and/or statistic maintained in memory186by the wireless device102may be identified by the configuration118, logged and forwarded to remote server104along with the one or more performance statistics124.

Further, in some aspects, performance module114may include monitoring logic115operable to compare a predetermined performance statistics124with a corresponding predetermined threshold setting188, which may be included in monitoring configuration118. As discussed above, configuration118may include one or more performance parameters187and corresponding threshold settings188relating to at least one performance statistic124to be tracked. For example, monitoring logic115may be able to determine if performance statistic124meets the corresponding threshold setting188, and to take predetermined action based on whether or not the statistic meets the setting. In some aspects, for example, monitoring logic115may cause the storage in performance log120of collected performance data221, such as performance parameters187, threshold settings187, and any other data that may be associated with a given performance statistic124, such as a state of the wireless device and/or any hardware and/or software component of the wireless device.

In another example, upon updating of performance statistics124by statistic generator logic113, monitoring logic115may compare each updated performance statistic124with its associated threshold setting188. In some aspects, based upon that comparison and/or based upon reporting parameter190in configuration118(discussed in more detail below), monitoring logic115may generate an exception report144identifying a performance statistic meeting its configured threshold, and/or any or all performance statistics, thresholds and/or performance-related data. Furthermore, in some embodiments, upon meeting a threshold, the uploaded exception report information may include, but is not limited to: wireless device identifying information; the exception data, e.g. an identifier of the connection quality statistic, such as a name and/or a code and the value of the statistic; and the date and time of the upload, which may be collected from a wireless device subsystem.

Additionally, in some aspects, performance module114may include reporting logic117for communicating the exception report144, the performance log120, and/or any of its components, to a predetermined address, such as to manager server104. For example, based upon configurable, predetermined reporting parameter190, reporting logic117is operable to transmit collected performance data221, performance statistics124and/or a corresponding exception report144to the performance manager server104and/or another predetermined party. For example, the information contained within performance log120may be utilized by server104(FIG. 1) to generate a summary report148(FIG. 1) relating to wireless device performance. In another case, for example, reporting logic117may communicate exception report144to server104when notified by monitoring logic115that a given performance statistic124meets its corresponding performance threshold setting188. Further, for example, based upon reporting parameter190, predetermined information, such as collected performance data221and/or performance statistics124, may be uploaded to the performance manager server104on a predetermined and configurable schedule or based on a predetermined event. A predetermined event may comprise meeting one or any combination of predetermined thresholds, receiving a request from an authorized party, establishment of a communications connection, etc. Further, in some aspects, after a transmission, performance module114may reset log120and statistics124.

Further, monitoring configuration118may include an access parameter191, which may determine whom to allow access to memory186, for example, in order to retrieve performance statistics124. Authorized users may include a specific remote device, such as performance manager server104and customer care workstation106.

In some aspects, selected statistics and/or performance logs may be transmitted over an open communication connection between the wireless device102and the wireless network110, “piggybacking” on an ongoing voice or data call across an open connection. Alternatively, in a cellular network configuration, performance statistics124may be transmitted to performance manager104through short message service (SMS) and/or via a Hypertext Transfer Protocol (HTTP) message. Furthermore, another aspect of the performance manager server104may “pull” the selected statistics124from the wireless device102across the network110on a scheduled or ad hoc basis.

Performance module114further includes wireless device control module146operable to receive and carry out a control command126. Upon receipt of control command126, the monitoring logic115and/or wireless device control module146are/is operable to parse the command and determine what action is requested. For example, control command126may be any command comprising an activity to be performed by the wireless device, such as launching performance module114, updating and/or executing monitoring configuration118, and/or performing some remotely-directed activity. Device control module146is discussed below in more detail in reference toFIG. 4.

Further, for example, upon receiving and/or executing control command126, monitoring logic115and/or wireless device control module122may respond to server104with a request to verify the control command, as is discussed below, and/or with an acknowledgement message. For example, such an acknowledgment message may be transmitted in response to a bootstrap command to download configuration118.

In some aspects, data transmission between the wireless device102and remote devices, e.g., remote server104and customer care workstation106, may be transmitted over a limited-access communications channel through wireless network110. The communication channel may be set up based upon a limited service configuration192and may be used for transmitting statistics124to remote server104or for downloading at least portions of performance module114, including monitoring configuration118, to wireless device102. In some aspects, the limited-access communications channel may not be available to the end user. Further, the limited-access communications channel may be configured based on limited service setting194that identifies allowable types of communications, and the associated communication channels that may be utilized. Limited service configuration192may be downloaded over wireless network110, may be locally transferred to wireless device102, such as through a serial connection, or may be preloaded on the wireless device102.

Referring back toFIG. 1, performance manager server104(or plurality of servers) may, via performance manager control module130in combination with communications module152, send software agents or applications, such as any portion of performance module114including monitoring configuration118, to wireless device102across wireless network110, such that the wireless device102returns information from its resident applications and subsystems200. Performance manager server104may comprise at least one of any type of server, personal computer, mini computer, mainframe computer, or any computing device either special purpose or general computing device further comprising processor assembly150. Further, there can be separate servers or computer devices associated with performance manager server104that work in concert to provide data in usable formats to parties, and/or to provide a separate layer of control in the data flow between the wireless devices102and performance manager server104.

Performance manager server104may comprise performance manager control module130that may further include software, hardware, data, and generally any executable instructions operable to manage the collection and reporting of statistics124collected from wireless device102. Performance manager control module130may further include information repository136operable to receive and store logs120and/or statistics124and/or collected performance data221received from wireless device102. Information repository136may include any type of memory or storage device.

As mentioned above, performance manager control module130is operable, in combination with communications module152, to receive uploaded statistics124as well as other performance-related data221, logs120, etc., and to generate performance reports which may be made available to predetermined parties, such as customer service personnel. In some aspects, performance manager control module130may comprise report generator142operable to generate and transmit an exception report144to a customer care workstation106when a predetermined threshold is met. Exception report144may include the exception data, i.e. the respective performance statistics and associated data received from wireless device102. In one embodiment, such an exception report144may include but is not limited to: wireless device identifying information; a performance statistics identifier that may comprise a description and/or code; a value representing the performance statistic and/or the threshold; and the date and time of the generation of the exception report144and/or of the occurrence of the met threshold. Furthermore, report144may be transmitted to any predetermined party, such as by electronic media, for example, facsimile and e-mail. In other aspects, threshold exceptions and accompanying data may be viewable online by a predetermined authorized user108having access to remote server104.

In addition to generating threshold exception report144, report generator142is operable to generate a summary report148based upon performance statistics124received from wireless devices102on a scheduled basis. Summary report148may be used to monitor, on a regular basis, the general level of performance of one or any combination of wireless devices. For example, in some aspects, customer service support for wireless devices may be distributed among a number of customer service representatives, who may be authorized users108. In such a scenario, report generator142may be operable to generate a report148summarizing performance statistics for a predetermined subset of wireless devices, such as for high average revenue per unit (ARPU) customers, and/or by carrier to determine conformance to service level agreements (SLAs). Report148may be generated summarizing performance statistics for the wireless devices assigned to each authorized user108.

As with exception report144, summary report148may be viewable online to an authorized user108and/or may be sent to any predetermined party, such as via an e-mail or facsimile. For example, report148may be transmitted via communications module152to a device, such as customer care workstation106. Based upon the output of report generator142, an authorized user108may take appropriate action to resolve any issues identified.

Further, performance manager control module130may include configuration generator module140which is executable to generate configuration118under control of an authorized user, such as authorized user108, and as previously disclosed, download all or a portion of performance module114, including configuration118, to wireless device102. Additionally, performance manager control module130may “pull” selected performance statistics124based on commands from an authorized user108, upon a request from performance manager control logic134, or the performance statistics124may be “pushed” from the wireless device102.

Referring toFIG. 3, one embodiment of a configuration generator module140may include hardware, software, firmware, executable instructions, data, and/or any other associated logic that allows the configuration generator module140to generate configuration118. In some aspects, configuration generator module140may be operable to execute configuration logic254that assembles the various components of a given configuration118based on selections from a number of parameters. For example, different network providers may utilize different mobile technologies, e.g. CDMA and UMTS. Accordingly, parameters that make up configuration118may vary depending on the type/make/model of the wireless device and/or the network service provider/communications protocol. As such, configuration logic254may provide a user with the ability to select from a menu of a plurality of wireless device types/models256and a plurality of network service providers/protocols258in order to generate an appropriate menu from which to select the parameters of configuration118.

In some aspects, configuration generator module140may include a plurality of performance parameters242from which one or more configuration performance parameters187(FIG. 2) are selected. The plurality of performance parameters242enables an operator of the system, such as authorized user108, to configure the performance module114to monitor and report upon any predetermined number and/or type of parameter that may be related to and/or associated with wireless device network-related and/or network independent performance. The plurality of performance parameters187each relate to one or more performance statistics124.

Furthermore, in some aspects, configuration generator module140may include a plurality of threshold settings246from which one or more configuration threshold settings188(FIG. 2) are selected. As noted above, the threshold setting may correspond to a predetermined performance parameter and/or statistic, and may include one or more threshold conditions and one or more corresponding threshold values. The threshold value may be a value, or may correspond to a given event. The threshold settings may be correlated to a corresponding performance parameter and/or performance statistic.

Further, in some aspects, configuration generator module140may include a plurality of reporting parameters244from which one or more configuration reporting parameters190(FIG. 2) are selected. Each of the plurality of reporting parameters244may determine at when the corresponding collected statistics may be uploaded to remote server104, including, but not limited to, uploading upon the occurrence of a scheduled event, at a predetermined time, at a predetermined interval, and upon receiving a command by a remote device such as by remote server104and customer care workstation106.

Furthermore, rather than selecting the various parameters individually, configuration logic254may provide the user with the ability to select from a menu of a plurality of predetermined configurations250, which include predetermined groupings of the above-noted parameters that comprise authorization configuration118.

Further, as noted above, in some aspects, the selected one of the plurality of wireless device types/models256and the selected one of the plurality of network service providers/communication protocols258may be correlated to a given one of a plurality of performance statistic242. For example, certain statistics may be unavailable, or may not be relevant, on devices or networks based on one protocol or standard, but may be available on other devices or networks using different protocols or standards. Accordingly, configuration logic254may be able to determine which monitoring capabilities the wireless device102should have installed based on the associated device type, network carrier and/or communication protocol, and thus may generate monitoring configuration118that includes the appropriate set of corresponding parameters.

Referring toFIG. 4, the performance manager control module130and/or the wireless device102may comprise device control module146operable, by execution of control logic252, to either execute control command126on wireless device102or transmit control command126to wireless device102. In some aspects, as noted above, the wireless device102may include a version of device control module146that simply carries out control commands126, while in other aspects the wireless device includes a fully functional version, as described herein.

In some aspects, for example, control command126may contain user identification (“ID”)260and control activity262. User ID260may be some manner of identifying the originator of control command126, i.e. authorized user108. For example, user ID260may be a name, a number, a digital signature, a hash, or any other type of data or value that may be associated with a party. Further, user ID260may not be explicitly contained in the control command126, but rather may be derived from the origin of control command126. Additionally, control activity262may be an operation to be performed on wireless device102by performance module114through executing control command126. As mentioned above, these operations may include downloading at least portions of performance module114, and initiating the uploading and resetting of statistics124.

Before executing or forwarding the control command126, device control module146may execute permission logic264to verify the intent of the sender of the command to perform the action, as well as to determine the authority of the sender (via user ID260) issuing control command126. For example, verification265may be requested by wireless device102prior to downloading configuration118from remote server104.

To determine whether a user has authorization to issue control command126, permission logic264may parse user ID260and control activity262from control command126and utilize a database of a plurality of user IDs270correlated with a plurality of control permissions268, and correlated with a plurality of wireless device identifications (IDs)272. Thus, based upon whether verification265is received and/or whether proper authorization is found, device control module146generates a permission decision266, which determines whether or not to execute generated control command126.

Control permissions268may identify one or more authorized control activities262for a given user ID260and/or wireless device ID272. For instance, certain users may be restricted to certain control activities, or to being able to control certain wireless devices. Similarly, certain wireless devices may be restricted in what control activities they are allowed to perform. The plurality of user IDs270, the plurality of control permissions268and the plurality of wireless device IDs272may be correlated in any manner. For example, control command126may contain a user ID260of authorized user108, and a control activity262of “upload current statistics” for a particular one of the plurality of wireless device IDs272. Permission logic264searches the database of control permissions268and user IDs270to determine if the user108has the permission to disable executable instructions on the given wireless device102.

Additionally, it should be noted that the actual location of the disclosed components of the performance manager control module130is non-limiting and may be physically located on a server and/or distributed among a plurality of network devices.

In summary, in some aspects of system100, authorized user108operating customer care workstation106may proactively support customers, i.e. wireless devices, based upon exception report144and/or summary report148generated by remote server104. Reports144,148may be electronically transmitted, such as by e-mail, to the customer care workstation106, or may be made available for viewing on the remote server104by an authorized user without requiring transmitting the reports to the customer care workstation106.

In other aspects of system100, authorized user108may be enabled to download performance module114, or parts thereof, to one or multiple wireless devices102directly from the workstation106. In other aspects, user workstation106may be a slave to remote server104, requiring server104to validate the operator106and to manage connectivity to the wireless devices102.

Referring toFIG. 5, user workstation106may comprise at least one of any type of server, personal computer, mini computer, mainframe computer, terminal, or any computing device either special purpose or general computing device operable to communicate with both wireless device102and remote server104. In one aspect, user workstation106may comprise a processing engine238, and a communications module240operable to transmit and receive messages and data between the workstation106, the remote server104, wireless device102, as well as any network component on wireless network110. In other aspects, customer care workstation106, may reside on any network device of wireless network110, such as on performance manager server104, another server connected to the network, or even on a wireless device102.

User workstation106may comprise an input mechanism220, and an output mechanism222interconnected to computer platform224. The input mechanism220and the output mechanism222may be similar to their respective counterparts182,184on wireless device102and permits a authorized user108to interface with the user workstation106and, via the workstation, with the performance manager server104and ultimately with the wireless device102.

The workstation computer platform224may further comprise a memory226for storing applications and data files including a workstation control module228executed by processing engine238. Because the number of workstations106and the number of field engineers108are non-limiting, user ID260may be entered into memory226by authorized user108, and may be operable to identify the user of a particular workstation106to network components including remote server104and wireless device102.

The workstation control module228may further include authorization logic230operable in conjunction with Graphic User Interface (GUI) logic232, input mechanism220, and output mechanism222, to guide the authorized user108through any analysis and command activity selection and transmission. The GUI logic232may control, for example, e-mail communication, report presentation, as well providing a menu by which workstation command control module234may select and transmit any control command126to performance manager control module130and wireless device102.

Wireless network110includes any communications network operable, at least in part, for enabling wireless communications between wireless device102and any device connected to wireless network110. Further, wireless network110may include all network components, and all connected devices that form the network. For example, wireless network110may include at least one, or any combination, of: a cellular telephone network (as embodied inFIG. 4); a multicast network such as a Forward Link Only (FLO) network, such as the MEDIAFLO™ System available from Qualcomm, Inc. of San Diego, Calif.; a digital video broadcasting (DVB) network, such as DVB-S for satellite, DVB-C for cable, DVB-T for terrestrial television, DVB-H for terrestrial television for handhelds; a terrestrial telephone network; a satellite telephone network; an infrared network such as an Infrared Data Association (“IrDA”)-based network; a short-range wireless network; a BLUETOOTH® technology network; a ZIGBEE® protocol network; an ultra wide band (“UWB”) protocol network; a home radio frequency (“HomeRF”) network; a shared wireless access protocol (“SWAP”) network; a wideband network, such as a wireless Ethernet compatibility alliance (“WECA”) network, a wireless fidelity alliance (“Wi-Fi Alliance”) network, and a 802.11 network; a public switched telephone network; a public heterogeneous communications network, such as the Internet; a private communications network; and a land mobile radio network.

Suitable examples of telephone networks include at least one, or any combination, of analog and digital networks/technologies, such as: code division multiple access (“CDMA”), wideband code division multiple access (“WCDMA”), universal mobile telecommunications system (“UMTS”), advanced mobile phone service (“AMPS”), time division multiple access (“TDMA”), frequency division multiple access (“FDMA”), orthogonal frequency division multiple access (“OFDMA”), global system for mobile communications (“GSM”), single carrier (“1X”) radio transmission technology (“RTT”), evolution data only (“EV-DO”) technology, general packet radio service (“GPRS”), enhanced data GSM environment (“EDGE”), high speed downlink data packet access (“HSPDA”), analog and digital satellite systems, and any other technologies/protocols that may be used in at least one of a wireless communications network and a data communications network.

Referring toFIG. 6, an aspect of a cellular wireless system322comprises at least one wireless device102and a cellular telephone wireless network338connected to a wired network330via a carrier network334. Cellular telephone system322is merely exemplary and may include any system whereby remote modules, such as wireless devices102communicate packets including voice and data over-the-air between and among each other and/or between and among components of wireless network338, including, without limitation, wireless network carriers and/or servers.

According to system322, performance manager server104may communicate over a wired network330(e.g. a local area network, LAN) with data repository324for storing statistics124, gathered from wireless devices102. Further, a data management server328may be in communication with performance manager server104to provide post-processing capabilities, data flow control, etc. Performance manager server104, data repository324and data management server328may be present on the cellular telephone system322along with any other network components needed to provide cellular telecommunication services.

Performance manager server104, and/or data management server328may communicate with carrier network334through data link332, such as the Internet, a secure LAN, WAN, or other network. Carrier network334controls messages (generally being data packets) sent to a mobile switching center (“MSC”)340. Further, carrier network334communicates with MSC340by a network336, such as the Internet, and/or POTS (“plain old telephone service”). Typically, in network336, a network or Internet portion transfers data, and the POTS portion transfers voice information. MSC340may be connected to multiple base stations (“BTS”)344by another network342, such as a data network and/or Internet portion for data transfer and a POTS portion for voice information. BTS344ultimately broadcasts messages wirelessly to the wireless devices, such as wireless device102, by short messaging service (“SMS”), or other over-the-air methods.

Referring toFIG. 7, a method for providing exception data for performance statistics accumulated for a wireless device may initiate with an authorized user108configuring, at step274, at least a portion of performance module114, e.g. configuration118, for subsequent downloading to a single or a selection of wireless devices102.

In some aspects, the performance module114initially may be absent from the wireless device102and may be “pushed” by a performance manager control module130to the wireless device102or “pulled” from performance manager control module130by the wireless device102across a wireless network110to ensure that the wireless device102has the latest software version. In another alternative, the pushing or pulling of the performance module114to the wireless device102may be configurable in any manner, for example: being initiated by a predetermined event.

In other aspects, although a given wireless device102may already have performance module114resident in memory, it may not, however, have an up-to-date monitoring configuration118. In some aspects, monitoring configuration118may be generated by server104. For example, performance manager control module130on server104may execute configuration generator module140to generate monitoring configuration118. Further, performance manager control module130may execute communications module152to forward monitoring configuration118to one or to multiple wireless devices102under direction of the authorized user108.

Upon command of authorized user108, performance manager control logic134may, at step276, send a control command126, such as a bootstrap command, to launch the performance module114resident in memory186of a selected wireless device. The bootstrap command may be sent over a limited communications channel, and/or may be sent via SMS or automated call back (ACB) protocols, or sent using other over-the-air methods.

At step278, the wireless device control module122may parse the bootstrap command, and optionally verify and/or authenticate the received message prior to execution. For example, wireless device control module122may execute the command immediately, or may query the source of control command126to verify the control command before executing it. In another example, the device control module122may utilize permission logic264to check user ID260and/or control activity262associated with control command126against a permissions database to determine an authorization for the control command, thereby formulating permission decision266. In yet another alternative, device control module122may request remote server104to operate device control module146to verify and/or authorize control command126. In such as case, based upon successful verification or authentication of the bootstrap command, at step280, the performance module114may establish a connection, such as an HTTP connection, with remote server104over wireless network110.

At step282, the performance module114may obtain monitoring configuration118, for example, by initiating a download of the configuration from the remote server104. In another aspect, configuration118may be obtained through forwarding through a static or serial connection to wireless device102, or may be preloaded on wireless device102during the manufacture of the wireless device102.

As previously disclosed, configuration118may comprise: performance parameters187operable to control which performance statistics124to monitor and calculate; threshold settings188that define threshold conditions and values corresponding to monitored parameters; reporting parameters190operable to control at what times performance statistics124are uploaded to remote server104; and access parameters191(FIG. 2) which define access permissions to wireless device102provided to remote devices. After a successful download of monitoring configuration118, an acknowledgment may be transmitted to the remote server104at step284to indicate successful transmission of the configuration118.

At step286, the performance module114may run as a background process, collecting performance data221and generating performance statistics124based upon the parsed parameters of configuration118. Performance module114may compare generated performance statistics124to corresponding, predetermined threshold settings188in order to monitor the performance of the wireless device.

Upon at least one of the performance statistics124meeting a corresponding one of the configured thresholds188, performance module114may, at step288, establish, via communications module202and/or limited service configuration192, an upload mechanism with remote server104. Such an uploading mechanism may include a HTTP, HTTPS, an FTP, or other data transfer protocol. At step290, reporting logic117may communicate a notification, such as exception report114, including statistics124, configuration118, collected performance data221and any other configurable data from the wireless device102, and forward the notification to a predetermined address, such as to the remote server104. Reporting logic117, in combination with communications module202, may forward the notification using any communication means or connection to which the wireless device102has access. In one embodiment, such an upload may include, but is not limited to: wireless device identifying information, e.g. wireless ID272; a performance statistics identifier that may comprise a description and/or code; a value representing the performance statistic and/or the threshold; and the date and time of the generation of the exception report144and/or of the occurrence of the met threshold.

At step292, the remote server104may transmit an acknowledgment message to the wireless device102indicating successful upload of the statistics124, collected performance data221, and/or exception report144, and their storage in information repository136. For example, in some aspects, communications module152is operable to receive the performance-related information from the wireless device, and performance manager control module130is operable to direct the storage of this information in information repository136.

At step294, report generator142may access the received performance statistics124, collected performance data221and/or exception report144, and, in some aspects, may supplement and/or generate exception report144. Performance manager control module130may, at step296, then direct the exception report144be sent to a predetermined party, such as a customer service representative. Upon receipt of report144, authorized user108may further analyze the data and take appropriate action. Alternatively, the exception report144may remain on the remote server104where it may be made viewable by an authorized user108logged into the remote server104.

Similar to the exception reporting method ofFIG. 7,FIG. 8illustrates another aspect of system100in which the wireless device102may upload the statistics124to remote server104based upon a configurable schedule. For example, this aspect may be utilized to monitor one or more predefined wireless devices and/or performance parameters associated with a wireless device. Upon receipt of these scheduled uploads, the remote server104is operable to generate a summary report148of monitored performance statistics124so as to enable customer service representatives, e.g., authorized users108, to provide proactive customer support.

Specifically, the steps (274,276,278, and280) are similar to that ofFIG. 7. However, the configuration118received at step282may comprise reporting parameters190that, when parsed by wireless device control module122, are operable, at step298, to cause monitoring logic114to establish at a predetermined time, e.g. monthly, an upload mechanism with remote server104. Such an uploading mechanism may include a HTTP, HTTPS, an FTP, or other data transfer protocol and may, at step300, upload all performance statistics124, collected performance data221, configuration118, and any other predetermined data from the wireless device102to the remote server104using any communication means or connection to which the wireless device102has access. Similar to the method aspect ofFIG. 7, such an upload may include, but is not limited to: wireless device identifying information, e.g. wireless ID272; a performance statistics identifier that may comprise a description and/or code; a value representing the performance statistic and/or the threshold; and the date and time of the generation of the exception report144and/or of the occurrence of the met threshold. Upon receipt of an acknowledgement (step302) of receipt of performance statistics124, in some aspects, the wireless device control module122may be operable to reset all logs120and statistics124.

At step304, the remote server104is operable to store the received data in information repository136and performance manager control module130is operable to execute report generator142to generate a performance summary report148available to any predetermined party, such as authorized user108. For example, in some aspects, the summary report148may summarize accumulated performance statistics for at least a subset of wireless devices managed by authorized user108.

Although performance manager control module130may generate report148, module130and its corresponding components may be operable to present a ready view of usage data related information collected from multiple wireless devices102in any form, such as tables, maps, graphics views, plain text, interactive programs or web pages, or any other display or presentation of the data. For example, performance manager control module130may present, at step306, report148and performance related information on a monitor or display device, and/or may transmit this information, such as via electronic mail, to another computer device for further analysis or review through such mechanisms as through HTTP, HTTPS, FTP, or some other data transfer protocol.

In another aspect, statistic data scheduled for uploading to remote server104may be received whole, or in pieces, and assembled by performance manager control module130. In one aspect, performance manager control module130may receive performance statistics124over wireless network110, whereas another aspect may have the performance manager control module130receive performance statistics124through a static or serial connection to the wireless device102, or from some other computer device or storage media in communication with performance manager server130and wireless device102.

Summary performance report148may include any form of output that represents analysis of performance statistics124and other information contained in the information repository136, as well as any other associated information such as high ARPU customers, known outages, etc.

Thus, the described aspects allow a party, such as a wireless network service provider and a wireless device manufacturer, to report upon the performance of a wireless device, and based on those reports, make decisions to proactively provide customer support. For example, the monitoring may involve performance statistics such as, but not limited to, application usage, such as the number of media files played, the time spent playing the media, the types of media played. Any predetermined performance parameter may be configured for monitoring and reporting.

While the foregoing disclosure shows illustrative aspects and/or aspects, it should be noted that various changes and modifications could be made herein without departing from the scope of the described aspects and/or aspects as defined by the appended claims. Furthermore, although elements of the described aspects may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated. Additionally, all or a portion of any aspect and/or aspect may be utilized with all or a portion of any other aspect and/or aspect, unless stated otherwise.