Abstract:
Disclosed are methods, circuits, systems and associated computer executable code for detecting the presence of a mobile computing device in a specific area. Included are means for receiving a message from the mobile device including a coarse location indicator, determining that the received coarse location indicator is in proximity with one or more local (e.g. retailer) stations, and causing at least one of the one or more local stations to transmit a mobile device specific poling signal to the device.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to the fields of computing and communication. More specifically, the present invention relates to methods, circuits, systems and associated computer executable code for localizing and messaging a wireless communication device. 
       SUMMARY OF THE INVENTION 
       [0002]    The present invention includes methods, circuits, apparatus, devices and systems for detecting the presence of a communication device. The present invention further includes methods, circuits, systems and associated computer executable code for localizing and messaging a wireless communication device. According to some embodiments, a mobile communication device may be localized (i.e. determined to be located) at or near a specification location (e.g. at or near a retailer) based on a multistage process. 
         [0003]    According to some embodiments, the multistage process of localizing a communication device may include: (1) ID based coarse location estimation and (2) selective local communication node scanning or poling (wherein the terms scanning and poling are interchangeable) for a transceiver of the communication device. More specifically, when a localization server according to some embodiments of the present invention receives an indication that a target device is located within coarse location, the localization server may check a database to determine whether any associated local communication nodes reside within the coarse location. The localization server may trigger some or all of the local communication nodes located within coarse location to scan for a transceiver of the target device. 
         [0004]    According to further embodiments, one or more local communication nodes may be associated with a specification location. According to yet further embodiments, detection of a transceiver of a communication device by a local communication node associated with a specification location may trigger a message being sent to the communication device, either through the local communication node or through a Client Device Access Network (CDAN) comprised of Access points which can be cellular base stations, wifi routers/hotspots/basestations and more. The message may be a message selected by, or otherwise related to, the specification location—for example a promotional message, a greeting, a reminder of discount and more. 
         [0005]    According to some embodiments, the communication device may include first and second transceivers, each with a unique identifier (e.g. MAC address) and each of a different type adapted to communicate according to different communication parameters (e.g. frequencies, encoding, modulation, protocols, etc.). The first transceiver may be adapted to communicate with a first type of wireless network (for example, Cellular, satellite, hot spots and more) which may be the CDAN and the second transceiver with a second type of wireless network (for example WiFi or Bluetooth). According to some embodiments of the present invention, detection of the communication device (i.e. the first transceiver) within a given coverage area of a wireless network of the first type may trigger one or more appliances (e.g. access points) associated with a second wireless network of the second type, located within the given coverage area, to scan for a transceiver with a MAC address associated with the second transceiver of the communication device. 
         [0006]    According to some embodiments of the present invention, a communication device may download or install an application or a loyalty program module which may initiate or cause the communication device to enroll in the localization server. The enrollment of a communication device may include target device information such as: adding identifiers, parameters, characterizations and information associated with the device to the localization server and stored there such as: network identifier, MAC address(es) and more. The different parameters may be correlated to each other in the server. 
         [0007]    According to some embodiments of the present invention, the communication device may sense a change in location and transmit location estimation information to the localization server. Optionally, location information may only be calculated and/or transmitted if the communication device detects a change in location which is above a predefined threshold. The location estimation information may be calculated and/or detected based on CDAN for example: cellular base-station ID, GPS information, cellular triangulation, Hotspots or other methods of detecting or tracking movement in a communication device. 
         [0008]    According to some embodiments of the present invention, when the localization server receives location estimation information it may identify the device which transmitted the location estimation information and retrieve target device information such as the device MAC address. The localization server may also retrieve one or more specification location stations within a proximity to the coarse location. The localization server may relay target device information such as MAC address(es) to a specification location station which may include a local communication node. The specification location station may utilize the received target device information to scan or poll for a target device. Optionally, a detection of a transceiver of a target device by a local communication node may trigger a message being sent to the communication device, either through the local communication node or through the CDAN. 
         [0009]    According to some embodiments of the present invention, the specification location station may poll the target device. The poling may be carried out, for example, continuously for a predetermined length of time, periodically or intermittently and may be terminated when an acknowledge is received from the target device or after a predetermined length of time. 
         [0010]    According to some embodiments of the present invention, no-click check-in may be obtained or executed; a subscribed communication device may be detected in proximity to a specification location by being in a coarse location that the specification location resides in, while refraining from actively initiating polling for the communication device. In accordance with some embodiments of the invention, the no-click check-in may be obtained while the application may not be running or even open on the background. 
         [0011]    According to some embodiments of the present invention, a push notification server may receive an acknowledgment that the target device has been polled as well as target device information and may subsequently relay a message to the target device via the local communication node or CDAN. The push notification server may store messages to be relayed to target devices. Optionally, more than one message may be stored in association with a specific specification location and additional parameters may designate which of the messages to send to the target device (for example, the time of day, date, additional target device information and more). In accordance with some embodiments the push notification server may be associated with or in proximity to the localization server, the specification location station or other. 
         [0012]    According to some embodiments of the present invention, the communication device may send an acknowledgment when it receives a poling signal and/or when it receives a pushed message. The acknowledgment may be relayed through the specification location station or the CDAN to the push notification server, the localization server in order to: trigger the push notification message being sent, tracking of push message transactions, support tallying of target device visits to specification location, or other functional, system or commercial aspects of some embodiments of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0013]    The subject matter regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of the specification. The invention, however, both as to organization and method of operation, together with objects, features, and advantages thereof, may best be understood by reference to the following detailed description when read with the accompanying drawings in which: 
           [0014]      FIG. 1A  is a diagram illustrating localization of a wireless device according to embodiments of the present invention; 
           [0015]      FIG. 1B  there is a diagram illustrating localization of a wireless device according to embodiments of the present invention; 
           [0016]      FIG. 1C  is a diagram illustrating localization of a wireless device according to embodiments of the present invention; 
           [0017]      FIG. 2  is a diagram illustrating some of the functional elements of an exemplary system for localizing and messaging a wireless communication device in accordance with some embodiments of the present invention; 
           [0018]      FIG. 3A  is a flow chart including steps of various methods by which a system for localizing a wireless communication device in accordance with some embodiments of the present invention may function; 
           [0019]      FIG. 3B  is a flow chart including steps of various methods by which a system for messaging a wireless communication device in accordance with some embodiments of the present invention may function; 
           [0020]      FIG. 3C  is a flow chart including steps of various methods by which initialization of a system for localization and messaging a wireless communication device in accordance with some embodiments of the present invention may function; and 
           [0021]      FIG. 4  is a block diagram ( 2000 ) of a specification location is shown, in accordance with some embodiments of the present invention. 
       
    
    
       [0022]    It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements. 
       DETAILED DESCRIPTION 
       [0023]    In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components and circuits have not been described in detail so as not to obscure the present invention. 
         [0024]    Unless specifically stated otherwise, as apparent from the following discussions, it is appreciated that throughout the specification discussions utilizing terms such as “processing”, “computing”, “calculating”, “determining”, or the like, refer to the action and/or processes of a computer or computing system, or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the computing system&#39;s registers and/or memories into other data similarly represented as physical quantities within the computing system&#39;s memories, registers or other such information storage, transmission or display devices. 
         [0025]    Embodiments of the present invention may include apparatuses for performing the operations herein. This apparatus may be specially constructed for the desired purposes, or it may comprise a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs) electrically programmable read-only memories (EPROMs), electrically erasable and programmable read only memories (EEPROMs), magnetic or optical cards, or any other type of media suitable for storing electronic instructions, and capable of being coupled to a computer system bus. 
         [0026]    The processes and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct a more specialized apparatus to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the inventions as described herein. 
         [0027]    It is understood that a specification location may refer to a retailer, business, store, shopping mall, restaurant, entertainment center, movie theatre, cinema complex, airport, bus stop, train station, franchise or a group of franchises or any other place that may have interest or interest in sending messages associated with that place. 
         [0028]    Now turning to  FIG. 1A , there is shown a diagram ( 100 ) illustrating localization of a wireless device according to embodiments of the present invention. A wireless device, such as wireless communication device  102  may be associated with a crude location such as target device coarse location (TDCL)  104 . A specification location within TDCL  104  such as Retailer  108  and Retailer  106  may receive a signal, via a network such as distributed network  112 , to initiate poling for target device  102 . Optionally, additional information such as an identifier of target device  102  may also be received retailers  108  and  106 . Retailers  106  and  108  may scan for target device  102  within a coverage area such as retailer coverage areas (RCA)  118  and  120  (respectively). Retailer  106  may detect target device  102  within RCA  118 . Thus, an exemplary mode of no-click check-in may be achieved wherein wireless communication device  102  was detected within RCA  118  without a dedicated application turned on or running in the background. 
         [0029]    According to some embodiments, additional retailers such as retailer  110 , which are outside, excluded, extraneous, extrinsic or foreign to Target Device Coarse location  104  may refrain from scanning for target device  102 . 
         [0030]    According to some embodiments, retailer  106  may detect target device  102  within RCA  118  and subsequently may relay information via the distributed network  112 . Detection of target device  102  may cause retailer  108  to conclude poling for target device  102 . 
         [0031]    Turning now to  FIG. 1B , target device there is shown a diagram ( 200 ) illustrating localization of a wireless device according to embodiments of the present invention. It is understood that elements  200 - 220  are substantially similar to elements  100 - 120  of  FIG. 1A  in accordance to some embodiments of the present invention. In this example, retailers  206  and  208  are within TDCL  204  and may poll for target device  202  within RCA  218  and  220  (accordingly). In this example target device  202  is not within RCA  218  or  220 , thus retailers  206  and  208  may not detect target device  202 . 
         [0032]    According to some embodiments, retailers  206  and  208  may pole for target device  202  continuously, intermittently or may stop polling after a predetermined length of time, or when target device  202  is no longer detected within a TDCL in which they reside, or when receiving a signal via distributed network  212  to conclude poling. 
         [0033]    Turning now to  FIG. 1C , target device there is shown a diagram ( 300 ) illustrating localization of a wireless device according to embodiments of the present invention. It is understood that elements  300 - 320  are substantially similar to elements  100 - 120  of  FIG. 1A  in accordance to some embodiments of the present invention. In this example, target device  302  may be associated with a crude location such as target device coarse location (TDCL)  304 . Retailers  310  and  306  may initiate poling for target device  302  and may scan for target device  102  within a coverage area such as retailer coverage areas (RCA)  322  and  318  (respectively). Additional retailers such as retailer  308 , which are outside, excluded, extraneous, extrinsic or foreign to Target Device Coarse location  304  may refrain from scanning for target device  302 . 
         [0034]    Turning now to  FIG. 2  is shown a diagram ( 700 ) illustrating some of the functional elements of an exemplary system for localizing and messaging a wireless communication device in accordance with some embodiments of the present invention. A communication device such as target device  702  may be associated with a crude location such as TDCL  704 . TDCL may be determined based on one or more known location estimation algorithms based on the specific solutions associated with target device  702 . Accordingly, TDCL  704  may be based on Wifi Hotspots, Cellular based, GPS or other depicted by Coarse Location Detection Facilitating Devices/Systems  705  and may be calculated/derived/determined at the target device or relayed to the target device via a gateway or base station (not shown). TDCL  704  may be relayed to a localization server such as localization and messaging server (LMS)  706 . 
         [0035]    According to some embodiments of the present invention, LMS  706  may include a controller such as controller  708 , a communication module such as IP network Communication Module (IPNCM)  710  for carrying out communication to and from LMS  706 , and databases for storing information. Some of the databases may include: an identification database such as Device Identifier Database  712 , for storing unique identifiers of communication devices associated with a first type of network, a secondary identification database such as Device MAC Address Database  714 , for storing unique identifiers of communication devices associated a second or more type of networks, and a specification location database such as retailer location database  716 , for storing geographical/location information of retailers. 
         [0036]    According to some embodiments of the present invention, LMS  706  may receive information (which may include a unique identifier, TDCL and more) from target device  702  via a network such as distributed network  720 . LMS  706  may compare the received unique identifier to Device identifier Database  712  to determine if target device  702  is stored/enrolled in LMS  706 . Furthermore, Device MAC address database  714  may retrieve secondary addresses associated with the same target device. LMS may review/go over/scan retailer location database  716  to determine which (if any) of the stored/enrolled retailers are located within the TDCL  704 . 
         [0037]    In our example, in accordance with some embodiments of the invention, two specification location are depicted as residing within TDCL  704 : retailer  724  and retailer  722 . Accordingly, LMS  706  may relay triggers to the retailers  722  and  724  to scan or pole for target device  702 . Retailer  722  may activate one or more poling signals associated with a specific secondary address, received from device MAC address database  714 . Retailer  724  may substantially proceed as described above for retailer  722 . 
         [0038]    In our example, in accordance with some embodiments, Target device  702  may be detected by retailer  724  and may acknowledge detection. In response to receipt of acknowledgement or detection retailer  724  may signal to LMS  706  that target device  702  is within its retailer coverage area (as described in  FIG. 1A-C ). 
         [0039]    In accordance with some embodiments of the present invention, LMS  706  may respond to a confirmation or notification of detection of target device  702  by notifying a push server, such as push notification server  750 , that a detection has been made. LMS  702  may forward information such as target device unique address associated with a first network and additional unique address associated with secondary networks, RCA in which target device  702  was found, retailer that found target device  702  and more. Furthermore, information such as which message/content of the message to be sent, compiled statistics (for example: tally of visits to retailer  724 ), conditional logic and parameters for determining the content of the message may either be relayed to or stored on push notification server  750 . 
         [0040]    In accordance with some embodiments, push notification server  750  may relay the message to target device  702 , this may be executed via the CDAN or anyone of the additional or secondary networks to access target device  702  including activating local nodes associated with retailer  724 . 
         [0041]    In accordance with some embodiments of the present invention, push notification server  750  may be functionally associated with LMS  706 , or it may be integral or included in LMS  706 . Notification server  750  may further be associated with a group of LMS servers and may also receive information and messages to push from systems other than localization and messaging servers. 
         [0042]    In accordance with some embodiments, a push notification server may be associated with a specification location stations discussed in detail below. 
         [0043]    Turning now to  FIG. 3A , a flow chart ( 800 ) including steps of various methods by which a system for localizing a wireless communication device in accordance with some embodiments of the present invention may function. An application running on a target device may sense a change in location (step  802 ). The application may then transmit coarse location to a LMS (step  804 ). The LMS may check for retailers having messaging stations (retailer stations) within the coarse location (step  806 ). If the LMS detects such retailers within the coarse location, the LMS may send to the one or more identified/detected retailer stations a MAC address of the target device radio(s) (step  808 ). The retailer station may receive a MAC address of the target device radio and may transmit a MAC based poling signal from a local radio included or associated with the retailer station (step  810 ). It is understood with regard to step  808  and step  810 , that the MAC address being sent may be several MAC addresses associated with the same target device (for example: Wifi address, Bluetooth address and more) and that the retailer may poll for the target device on several different local radios (for example, Bluetooth, Wifi or other). The retailer station may receive an acknowledgement from the target device if it is within the retailer&#39;s RCA (step  812 ). If a target device is detected within the RCA of a given retailer, the retailer may further transmit to the LMS an indication that the target device is within the given retailer&#39;s RCA (step  814 ). 
         [0044]    Turning now to  FIG. 3B , a flow chart ( 900 ) including steps of various methods by which a system for messaging a wireless communication device in accordance with some embodiments of the present invention may function. It is understood that step  914  may be substantially the same as step  814  of  FIG. 3A . and that the steps of flow chart  900  may follow some or all of the steps of flow chart  800 . A LMS may check for a unique identifier of the target device (step  916 ), this may also include unique identifiers associated with secondary networks and the LMS may forward the unique identifiers associated with a first or secondary networks to a Push Notification Server, as well as a message associated with the retailer that the target device was found within its RCA (step  918 ). 
         [0045]    Turning now to  FIG. 3C , a flow chart ( 1000 ) including steps of various methods by which initialization of a system for localization and messaging a wireless communication device in accordance with some embodiments of the present invention may function. A target device may subscribe to an application or loyalty program for example by downloading an application for localizing and messaging a communication device (step  1002 ). Optionally a user may then choose different configurations including enabling no-click check in for example. The target device may send to an LMS information relating to the device such as unique identifier of first and/or subsequent networks, personal information (age, income, home location, work location, hobbies etc.), configuration selections (enable no-click check in, selection of preferred retailers) and more (step  1004 ). Upon receipt of the information the LMS may store the information in databases (step  1006 ). The information may be stored in manner to enable withdrawal of secondary identifiers, personal information and more when receiving a unique identifier substantially identical to a stored unique identifier. 
         [0046]    Turning now to  FIG. 4 , a block diagram ( 2000 ) of a specification location is shown, in accordance with some embodiments of the present invention. A specification location such as retailer messaging station (RMS)  2001  may include one or more local communication nodes such as antenna(s)  2006 . Antenna(s)  2006  may include different types of radios such as Wifi, Bluetooth, GPS, cellular and more. RMS  2001  may receive a trigger to its controller  2002  and cause one or more of antenna(s)  2006  to poll for a transceiver of a target device. If a target device is detected within an RCA of RMS  2001 , RMS  2001  may trigger a message to be pushed to the target device. 
         [0047]    According to some embodiments of the present invention, RMS  2001  may also include an updatable memory module such as memory/database  2004 -for storing information associated with a message to be pushed to polled targeted devices: for example: content of a message, parameter dependant messages (how many times has the target device been detected at RMS  2001  etc.). RMS  2001  may further include a messaging server, such as push notification server  2008  for pushing a message to the detected device. The server may be integral or associated with RMS  2001 . Furthermore push notification server  2008  may utilize antenna(s) ( 2006 ) for sending the message.