Patent Description:
Often, general insights about network users' behavior, and insights about the network itself, may be gained by analyzing data traffic at various scales of the network. For example, information regarding data traffic over individual network cells may be useful for various data analytics. However, when collecting and processing data for such data analysis, it is important to continue to ensure the anonymity of the collected data, even from network cells that experience relatively low numbers of users in a given span of time.

<CIT> and <NPL> describe approaches to minimization of drive tests in mobile networks.

The present application provides a computer implemented method and an apparatus and network employing the in accordance with the claims which follow.

The detailed description is set forth with reference to the accompanying figures, in which the left-most digit of a reference number identifies the figure in which the reference number first appears.

Described herein are techniques and architectures that allow a computing system to automatically determine if data traffic of an individual network cell, or other relatively small portion of a network, is sufficiently complex so as to desirably enhance privacy of individuals of the network. Such complexity may, for instance, depend on the number of users of the network cell in a given span of time. For example, a cell tower in a city may experience data traffic of a relatively large number of people (e.g., hundreds or so individual users during a one-day period). Data traffic of such a relatively high volume may be too complex to allow for identification of individual users and/or their associated network activities. On the other hand, a cell tower in a rural area may experience relatively lower volumes of data traffic (e.g., a dozen or so individual users during a one-day period). Such a relatively low volume of data traffic can be aggregated and analyzed, according to the disclosure herein, to further safeguard and protect individual user information. Generally, data traffic of a network cell may include phone calls and conversations, video conferencing, text messaging, Internet accessing and browsing, data uploads and downloads (e.g., file sharing and streaming), and so on.

Often, general insights about network users' behavior, and insights about the network itself, may be gained by analyzing data traffic at various scales of the network. For example, information regarding data traffic over individual network cells may be useful for various data analytics. Data analytics may provide useful knowledge for advertisers and network architects and managers, for example. In order to protect user information while enabling these use cases, embodiments herein described are directed to methods and systems that determine if aggregated traffic data is sufficiently complex so as to maintain anonymity during subsequent procedures involving data analytics, such as those performed by third parties. Thus, according to example embodiments of the disclosure, anonymity may be enhanced when collecting data and/or performing data analytics, particularly at network cells or other nodes with relatively low network traffic.

<FIG> schematically illustrates an example of a wireless communication network <NUM> (also referred to herein as network <NUM>) that may be accessed by mobile devices 102A, 102B (which need not necessarily be mobile and are also referred to herein as client devices), referred to hereinafter, individually or collectively, as mobile devices <NUM>. As can be seen, in various configurations, the wireless communication network <NUM> includes multiple nodes and networks. The multiple nodes and networks may include one or more of, for example, a regional business office <NUM>, one or more retail stores <NUM>, cloud services <NUM>, the Internet <NUM>, a call center <NUM>, a data center <NUM>, a core net/backhaul network <NUM>, a mobile switch office (MSO) <NUM>, and a carrier Ethernet <NUM>. Wireless communication network <NUM> may include other nodes and/or networks not specifically mentioned, or may include fewer nodes and/or networks than specifically mentioned. In some examples, network <NUM> may provide infrastructure for one or more events that occur during an application session.

Access points such as, for example, cellular towers 122A, 122B, can be utilized to provide access to wireless communication network <NUM> for mobile devices <NUM>. In various configurations, wireless communication network <NUM> may represent a regional or subnetwork of an overall larger wireless communication network. Thus, a larger wireless communication network may be made up of multiple networks similar to wireless communication network <NUM> and thus the nodes and networks illustrated in <FIG> may be replicated within the larger wireless communication network. In particular, in the example situation illustrated in <FIG>, mobile device 102A is in a cell serviced by cellular tower 122A and mobile device 102B is in a cell serviced by cellular tower 122B.

In various configurations, mobile devices <NUM> may comprise any devices for communicating over a wireless communication network. Such devices include mobile telephones, cellular telephones, mobile computers, Personal Digital Assistants (PDAs), radio frequency devices, handheld computers, laptop computers, tablet computers, palmtops, pagers, as well as desktop computers, devices configured as Internet of Things (IoT) devices, integrated devices combining one or more of the preceding devices, and/or the like. As such, mobile devices <NUM> may range widely in terms of capabilities and features. For example, one of mobile devices <NUM> may have a numeric keypad, a capability to display only a few lines of text and be configured to interoperate with only GSM networks. However, another of mobile devices <NUM> (e.g., a smart phone) may have a touch-sensitive screen, a stylus, an embedded GPS receiver, and a relatively high-resolution display, and be configured to interoperate with multiple types of networks. The mobile devices may also include SIM-less devices (i.e., mobile devices that do not contain a functional subscriber identity module ("SIM")), roaming mobile devices (i.e., mobile devices operating outside of their home access networks), and/or mobile software applications.

In configurations, wireless communication network <NUM> may be configured as one of many types of networks and thus may communicate with mobile devices <NUM> using one or more standards, including but not limited to GSM, Time Division Multiple Access (TDMA), Universal Mobile Telecommunications System (UMTS), Evolution-Data Optimized (EVDO), Long Term Evolution (LTE), Generic Access Network (GAN), Unlicensed Mobile Access (UMA), Code Division Multiple Access (CDMA) protocols (including IS-<NUM>, IS-<NUM>, and IS-<NUM> protocols), Advanced LTE or LTE+, Orthogonal Frequency Division Multiple Access (OFDM), General Packet Radio Service (GPRS), Enhanced Data GSM Environment (EDGE), Advanced Mobile Phone System (AMPS), WiMAX protocols (including IEEE <NUM>. 16e-<NUM> and IEEE <NUM> protocols), High Speed Packet Access (HSPA), (including High Speed Downlink Packet Access (HSDPA) and High Speed Uplink Packet Access (HSUPA)), Ultra Mobile Broadband (UMB), and/or the like. In embodiments, as previously noted, the wireless communication network <NUM> may include an IMS 100a and thus may provide various services such as, for example, voice over long term evolution (VoLTE) service, video over long term evolution (ViLTE) service, rich communication services (RCS) and/or web real time communication (Web RTC).

<FIG> schematically illustrates a component-level view of a server <NUM>. Server <NUM> may be configured as a node for use within a wireless communication network such as <NUM>, according to processes described herein. In some embodiments, server <NUM> may be a baseband unit (BBU). Server <NUM> includes a system memory <NUM>, processor(s) <NUM>, a removable storage <NUM>, a non-removable storage <NUM>, transceivers <NUM>, output device(s) <NUM>, and input device(s) <NUM>.

In various implementations, system memory <NUM> is volatile (e.g., RAM), nonvolatile (e.g., ROM, flash memory, etc.) or some combination of the two. In some implementations, processor(s) <NUM> is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or any other sort of processing unit. System memory <NUM> may also include applications <NUM> that allow the server to perform various functions. Among applications <NUM> or separately, memory <NUM> may also include a compare module <NUM> and a threshold value register <NUM>, which are described in detail below.

In some embodiments, server <NUM> may be a computing system configured to automatically determine if data traffic of an individual network cell (e.g., associated with cellular tower <NUM>), or other relatively small portion of a network, is sufficiently complex so as to desirably maintain privacy of individuals of the network. Accordingly, applications <NUM> may include code that, upon execution, allows server <NUM> to record or access from memory information regarding data traffic associated with individual users (e.g., via wireless devices <NUM>) of a network cell of wireless communication network <NUM>; at least partially identify the individual users of the network cell to generate a list of the individual users; determine the number of unique users in the list of the individual users; compare the number to a predetermined threshold; and based at least in part on the comparing, determine whether to categorize the recorded information as anonymized traffic data. In some examples, the predetermined threshold may be stored in a portion of memory <NUM>, such as in threshold value register <NUM>.

Server <NUM> may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is represented in <FIG> by removable storage <NUM> and non-removable storage <NUM>.

Non-transitory computer-readable media may include volatile and nonvolatile, removable and non-removable tangible, physical media implemented in technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory <NUM>, removable storage <NUM> and non-removable storage <NUM> are all examples of non-transitory computer-readable media. Non-transitory computer-readable media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible, physical medium which can be used to store the desired information and which can be accessed by server <NUM>. Any such non-transitory computer-readable media may be part of server <NUM>.

In some implementations, transceivers <NUM> include any sort of transceivers known in the art. For example, transceivers <NUM> may include wired communication components, such as an Ethernet port, for communicating with other networked devices. Also or instead, transceivers <NUM> may include wireless modem(s) to may facilitate wireless connectivity with other computing devices. Further, transceivers <NUM> may include a radio transceiver that performs the function of transmitting and receiving radio frequency communications via an antenna.

In some implementations, output devices <NUM> include any sort of output devices known in the art, such as a display (e.g., a liquid crystal display), speakers, a vibrating mechanism, or a tactile feedback mechanism. Output devices <NUM> also include ports for one or more peripheral devices, such as headphones, peripheral speakers, or a peripheral display.

In various implementations, input devices <NUM> include any sort of input devices known in the art. For example, input devices <NUM> may include a camera, a microphone, a keyboard/keypad, or a touch-sensitive display. A keyboard/keypad may be a push button numeric dialing pad (such as on a typical telecommunication device), a multi-key keyboard (such as a conventional QWERTY keyboard), or one or more other types of keys or buttons, and may also include a j oystick-like controller and/or designated navigation buttons, or the like.

<FIG> schematically illustrates a wireless communication network <NUM>, according to various embodiments. In particular, network <NUM>, which may be a subset of wireless communication network <NUM>, includes a cellular tower <NUM> that establishes a network cell <NUM>. A wireless device <NUM> is located within network cell <NUM>. Cellular tower <NUM> and wireless device <NUM> are wirelessly connected for two-way communication. Network <NUM> includes a server <NUM>, which may be similar to or the same as server <NUM>,that receives and transmits signals via wired or wireless path <NUM>. Server <NUM> may, for example, be located in core net/backhaul network <NUM> or MSO <NUM> of network <NUM>.

Any number of wireless devices <NUM> may communicate with cellular tower <NUM> during a particular span of time. For example, though <FIG> merely illustrates one wireless device <NUM>, multiple wireless devices may communicate with cellular tower <NUM> at the same time or at different times. Such communication is herein referred to as data traffic and may include phone calls and conversations, video conferencing, text messaging, Internet accessing and browsing, data uploads and downloads (e.g., file sharing and streaming), and so on.

In various embodiments, server <NUM> may record information regarding data traffic associated with individual users of one or more wireless devices <NUM> in network cell <NUM>. Such information may include metadata (e.g., data quantity, timing, direction, identity of user and type of wireless device, and so on) of phone calls and conversations, video conferencing, text messaging, Internet accessing and browsing, and data uploads and downloads (e.g., file sharing and streaming), just to name a few examples. Server <NUM> may at least partially identify the individual users of network cell <NUM> to generate a list of the individual users. In other words, such a list would identify users that are unique among one another, thus eliminating repeat users being listed more than once. Thus, server <NUM> may determine the number of unique users in the list of the individual users and compare this number to a predetermined threshold, which server <NUM> may retrieve from threshold value register <NUM>. In one particular example, such a predetermined threshold may be <NUM>. In this case, server <NUM> may compare the number of unique users in the list of the individual users to <NUM>. Of course, such a specific threshold is merely an example and the claimed subject matter is not so limited.

Based at least in part on the comparing, server <NUM> may determine whether to categorize the recorded information as anonymized traffic data. Here, the recorded information may be aggregated by combining separate portions of the previously recorded information together by any of a number of techniques. Such aggregating may eliminate associations among various portions of the recorded information so that the aggregated recorded information becomes anonymized. Returning to the particular example of the predetermined threshold being <NUM>, if the number of individual users is greater than <NUM>, then server <NUM> may aggregate the recorded information to generate anonymized traffic data. On the other hand, if the number of individual users is less than <NUM>, server <NUM> may not aggregate the recorded information because the number of individual users is too small to allow for anonymized traffic data.

<FIG> is a schematic diagram of a database <NUM> that includes data <NUM> regarding network traffic in a network cell, according to some embodiments. For example, server <NUM> may record data <NUM> in real-time and place such data in database <NUM> also in real-time or at a later time.

Data <NUM> may include any of a number of types of information associated with a network event that occurs in the network cell. In some implementations, the data may be categorized by event in a table that includes some type of user identification and metadata associated with particular events. User identification may include phone number, name, or other personal information of a user involved in (e.g., a user who initiated) the event. Metadata may include time of event, phone numbers of wireless devices associated with the event, and type, direction, quantity, and time of data flow of data traffic of the event, etc. For example, in the case of an event being Internet browsing, metadata may include addresses of websites visited and quantity of data uploaded or downloaded between the wireless device and the website(s).

Server <NUM> may determine the number of unique users in the list or table of events. In particular, server <NUM> may determine the number of unique users associated with events during a particular time span. For example, such a number may represent the number of users using a network cell to participate in events during a <NUM>-hour period.

In the example table illustrated in <FIG>, multiple events involve a few individual users. For instance, events <NUM> and <NUM> involve user <NUM> and events <NUM> and <NUM> involve user <NUM>. To determine the number of unique users in the table, server <NUM> may detect such multiple events by individual users and remove these instances of "false" additional users.

<FIG> is a block diagram of a process <NUM> to determine the type of category in which to place data traffic occurring in a wireless communication network. For example, process <NUM> may be performed by server <NUM>, illustrated in <FIG>, or more specifically, in other examples, may be performed by a combination of applications module <NUM> and compare module <NUM>, illustrated in <FIG>. One of ordinary skill in the art will recognize that the process <NUM> may be performed in any number of appropriate ways, including but not limited to these examples.

At block <NUM>, server <NUM> may determine the number of unique users of a network cell during a particular time span. During this time span, this number of unique users engaged in network events that resulted in data traffic. At diamond <NUM>, server <NUM> may determine whether the number of unique users is greater than a predetermined threshold. If so, then process <NUM> proceeds to block <NUM> where the data traffic associated with the unique users is categorized as being anonymous data. In this case, the relatively high number of users would make it difficult to subsequently identify the individual users based on the data traffic (wherein the data traffic does not explicitly include user identification). For example, the data traffic is not relatable to or associated with individual users.

On the other hand, if server <NUM> determines that the number of unique users is less than the predetermined threshold then process <NUM> proceeds to block <NUM> where the data traffic associated with the unique users is categorized as being private data. In this way, the data traffic may be categorized for further processing. In some example embodiments, the data traffic categorized as private data, by the processes of block <NUM>, may not be shared with other parties and/or may not be used for data analytics.

<FIG> is a flow diagram of a process <NUM> for anonymizing traffic data in a network cell, according to various embodiments. For example, process <NUM> may be performed by server <NUM>, illustrated in <FIG>, or more specifically, in other examples, may be performed by a combination of applications module <NUM> and compare module <NUM>, illustrated in <FIG>. One of ordinary skill in the art will recognize that the process <NUM> may be performed in any number of appropriate ways, including but not limited to these examples.

At block <NUM>, the server may record information regarding data traffic associated with individual users of a network cell. Such recording may be performed during a particular time span, such as a <NUM>-hour period, for example. The information regarding the data traffic may include the type of the data traffic, direction of the data traffic, quantity of the data traffic, and time of data flow of the data traffic, just to name a few examples. The data traffic may be associated with, for example, phone calls to or from one or more of the individual users via the network cell.

At block <NUM>, the server may at least partially identify the individual users of the network cell to generate a list of the individual users. Such a list may be in the form of a data table, such as that illustrated in <FIG>, for example. Identifying the individual users of the network cell may be performed by associating the individual users with respective phone numbers of the individual users. In some examples, the list of the individual users comprises a list of the individual users associated with data traffic that occurs within a particular time span.

At block <NUM>, and as described above regarding <FIG>, the server may determine the number of unique users in the list of the individual users. At block <NUM>, the server may compare the number of unique users to a predetermined threshold. In some examples, the predetermined threshold is based, at least in part, on the particular time span considered. In some examples, the predetermined threshold is based, at least in part, on a history of usage of the network cell. Considering such history may be useful for improving accuracy of determining whether data traffic is anonymous or not. For example, the predetermined threshold may be increased or decreased depending on whether the history includes many days of relatively few users in a network cell or relatively many users.

At block <NUM>, the server may, based at least in part on the comparing, determine whether to categorize the recorded information as anonymized traffic data. In some examples, the anonymized data traffic is based, at least in part, on the data traffic during the particular time span. If the recorded information is categorized as anonymized data traffic then, for example, such data may be provided to third parties for data analytics or any of a number of other purposes.

Claim 1:
A computer-implemented method (<NUM>) performed by a server apparatus (<NUM>) employed in a wireless communication network (<NUM>) comprising a cellular tower (<NUM>) establishing a network cell (<NUM>) the method comprising:
recording information (<NUM>) regarding data traffic associated with individual users (<NUM>) of the network cell;
at least partially identifying the individual users of the network cell to generate a list of the individual users;
determining (<NUM>) a number of unique users in the list of the individual users;
comparing the number to a predetermined threshold; and
based at least in part on the comparing, determining (<NUM>) whether to categorize (<NUM>) the recorded information as anonymized traffic data, characterized in that the information regarding the data traffic includes type of the data traffic, direction of the data traffic, quantity of the data traffic, and time of data flow of the data traffic.