Patent Publication Number: US-9894502-B2

Title: Floor identification for emergency calls

Description:
BACKGROUND 
     Situations often arise, in which an individual needs to be located quickly. For example, in an emergency situation, an individual may dial “911.” The individual&#39;s general location (e.g., latitude and longitude) may be ascertained using, for example, enhanced 911 (“E911”) techniques. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1-3  illustrate an example overview of one or more implementations described herein; 
         FIG. 4  illustrates an example of an environment, in which systems and/or methods, described herein, may be implemented; 
         FIGS. 5-7  illustrate example data structures, which may be used to aid in determining a floor, in a multi-story structure, on which a user device is located; 
         FIG. 8  illustrates an example process for identifying a floor in a multi-story structure, on which a user device is located, based on barometric information; 
         FIG. 9  illustrates an example process for identifying a floor in a multi-story structure, on which a user device is located, based on a list of networks and/or devices that are visible to the user device; 
         FIG. 10  conceptually illustrates an example situation in which a floor in a multi-story structure, on which a user device is located, may be identified based on a list of networks and/or devices that are visible to the user device; and 
         FIG. 11  illustrates example components of a device, in accordance with some implementations described herein. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The following detailed description refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements. 
     As provided herein, some implementations may allow for the identification of a floor, in a multi-story structure, from which a user device (e.g., a mobile telephone) places a call. For example, as shown in  FIG. 1 , a user may place a 911 call from the fourth floor of a five-floor building. In accordance with some implementations, information identifying that the user is on the fourth floor may be provided to a public safety answering point (“PSAP”), such as a 911 call center. 
     Traditionally, the user&#39;s general location (e.g., a set of latitude and longitude coordinates) could be determined (e.g., using E911 techniques). However, in situations where a particular set of coordinates covers a large number of floors (such as in skyscrapers and/or other multi-story structures), the user may not be easily located based on coordinates alone. Providing floor information in addition to coordinates, in accordance with one or more implementations, would allow the user to be located more quickly. 
     As described herein, the floor, from which a user is calling, may be identified in a variety of ways. For example, as shown in  FIG. 2 , a floor determination server may receive a barometer reading from the user device, which may indicate a measured atmospheric pressure at the time a phone call was placed. The floor determination server may also receive location information regarding the user device, which may include latitude and longitude coordinates at which the user device was located at the time the phone call was placed. 
     The floor determination server may also receive a reference atmospheric pressure from, for example, a reference pressure server (e.g., from a server provided by the National Weather Service and/or another provider). The reference atmospheric pressure may be obtained from a location that is relatively near the user device (e.g., within the same ZIP code). As another example, the reference atmospheric pressure may be received from a reference barometer device within or near the building (e.g., from a set of barometers within the building, of which two or more barometers are located on different floors). The information received from the reference pressure server (and/or the reference barometer device) may additionally indicate an altitude at which the reference pressure was measured (e.g., a height above or below mean sea level). Based on a comparison of the reference atmospheric pressure, the altitude at which the reference atmospheric pressure was measured, and the barometer reading from the user device, the floor determination server may identify an altitude associated with the user device. 
     The floor determination server may also receive building layout information from a building layout server. The building layout information may pertain to a building that is identified based on the location of the user device. The building layout information may, for example, indicate altitudes associated with floors of the building. The floor determination server may compare the identified altitude of the user device to the building layout information to identify on which floor, of the building, the user device is located. The floor determination server may notify a callee of the call (e.g., a PSAP) regarding the identified floor. 
       FIG. 3  illustrates another example of how the floor, from which a call is placed, may be identified. As shown in  FIG. 3 , a number of Wi-Fi access points and/or personal area network (“PAN”) devices (such as Bluetooth® devices) may be present in the building in which the user device is located. The user device may detect the presence of these Wi-Fi access points and/or PAN devices based on discovery beacons provided by the Wi-Fi access points and/or PAN devices. For example, a Wi-Fi access point may broadcast a service set identifier (“SSID”), which may indicate to other devices that the Wi-Fi access point is present. As another example, a PAN device may broadcast a name or other identifier associated with the PAN device, which may indicate to other devices that the PAN device is present. 
     When the user device has placed a call (e.g., a 911 call), the floor determination server may receive a list of the networks and/or devices that are visible to the user device at the time the call was placed. The list may include, for example, a set of SSIDs, PAN device identifiers, etc. The floor determination server may receive information from a network/device server, which may indicate floors of a building that are associated with various SSIDs, PAN device identifiers, etc. Based on comparing the network/device list, received from the user device, to the information received from the network/device server, the floor determination server may be able to determine a floor of a building at which the user device is located. The floor determination server may notify a callee of the call (e.g., a PSAP) regarding the identified floor. 
       FIG. 4  illustrates an example environment  400 , in which systems and/or methods described herein may be implemented. As shown in  FIG. 4 , environment  400  may include user device  405 , one or more reference servers  410 , floor determination server  415 , and network  420 . 
     The quantity of devices and/or networks, illustrated in  FIG. 4 , is provided for explanatory purposes only. In practice, environment  400  may include additional devices and/or networks; fewer devices and/or networks; different devices and/or networks; or differently arranged devices and/or networks than illustrated in  FIG. 4 . Alternatively, or additionally, one or more of the devices of environment  400  may perform one or more functions described as being performed by another one or more of the devices of environments  400 . Devices of environment  400  may interconnect with each other and/or other devices via wired connections, wireless connections, or a combination of wired and wireless connections. 
     User device  405  may include any computation and communication device, such as a wireless mobile communication device that is capable of communicating with one or more networks (e.g., network  420 ). For example, user device  405  may include a radiotelephone; a personal communications system (“PCS”) terminal (e.g., a device that combines a cellular radiotelephone with data processing and data communications capabilities); a personal digital assistant (“PDA”) (e.g., that can include a radiotelephone, a pager, Internet/intranet access, etc.); a smart phone; a laptop computer; a tablet computer; a camera; a set-top device (“STD”), a personal gaming system, a wearable device, and/or another type of mobile computation and communication device. User device  405  may receive connectivity to network  420  via services provided by a service provider, such as an Internet service provider (“ISP”). An ISP may, in some implementations, be a wireless telecommunications provider (e.g., a cellular telecommunications provider). 
     User device  405  may include logic and/or circuitry (e.g., global positioning system “GPS” capability) that may be used to determine a geographical location associated with user device  405 . In some implementations, user device  405  may include, and/or may be associated with, logic and/or circuitry to measure atmospheric pressure (e.g., a barometer). User device  405  may communicate with floor determination server  415  via network  420 . In some implementations, user device  405  may be configured to output information (e.g., GPS information, barometer information, and/or other information) when user device  405  places a telephone call (e.g., whenever user device  405  makes a telephone call, and/or only when user device  405  makes a certain type of telephone call, such as a 911 call). In some implementations, user device  405  may output the information in response to a request (e.g., a request from floor determination server  415 ). Additionally, or alternatively, user device  405  may periodically or intermittently output the information (e.g., every hour, every minute, whenever user device  405  changes location, etc.) to floor determination server  415  and/or another device. 
     Reference servers  410  may include one or more server devices, from which reference information is received, which may be used to aid in determining a floor on which user device  405  is located when user device  405  places calls. Different reference servers  410  may be associated with different providers. For example, one reference server  410  may be provided by an entity that provides public weather information, while another reference server  410  may be a private server that is owned and/or operated by the same entity that owns and/or operates floor determination server  415 . Examples of data, that may be stored by one or more reference servers  410  (and/or based on information provided by reference servers  410 ), are described below with respect to  FIGS. 5-7 . 
     Floor determination server  415  may include one or more server devices that determine a floor of building, from which a call is placed by user device  405 . As described below, floor determination server  415  may determine the floor based on information regarding user device  405  (e.g., location information, barometer readings, and/or other information), as well as reference information received from reference server  410 . Floor determination server  415  may output the location information to a callee associated with the call placed by reference server  410 , and/or to another device. 
     Network  420  may include one or more networks, via which user device  405 , reference server  410 , and/or floor determination server  415  may communicate. For example, network  420  may include an evolved packet system (“EPS”) that includes a Long Term Evolution (“LTE”) network and/or an evolved packet core (“EPC”) network that operate based on a third generation partnership project (“3GPP”) wireless communication standard. The LTE network may be, or may include, a radio access network (“RAN”) that includes one or more base stations, some or all of which may take the form of an eNodeB (“eNB”), via which user device  405  and/or another device may communicate with the EPC network. The EPC network may include one or more serving gateways (“SGWs”), mobility management entities (“MMEs”), and/or packet data network (“PDN”) gateways (“PGWs”), and may enable user device  405  to communicate with a PDN (e.g., the Internet) and/or an IP Multimedia Subsystem (“IMS”) core network. The IMS core network may manage authentication, session initiation, account information, a user profile, etc. associated with user device  405 . 
     Network  420  may additionally, or alternatively, include a wide area network (“WAN”), a metropolitan area network (“MAN”), the Internet, a fiber optic-based network, and/or a combination of these or other types of networks. Network  420  may include one or more wireless networks in addition to, or in lieu of, an LTE network. For example, network  420  may include a Code Division Multiple Access (“CDMA”) 2000 1× network, a second generation (“2G”) wireless network, a third generation (“4G”) wireless network, a fourth generation (“4G”) wireless network, a fifth generation (“5G”) wireless network, a “Wi-Fi” wireless network (e.g., a network that operates according to an Institute of Electrical and Electronics Engineers (“IEEE”) 802.11-based standard), and/or another wireless network. In some implementations, network  420  may be communicatively coupled to one or more other networks. 
       FIGS. 5-7  illustrate example data structures  500 ,  600 , and  700 , respectively, that may be stored by one or more reference servers  410  and/or by floor determination server  415 . For example, floor determination server  415  may store data structures  500 ,  600 , and/or  700 , based on information received from one or more reference servers  410 . The information stored in data structures  500 ,  600 , and/or  700  may aid in determining a floor, of a structure, at which a particular user device  405  is located. 
     For instance, as shown in  FIG. 5 , data structure  500  may include information regarding wireless networks and/or PAN devices. For a particular wireless network and/or PAN device, data structure may include identifying information, a transmit power, a floor, and/or additional information. The identifying information may include an SSID and/or another identifier, such as a device name. As discussed above, the identifying information for a particular wireless network and/or PAN device, may correspond to a discovery beacon broadcasted by the wireless network and/or PAN device. 
     The transmit power information, for a particular wireless network and/or PAN device, may indicate a transmit power (e.g., as expressed in milliwatts (“mW”)) of a radio transceiver associated with the wireless network and/or PAN device. As described later, the transmit power may be compared to a signal strength, of signals received by user device  405 , in order to better determine the proximity of user device  405  to a particular wireless access point and/or PAN device. 
     The floor information, for a particular wireless network and/or PAN device, may indicate a floor on which the particular wireless network and/or PAN device is located. In some implementations, the floor information may indicate a range of floors. For example, the additional information may include information that may be useful to emergency responders, such as an address, a name of the building in which the wireless network and/or PAN device is located, access codes to doors of the building, a room number in which the wireless network and/or PAN device are located), and/or other information. 
     As shown in  FIG. 6 , data structure  600  may include information regarding floors of several buildings. The information, for a particular building, may include information regarding a location of the building, height of each floor, and a floor height offset. The location may be, for example, an address, a set of latitude and longitude coordinates, or the like. The floor height may be a height of each floor, and the floor height offset may indicate an altitude at which the ground floor is located. For example, the building located at “Location_1” may have a ground floor at 1,000 meters above sea level, and each floor may be 3.0 meters high. Thus, a user device  405 , at “Location_1” and at an example altitude of 1,030 meters may be on the tenth floor of the building. 
     As shown in  FIG. 7 , data structure  700  may include information regarding floors of a particular building. For example, the information may indicate an altitude range (e.g., a range of meters above sea level) that correspond to floors of the building. As shown, for instance, floor  1  of the building may begin at 5.0 meters above sea level, and may end 8.2 meters above seal level. Thus, an example user device  405 , in the building and at 5.5 meters above sea level, would be on floor  1  of the building. 
       FIG. 8  illustrates an example process  800  for identifying a floor in a multi-story structure, on which a user device is located, based on barometric information. Process  800  may, in some implementations, be performed by floor determination server  415 . In other implementations, some or all of process  800  may be performed by one or more other devices. 
     Process  800  may include receiving (at  805 ) an indication of a call placed by a user device. For example, floor determination server  415  may receive an indication from a device (such as a device that performs call control signaling) within a network, associated with user device  405 , that a call has been placed by user device  405 . Additionally, or alternatively, floor determination server  415  may receive an indication directly from user device  405 . In some implementations, the indication may only be provided to floor determination server  415  when the call meets certain criteria (e.g., if the call is an emergency call, such as a 911 call). 
     The indication may include information that may be used by floor determination server  415  to communicate directly or indirectly with user device  405 . For example, the indication may include an Internet Protocol (“IP”) address associated with user device  405 , a device identifier associated with user device  405 , and/or other information. In some implementations, the indication may include information that may be used by floor determination server  415  to communicate with a callee of the call. 
     Process  800  may also include receiving (at  810 ) barometric information and location information associated with the user device. For example, floor determination server  415  may request barometric information from user device  405 , and/or from another device that receives and/or stores barometric information regarding user device  405 . As another example, the indication, received at  805 , may include the barometric information. As yet another example, floor determination server  415  may have received the barometric information prior to receiving the indication at  805 . For example, in some implementations, user device  405  may periodically and/or intermittently output barometric information to floor determination server  415  and/or another device. As mentioned above, the barometric information may indicate an atmospheric pressure measured by user device  405  and/or another device associated with user device  405 . 
     In some implementations, user device  405  may include logic and/or hardware that communicates with floor determination server  415 , in order to provide the barometric information (and/or other information) to floor determination server  415 . For instance, user device  405  may run an application, and/or firmware of user device  405  may be suitably configured, that responds to requests from floor determination server  415 , detects calls made by user device  405 , receives barometric information from a barometer associated with user device  405 , and/or performs other functions. 
     Process  800  may additionally include receiving (at  815 ) reference barometric information associated with the location. For example, floor determination server  415  may request reference barometric information, based on the location of user device  405 , from a particular reference server  410 . As mentioned above, the reference barometric information may include a reference atmospheric pressure, as well as an indication of an altitude at which the reference atmospheric pressure was measured. The reference atmospheric pressure may be received from a publicly available source, such as from the National Weather Service, and/or from another source (e.g., reference barometers that are located in or near the building). In some implementations, reference atmospheric pressure from multiple sources may be used. In these implementations, the reference atmospheric pressure readings may be combined (e.g., averaged, averaged in a weighted manner) and/or another function may be performed on the reference atmospheric pressure readings (e.g., discard the higher reading, discard the lower reading, etc.). 
     Process  800  may further include determining (at  820 ) an altitude of the user device based on comparing the barometric information, received from the user device, to the reference barometric information. For example, floor determination server  415  may perform a calculation, using a known formula, based on the barometric information, received from user device  405 , and the reference barometric information, which may yield the altitude of user device  405 . 
     Process  800  may also include determining (at  825 ) a floor of a building based on the location information and the altitude. For example, floor determination server  415  may receive and/or store building layout information for a building that corresponds to the location of user device  405 . The building layout information may be similar to the examples discussed above with respect to  FIGS. 6 and 7 . Based on the building layout information and the altitude of user device  405 , floor determination server  415  may determine on which floor of the building user device  405  is located. 
     Process  800  may additionally include storing and/or outputting the information regarding the floor. For example, floor determination server  415  may provide the information, indicating on which floor user device  405  is located, to callee, and/or to another device. For instance, in some implementations, floor determination server  415  may provide the information to a proxy server, which may forward the information to the callee. 
       FIG. 9  illustrates an example process  900  for identifying a floor in a multi-story structure, on which a user device is located, based on a list of networks and/or devices that are visible to the user device. Process  900  may, in some implementations, be performed by floor determination server  415 . In other implementations, some or all of process  900  may be performed by one or more other devices. 
     Process  900  may include receiving (at  905 ) an indication of a call placed by a user device. For example, floor determination server  415  may receive an indication from a device (such as a device that performs call control signaling) within a network, associated with user device  405 , that a call has been placed by user device  405 . Additionally, or alternatively, floor determination server  415  may receive an indication directly from user device  405 . In some implementations, the indication may only be provided to floor determination server  415  when the call meets certain criteria (e.g., if the call is an emergency call, such as a 911 call). 
     Process  900  may also include receiving (at  910 ) a list of networks and/or devices visible to the user device. The received list may, in some implementations, include signal strength information for some or all of the visible networks and/or devices. For example, floor determination server  415  may request visible network and/or device information from user device  405 . As another example, the indication, received at  805 , may include the visible network and/or device information. As yet another example, floor determination server  415  may have received the visible network and/or device information prior to receiving the indication at  805 . For example, in some implementations, user device  405  may periodically and/or intermittently output visible network and/or device information to floor determination server  415  and/or another device. As mentioned above, the visible network and/or device information may include identifying information (e.g., SSIDs, device names, etc.) for networks and/or devices that output discovery beacons. 
     One may appreciate that user device  405  does not need to actively connect to a particular network and/or device in order for the network and/or device to be “visible” to user device  405 . In some implementations, the received list may correspond to networks and/or devices with which user device  405  has established a connection (in addition to, or in lieu of, networks and/or devices that are visible to user device  405 , but with which user device  405  has not established a connection). 
     As mentioned above, in some implementations, user device  405  may include logic and/or hardware that communicates with floor determination server  415 , in order to provide the information regarding visible networks and/or devices (and/or other information) to floor determination server  415 . For instance, user device  405  may run an application, and/or firmware of user device  405  may be suitably configured, that responds to requests from floor determination server  415 , detects calls made by user device  405 , receives visible network and/or device information from another component user device  405 , and/or performs other functions. 
     Process  900  may further include determining (at  915 ) a floor of a building, based on the list of visible networks and/or devices. For example, as described above (e.g., with respect to  FIG. 5 ), floor determination server  415  may compare the received list of visible networks and/or devices to information that indicates floors of a building to which the networks and/or devices correspond. In some implementations, floor determination server  415  may make an intelligent determination, based on which floors are identified as being associated with the visible networks and/or devices. For example, assume that floor determination server  415  determines that user device  405  is in range of networks and/or devices on floors  9 ,  10 , and  11 . In this situation, user device  405  may determine that user device  405  is located on floor  10 . This determination may be based on the assumption or determination that when user device  405  is located on a particular floor, networks and/or devices on other floors may be visible to user device  405 . 
     In some implementations, the determining may further be based on other factors, such as signal strength information for the networks and/or devices. For example, in implementations where floor determination server  415  receives (at  910 ) signal strength information for visible networks and/or devices, floor determination server  415  may compare the signal strength to an expected signal strength that is based on a transmit power of the networks and/or devices. In some implementations, inferences may be made based on the signal strengths. For example, if a particular network and/or device is associated with a relatively high transmit power, and the particular network and/or device is visible to user device  405 , but with a relatively low signal strength, an inference may be made that user device  405  is not on the same floor as the particular network and/or device, or that there are obstructions and/or other sources of interference, which would cause the signal strength to be relatively low. Coupled with signal strength information associated with multiple networks and/or devices, an intelligent determination may be made regarding the floor on which user device  405  is located. 
     Process  900  may additionally include storing and/or outputting the information regarding the floor. For example, floor determination server  415  may provide the information, indicating on which floor user device  405  is located, to callee, and/or to another device. For instance, in some implementations, floor determination server  415  may provide the information to a proxy server, which may forward the information to the callee. 
       FIG. 10  conceptually illustrates an example situation in which a floor in a multi-story structure, on which a user device is located, may be identified based on a list of networks and/or devices that are visible to the user device. In this example, user device  405  may be located on the second floor of a building. The building may include a Wi-Fi access point on each floor. Each Wi-Fi access point may broadcast an SSID (i.e., “SSID_A,” “SSID_B,” “SSID_C,” “SSID_D,” and “SSID_E” in this example). User interface  1005  may correspond to a user interface that is displayed by user device  405 , and may indicate wireless networks that are visible to user device  405 , and may also include signal strength indicators for the visible wireless networks. In this example, the signal strength indicators may be represented as “bars.” In other implementations, signal strengths may be represented in some other fashion, including raw numeric values (e.g., numeric values that represent a signal strength measurement), normalized numeric values, and/or another type of graphical indicator. 
     As shown, the networks with SSIDs “SSID_B,” “SSID_C,” “SSID_D,” and “SSID_E” may be visible to user device  405 , and the network with SSID “SSID_A” may not be visible to user device  405  (e.g., user device  405  may be out of range of the access point that corresponds to “SSID_A”). The network with SSID “SSID_D” may have the highest signal strength with respect to user device  405 , relative to the other visible networks. As also shown, the network with SSID “SSID_E” may have a higher signal strength than the network with SSID “SSID_C,” even though these networks are one floor away from user device  405 . This discrepancy may be based on, for example, different transmit powers associated with these networks, obstructions, and/or other sources of interference. The floor, on which user device  405  is located, may be able to be determined based on the visible network information and/or the signal strength information (e.g., in a manner similar to that described above with respect to  FIG. 9 ). 
       FIG. 11  is a diagram of example components of device  1100 . One or more of the devices described above may include one or more devices  1100 . Device  1100  may include bus  1110 , processor  1120 , memory  1130 , input component  1140 , output component  1150 , and communication interface  1160 . In another implementation, device  1100  may include additional, fewer, different, or differently arranged components. 
     Bus  1110  may include one or more communication paths that permit communication among the components of device  1100 . Processor  1120  may include a processor, microprocessor, or processing logic that may interpret and execute instructions. Memory  1130  may include any type of dynamic storage device that may store information and instructions for execution by processor  1120 , and/or any type of non-volatile storage device that may store information for use by processor  1120 . 
     Input component  1140  may include a mechanism that permits an operator to input information to device  1100 , such as a keyboard, a keypad, a button, a switch, etc. Output component  1150  may include a mechanism that outputs information to the operator, such as a display, a speaker, one or more light emitting diodes (“LEDs”), etc. 
     Communication interface  1160  may include any transceiver-like mechanism that enables device  1100  to communicate with other devices and/or systems. For example, communication interface  1160  may include an Ethernet interface, an optical interface, a coaxial interface, or the like. Communication interface  1160  may include a wireless communication device, such as an infrared (“IR”) receiver, a Bluetooth® radio, or the like. The wireless communication device may be coupled to an external device, such as a remote control, a wireless keyboard, a mobile telephone, etc. In some embodiments, device  1100  may include more than one communication interface  1160 . For instance, device  1100  may include an optical interface and an Ethernet interface. 
     Device  1100  may perform certain operations relating to one or more processes described above. Device  1100  may perform these operations in response to processor  1120  executing software instructions stored in a computer-readable medium, such as memory  1130 . A computer-readable medium may be defined as a non-transitory memory device. A memory device may include space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into memory  1130  from another computer-readable medium or from another device. The software instructions stored in memory  1130  may cause processor  1120  to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software. 
     The foregoing description of implementations provides illustration and description, but is not intended to be exhaustive or to limit the possible implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations. 
     For example, while  FIGS. 8 and 9  are described separately, in some implementations, some or all of processes  800  and  900  may both be used to determine a floor of a building, on which user device  405  is located. Further, while process  800  describes one possible way in which an altitude of user device  405  may be determined, other techniques are possible. For example, user device  405  may include, or may be associated with, an altimeter that determines an altitude of user device  405 . The altitude, measured by the altimeter, may be used (e.g., at  825 ) to determine the floor on which user device  405  is located. 
     As another example, while example data structures are illustrated in  FIGS. 5-7  as including certain types of information, in practice, these data structures may store additional, fewer, different, or differently arranged types of information than shown in these figures. Furthermore, while these data structures are shown as tables, in practice, these data structures may take the form of any other type of data structure, such as an array, a linked list, a hash table, a tree, and/or any other type of data structure. Additionally, while series of blocks have been described with regard to  FIGS. 8 and 9 , the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel. 
     The actual software code or specialized control hardware used to implement an embodiment is not limiting of the embodiment. Thus, the operation and behavior of the embodiment has been described without reference to the specific software code, it being understood that software and control hardware may be designed based on the description herein. 
     Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of the possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one other claim, the disclosure of the possible implementations includes each dependent claim in combination with every other claim in the claim set. 
     Further, while certain connections or devices are shown, in practice, additional, fewer, or different, connections or devices may be used. Furthermore, while various devices and networks are shown separately, in practice, the functionality of multiple devices may be performed by a single device, or the functionality of one device may be performed by multiple devices. Further, multiple ones of the illustrated networks may be included in a single network, or a particular network may include multiple networks. Further, while some devices are shown as communicating with a network, some such devices may be incorporated, in whole or in part, as a part of the network. 
     To the extent the aforementioned embodiments collect, store or employ personal information provided by individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage and use of such information may be subject to consent of the individual to such activity, for example, through well known “opt-in” or “opt-out” processes as may be appropriate for the situation and type of information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information. 
     Some implementations are described herein in conjunction with thresholds. The term “greater than” (or similar terms), as used herein to describe a relationship of a value to a threshold, may be used interchangeably with the term “greater than or equal to” (or similar terms). Similarly, the term “less than” (or similar terms), as used herein to describe a relationship of a value to a threshold, may be used interchangeably with the term “less than or equal to” (or similar terms). As used herein, “exceeding” a threshold (or similar terms) may be used interchangeably with “being greater than a threshold,” “being greater than or equal to a threshold,” “being less than a threshold,” “being less than or equal to a threshold,” or other similar terms, depending on the context in which the threshold is used. 
     No element, act, or instruction used in the present application should be construed as critical or essential unless explicitly described as such. An instance of the use of the term “and,” as used herein, does not necessarily preclude the interpretation that the phrase “and/or” was intended in that instance. Similarly, an instance of the use of the term “or,” as used herein, does not necessarily preclude the interpretation that the phrase “and/or” was intended in that instance. Also, as used herein, the article “a” is intended to include one or more items, and may be used interchangeably with the phrase “one or more.” Where only one item is intended, the terms “one,” “single,” “only,” or similar language is used. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.