# Patent

## Title
Automating actions with a phone network based upon scanned wireless signals

## Abstract

A method for discovering the presence of hidden neighbor mobile devices in a common environment is disclosed. A given mobile unit is moved into a common environment with the given mobile device having a unique identifier associated therewith. The common environment is scanned within a scan range associated with the given mobile device. The presence of broadcasting devices scanned by the given mobile device is detected and identification information received therefrom. The received identification information is transmitted to a central location in addition to the unique identifier. The given mobile device receives from the central location information about a hidden mobile unit that is not scannable by the given mobile device, but can scan other broadcast devices in the common environment, which information provides an indication that the hidden mobile unit had previously scanned at least one of the broadcast devices scanned by the given mobile device.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part of U.S. patent application Ser. No. 13/464,442, filed May 4, 2012, entitled AUTOMATING ACTIONS WITH A PHONE NETWORK BASED UPON SCANNED WIRELESS SIGNALS which claims benefit of U.S. Provisional Application No. 61/544,370, filed Oct. 7, 2011, entitled AUTOMATING ACTIONS WITHIN A PHONE NETWORK BASED UPON SCANNED WIRELESS SIGNALS, the specifications of which are incorporated herein in their entirety.


TECHNICAL FIELD
The following disclosure relates to use of wireless handheld devices and surrounding wireless devices to take certain actions.
BACKGROUND
Systems exist for allowing the routing of a user's telephone calls or initiating of actions based upon time of day. For example, a user can be provided a set of rules such as “route calls to my office from 8 am-5 pm, route calls to my mobile phone from 5 pm-7 pm, route calls to my home phone from 7 pm-10 pm, and turn off my ringer at 10 pm.” In addition, systems exist for fixed location based actions in which the location of a mobile telephone is determined by GPS location. For “geofencing” a user could use a computer with a web browser to create a virtualized static “ring” or “box” around an area using a mouse and set up alarms for mobile telephones leaving that area. These areas could be a home, school, or other area that a parent deems safe.
SUMMARY
In one aspect thereof, a method for automating actions within a network includes receiving at least one wireless signal from at least one wireless network device; determining identifying information associated with the at least one wireless signal; determining a scanned wireless fingerprint associated based upon the identifying information; matching the scanned wireless fingerprint to a stored wireless fingerprint; and initiating an action in response to matching of the scanned wireless fingerprint to the stored wireless fingerprint.



BRIEF DESCRIPTION OF THE DRAWINGS
For a more complete understanding, reference is now made to the following description taken in conjunction with the accompanying drawings in which:
FIG. 1 illustrates an embodiment of a system for automating actions based upon scanned wireless signals in the proximity of a mobile unit;
FIG. 2 illustrates an embodiment of a mobile unit and a wireless network device;
FIG. 3 illustrates an exemplary environment in which the mobile unit operates within different locations in which each location has a different wireless fingerprint associated therewith;
FIG. 4 illustrates an example of an actual measured signal strength of wireless network signals by the mobile unit and two stored wireless fingerprints;
FIG. 5 illustrates an embodiment of a database within the server for storing wireless fingerprints;
FIG. 6 illustrates an embodiment for executing a scanning procedure of the mobile unit;
FIG. 7 illustrates an embodiment of a procedure in which the scanning procedure of the mobile unit automatically collects fingerprint data of the environment in which the mobile unit is located;
FIG. 8 illustrates an embodiment of a procedure for scanning wireless network devices and associating an action with a wireless fingerprint;
FIG. 9 illustrates an embodiment of a system for use in a residential environment for controlling a set-top box by a mobile unit based upon a detected wireless fingerprint;
FIG. 10 illustrates an embodiment of a procedure for registering the mobile unit with a set-top box of the residential environment illustrated in FIG. 9;
FIG. 11 illustrates an embodiment of a procedure for controlling a registered set-top box using a mobile unit based upon a detected wireless fingerprint;
FIG. 12 illustrates a diagrammatic view of one application of the disclosed system;
FIG. 13 illustrates a diagrammatic view of the application of FIG. 12;
FIG. 14 illustrates a flow chart for the operation of the application in FIG. 12;
FIG. 15 illustrates a flow chart for scanning the devices by a mobile unit;
FIG. 16 illustrates a diagrammatic view of a system for discovering devices in an environment;
FIG. 17 illustrates a more detailed diagrammatic view associated with that of FIG. 16 illustrated in the operation of the central server;
FIG. 18 illustrates an exemplary table representing a status of various discovery neighbors with respect to a given POR;
FIG. 19 illustrates a flow chart depicting the operation of discovering neighbors;
FIG. 20 illustrates a table for PORs located within the environment of FIG. 17;
FIG. 21 illustrates a flow chart for the operation at the central office;
FIG. 22 illustrates a diagrammatic view of two different paths being traversed by an individual within the area of two scanners;
FIG. 23 illustrates various zones about a single scanner;
FIG. 24 illustrates a flowchart depicting the operation of loading an application on a phone;
FIG. 25 illustrates a flowchart for an operation of scanning with the proprietary scanner;
FIG. 26 illustrates a flowchart for the identification operation;
FIG. 27 illustrates a flowchart for the discrimination between zones;
FIG. 28 illustrates a flowchart depicting one application for pushing information to a user and completing a transaction.



DETAILED DESCRIPTION
Referring now to the drawings, wherein like reference numbers are used herein to designate like elements throughout, the various views and embodiments of automatic actions within a phone network based upon scanned wireless signals are illustrated and described, and other possible embodiments are described. The figures are not necessarily drawn to scale, and in some instances the drawings have been exaggerated and/or simplified in places for illustrative purposes only. One of ordinary skill in the art will appreciate the many possible applications and variations based on the following examples of possible embodiments.
FIG. 1 illustrates an embodiment of a system 100 for automating actions based upon the presence of scanned wireless signals in the proximity of a mobile unit. In various embodiments, the system 100 provides a platform for automating actions within a mobile unit such as a mobile phone, a tablet PC or within a network based upon the presence or lack thereof of detected wireless signals by the mobile unit. The system 100 includes a mobile unit 102 having the capability to receive one or more types of wireless signals transmitted by wireless network devices or other wireless sources. In various embodiments, the mobile unit 102 may include a cell phone, a smart phone, a PDA, a tablet device, or any other type of network communication device. In the particular embodiment illustrated in FIG. 1, the mobile unit 102 includes a cellular transceiver 104, a Bluetooth transceiver 106, a Wi-Fi transceiver 108, and a near field communication (NFC) or radio-frequency identification (RFID) transceiver 110. The cellular transceiver 104 includes the capability to receive cellular signals transmitted by a provider network 111. In particular embodiments, the cellular signals may include one or more of CDMA, GSM, LTE, or any other cellular transmission technology. The Bluetooth transceiver 106 includes the capability to receive signals transmitted using Bluetooth technology such as that specified by the IEEE standard 802.15.1 in the 2.4 GHz frequency spectrum. The Wi-Fi transceiver 108 is configured to receive signals transmitted by wireless network devices using Wi-Fi technology such as that specified in various IEEE 802.11 standards. The near field communication (NFC) transceiver 110 is configured to receive signals transmitted by wireless network devices using near field communication technologies such as those specified by ISO Standard 13157 using the 13.56 MHz frequency spectrum or RFID signals using technologies such as those specified by ISO/IEC 14443, ISO 14223, ISO/IEC 15693, ISO/IEC 18000, ISO/IEC 18092, ISO 18185, or ISO/IEC 21481 standards. Near field communication (NFC) allows for simplified transactions, data exchange and wireless connections between two devices in close proximity to one another, usually by no more than a few centimeters. Also, 802.15.xx can be included such as the 802.15.4 low power standard supporting such applications as Zigbee. In another embodiment, RFID technologies may have the same capabilities and characteristics as that of NFC technologies.
The system 100 includes a server 112 in communication with the provider network 111. The server 112 includes a database for storing various wireless fingerprints as will be further described herein. The system 100 further includes a plurality of Bluetooth wireless network devices 114, a plurality of Wi-Fi wireless network devices 116, and a plurality of NFC or RFID wireless network devices 118. The system 100 may further include a plurality of cellular towers. The Bluetooth wireless network devices 114 include a first Bluetooth wireless network device WND1 and a second Bluetooth wireless network device WND2. The Bluetooth wireless network devices may include any wireless network device capable of transmitting a Bluetooth signal including a laptop computer, a cell phone, a smart phone, a television or set-top box equipment, a Bluetooth equipped automobile or a Bluetooth headset. Bluetooth signals transmitted by each of the Bluetooth wireless network devices 114 are received by the Bluetooth transceiver 106 of the mobile unit 102. The Wi-Fi wireless network devices 116 include a first Wi-Fi wireless network device WND3 and a second Wi-Fi wireless network device WND4. The Wi-Fi wireless network devices 116 transmit Wi-Fi signals which are received by the Wi-Fi transceiver 108 of the mobile unit 102. The Wi-Fi wireless network devices 116 may include a mobile device having Wi-Fi capability, a router, a wireless access point, or any other source of Wi-Fi signals. The NFC wireless network devices 118 include a first NFC wireless network device WND5, a second NFC wireless network device WND6, and a third NFC wireless network device WND7. The NFC wireless network devices 118 are configured to transmit NFC or RFID wireless signals.
In an exemplary operation of the system 100, the mobile unit 102 contains a software application or operating system which, when executed, has the capability to cause the mobile unit 102 to scan for the presence of wireless signals received by one or more of the cellular transceiver 104, the Bluetooth transceiver 106, the Wi-Fi transceiver 108, and a near field communication (NFC) or RFID transceiver 110. In a particular embodiment, the software application may be previously downloaded by a user to the mobile unit 102 from an application store, application marketplace, or a website. Upon detecting the one or more wireless signals, the mobile unit 102 obtains identifying information from each of the wireless signals. In particular embodiments, the mobile unit 102 obtains a media access control (MAC) address or other identifier from the detected wireless signal. The MAC address uniquely identifies the wireless network device that transmits a particular wireless signal. For example, the MAC address may be associated with a Wi-Fi device, a Bluetooth device, an NFC or RFID device. Additionally a unique identifier can be received from a cellular tower. In still other embodiments, the mobile unit 102 may further determine signal strength of each of the received signals, the time of reception of the signal by the mobile unit 102, and the location of the mobile unit 102 when the signal was received, such as by using GPS signals or cellular or WiFi triangulation. An advantage offered by the system 100 is that the mobile unit 102 does not have to actually establish a connection with a particular wireless network device in order to obtain the identifying information; it merely has to detect and receive a signal transmitted by such a wireless network device containing information unique to that device such as a MAC address and also non unique information such as a friendly ID. In other embodiments, both a MAC address and user ID (UID) may be used to identify a wireless signal. For example, some devices such as iPhones® do not allow applications access to the MAC address of a device from another iPhone®, but they do reveal a portion of their device ID with is a hash of the serial number and the software ID. This may be unique on a software-by-software basis, so that one phone may have one ID for one application, and another unique ID for another application but such is unique to that phone or mobile unit.
Upon scanning the wireless signals transmitted from one or more wireless network devices by the mobile unit 102, the mobile unit 102 collects identifying information from each of the wireless signals and transmits the identifying information such as the MAC address, signal strength, time, and any other parameters to server 112 via the provider network 111. The server 112 then performs one or more heuristic algorithms on the collected information to determine a “wireless fingerprint” associated with the current proximity of information from the mobile unit 102. The wireless fingerprint is determined based upon the identifying information associated with one or more of the wireless signals obtained during the scanning operation of the mobile unit 102 at that specific relative device location and time. If the particular wireless fingerprint has not previously been registered with the server 112, the user of the mobile unit 102 may be prompted to designate the wireless fingerprint as associated with the present location of the mobile units 102. If the server 112 recognizes the wireless fingerprint as previously being registered, the server 112, in one embodiment sends an indication to either the mobile unit 102 or another network device to perform an action associated with that particular wireless fingerprint. In one embodiment, the designated action may be an action that is to be performed by the mobile unit 102. In still other embodiments, the designated action may be an action performed by a network device, such as a switch, of the provider network 111. For example, an action which may be associated with the mobile unit 102 includes vibration of the mobile unit 102, showing the location of an item on a map, displaying a video on the mobile unit 102, or displaying an advertisement on the mobile unit 102 upon detection of a particular wireless fingerprint. Another embodiment may be an action whereby a location indicator is placed on a map, referred to as “dropping a pin on the map.”
In another example, recognition of a particular wireless fingerprint may cause the provider network 111 to change call routing or initiate a call via a switch. For example, a user may designate a scan of the environment of an office for wireless signals and designate that location as the user's office using the mobile unit 102. The server 112 determines a wireless fingerprint associated with the office location from the identifying information of the wireless signals and the user may designate that, upon detection of the wireless fingerprint associated with the office location, calls addressed to the mobile unit 102 should be routed to a telephone within the office instead. In still another example, the recognition of a particular wireless fingerprint may cause a network device such as a television, router, or set-top box to perform a specific action upon detection of the mobile unit 102 being in the presence of the associated wireless fingerprint. In a particular example, music may be streamed from the mobile unit 102 to the network device upon detection of a particular wireless fingerprint.
Although various embodiments may describe a wireless fingerprint as being associated with a “location” it should be understood that a wireless fingerprint may not necessarily be associated with a static location. For example, a user may associate a wireless Bluetooth signal associated with a friend's mobile telephone to an action of vibrating the mobile unit 102. Upon the detection of the wireless fingerprint associated with the friend's mobile telephone by the mobile unit 102, such as when the friend arrives at the same party as the user, the mobile unit 102 may automatically vibrate to indicate to the user that the friend has arrived. Further, the wireless fingerprint may comprise multiple wireless inputs that are mobile.
Although it is described in various embodiments that the server 112 performs various actions such as recognizing a wireless fingerprint and determining a fingerprint from detected signals, it should be understood that in other embodiments, recognition of a fingerprint and/or determining of a fingerprint may be performed by other devices such as by the mobile unit 102. Furthermore, additional network devices such as cellular networks or networking equipment on an internal wireless infrastructure (WLAN) could contain the recognition software as well. In other embodiments, a Wi-Fi router contains the detection software and performs the rules-based database lookup. In still other embodiments, a cellular tower contains the detection software and performs the rules-based database lookup.
FIG. 2 illustrates an embodiment of a mobile unit 102 and a wireless network device 218. The mobile unit 102 includes a radio transceiver 202 configured to receive one or more wireless signals within the environment of the mobile unit 102. Although in the particular embodiment illustrated in FIG. 2, the wireless mobile unit 102 includes a single radio transceiver 202, it should be understood that the mobile unit 102 may include a number of different radio receivers each configured to receive a different type of wireless signal such as cellular, Wi-Fi, Bluetooth, and NFC, as previously described. The mobile unit 102 further includes a MAC address scanner module 104 coupled to the radio transceiver 202 and configured to determine a MAC address associated with a particular wireless signal received by the radio transceiver 202. The mobile unit 102 further includes a signal strength module 206 coupled to the radio transceiver 202 and configured to determine a signal strength associated with the received wireless signal. The MAC address scanner module 204 and the signal strength module 206 are further coupled to a processor 208 to provide the MAC address and signal strength to the processor 208. The mobile unit 102 includes a GPS module 210 configured to receive a GPS signal and provide the GPS signal to the processor 208 in order to determine a location associated with the mobile unit 102. In still other embodiments, the mobile unit 102 may determine its location via cellular triangulation or any other method for location determination such as assisted GPS. The mobile unit 102 further includes a clock module 212 coupled to the processor 208 and configured to provide a time associated with the reception of a signal to the processor 208. The mobile unit 102 includes a user interface 214 coupled to the processor 208 to allow a user to provide user inputs to the processor 208 as well as allow the processor 208 to provide outputs to the user. For example, in a particular embodiment, the user interface may include a touch screen or keypad to provide input to the mobile unit 102, and a display screen to provide output to the user. The mobile unit 102 further includes a memory 216 coupled to the processor configured to store the scanning application, identifying information associated with received wireless signals such as MAC addresses and signal strengths, locations and times, as well as store other data required by the mobile unit 102 during operation.
The wireless network device 218 has a MAC address 220 uniquely associated with the wireless network device 218 and a message envelope 222. The wireless network device 218 transmits a wireless signal within a message envelope 222 which includes the MAC address 220. This is basically a “broadcast” as all listening devices can receive this information without the requirement for bi-directional communication. The radio transceiver 202 of the mobile unit 102 receives the wireless signal transmitted from the wireless network device 218, extracts the MAC address associated with the wireless signal and determines a signal strength associated with the wireless signal. The mobile unit 102 may further determine a GPS location and time of receipt associated with the received wireless signal from the GPS module 210 and clock module 212, respectively. The mobile unit 102 then transmits the identifying information associated with the wireless signals received from the wireless network device 218 to the server 112 via the radio transceiver 202.
FIG. 3 illustrates an exemplary environment 300 in which the mobile unit 102 operates within different locations in which each location has a different wireless fingerprint associated therewith. In the embodiment illustrated in FIG. 3, the mobile unit 102 is illustrated as being in three different physical locations as will be further described. The environment 300 includes a number of wireless network devices (WNDs) A-M. In a first location of the mobile unit 102, the mobile unit 102 possesses a reception range 302 in which the mobile unit 102 is able to receive wireless signals from wireless network devices A, B, C, D, E. The pattern can be any space and the circular shape is by way of example only. It should be understood that the reception pattern has a reception boundary defined by the weakest signal that can be received, this a function of the sensitivity of the receiver, the antenna gain, atmosphere and environmental conditions, etc. From the wireless signals transmitted by each of wireless network devices (WNDs) A-E, a first wireless fingerprint FP1 is obtained consisting of identifying information from respective wireless signals transmitted by wireless network devices A, B, C, D and E. Although for simplicity the embodiment illustrated in FIG. 3 is shown as using identifiers associated with each of the wireless network devices as a fingerprint, it should be understood that the actual fingerprint may include a MAC address, signal strength, time, and location of each of the wireless signals as well as other identifying information. In a second location, the mobile unit 102 has a reception area 304 which encompasses the wireless signals emitted by a wireless network device E, F, G, and H. The resulting second fingerprint FP2 includes the wireless signals transmitted from wireless network devices E, F, G, and H. In a third location, the mobile unit 102 has a reception area 304 which encompasses the wireless signal from only a single wireless network device I. The resulting third wireless fingerprint FP3 includes the wireless signal transmitted by wireless network device I. In the embodiment illustrated in FIG. 3, wireless network devices J, K, L and M sources represent wireless signals which are not received by the mobile unit 102 while the mobile unit 102 is at any of the illustrated three locations of the environment 300.
FIG. 4 illustrates an example of an actual measured signal strength of wireless network signals by the mobile unit 102 and two stored wireless fingerprints. In FIG. 4, an actual measured signal strength of wireless signals received by a mobile unit 102 at a particular location is shown in 402. A stored wireless fingerprint “Stored A” is illustrated by 404, and a stored wireless fingerprint “Stored B” is illustrated by 406. The wireless fingerprint Stored A (404) and wireless fingerprint Stored B (406) are stored within the database of the server 112. The baseline represents the plethora of possible devices that may exist in a global database.
The actual measured signals 402 are compared against the stored fingerprints Stored A and Stored B by the server 112 to determine whether the actual measured signals are an acceptable match to a stored wireless fingerprint. In various embodiments, the server may use heuristics to determine whether the actual measured signals 402 match a stored fingerprint Stored A (404) or stored B (406). As can be seen in FIG. 4, none of the stored fingerprints (404, 406) are an exact match of the actual measured wireless signals 402. Signal strengths of the actual signals 402 differ from those of the stored fingerprints 404 and 406, i.e., different devices, signal strengths, etc. In addition, the stored fingerprints 404 and 406 contain signals that are not present in the actual measured signals 402. In a particular embodiment, the server 112 may determine that fingerprint Stored A 404 is the closest match to the actual measured signals 402 and that it matches fingerprint Stored A 404 to an acceptable level. As a result, the server 112 will send an indication, for example to the mobile unit 102, to perform an action associated with fingerprint Stored A (404).
The aspect of what constitutes a match is not necessarily an “exact” match. The comparison operation is one that compares the captured fingerprint with the data store and determines the best match. It may be that there is only a 70% match and a threshold is set that declares this as the best match. Suppose that only three know devices were sensed as being present. An algorithm can be set that determines a best match to be having at least three devices present that match to any stored fingerprint and at least one of those having associated attributes in the captured fingerprint that is within 90% of the stored fingerprint—one of those attributes possibly being signal strength. In a Heuristic type algorithm, there is a voting algorithm that can be employed wherein, if there are five fingerprints that have at least 60% of the devices percent—for example—then a vote is taken as to which is the closest as to stored attributes. As such, it is not necessary to determine an exact match but, rather, the best match based on a set of predetermined criteria.
Referring further to FIG. 4, the actual measurement 402 is illustrated as having multiple devices that are present within the scanning range of the mobile unit. There is provided a device 410, a device 412, a device 414, a device 416 and a device 418, all of these represented by their relative signal strengths. It can be seen that the device 412 has a signal strength that is higher than all the others. The device 418 has the second strongest signal strength of all, followed by the device 414, followed by the device 410 and followed by the device 416. It should be understood that the signal strength is a function of orientation of a mobile unit and various environmental conditions. For example, if a mobile device were disposed in a static position within an environment, the environment may actually change. For example, people could be moving around in the environment and this would change the RF characteristics of the room. This might attenuate one or more of the signals of the devices 410-418. However, each of the devices would have some unique ID such as a MAC address in addition to the associated signal strength at a particular given time.
With respect to the archived fingerprint 404, the initial Stored A fingerprint 404, it can be seem that there is a device 410′, a device 412′, a device 414′, a device 416′ and a device 418′ that are associated with that fingerprint. These devices 410′-418′ correspond to the devices 410-418 in the actual fingerprint 402. Thus, the Stored A fingerprint 404 illustrates all of the same devices as well as an additional device 420. Thus, at some point in time, another mobile unit or the same mobile unit had measured the presence of these five devices 410′-418′ as well as an additional device 420. It may have been in the same room or a different position in the room, as the signal strengths are slightly different.
With respect to the Stored B fingerprint 406, it can be seen that there are devices 410′′, 412′′, 414′′, 420′, 416′′ and 418′′. Thus, the devices 410′′-418′′ correspond to the devices 410-418 of fingerprint 402 in the actual measured fingerprint. The additional device 420′ over that in the actual fingerprint corresponds to the device 420 in the Stored A fingerprint 404. Thus, whenever the Stored B fingerprint 406 was taken by either the same mobile device or a different mobile device and stored, the same devices were present in the Stored B fingerprint 406 as were present in the current measured fingerprint 402 with the addition of device 420′ corresponding to device 420 in the Stored A fingerprint 404. Of course, there were different signal strengths. Additionally, there is a further device 422 that exists in the Stored B fingerprint 406 but was not present in either the actual current measured fingerprint 402 or the Stored A fingerprint 404.
Each of the devices 410-418 and 420 and 422 can be realized with any type of RF device that radiates power and an ID that can be picked up by the radio receiver in the mobile device. Some of these devices are Bluetooth devices or other types of 802.xx.xxx devices. Bluetooth devices, for example, have a sleep mode such that they are not always transmitting. It could be that the device 422 was actually asleep when the Stored A fingerprint 404 was taken or when the actual fingerprint 402 was taken. Thus, the device 422 may still be within the environment of the mobile device at the time of the fingerprint 402 but the device 420 was actually in sleep mode at that time. Of course, if enough samples were taken over a longer period of time, the devices may “pop up” and be included in the fingerprint.
The comparison of the actual fingerprint with the two stored fingerprints is, as described hereinabove, done with some type of algorithm utilizing, for example, heuristics. This particular heuristics algorithm, although it is not the only algorithm that could be utilized, is one that basically “votes” which fingerprint is the closest due to the nature of the observed wireless technology. There may be, for example, a dominant device such as a device 412 that must be there for the fingerprints to have a valid comparison. For example, it might be that a particular MAC address is required to be present as is associated with a WiFi device, which would have a larger radio “footprint” than Bluetooth or NFC, which are typically shorter range. This could be indicated by the friendly name that is associated with that particular name 412. If that device were there, that would be first aspect that would be required in order to have a match (there can also be some weighting as to certain MAC addresses as to their fixed or mobile nature). Thereafter, there may be other devices that would be required, as these devices are considerably more semi-permanent devices. Though the number of devices that match with the devices in the actual fingerprint 402 would be one factor, the signal strength of the devices would be another factor and the lack of additional devices would be an even further factor. Thus, the Stored A fingerprint 404 may better match the actual fingerprint 402.
FIG. 5 illustrates an embodiment of a database 500 within the server 112 for storing wireless fingerprints. The database 500 contains fields associated with each of the wireless signals detected by the mobile unit 102 which are used in determining a particular wireless fingerprint. The database 500 includes a MAC address field 502, a time field 504, a GPS location field 506, a signal strength field 508, a mobile unit ID field 510 and a fingerprint group 512. The MAC address field 502 includes a MAC address associated with a particular wireless signal, the time field includes the time of reception of a particular wireless signal, the GPS location field 506 includes a GPS location of the mobile unit 102 at the time of the reception of a particular wireless signal, and a signal strength field 508 includes a measured signal strength of a particular wireless signal. The mobile unit ID field 510 includes a mobile unit ID associated with the mobile unit 102, and the fingerprint group field 512 contains an indication of a particular fingerprint to which the detected wireless signal belongs.
FIG. 6 illustrates an embodiment of a procedure 600 for a executing a scanning procedure of the mobile unit 102. In various embodiments, the scanning procedure is performed by a software application executed by the mobile unit 102. In step 602, the mobile unit 102 scans the frequency spectrums receivable by the mobile unit 102 for the presence of wireless network device signals and determines the MAC address, signal strength, and time of reception of any wireless signal received from a wireless network device. In step 604 it is determined whether all of the receivable wireless signals have been accumulated. If not all of the receivable wireless signals have been accumulated, the procedure returns to step 602 in which scanning is continued. If all the receivable wireless network signals have been accumulated, the procedure continues to step 606 in which the MAC address, signal strength and time of reception of each of the detected wireless network signals are sent to the server 112. In some embodiments, the location of the mobile unit 102 during the reception of each of the wireless network signals may also be sent to the server 112. In step 608 it is determined whether a wireless fingerprint represented by the received wireless network signals is recognized by the server 112. The server 112 determines whether the received wireless network signals match a fingerprint in the database of the server 112 using heuristic or any other algorithm. If the wireless fingerprint is not recognized, the procedure continues to step 610 in which a procedure to create a fingerprint associated with the currently received wireless signals is initiated. This procedure will be further described herein with respect to FIG. 8. If the fingerprint is recognized in step 608, a fingerprint identifier is returned in step 612. In step 614, it is determined whether an action is required due to the detection of the wireless fingerprint. If no action is required, the procedure returns to the start. If it is determined in step 612 that an action is required, the required action is taken in step 614 and the procedure returns to the start.
FIG. 7 illustrates an embodiment of a procedure 700 in which the scanning procedure of the mobile unit 102 automatically collects fingerprint data of the environment in which the mobile unit 102 is located. In step 702, the mobile unit 102 scans for the presence of wireless signals associated with wireless network devices. In step 704 it is determined whether all receivable wireless signals have been accumulated and, if not, the procedure returns to step 702 in which scanning continues. If all the wireless signals have been accumulated, the procedure continues to step 706 in which the MAC address, signal strength, and times associated with the wireless signals are sent to the server 112. In step 708, the server 112 determines whether the wireless network devices are recognized as being previously detected within the database of the server 112. If the wireless network devices are not recognized, the procedure continues to step 710 in which the database within server 112 is updated to include the identifying information associated with the newly scanned wireless signals. The procedure 700 then returns to start. If all the wireless network devices are recognized in step 708, the procedure continues to step 712 in which a list of the wireless network devices is returned to the mobile unit 102. In step 714 any action associated with a fingerprint represented by the detected wireless network devices is taken, and the procedure 700 then returns to the start.
FIG. 8 illustrates an embodiment of a procedure 800 for scanning wireless network devices and associating an action with a wireless fingerprint. In step 802, the mobile unit 102 scans for wireless network devices. In step 804, the mobile unit 102 determines whether all of the available wireless network devices having wireless signals scannable by the mobile unit 102 have been accumulated. If it is determined in step 804 that the scanned wireless network devices have not been accumulated, the procedure returns to step 802 in which the scanning of wireless network devices is continued. If it is determined in step 804 that the scanned wireless network devices have been accumulated, the procedure 800 continues to step 806. In step 806, the mobile unit 102 sends the measured parameters of each of the scanned wireless network device signals to the server 112. The measured parameters may include one or more of the MAC address, signal strength, time of reception, and location of the mobile unit 102 of each of the scanned wireless signals from each of the wireless network devices. In step 808, the server 112 determines whether the wireless fingerprint associated with the scanned wireless network devices is recognized by the server 112. If the fingerprint is recognized, the procedure continues to step 810 in which the fingerprint is returned from the database of the server 112. In step 812, it is determined whether an action associated with the fingerprint is required to be performed. In one embodiment, the determination of whether an action is to be performed in association with the recognition of a wireless fingerprint is done by the mobile unit 102. In still other embodiments, the recognition of whether an action is required to be performed by the detection of an associated fingerprint is performed by the server 112 or by a node associated with the provider network 111. If no action is required, the procedure returns to the start. If an action is required the action is taken in step 814. In various embodiments, the action may be performed by one or more of the mobile unit 102, the server 112, or a network node associate with a provider network 111.
If it is determined in step 808 that the fingerprint is not recognized, the procedure continues to step 816 in which a procedure allowing a user to create a fingerprint to be associated with the currently received wireless signals is initiated. In step 816, a list of detected wireless network devices is displayed to the user of the mobile unit 102. In step 818, the user is prompted to select one or more of the wireless network devices as a group. In step 820 the user selects the wireless network devices in the group which are to be included in the created wireless fingerprint. In other embodiments, step 820 may be omitted and the designation of which signals are to be included in the created fingerprint is performed automatically by the server 112 or the mobile unit 102. In step 822, the user is prompted to designate a location name to be associated with the selecting group of wireless network devices that are to form the fingerprint. In step 824, the user designates the location name. For example, the user name may designate a location name to be associated with a particular group of selected wireless network devices as a home, office, or the name of a particular restaurant. In step 826, the user is prompted to designate an associated action with the selected group. In a particular embodiment, the user may be presented with a list of available actions from which to choose from. In step 828, the user designates the associated action. Examples of associated actions may include notification by the mobile unit 102 that a wireless fingerprint associated with the selected group has been detected, routing incoming calls to a telephonic device at the designated location upon detection of the wireless fingerprint, or initiating an action within a network device such as streaming media to a set-top box connected to a television upon the mobile unit 102 detecting the wireless fingerprint associated with the location of the set-top box. In still other examples, the designated action to be associated with a particular wireless fingerprint may include the launching of an application on the mobile unit 102 or to stream audio or video to the mobile unit 102 upon detection of the wireless fingerprint. In step 830, the database of the server 112 is updated to include the measured parameters associated with the wireless fingerprint, the location name, and the associated action as well as an identifier associated with the mobile unit 102 or the user of the mobile unit 102. The procedure 800 then returns.
FIG. 9 illustrates an embodiment of a system for use in a residential environment for controlling a set-top box by a mobile unit based upon a detected wireless fingerprint. In the embodiment illustrated in FIG. 9, a residential structure 900, such as a home, includes a first location 902A, a second location 902B and a third location 902C. In a particular embodiment, the first location 902A, second location 902B, and third location 902C are separate rooms of a home. The first location 902A has a gateway set-top box 904A connected to a video display device 906A thereat. In a particular embodiment, the first video display device 906A is a television. The second location has a second set-top box 904B connected to a second video display device 906B, and the third location 902C has a third set-top box 904C connected to a third video display device 906C. The gateway set-top box 904A, the second set-top box 904B, and the third set-top box 904C are each connected to a television provider 908 via a network such as a cable, DSL network, or wireless network. The television provider 908 further includes a server 112 incorporated therewith. The server 112 includes a database for storing wireless fingerprints as previously described herein. The residential environment includes a plurality of wireless network devices 910A-910E located within and/or external to the residential structure 900. Each of the plurality of wireless network devices 910A-910E are configured to transmit wireless signals including a MAC address. In various embodiments, the wireless network devices 910A-910E may include any combination of wireless signal emitters such as Wi-Fi, Bluetooth, NFC and cellular tower signals. A user 912 having a mobile unit 102 in possession may be located in the first location 902A, second location 902B or third location 902C of the residential structure 900 at different times. The mobile unit 102 is configured to communicate with a mobile provider network 914, and the mobile provider network 914 is in communication with the television provider 908. As previously described herein, the mobile unit 102 is configured to scan for the presence of wireless signals from one or more of the wireless network devices 910A-910E and perform an action if a previously registered wireless fingerprint is recognized. In a particular embodiment, the gateway to the set top box 904A may include Wi-Fi or Bluetooth capability whereas the second set-top box 904B and the third set-top box 904C may not include wireless capability.
In a particular example, the user 912 stands proximate to the gateway set-top box 904A in the first location 902A and runs an application on the mobile unit 102 which scans for the presence of wireless signals from the various wireless network devices 902A-902E which are currently receivable. The user 912 may then select an identification of the appropriate set-top box, that is the gateway set-top box 904A that it is currently proximate to, and this data is sent to the television provider 908 via the mobile provider network 914. A server 112 determines a wireless fingerprint and correlates the location of the user 912 with the wireless fingerprint using heuristics or some similar algorithm. Similarly, the user 912 may stand proximate to each of the second set-top box 904B and the third set-top box 904C and register the mobile unit 102 with each of them respectively by measuring or determining a wireless fingerprint at each of the second location 902B and the third location 902C. Since the receivable signals and signal strengths of the receivable signals will differ at each of the first location 902A, the second location 902B and the third location 902C, each of the first location 902A, second location 902B, and third location 902C will have a different wireless fingerprint associated therewith. Once a mobile unit 102 is registered with a particular set-top box, the mobile unit 102 may be used to control the particular set-top box upon detection of the wireless fingerprint associated with the location of that particular set-top box. Thus, the user 912 is able to move throughout the residential structure 900 and control particular set-top boxes using the mobile unit 102 without requiring the user 912 to designate the particular set-top box that is desired to be controlled.
In a particular example, the mobile unit 102 is configured to host photos using videos or other data. A user then enters the residential structure 900 and the mobile unit 102 executes a software application. The application scans for the wireless fingerprint of the current location within the residential structure 900, determines which set-top boxes are available to present photos, music or other data, and the mobile unit 102 is authenticated with each of these set-top boxes. In a particular embodiment, the user may see an indication on the video display device that the mobile unit 102 has been authenticated with the set-top box. Data on the phone, such as music and videos may be then sent over the mobile provider network 914 to the television provider 908, then sent to and received by a set-top box within the residential structure 900 over the television provider network. In particular embodiments, the audio, video or other presentation may follow the user 912 as it moves to different locations throughout the residential structure 900 so that it is routed to the appropriate set-top box associated with the location in which the user 912 is currently positioned. An advantage of such a system is that media may be presented from a mobile unit 102 on video display devices without requiring the mobile unit 102 to be authenticated on a Wi-Fi or other home network associated with the residential structure 900.
FIG. 10 illustrates an embodiment of a procedure 1000 for registering the mobile unit 102 with a set-top box of the residential environment illustrated in FIG. 9. In step 1002, the mobile unit 102 is placed proximate to the desired set-top box of which the mobile unit 102 is to be registered. In step 1004, a registration procedure is initiated with a set-top box by the mobile unit 102. In step 1006, the mobile unit 102 prompts the user to identify the set to box to which registration is currently desired. In step 1008, the mobile unit 102 scans for wireless signals from wireless network devices that are receivable by the mobile unit 102. In step 1010, the mobile unit 102 determines whether all wireless network devices that are currently receivable have been accumulated. If not, the procedure 1000 returns to step 1008 in which scanning of wireless network devices is continued. If all wireless network devices have been accumulated, the procedure continues to step 1012 in which the measured parameters associated with the wireless signals received from the wireless network devices is sent to the server 112. Examples of measured parameters include MAC addresses, signal strengths, time of reception, derived or implied location of the mobile unit 102, as well as an identification of the mobile unit 102 or a user associated with the mobile unit 102. In step 1014 the server 112 associates the wireless fingerprint generated from the information obtained from the scanned signals from the wireless network devices with the identified set-top box. In step 1016 the database associated with server 112 is updated to include the identifying information associated with the wireless fingerprint.
FIG. 11 illustrates an embodiment of a procedure 1100 for controlling a registered set-top box using a mobile unit 102 based upon a detected wireless fingerprint. In step 1102, the mobile unit 102 initiates a set-top box application control mode of a software application. In one embodiment, the initiation of the set-top box control mode may be performed by a user of the mobile unit 102. In still other embodiments, the initiation of the set-top box application control mode may be formed automatically upon detection of a wireless fingerprint. In step 1104, the mobile unit 102 is placed proximate to the set-top box. In step 1106, the mobile unit 102 scans for wireless signals transmitted by one or more wireless network devices 910a-910e. In step 1108 it is determined whether all of the available wireless signals that are receivable by the mobile unit 102 have been accumulated. If not, the procedure returns to step 1106 in which scanning continues. If the wireless signal has been accumulated, the procedure 1100 continues to step 1110 in which measured parameters associated with each of the received wireless network signals are sent to the server 112. In step 1112, the server 112 determines whether the measured parameters are recognized as matching a wireless fingerprint associated with a registered set-top box. If not, the procedure returns to step 1106 in which scanning continues. If the measured parameters are recognized as matching a wireless fingerprint, the procedure continues to step 1114. In step 1114, the server 112 sends an acknowledgement to the mobile unit 102. In step 1116, the mobile unit 102 receives a control input from a user which includes a command for the set-top box associated with the matched wireless fingerprint to perform a function such as changing a volume, changing a channel, or initiating playback of multimedia. In step 1118, an action is initiated in response to the control input. The procedure then returns to the start.
Referring now to FIG. 12, there is illustrated one application of the presently disclosed system. In one application, there is provided a mobile unit disposed in a car 1202. Car 1202 is mobile on a road 1204 and then moves into a parking space 1206. The parking space 1206 is a location that has associated therewith a fingerprint stored in the system. Of course, if the fingerprint were not previously stored, it could be stored the first time a mobile unit moved within that location. As described hereinabove, the fingerprint is defined by the external wireless devices that are associated with a particular location. In this specific location, there are four external devices, B, C, D and E. Inside the automobile 1202 is provided a wireless device A. This is typically a Bluetooth transceiver that is operable to interface with a mobile unit for voice communication. However, it could be that the mobile unit is not interfaced with the particular Bluetooth in the automobile 1202 but, rather, the mobile unit in the car is merely configured to scan and recognize the presence of the Bluetooth transceiver that was in the automobile 1202.
Thus, when the automobile 1202 is traversing the road 1204, there will be multiple external devices that it may be aware of at any point along the route. However, the mobile device within the car 1202 will always be able to receive the transmission from the Bluetooth within the automobile 1202. It should be understood that Bluetooth devices operate under the 802.11.3 standard, which allows these devices to go to sleep periodically. When the devices are asleep, there will be no received transmission, such that the scanning operation of the mobile unit is not able to receive such at certain times. Periodically, though, the transmission from the Bluetooth device A within the automobile 1202 will be present and is capable of being scanned by the mobile unit.
When the automobile 1202 is present at the location 1206, it will be aware of the presence of the plurality of wireless devices. These will be the wireless devices B, C, D and E in addition to the wireless device A disposed within the automobile 1202. This information can be transmitted to a server (or internally analyzed by the mobile unit) and a fingerprint will be recognized. This fingerprint that is recognized will primarily consist of the four external devices (B-E) and the external device that is in the car (external is defined as external to the mobile device), wherein the primary defining portion of the fingerprint is defined by a box 1208 about the scanned devices, noting that one particular application is external devices separate and apart from the external device in the car. The server will recognize the presence of these four devices and the first indication will be that this comprises the location 1206. It will also recognize that the device A is also present. The algorithm at the server may be such that it recognizes that the device A was previously sensed in prior scans and, as such, it will recognize that this device A is to be filtered when determining what association this fingerprint has to a particular location. Also, the server may recognize that this particular fingerprint is associated with a parking location—the parking location 1206.
When the user stops the car in the parking location and, prior to turning the car off, the first location will be recognized by the fingerprint which is defined at a time t0. At time t=t0, the device A is still present and its signal will be present. However, once the car is turned off, a second scanned fingerprint will exist. This will be at time t=t1. Again, the fingerprint 1208 will be present but the device A will not be present. However, at this point in time, the lack of the device A signal can either mean that the car was turned off or that the Bluetooth device within the automobile 1202 went to sleep. This has to be analyzed, as will be described herein below. Once the user has parked the car and turned the car off, the user then moves to a restaurant or other facility or location 1212. At this location, there is now another fingerprint that will be scanned by the unit. This is illustrated, for exemplary purposes, as having an additional device F disposed thereat. This device will typically be a WiFi device. The fingerprint for this device is illustrated as containing both the device D and the device F, device D being one of the devices that was actually part of the fingerprint 1208 associated with the location 1206 (in this example only due to the proximity to the parking location). This will provide a fingerprint 1214 which is recognized by the server as being at location 1212. In fact, just the presence of the unique device F at location 1212 will indicate to the server that this location constitutes that establishment. There may be other devices that are present as the individual moves around within the establishment that will provide a higher degree of granularity to the fingerprint. However, the dominant device within the fingerprint will be the hot spot device F. The server will recognize the presence of the device F and will recognize that this will define a “group” of fingerprints that could be present or that have been previously recorded. About this dominant device F, a group of fingerprints will be searched to determine that, first, the individual is within the establishment and, second, a relative location within the location. This could also be used, as is described hereinabove, for different a social application to determine if friends are proximate to the user within the establishment, which may be indicated by previously recorded fingerprints. It could be that the fingerprint the establishment 1212 could indicate a particular location therein next to, for example, a television set or such.
Of course, the device A is not present in the scanned fingerprint at that time and, as such, the fingerprint would not be expected to see such and the server will recognize that the individual has walked away from the car. It should be understood that there are two types of fingerprints, there is an actual fingerprint designated as FPA. This is the actual measured fingerprint which represents the signal strength at that time (when the individual is in the car and device A is operating). The signal strengths, as described hereinabove, are a function of the proximity to a particular wireless device, the orientation of the antenna of the mobile device and environmental conditions that might change. There is also designated the stored fingerprint FPs. The box 1208 defines the devices that would be part of the stored fingerprint FPs. At time t0, the illustration shows a stored actual fingerprint. It should be understood that the stored fingerprint corresponds to devices that would be within the scanned actual fingerprint, it being understood that the signal strengths may be different between the stored and the actual although both are illustrated together. This is for simplicity purposes. At time t1, the stored fingerprint and the actual fingerprint are actually the same due to the fact that the device A has disappeared.
In the application illustrated in FIG. 12, what occurs is that there is an awareness or recognition by the server first that the automobile 1202 has been or was present at location 1206. Followed by that, there is an awareness that the device A has disappeared from the fingerprint. The disappearance of this device A is an indication to the application running on the phone that some change has occurred. The server recognizes the actual fingerprint FPA at time t0. It then recognizes the disappearance of the device A from the fingerprint (it may also be other devices that disappear). Knowing that this device A is the automobile, there is an initial indication that the car has been turned off. However, it is important to ensure that the device A is off and not just asleep. This is facilitated by multiple scans of the fingerprint and, after a predetermined number of scans, if the device A has not reappeared, then the fingerprinted time t0 constitutes the fingerprint defining the location at which the automobile 1202 is disposed at, i.e, when the automobile was turned off. What the server is looking at is a particular fingerprint and disappearance of the device A indicating that the car has been turned off. This is a particular condition precedent associated with the particular application. Whenever the device A disappears, the server initially considers this to be a location where the automobile will be parked. However, the device A must be off for a certain period of time. If it is off, for example, 5 or 10 scans, this is a clear indication that the automobile is in all probability turned off. It will then go back to the last fingerprint at t0 at which the device A was present and use that fingerprint as location at which the device A was turned off. This fingerprint determines the location based upon stored information in the server associated with the specific fingerprint that can be correlated with a map. This allows a “pin” to be dropped onto a map, an action that follows a condition precedent. This concept of “dropping a pin” is one action wherein an indicator is placed onto a map automatically without any intervention of the user. The user or individual then goes to the establishment 1212, and enjoys an evening of dining and frivolity and, as a result of such, may forget where the automobile 1202 has been left. By reviewing the map, the pin that was dropped onto the map will tell the individual where the automobile was parked.
Referring now to FIG. 13, there is illustrated a diagrammatic view of how the pin is placed onto the map in the current application described. At a fingerprint S1, the device A is recognized as having disappeared from the fingerprint—the condition precedent. Once this device has an indication that it has disappeared, whether it be turned off or it be asleep, this fingerprint is stored in a buffer 1302. This buffer 1302 could be in the mobile device or at the server or other place on the network. Once stored, the next scan, a scan S2 is then performed which could be at the same location, as indicated. This is compared to a previous scan for multiple scans, S2, S3 and so on until scan SN. Scan SN this being 5 or 10 scans later, if the device is continuously not there for either the reason that it is turned off or for the reason that the user has taken a mobile unit out of the transmission range of the device A, there will be a switch of information in the buffer 1302, this being the fingerprint at the first scan, 51, and this will be then be placed in a permanent buffer 1304. The indication in the diagram of FIG. 13 is essentially the same for all scans. However, this will only be the case if the user were sitting in the car 1202. The fingerprint could change with respect to other devices that are scanned. However, what is important is that the device A is sensed as not being present for all of the scans and then selecting back in time the fingerprint at which the device A first disappeared.
In the application, what occurs is that fingerprints are buffered for whatever purpose. It could be that fingerprints are buffered and there is a technique wherein it is recognized that an individual has now entered the establishment just because, for example, the device F is recognized. By recognizing device F, the application could be configured such that it makes a decision the individual with the mobile unit is out of their automobile. It would then search backwards in the fingerprints to the last location where device A was determined as being present. It will then associate automobile 1202 with that location and drop a pin on a map. The pin is dropped as a result of recognizing the individual being in an establishment and then the system would go back in the buffer to determine the last place that the device A was present. As such, an action has been taken based upon the lack of a device or the disappearance of a device from a fingerprint or the presence of what is recognized as being a stable and permanently located device within a group of fingerprints.
Referring now to FIG. 14, there is illustrated a flow chart depicting the operation of the embodiments of FIGS. 12 and 13, which is initiated at a start block 1402 and then proceeds to function block 1404 to recognize the fingerprint with a scan. This is the actual fingerprint that is scanned and then compared with the database to determine if, for example, the automobile 1202 is at location 1206. Once this is recognized, the program then flows to a function block 1406 to access expected actions. One expected action, for example, is a terminus action. This terminus action is an action that, knowing that the automobile 1206 is at a parking location (this is recognized as a parking location because of the user previous entering such information or recognizing that mobile units with mobile device IDs had previously come there) and this action is possibly the action that is chosen. After the expected actions are accessed, the program flows to a decision block 1408 to determine if the terminus action is one that is taken. If not, the program flows along an “N” path to function block 1410 to search for other alternative actions. If, however, the terminus action is the one that is selected and is associated with the application running on the phone or mobile device and the program flows along the “Y” path to function block 1412 to buffer the actual fingerprint at time, t0. The program then flows to function block 1414 to rescan the external devices and then to a function block 1416 to compare the new fingerprint with the buffered fingerprint and then to a decision block 1418 to determine if there is a missing device from the fingerprint. If not, then the system clears the buffer and it flows along an “N” path to a block 1420 to return to the scanning operation. However, if the device is missing from the fingerprint in the buffer, the program flows to a decision block 1422 to determine if the maximum number of scans has been reached. If not, the program flows along an “N” path back to the function block 1414 and the scan number is incremented in order to rescan the system. This occurs for the maximum number of scan, at which time the program flows from the decision block 1420 to a “Y” path to a function block 1424 to take an action based upon the fingerprints stored in the buffer. This is the FPbuf. This action, as described hereinabove, could be placing a pin on the map indicating the last location at which the particular missing device were present.
Referring now to FIG. 15, there is illustrated a flow chart depicting the operation of scanning, which is initiated at a block 1502. The program flows to function block 1506 to scan the devices and then to a decision block 1508 to recognize which devices are in the scan. As described hereinabove, there are certain devices such as the device F in FIG. 12 that are dominant devices or fixed devices. By recognizing all the devices, there may be one device that is a device that frequently occurs within the database. This device will provide an index to a group of fingerprints. If none of the devices are recognized, however, this would indicate that there must be a new fingerprint creation, which is indicated by flow to a function block 1510. However, once the devices are recognized, this indicates that there are fingerprints in the database associated therewith. The program flows to function block 1512 in order to filter these fingerprints by the devices. There may be some devices that are recognized as being mobile appearing in multiple different locations and other devices that are recognized as being substantially fixed, i.e., for the most part they are at a fixed location. This could be a situation where, for example, a WiFi device was disposed at one location such as a home and then, at a later time, when an individual has moved, the device is moved to a different location. For the most part, it is disposed at a common location which will be indicated by a mobile device transmitting information to the server along with its location information.
Once the fingerprints have been filtered, there are less fingerprints to deal with and, utilizing the heuristic algorithms, there is determination made as to whether there is a match based on this algorithms, as set forth in a decision block 1514. If not, the program flows along an “N” to a return block 1518. However, if there is a match, this indicates that there is a fingerprint within the system that is associated with the actual scanned fingerprint. The program then flows along a “Y” path to a function block 1520 in order to select the expected actions associated with that particular fingerprint. In this system, there may be many different actions that could be associated with a fingerprint, such as placing a pin on a map, bringing up locations of friends that are in proximity to the mobile unit, turning on external devices in response to the fingerprint, turning on lights, or pulling up content on set top television boxes. These actions all could be possible with respect to the fingerprint. The program then flows to a function block 1522 in order to execute the appropriate application based action.
The actions, as described hereinabove, can be multiple actions. They can be such things as changing the setting on a particular mobile unit or phone, change call routing information on a phone. This could be a situation where individuals with their phone or mobile unit enters their apartment and the routing is automatically changed by the communications server at a provider as a result of recognizing to the mobile unit the presence or awareness of devices that constitute part of the fingerprint. A call could be initiated or any type or communication could be initiated based upon the awareness of a certain fingerprint. A phone display could be changed such as when an individual walks into a store and splash page is changed indicating the presence of coupons or advertising and the such. Further, some settings on the phone could be changed like turning off the ringer and setting the phone to vibrate.
The actions taken may be taken in a number of ways. In one instantiation, a phone or mobile device may take a fingerprint and send it to the server and the server return a match to that phone and the phone can then do a lookup in the local phone database for any stored action that may be associated with that match. Just a match of any type may elicit an action. In another instantiation, the server can see the fingerprint, compare it with the server database store and determine from the “closest” matching fingerprint one or more actions that are associated with that fingerprint. The server can either return the one or more actions to be taken to the phone and the phone determine what of the returned actions to take or the server can select the action to be taken and send the action to the phone and the phone then either be controlled to tackle the action or have the option of taking the action. The server can also instruct another local device to take an action or even instruct a remote device to take some type of action. The server can also instruct another phone that is in the same vicinity to take an action. This may require the second phone to also see the same fingerprint so that the server has some degree of confidence that the second phone is in the same vicinity. As such, the phone can determine its destination or it can be controlled by the server such that the developer can determine actions to be taken that are a function of the fingerprint. These actions may be parameterized by other aspects, such as which phone had seen the fingerprint, some action that preceded this fingerprint capture, etc.
It will be appreciated by those skilled in the art having the benefit of this disclosure that this phone system provides a system that scans the environment about a mobile personal data device to determine the presence of other transmitting devices with identifiers embedded in their transmissions. A fingerprint of these devices is made and stored at a server for later use in a comparison operation. It should be understood that the drawings and detailed description herein are to be regarded in an illustrative rather than a restrictive manner, and are not intended to be limiting to the particular forms and examples disclosed. On the contrary, included are any further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments apparent to those of ordinary skill in the art, without departing from the spirit and scope hereof, as defined by the following claims. Thus, it is intended that the following claims be interpreted to embrace all such further modifications, changes, rearrangements, substitutions, alternatives, design choices, and embodiments.
Discovery of Hidden Devices
In the system described hereinabove, each mobile device has the ability to discover and identify nodes within its environment and to obtain the characteristics of those devices and create a fingerprint. However, in some instances, it is desirable for one mobile device to discover another mobile device. The problem is that any mobile device must have an application running that will provide some type of ID or some identifying information. This may be useful but not practical, since a number of the mobile devices, such as the smart phones, do not provide such information or do not scan on a constant basis. Additionally, some phones actually hide the information such that phones or other devices cannot discover them. One such system with respect to a phone is that associated with phones and mobile devices that utilize zero configuration networking. Zero configuration networking is a set of techniques that automatically creates a useable internet protocol (IP) network without manual operating intervention or special configuration servers. This network technique allows devices such as computers and printers and phones to connect to a network automatically. Without the zero configuration networking, a network administrator must set up the various services that are provided such as Dynamic Host Configuration Protocol (DHCPP) and Domain Name System (DNS), or configure each computer's network settings manually, which may be difficult and time consuming. One type of zero configuration network is that which is utilized by the Apple® iPhone® which utilizes Bonjour. The Bonjour system is a zero configuration networking protocol that allows devices or applications to find each other on the network. More precisely, it provides a way for an application to tell others what IP address and port it can connect to in order to communicate with it in order to avail itself of the associated services. In Bonjour terminology, such analogy is called publishing a service. Other applications can and look for services by browsing. Once an application finds a service that it would like to talk to, it resolves the service to find out what IP address and port number it needs in order to establish a connection.
Basically, these zero configuration networking schemes utilize what it is referred to as a link-local address scheme that provides an address to a particular device in addition to providing some type of naming scheme. The link-local source address is defaulted to 169.254.xxx, such that a unique address can be provided for each device that is in the system. However, this address is defined at the time of registry, in addition to the local address. When a zero configuration networking device is turned on, it goes on to the system and randomly obtains an address by first grabbing the address and then looking at the other devices on the system to make sure one does not have such address and then retaining that address. It then defines a name. Typically, these zero configuration networking devices have a default name and a default address located therein and then they can change them. For example, if cameras were in networking devices and each had the same name CAM since they were both in the same package, as they came on, they would be named, for example, CAM1, CAM2 and CAM3, etc. Even though the initial name was CAM, they would each modify it slightly. There are a number of algorithms that can be utilized for this. In any event, they register a device that utilizes zero configuration networking will register itself merely by turning on. It is not participating in a network and does not have an address assigned to it. It just picks one and any other devices that come into proximity and can see that configured device will select an address that is different and, thus there is no need for a central Network Address Table. The next step is that, when a network device is looking for a service, such as printing service or camera service or the such, it will go out and browse the system to find things to talk to. If it were looking for a printer, it would find all systems that it could talk to in a particular print protocol, for example. This is also the case with respect to cameras and the such and other network devices. It is at this time of browsing that the mobile device or phone can be controlled to actually obtain information on all of the devices on the network. Further, the phone can even go through a wireless router to determine how many zero configuration devices are disposed on the router itself. Thus, it is possible for a mobile device such as an iPhone® or other zero configuration networking device to scan and obtain information such as the name, IP address and port of neighbor devices within a scan range. These can be devices connected through a network cable such as an Ethernet® cable to a wireless hub, Bluetooth® devices and the such. These can be printers, cameras or any type of network device. The problem is that if there are two mobile devices or phones such as an iPhone® or an Android® phone, these two phones cannot see each other. Even though, when registering with the network, they obtain an IP address, they may not be on at the same time. Thus, when one mobile device scans the area about itself, it may not see the other phone due to the fact that it is not in a scanning mode and talking to other devices. Typically, a printer will not contact a phone; rather, the phone will typically do a multi-cast to go out and seek other systems on the line and ask for particular types of services. At present, there are around 250 different protocols that are associated with zero configuration networking and the multi-cast would go out and ask for all of the devices on a particular protocol and, once finding those devices, these can be stored in the table with a time stamp.
Referring now to FIG. 16, there is illustrated a diagrammatic view of two devices 1602 and 1604 that are in close proximity to each other and also in the presence of a plurality of network devices. In the depiction of FIG. 16, there is illustrated one network device, a WiFi hub 1606 which is connected via Ethernet® cables, 1608 (B1) and 1610 (B2) and also to two cameras 1612 (C1) and 1614 (C2). Each of these printers 1608 at 1610 and camera 1612 and 1614 are connected to the WiFi hub, a wireless switch, 1606 via Ethernet® cables. Each of these devices is a zero configuration networking device such that can be discovered by the mobile devices 1602 and 1604 which are also zero configuration networking devices. There are also provided two Bluetooth® devices 1618 (BT1) and 1620 (BT2). Each of the devices 1602 and 1604 has two radios associated therewith to allow the devices to communicate with WiFi hub 1606 on one frequency or via the Bluetooth® devices 1618 and 1620 on a Bluetooth® channel one operating under the 802.11 communications standard. Although not shown, each of the devices 1602 and 1604 also has the ability to interface via a CDMA channel or GSM channel or the such over a voice and data network to allow communication thereon.
Each of the devices 1602 and 1604, when entering the system, will scan for all devices in its range. In the illustration, they build a table which is, at the minimum, populated with a device name and an IP address and also a port number which is not shown. This is the resolving step wherein, after browsing, there is a resolving step, which basically resolves the IP address and the port number. This is part of the zero configuration networking standard. Thus, each of the devices scanned is now identified as being in its scanned range.
In order to perform the scanning, an application is launched on a particular one of the devices 1602 and 1604 to initiate a scanning operation and to determine substantially all of the devices which it can see. This is different than the normal operation of the zero configuration networking wherein one network device is looking to the network for a particular service such as a printing service. In that simple operation, it would go out and request that service to see how many devices on the network can provide the services. It will only then look for printing protocols that it can actually communicate with, for example, and not camera protocols or other networking protocols that it may not actually be able to communicate with. However, in order to determine the devices that are in its area for the purpose of merely identifying the presence of those devices within its scanned range and also to determine their IP addresses for the purpose of identifying those devices, the scanned program will scan substantially all available protocols to determine if devices answering that protocol are out there via a multi-cast type of operation.
The result is that each scanning device will have associated with it a table 1622—for device 1602—and a table 1624—for device 1604. It should be understood that this table could be a local table or, alternatively, the table could be maintained at a local central server at a central office. If it is at the central office, it is possible that each device scanned is resolved and its unique name and IP address is sent to the server for association with that particular device. It should be understood that when the term “unique” is utilized, it is unique only with respect to the given area within which the local-link addresses are utilized. Since there is no DNS, there is no central domain name serving system that can simply control the addresses for all devices. These devices basically obtain their own addresses through the zero configuration networking operation, as described hereinabove. The result is that, in association with each of the devices 1602 and 1604, there will be an associated table of all “neighbors” in the scanned vicinities of both. What the goal of the system is will be to define common neighbors. It may be that, for example, the Bluetooth® device 1620 (BT2) is only within the scan range of the device 1602 and not within the range of the device 1604. It may be that another device (not shown) within the range could be near the Bluetooth® device 1620. This system basically provides proximity. However, if enough common neighbors exist between one device and the other, provided the understanding that the two devices cannot see each other due to the fact that their scan operations may exist at different times, there can be an algorithm or some type of comparison operation performed at a central server (described hereinabove) that will allow the device 1, for example, to gain knowledge that device 2 is actually in close proximity thereto. This allows for one device to determine the proximity of other devices thereto that are for all practical purposes hidden from its scan.
Referring now to FIG. 17, there is illustrated a more detailed illustration of a group of zero configuration networking devices in an area occupied by a plurality of mobile devices. Each of these mobile devices is referred to as a Point of Reference (POR) indicating that anytime one of these devices generates a table, it gives a reference relative to the devices scanned and discovered. This, of course, is a function of the time that the scan is performed, the physical position of the device at the time of performing at scan and also whether a particular network device is turned on itself. Some network devices just are not on at all times and answering multi-cast requests. There are provided PORs 1702 (POR1), 1704 (POR2), 1706 (POR3) and 1708 (POR4). There are also provided two WiFi hubs 1710 and 1712. Each of these WiFi hubs may comprise an external router. These routers will have external router IP addresses. Since it has an external router IP address, it can be discovered by connecting thereto or scanning for available wireless hubs by the devices 1702-1708. The addresses can be fixed and known beforehand by a particular server. As such, they can also have their location known relative to some geographical coordinates for purposes of providing a frame of reference to a particular one of the devices 1702-1708 connecting thereto or determining that the wireless hub is within its range. Also, provided are a plurality of zero configuration networking devices 1714 labeled A, B, C,-G. There are seven of these devices illustrated in different areas. Depending upon whether these network devices 1714 are wireless and can be directly connected to by the POR 1702-1708 or they are connected through the hub 1712 and 1710, it is possible for each of the POR 1702-1708 to discover one or more of these network devices 1714.
Each of the PORs 1702-1708 are illustrated as having connectivity through a global communication network 1716 to a central server 1718. This is the central control area wherein communication is effective between each of the PORs 1702 and 1708 and the tables uploaded thereto. Thus, when a scan operation is performed, unique names and IP addresses of all of the devices that are defined as “neighbors” to a particular one of the PORs 1702-1708 and stored in an associated table with respect thereto. Illustrated are four tables associated with the PORs. Even though each of the PORs 1702-1708 may not know that any of the other PORs are within its range, the central server 1718 can determine that there are one or more common neighbors with any particular time window and then can take action thereon. One action may be, for example, to inform a particular mobile device that the mobile device is present. Since the central service 1718 can have knowledge of the identity of an individual associated with this device, one individual with one POR can be made aware that another individual with another POR is within close proximity to them. Further, another application could be that the one POR can now be aware of the IP address in the zero configuration networking environment and, as such, make a direct connection thereto. Also, there must be some frame of reference such as a common WiFi device that has an external address that can at least place the PORs at a common location. Since this is a zero configuration networking system, there can be two printers with the same IP address and name.
Another operation may be that the server receives from a given POR or mobile unit updated information that is obtained while the given POR is in the scan mode. Since the given POR cannot see a hidden POR due to the fact it may have its radio off or is asleep, the server in one mode can contact the hidden POR and request that it bring its application (the same proprietary application running on the given mobile unit) to the front of the applications running on the phone. This then wakes it up and allows it to function within the application and possibly talk to the other non-hidden PORs. So the operation would be that a given mobile unit moves into a common environment and scans for available broadcasting devices. It retrieves the information from these devices and places them in either a local table or transmits them directly to the server. The server updates its database as to the given mobile unit and then makes a determination if there is possibly another mobile unit in the area, due to it having previously scanned the common environment and seen one or more of the same broadcasting devices as the given mobile unit. The server then has knowledge that the given mobile unit is in the common environment and that one or more other mobile units “may” be in the same common environment. In this operation, the server has a rule associated with this operation to “push” a command to all other mobile units to basically pull the proprietary application to the front and scan their environment. They will, of course, rescan the area and update their profile and then they can connect with the given mobile unit or otherwise. It may be that the existence of a particular given mobile unit is important and a message is pushed to the other mobile units. In this mode, they are woken up and, if they are still in the area, a message such a “Elvis is in the house” can be transmitter. This may just be the trigger of a prestored message.
Referring now to FIG. 18, there is illustrated a detail of one of the tables. In this instantiation, there are provided three columns, one for the device name, the name associated with the zero configuration networking operation, one for the unique IP address and the local-link address domain and also the time of discovery. This time of discovery may be updated for each scan to determine if a particular network device is still in its scan range or has disappeared since the device has moved. Of course, other information as to any wireless device can be collected such as power level, etc., as described hereinabove, which can provide a wireless fingerprint. Without power levels, though, this basically constitutes a second fingerprint of sorts. Further, with respect to the WiFi hubs, there is provided a time of discovery and also a time of disconnect. The disconnect is illustrated as a “XXX.” Thus, whenever a connection is made to a WiFi hub, for example, when it is disconnected, this indicates that the POR has left the area. With respect to various network devices that are not hubs, there is connection to them, and all they are in the database are discovered devices. The time of discovery is the result of a scan. However, if another scan is not made, one cannot determine if the system has left. It could be that an additional scan or multiple scans could be kept as a history for a particular POR and an indication provided that the POR has moved away from particular devices. There is a time latency which will determine whether a particular POR is proximate to another POR just by looking at the table. Thus, when a determination is made that a POR has left a WiFi hub, i.e., disconnected therefrom, this may indicate that the POR is still proximate, but if the latency is too long, this may indicate that the POR has departed the area. One other piece of data that could be provided is the port data. However, the port data is primarily for communicating with a particular device rather than identifying uniquely that device within the local-link address domain.
Referring now to FIG. 19, there is illustrated a flow chart depicting the operation of discovery. This is initiated at a block 1902 and then the program proceeds to a decision block 1904 to determine if a new WiFi hub has been discovered. In this flow chart, when a new WiFi hub is connected to, then the discovery process can begin. However, this also could be a new wireless device such as a Bluetooth® device at this stage.
When a new device such as a WiFi hub is connected to, then the program proceeds along a “Y” path to register with the network. The WiFi hub is typically an indication that a new network has been entered into and a local-link address needs to be obtained. This will be facilitated with a register step at a block 1906. Once registered, the system can then scan all devices that are associated with this local-link domain. This is indicated with a block 1908 for a browse operation. In this browse operation, as described hereinabove, a multi-cast broadcast is provided to request information from all network devices within its range which are connected to the WiFi hub, for example, that can respond to a service request for a particular protocol. By scanning multiple protocols, if not all protocols, all the devices answering can be recorded and loaded. No connection is necessarily made to any one of these since the purpose is to populate a table with all devices in its scanned range. The program then proceeds to decision block 1910 to determine if any of the devices were detected. If not, the program goes back to further browse at block 1908. When a new device is detected, the program flows along the “Y” path to a function block 1912 in order to resolve the address. This is the step, as described hereinabove, wherein the IP address and the port for a particular device is resolved. This IP address is then stored in the table, as indicated by a block 1914. Also, what will be stored is the unique device name that was chosen by the network devices when they registered for a local-link address. A time stamp also is provided to indicate the time of discovery. The program then flows to a function block 1916 to send this information to the central server. The central server or central office can be provided this information in a table after discovery is complete and provided at the time of each device's discovery. This is a matter of how the system will be implemented. Once the information is at the central office at this stage, the program flows to a function block 1918 to go to the next operation and then back to the browse function block 1918 to look for the next address until all of the available information is obtained. As noted, the entire scanning operation could be completed before sending the table to a central server or it could be sent immediately.
Referring now to FIG. 20, there is illustrated a diagrammatic view of the populated tables associated with the embodiment of FIG. 17. In this system, there are provided three PORs, POR A, POR B and POR C. Associated with it are two WiFi hubs which can be determined to be present, both having unique router addresses and also typically unique SSIDs. There can also be a connection made to each of these at a particular time of scanning. It may be that the POR will be connected to one hub and then the network devices connected to that hub scanned and then disconnected and connected to another hub for a scan of that hub. It may be that the system is designed such that it will maintain a connection with any one of the particular wireless hubs until it leaves the region just so that the system can indicate whether it has actually disconnected and provided a disconnect time. Each of these PORs will be able to scan and discover different ones of the devices A-F. It can be seen that POR A scans and discovers devices A, B, C, F, POR B scans and discovers devices A, B, D, E and POR C scans and discovers devices A, B, C, F. Thus, not all of them are in the same scan range. With this information and information knowing the location of the various WiFi hubs, a determination can actually be made of a relative position of one POR to another. However, it is important to note that this information is made by knowing the common neighbors of each of the PORs which does not have knowledge of these or any other POR.
Referring now to FIG. 21, there is illustrated a flow chart depicting the operation at the central office for determining the neighbors. This is initiated at a block 2102 and then proceeds to a decision block 2104 to determine if a table has been received. If so, the program flows along a “Y” path to a function block 2106 to look up other common tables (i.e., associated with a common WiFi hub, for example) and do a comparison. This is indicated at function block 2108. This comparison is utilized to determine the database of PORs and all of the common neighbors. Since each POR acts as a point of reference for a given local network, its point of reference is a reference relative to its own neighbors. These neighbors will have a common address. It is important to note that since this is a link-local domain, it is possible that in another domain there will be a network device that will have the same link-local address. However, this device might be a different network device, have a different unique name, etc. in that link-local space. Therefore, even if the server saw another IP address with another POR and another link-local name at a different location, it might not recognize at first that it is a different name. Thus, just having one network device that is shared between PORs does not necessarily mean that they are in the same location. This will be a rare occurrence that both the unique name and unique link-local address will be the same, but it could occur.
Once the table associated with the devices has been compared, the program flows to a decision block 2110 to determine if there are any common neighbors. If so, the program flows to a decision block 2112 to determine, even if the table illustrates common neighbors, if there has been a disconnect. This is an indication that there has been sufficient amount of time between discovery of the device by a hidden POR and the time of scanning on a current POR. If a sufficient amount of time has elapsed, it is possible that an indication could be provided that the POR is no longer in the same area as the current POR or this information can just be provided to the current POR. If a disconnect has not been determined to be present, i.e., the time has not been too long, the program will flow to a function block 2114 to determine the hidden PORs that are present within the range of another POR. Thus, the central server can determine, based upon one POR, the relative position of another POR. It is not necessary to know the exact location of any POR, but, rather, merely that they share common neighbors, indicating that they are in the presence of each other.
Once it has been determined that there are some hidden PORs with common neighbors, then the common neighbors are determined between these hidden PORs at a function block 2116. The common neighbors between the PORs are determined in order to determine the presence of each and then the program flows to return block 2118.
Once the disconnect has been determined, i.e., there is an indication that the WiFi has been disconnected from, the program will flow to a decision block 2120 to determine if the disconnect has occurred for a long enough period of time, it is greater than a particular maximum latency. If it is less than the maximum latency, the program will go to the return block. If the determined common neighbors relative to the POR having common neighbors is less than the maximum latency, the program will flow from decision block 2120 along the “Y” path to the input of function block 2114 to determine the hidden PORs. If greater than the maximum latency, the program returns to function block 2118.
Kiosk Proximity Sensor
Referring now to FIG. 22, there is illustrated a diagrammatic view of an area such as in a retail mall, that has associated therewith two different scanning devices. In this application of the scanner, an individual with a phone (or any type of personal mobile device—wherein phone and device will be used interchangeably throughout) registers a phone with an application operating on that phone after launching and, after launching of the application, the user can then walk through areas in the mall or some type of establishment. The scanners recognize proximity or presence of the device and, based upon this presence, take certain actions.
Referring further to FIG. 22, there is illustrated a kiosk 2202 which is disposed along a wall 2204. The kiosk 2202 has associated therewith a display or terminal 2206. The terminal 2206 and the kiosk 2202 is operable to interface the network Cloud (not shown) to allow data communication therewith. Associated with the kiosk is a proprietary scanner 2208. The proprietary scanner 2208 is operable to scan the proximity of the kiosk 2202 for devices that have broadcast signals associated therewith, which broadcast signals can be transmitted from a Bluetooth, a near-field device using Near Field Communication (NFC) or an 802.15.4 low-powered device. Any device that is operable to broadcast information from a phone in a normal operation thereof can be scanned by the scanner 2208, depending upon whether it has the appropriate receiver.
In the illustration, there are provided two paths, a path 2210 and a path 2214. The paths 2210 and 2214 are comprised of dotted lines with “X's” associated therewith indicating positions with all along the path. In the path 2214, an individual walks past the kiosk 2202 but at a distance there from. By comparison, an individual walking along the path 2210 passes directly by and stops at the kiosk 2202 approximate to the display 2206.
There is also provided a second scanner 2216 disposed along the wall in another location and, associated with that is an audio output device 2218. When an individual passes by the scanner 2216 and is detected as being in proximity thereto, i.e., the scanner detects the “presence” of the device, then audio information can be proved by the output device 2218. Additionally, the audio device could be incorporated into the kiosk as well as other output and input devices.
With respect to the second scanner 2216, the individual walking along the path 2214 passes at a distance from the kiosk 2202 but changes the path to pass close to the scanner 2216 to be in closer proximity thereto as compared to the kiosk 2202.
The scanners 2208 and 2216 are operable to scan the broadcast information that is broadcast the device carried on a person, this being a Smartphone or similar personal mobile device. This could even be a tablet PC. It is just a device that the user has associated with them that has a radio that transmits identifying information via an RF signal. The scanners 2208 and 2216 are operable to extract the ID from the broadcast information, or some type of identifying information, in addition to the signal strength. The identifying information is utilized to identify to whom a particular transmission is associated and also to determine the proximity from the signal strength.
Along the path 2210, there is illustrated a signal strength “wireless fingerprint” associated with the single transmission from the device that is disposed along that path at a point 2220 along path 2210. The signal strength is indicated as being fairly high. By comparison there is also provided a detected signal strength at a point 2222 along path 2214 indicating a smaller signal strength which is detected. As will be described herein below, the signal strength provides some indication of the proximity and the application that is to be associated with that proximity to determination. Now, with respect to the individual walking along the path 2214, although the signal strength was very low at point 2212, at a point 2224, the individual is very close to the scanner 2216. This results in an associated signal strength measurement that is rather high and indicates a close proximity.
Referring now to FIG. 23, there is illustrated a more-detailed diagram of a scanner 2326 disposed along a wall 2328. The scanner is operable to detect signals and, from the signal strength determination, to determine whether they are in one of three zones. Each of the zones, zone 1, zone 2 and a zone 3, have an associated signal strength illustrated. It can be seen that as a person walks along a path 2330, at a point 2332 within zone 3, there is a very low signal strength. At a point 2334 within zone 2, there is a higher signal strength and at a point 2336, there is a rather high signal strength indicating the closest proximity. By distinguishing between these two zones using some type of threshold determination, different applications can be executed based upon the proximity. For example, it might be that, when the user is in zone 3, and the application requests the user to come closer or just provide a greeting such as “Hi John, it's good to see you again.” Additionally, by detecting the presence of an individual, a log can be creating an association with a registration number within a server disposed on the network Cloud.
Referring now to FIG. 24, there's illustrated a flowchart depicting the operation of the loading of the application, which is initiated at a block 2402 and the proceeds to a block 2404 to load the application on the phone. The user typically will load a proprietary application or any type of coupon application on the phone and that application will have as part of the application the ability to recognize the Bluetooth or phone ID and send information out on the particular channel and recognize the ID of the channel such that this ID can be associated therewith. In block 2406, the user registers the application with their identifying information and basically generates a profile that can be stored on the Cloud at a central server (not shown). This identifying information includes at least information to identify the phone such that information can be pushed thereto, but personal information provided by the registrant could also comprise part of the identifying information.
The program then flows to a function block 2408 in order to associate the phone with the particular radio. For example, if it is a Bluetooth radio that is associating with the phone, the hardware associated with the phone has the ability to interface with the loaded application and provide that loaded application with information about the Bluetooth radio. Bluetooth radio typically operates independent of the application such that identification information associating with that phone is output and is unique to the phone. This information is known by the application such that the application can then associate that Bluetooth ID with the user profile at the central location and that phone such that the phone can be recognized in the system merely by detecting the presence of that Bluetooth ID or other such radio ID. The program the proceeds to a block 2410.
Referring now to FIG. 25, there is illustrated a flowchart depicting the scanning operation, which is initiated in block 2502 and then proceeds to a function block 2504 to scan the proximity. There may be a threshold below which no detection is made requiring relatively strong signals to only be selected. However, any detection of a Bluetooth ID would be possible depending upon the sensitivity of the receiver and the environment within which the scan is performed. The program then proceeds to a decision block 2506 to determine if a Bluetooth device been detected and does it have information associated therewith. The detection of a Bluetooth transmission or any type of transmission, even a near-field device or an 802.11.4 device, will result in the detection coming back with a true indication and then flowing along a “Y” path to a function block 2508 to then determine the signal strength via a received signal strength indicator (RSSI). The program then flows to function block 2510 to extract the information from the broadcast from the phone and then to the function block 2512 to interface with the browser. The browser and the scanner operation are all associated with the application within the phone carried by the person. The scanner is basically an input device and the browser is a separate device.
The program then flows to a decision block 2518 to determine if there has been an identification, i.e., has the browser been able to go back the Cloud and the central server and determine if, with this detected ID, there is associated therewith a user profile. If so, this indicates that the user is in the system and is in close proximity thereto. The program flows along the “Y” path to a return block 2520 and, if not, it flows to the block 2580 along an “N” path.
Referring now to FIG. 26, there is illustrated a flowchart for the operation of the identification operation. The program is initiated at a block 2602 and then proceeds to a decision block 2606 to determine if a device has been identified that has an associated profile within the central server on the Cloud. The program then flows to a function block 2608 to log all the information that is determined with respect to this particular detected device in the database at the central server as being detected in close proximity to the scanner. This would be the signal strength, the identification and even the time duration within the zone. It is possible when monitoring the proximity about a fixed scanner, the direction of the individual detected device can be seen, it can be determined whether the individual associated with the device has stopped at the kiosk, has stopped to view something proximate to the kiosk or is just merely passing by. This information is logged. In addition, it can determine how many times an individual has passed by a particular kiosk based upon stored history. The program then flows to a function block 2610 to go to the application and run a particular application that would be associated with a detection of proximity and then to a block 2612 to return.
Referring now to FIG. 27, there is illustrated a flowchart depicting the operation of discriminating between zones, initiated at a block 2714 to initiate a proximity determination. The program then flows to decision block 2716 to determine if the user is within a zone Z3. If so, the program flows along a “Y” path to execute an instruction for this zone, this being at a function block 2718. This may be an instruction associated with a person at a far distance from the kiosk just greeting that individual. If they are not in zone Z3, then a test is made at zone Z2 and at decision block 2712 and then flows on a “Y” path if it is a true detection to the function block 2722. If in zone Z2, the instruction may be more pertinent to the individual thus requiring the individual to come closer maybe offering some motivation to move closer. If the user is not determined to be in zone Z2, the program flows to a function block 2724 to determine if the user is in zone Z1 and, if so, flows along the “Y” path to function block 2728. This executes an instruction for that zone. This may be one that determines that the user is next to the kiosk and this application may execute some type of display to the user some type of request to make an offer to the user, et cetera. This is a determination of close proximity to the kiosk. Also, the time duration can indicate how the long user is there such that a determination can be made that the user is actually looking at the display and waiting possibly. Thus, both proximity and duration are used to determine the execution of the instruction that would be placed out in a particular zone.
We're referring now to FIG. 28, as illustrated a flowchart depicting the operation of the application, which is initiated at block 2802 and the proceeds to a block 2804 to determine if they are zone Z1. Zone Z1 in this particular application is the closest proximity. This is just one example of many things that can be done after proximity detection. The program then flows along a “Y” path upon a true determination to a function block 2806 to, in this application either output audio or display information, depending upon the particular kiosk or trans or output device associated with a particular scanning location. Once the information is output to the user, the user has their intention. In this application, there is a button generated. This is either generated on the display at the kiosk at a function block 2808 or on the phone at function block 2810. If it is generally done with a display a, this is the way to basically push display information to the user. This does not require access to the internet. Alternatively, a Wi-Fi connection could possibly be made or even a data connection over the cell phone connection and information transmitted to the user's phone to display the button. This button may be displayed by running a sub-routine that already exists on the phone or it may be downloaded. In any event, this button is displayed on the phone and indicates that an offer will be provided. The program then flows to a function block 2812 to display “Click here to receive offer.” The function block then proceeds to a function block 2814 to determine if a click as occurred and, if so, the program flows to function block 2816 to push the offer to the phone or display (kiosk).
After the offer has been sent, there is going to be a completion operation. There are many type of transactions that can be facilitated by the operation. One could be to transmit the offer to the user's phone via a barcode which could be taken up to a register and the offer redeemed. Further, there could be a transaction that is conducted on the kiosk to actually receive from value and then information provided in the phone that could be utilized by a retail terminal. In fact, an air-field device could be utilized to transmit this to the retail terminal. One example might be a free ticket to a movie. The individual passes by a kiosk and they recognize this person as frequent visitor to the movie and, randomly, an offer's made for a free ticket. The user downloads a free ticket into their device, wanders up to the entry of the movie theater and just places their phone with a near-field device onto a pad and is granted entrance. Of course, there could be a standard associated with the location that would allow them and based upon just their Bluetooth ID that is your ID.

## Claims

1. A method for discovering the presence of hidden neighbor mobile devices in a common environment, comprising the steps of:
moving into a common environment with a given mobile device, the given mobile device having a unique identifier associated therewith;
scanning the common environment within a scan range associated with the given mobile device;
detecting the presence of broadcasting devices scanned by the given mobile device and receiving identification information therefrom;
transmitting the received identification information from the detected broadcasting devices to a central location in addition to the unique identifier of the given mobile device; and
receiving from the central location information about a hidden mobile unit that is not scannable by the given mobile device, but can scan other broadcast devices in the common environment, which information provides an indication that the hidden mobile unit had previously scanned at least one of the broadcast devices scanned by the given mobile device,
wherein the information about the hidden mobile device includes temporal information as to time of scan relative to the time of scan of the given mobile device.

2. The method of claim 1 and further comprising the steps of:
providing a central server at the central location;
the step of transmitting operable to transmit to the central server the received information;

storing at the central server the received information in association with the unique identifier of the given mobile device and wherein, at the central server, there is stored information associated with unique identifiers of other mobile units representing received information from scanned broadcast devices;
comparing a the central server the received information from the given mobile device with corresponding information associated with other mobile devices;
determining if there is another mobile device that has associated therewith received information from at least one overlapping broadcast device as compared to the given mobile device and thus defined as hidden mobile units; and
transmitting back to the given mobile device information regarding the one or ones of the other mobile units determined to be hidden mobile units.

3. The method of claim 2, wherein the time of receiving the information from any broadcast device by any mobile unit is associated with the received information and the step of transmitting back returns information relating to time of receipt of any overlapping received information.

4. The method of claim 2, and further comprising returning contact information in the step of transmitting back relating to the one of the mobile units determined to be a hidden mobile unit.

5. The method of claim 4, further comprising the given mobile unit using the contact information to contact the hidden mobile unit.

6. A method for discovering the presence of hidden neighbor mobile devices in a common environment, comprising the steps of:
moving into a common environment with a given mobile device, the given mobile device having a unique identifier associated therewith;
scanning the common environment within a scan range associated with the given mobile device;
detecting the presence of broadcasting devices scanned by the given mobile device and receiving identification information therefrom;
providing a central server at a central location;
transmitting the received identification information from the detected broadcasting devices to the central location in addition to the unique identifier of the given mobile device, the step of transmitting operable to transmit to the central server the received information;
receiving from the central location information about a hidden mobile unit that is not scannable by the given mobile device, but can scan other broadcast devices in the common environment, which information provides an indication that the hidden mobile unit had previously scanned at least one of the broadcast devices scanned by the given mobile device;
storing at the central server the received information in association with the unique identifier of the given mobile device and wherein, at the central server, there is stored information associated with unique identifiers of other mobile units representing received information from scanned broadcast devices;
comparing a the central server the received information from the given mobile device with corresponding information associated with other mobile devices;
determining if there is another mobile device that has associated therewith received information from at least one overlapping broadcast device as compared to the given mobile device and thus defined as hidden mobile units; and
transmitting back to the given mobile device information regarding the one or ones of the other mobile units determined to be hidden mobile units.

7. The method of claim 6, wherein the time of receiving the information from any broadcast device by any mobile unit is associated with the received information and the step of transmitting back returns information relating to time of receipt of any overlapping received information.

8. The method of claim 6, and further comprising returning contact information in the step of transmitting back relating to the one of the mobile units determined to be a hidden mobile unit.

9. The method of claim 8, further comprising the given mobile unit using the contact information to contact the hidden mobile unit.

10. A method for determining the presence of mobile units in a common environment where mobile units each uniquely identifiable cannot determine by a scan of the environment that another mobile unit is present, comprising the steps of:
a given mobile unit defining its presence in the common environment by the steps of:
scanning the common environment within a scan range about the given mobile unit to determine the presence of broadcasting devices within the scan range,
accumulating information from the broadcasting devices determined to be in the scan range,
creating a fingerprint of such devices, and
transmitting the fingerprint to a central location and identified with the given mobile unit;
at the central location:
storing fingerprints from mobile units,
comparing a received fingerprint from the given mobile unit to the stored fingerprints and, if any are substantially similar in accordance with comparison criteria, then returning to the given mobile unit uniquely identifiable information regarding the presence of another mobile unit or units within the scan range of the given mobile unit and

at the given mobile unit, receiving the uniquely identifiable information regarding the presence of another mobile unit or units within the scan range of the given mobile unit,
wherein the fingerprint includes temporal information regarding the time of receipt of information from a broadcasting device at the time of scan.

11. The method of claim 10, wherein the given mobile device can move about the common environment and the fingerprint contains information regarding identifiers associated with a scanned broadcasting device and the time of scan and the fingerprint represents such information over a period of time and at different locations within the common location.

12. The method of claim 11, wherein the comparison criteria includes time criteria such that a mobile unit is not identified to the given mobile unit unless the time of scan for any overlapping broadcasting devices is within a predetermined capture window.

13. The method of claim of claim 10, wherein the uniquely identifying information allows the given mobile unit to contact the mobile unit determined to be in the presence thereof and the given mobile unit making such contact.

14. A method for determining the presence of mobile units and controlling such in a common environment where mobile units each uniquely identifiable cannot determine by a scan of the environment that another mobile unit is present, comprising the steps of:
a given mobile unit defining its presence in the common environment by launching a proprietary application, and:
scanning the common environment within a scan range about the given mobile unit to determine the presence of broadcasting devices within the scan range,
accumulating information from the broadcasting devices determined to be in the scan range,
creating a fingerprint of such devices, and
transmitting the fingerprint to a central location and identified with the given mobile unit;
at the central location:
storing fingerprints from mobile units,
comparing a received fingerprint from the given mobile unit to the stored fingerprints and, if any are substantially similar in accordance with comparison criteria, then returning to the given mobile unit uniquely identifiable information regarding the presence of another mobile unit or units within the scan range of the given mobile unit; and
pushing a command to the determined other mobile units to launch the proprietary application and identify itself to the server in accordance with the steps performed by the given mobile unit.

15. The method of claim 14, and the central server further operable to determine if the other mobile unit is still within the common environment and, if so, causing it to take a predetermine action.

16. The method of claim 14, wherein the fingerprint includes temporal information regarding the time of receipt of information from a broadcasting device at the time of scan.

17. The method of claim 16, wherein the given mobile device can move about the common environment and the fingerprint contains information regarding identifiers associated with a scanned broadcasting device and the time of scan and the fingerprint represents such information over a period of time and at different locations within the common location.

18. The method of claim 17, wherein the comparison criteria includes time criteria such that a mobile unit is not identified to the given mobile unit unless the time of scan for any overlapping broadcasting devices is within a predetermined capture window.

19. The method of claim of claim 16, wherein the uniquely identifying information allows the given mobile unit to contact the mobile unit determined to be in the presence thereof and the given mobile unit making such contact.

20. The method of claim of claim 16, wherein the uniquely identifying information allows the other mobile unit to contact the given mobile unit and the other mobile unit making such contact.