Proximity-based verification of programming instructions

A mobile device, such as a smart phone, generates instructions for a user device, such as a wearable device for a child. The mobile device initiates a local network associated with an attribute, and the user device may access the local network using the attribute when the user device is within a threshold distance of the mobile device. The mobile device generates program data identifying the instructions and the local network attribute, and mobile device forwards the programming data to the user device via another network. For example, the mobile device may generate a short messaging service (SMS) message that includes the programming data. The user device executes the instructions when the user device is able to communicate with the mobile device via the local network.

BACKGROUND INFORMATION

Devices may wirelessly communicate over short distances (e.g., within a few meters) using a wireless network. Devices may communicate over a wireless network using, for example, radio signals (e.g., Bluetooth® or Wi-Fi®) and/or infrared signals (e.g., Infrared Data Association, or IrDA). In a wireless network, two devices may pair (e.g., establish a wireless connection) to exchange data when brought in proximity of one another.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In certain implementations, a mobile device, such as a smart phone, generates instructions for a user device, such as a wearable device for a child. The mobile device establishes a local network associated with an attribute such as a service set identifier (SSID), and the user device may access the local network using the attribute when the user device is within a threshold distance of the mobile device. The mobile device generates program data identifying the instructions and the local network attribute and forwards the programming data to the user device via another network. For example, the mobile device may generate a short messaging service (SMS) message that includes the programming data. The user device executes instructions identified by the data when the user device is able to communicate with the mobile device via the local network. The data may further identify an attribute (such as an SSID) of a wireless network, and the instructions may cause the user device to deactivate itself if the user device cannot access the wireless network based on the attribute (e.g., when the user device moves outside a boundary of the wireless network).

FIG. 1is a diagram showing an exemplary environment100in which the systems and/or methods, described herein, may be implemented. As shown inFIG. 1, environment100may include a mobile device110that forwards: (i) a programming data101via a network130, which may include a network node132and/or a back end device134; and (ii) a local network signal102via a local network140to a user device120. As further shown inFIG. 1, environment100may further include a wireless network150, which is identified to user device120in programming data101. Wireless network150may include access point152that provides wireless network signals103to user device120.

In implementations described herein, mobile device110may refer to a device that is capable of forwarding programming data101to user device120via network130. For example, mobile device110may generate a short messaging system (SMS) message, (such as a text message), an electronic mail, or other communication that is forwarded to user device120via network node132. For example, mobile device110may include a portable communication device such as a smart phone. In other implementations, mobile device110may include a phablet device, a global positioning system (GPS) device, and/or another type of wireless device; a laptop, tablet, or another type of portable computer; a media playing device; a portable gaming system; and/or any other type of mobile computer device with communication and output capabilities.

As described in greater detail below, programming data101may include, for example, (i) data that identify one or more particular devices with which user device120is authorized to communicate; and (ii) authentication data that may be used by user device120to verify that programming data101is sent from mobile device110and that mobile device110is authorized to provide programming data101. Programming data101may include, for example, a mobile directory number (MDN) or other telephone number, a media access control (MAC) address, an internet protocol (IP) address, a mobile equipment identifier (MEID), etc. that may be used by user device120to initiate a voice call to a particular device (e.g., to mobile device110). Authentication data in programming data101may include, for example, data identifying mobile device110(e.g., an associated MDN, MAC address, IP address, MEID, etc.) and/or data associated with user device120(e.g., an associated serial number, pass code, MDN, IP address, MAC address, MEID, etc.). Additionally or alternatively, programming data101may include information identifying wireless network150and/or access point152.

Mobile device110may be associated with multiple MAC addresses, such as separate MAC addresses for different types of communication protocols, such as a first MAC address (e.g., 48 bit address based on a MAC-48 protocol) for Bluetooth® communications and a second, different MAC address (e.g., an extended unique identifier, or EUI, 48 bit or 64 bit address) for data exchanges via a wireless wide area network (WWAN), such as long term evolution (LTE), 4G, 3G, or another wireless data protocol. Programming data101may include data identifying the multiple MAC addresses.

As further described herein, mobile device110may generate local network140. For example, mobile device110may establish local network140within a specific geographic area. Mobile device110may function as a mobile hotspot using one or more of the 802.11x family of networking protocols (e.g., Wi-fi), Bluetooth®, IrDA, to provide local network140.

Mobile device110may include data identifying one or more attributes in programming data101. Additionally or alternatively, mobile device110may control a component (not shown) of local network140(such as an access point, a wireless router, signal repeater, etc.) to cause local network140to have the one or more attributes identified in programming data101.

For example, mobile device110may establish local network140based on a service set identifier (SSID), and mobile device110may generate programming data101that includes the SSID. Programming data101may further include information identifying local network140(e.g., a network name, a transmission frequency, an address of a node, etc.) and/or other information that may be used by user device120to access local network140. For example, programming data101may include a Wi-Fi protected access (WPA) code or a Wi-Fi protected access II (WPA2) code, under IEEE 802.11i, that is used by mobile device110to encrypt local network signal102.

In one implementation, mobile device110may scan other networks that are generated by mobile device110or are within a range of mobile device110and/or user device120, to identify SSIDs or other attributes associated with the other networks. Mobile device110may select an attribute (e.g., a different SSID) that differs from the attributes of the other adjacent networks and generate local network140based on the selected attribute.

In one implementation, mobile device110may receive, from a user, information that is to be included in programming data101. Mobile device110may provide an interface, such as a graphical user interface (GUI), that enables the user to input data regarding user device120(e.g., a pass code) or data identifying an MDN to be dialed from user device120.

As used herein, user device120may be capable of receiving and parsing programming data101to identify information (e.g., MDNs) associated with one or more particular devices (e.g., mobile device110). User device120may further communicate (e.g., place and/or receive a telephone call) only with the one or more particular devices based on the contents of programming data101. To verify that programming data101is received from a legitimate source (and not, for example, from a third-party device that is posing as mobile device110), user device120may use authentication data included in programming data101to verify that programming data101is received from the legitimate source.

User device120may include, for example, a portable communication device such as a mobile phone. In one implementation, user device120may include a wearable communications device that is intended for use by a child. User device120may include components that limit user inputs, to help prevent the child from using user device120to place calls to an unknown device. For example, user device120may include a single input button that may be used by the child to initiate a call to one or more particular devices designated by a parent/guardian. For example, user device120may place a call to mobile device110if the input button is pressed once, and may place a call to another device identified in programming data101(not shown). Moreover, user device120may include limited ability to output data.

User device120may output information identifying its geographic location to one or more devices (e.g., to mobile device110) via network130. For example, user device120may include hardware, software, or a combination thereof to detect a geographic location of user device120. In some embodiments, user device120may use global positioning system (GPS) technology to determine the geographic location of user device120. Other suitable location detection technologies also may be used in other embodiments, such as trilateration techniques, to process radio frequency (RF) signals received by user device120(e.g., from network130) and to estimate the geographic location of user device120.

As further described herein, user device120may use data within programming data101to verify that programming data101is received from mobile device110that is geographically close to user device120(e.g., within the range of local network140). For example, user device120may receive, as local network signal102, a connection request or other message from mobile device110via local network140. User device120may determine whether an SSID or other attributes associated with local network signal102correspond to the attributes identified in programming data101.

Mobile device110may define local network140within a specific geographic area that may be referred to as a “hotspot.” If user device120is located within a region associated with local network140, user device120may connect to mobile device110using the SSID (if local network140supports Wi-fi) or using other data (if local network140supports Bluetooth®, IrDA, or other types of communications). In one implementation, mobile device110may identify network technologies compatible with user device120based on, for example, communications with user device120via network130, and mobile device110may establish local network140using one of the compatible network technologies.

Additionally or alternatively, user device120may attempt to establish a session with mobile device110(or another device) using the SSID and/or other attribute data included in programming data101. For example, user device120may communicate with mobile device110to receive additional programming instructions, to confirm receipt of programming data, provide performance results, etc.

When local network140is generated by mobile device110using Bluetooth®, local network signal102may correspond to a Bluetooth® connection request and may include, for example, data identifying a class of device (CoD) (data identifying a device class or type associated with mobile device110), a list of services offered by mobile device110, and/or other information identifying features associated with mobile device110, an associated manufacturer, communications protocols that are accepted by mobile device110, a clock offset used by mobile device110, etc.

Network130may include any type of network and/or combination of networks. For example, network130may include a local area network (LAN), a wireless LAN (WLAN) (e.g., an 802.11 network), a wide area network (WAN) (e.g., the Internet), a wireless WAN (WWAN) (e.g., a 3GPP System Architecture Evolution (SAE) Long-Term Evolution (LTE) network, a Global System for Mobile Communications (GSM) network, a Universal Mobile Telecommunications System (UMTS) network, a Code Division Multiple Access 2000 (CDMA2000) network, a High-Speed Packet Access (HSPA) network, and/or a Worldwide Interoperability for Microwave Access (WiMAX) network, etc.). Additionally, or alternatively, network120may include a fiber optic network, a metropolitan area network (MAN), an ad hoc network, a virtual network (e.g., a virtual private network (VPN)), a telephone network (e.g., a Public Switched Telephone Network (PSTN)), a cellular network, a Voice over IP (VoIP) network, or another type of network.

Network130may include one or more network nodes132, such as router, content server, application server, message server, switch, etc. that forward programming data101. For example, if programming data101is included in an SMS message, network node132may correspond to a messaging server for identifying a communications path to device120. Network node132may forward programming data101via the communications path. In another example, network node132may augment programming data101. For example, if programming data101includes a first MDN of a device associated with a user, network node132may identify a second MDN of another device associated with the user, and may augment programming data101with the second MDN.

In one implementation, network130may include a backend device134that performs administrative functions for forwarding programming data101and/or local network signal102associated with local network140. For example, backend device134may correspond to an authentication and/or billing server that receives a request from mobile device110to forward a message containing programming data101and/or to function to provide a mobile hotspot related to local network140. For example, backend device134may authenticate mobile device110. If the authentication fails, backend device134may block transmission of programming data101to user device120. In another example, backend device134may determine (e.g., based on contents of programming data101) that programming data101is being sent and/or local network140is being established for the purpose of programming user device120. Network node132may authorize sending programming data101or the establishment of local network140. In yet another example, backend device134may enable mobile device110to provide a mobile hotspot related to local network140, but may limit bandwidth on local network140so that mobile device110may emit local network signal102based on an SSID, but does not perform other data exchanges via local network140. Additionally or alternatively, backend device134may instruct mobile device110to emit local network signal102at a particular power level, frequency, or other transmission attribute that enables user device120to identify an SSID and/or other data identifying mobile device110at a particular range, while minimizing other data exchanges.

Local network140may correspond to a personal area network (“PAN”) or other short-range network via which mobile device110may communicate with user device120. For example, mobile device110and user device120may communicate via Bluetooth®, Wi-Fi, and/or another wireless network. In another example, mobile device110and user device120may communicate via a near field communication (“NFC”), which may typically be associated with a relatively short range and low bandwidth. Additionally or alternatively, mobile device110and user device120may communicate via one or more wired connections. For instance, mobile device110and user device120may communicate via a High Definition Multimedia Interface (“HDMI”) cable, an HDMI Mobile High Definition Link (“MHL”) cable, or another type of wired connection. In some implementations, the PAN may include an “ad-hoc” network, and in some implementations, the PAN may include one or more central routers, hubs, and/or switches. In some implementations, the PAN may include a portion of a local area network (“LAN”), such as a wireless LAN (“WLAN”) (e.g., an 802.11 network).

In other implementations, programming data101may identify attributes (e.g., an SSID value, a WPA or WPA2 code, etc.) associated with wireless network150. Access point152may transmit wireless network signal103using short-range wireless communications, such as Bluetooth®, Wi-Fi, IrDA, NFC or other wireless communications. Wireless network signal103may include, for example, a request to join wireless network150and may identify one or more attributes (e.g., the SSID) associated with wireless network150. When user device120is physically located within network boundary152(e.g., within transmission range of access point152), user device120may receive, from access point152, wireless network signal103. Network boundary154may correspond, for example, a periphery of an amusement park, school, playground, commercial establishment, library, or other facility providing wireless network150. User device120may use information included in programming data101(e.g., an SSID for wireless network150) to verify that wireless network signal103is received from access point152associated with wireless network150and not from another network.

User device120may attempt to access wireless network signal103periodically and/or during different time periods using information included in programming data101. If user device120cannot receive wireless network signal103(e.g., user device120has moved outside of network boundary154), user device120may perform one or more actions. For example, user device120may automatically (e.g., without receiving a user input) initiate a call and/or send an alert message (e.g., via network130) to mobile device110or to another device (e.g., to a police or school official) to indicate that user device120has left a geographic area associated with network boundary154. In another example, if user device120cannot receive wireless network signal103, user device120may deactivate communications to prevent receiving new programming data101and/or to prevent outgoing communications. Although outgoing communications may be stopped, user device120may continue to forward, to mobile device110, GPS or other location information identifying a geographic location associated with user device120.

Access point152may include any hardware or software, such as an 802.11a, b or g router, a wireless access point, a wireless adapter, a base station, etc., that acts as a communication hub for connecting user device120to wireless network150. In another example, access point152may correspond to an LTE eNodeB base station, a Global System for Mobile Communications (GSM) base station, a Code Division Multiple Access (CDMA) base station, and/or another type of base station. In this example, wireless network150may correspond to an LTE, GSM, or CDMA data network.

In certain implementations, user device120may measure and analyze a characteristic associated with wireless network signal103, and user device120may use this characteristic to estimate a distance/direct to access point152. For example, detector120may identify a frequency change, a transmission delay, and/or a received portion of wireless network signal103. In another example, user device120may measure a received signal strength of wireless network signal103. For example, user device120may determine a received signal strength indicator (RSSI) value and/or a received channel power indicator (RCPI) value, as defined in IEEE standard 802.11 for wireless local area networks (WLANs). User device120may provide an indication of a direction toward access point152(e.g., back to an area associated with wireless network150) if user device120crosses network boundary154. For example user device120may indicate a direction associated with stronger signal strengths. In another example, user device120may use the measured attribute of wireless network signal103to determine if user device120is approaching network boundary154. For example, a distance between user device120and access point152may be determined using the Friis transmission formula in Equation 1:
L=20 log10(40πd/λ)  (Eq. 1).
In Equation 1, L corresponds to the signal strength loss in decibels, d corresponds to the distance between user device120and access point152, and λ corresponds to the wavelength of presence message111. User device120may present an alert to a user or to mobile device110if a measured signal strength of wireless network signal103is below a threshold level.

AlthoughFIG. 1shows exemplary components of environment100, in other implementations, environment100may include fewer components, different components, differently arranged components, or additional components than those depicted inFIG. 1. For example, wireless network150may include multiple access points152, and user device120may attempt to access wireless network signal103from a closest one of the access points152. Additionally or alternatively, one or more components of environment100may perform functions described as being performed by one or more other components of environment100.

FIG. 2shows an exemplary communications device200that may correspond to mobile device110. As shown inFIG. 2, communications device200may include a housing210, a speaker220, a display screen230, control buttons240, a microphone250, and/or camera element260. Housing210may include a chassis via which some or all of the components of communications device200are mechanically secured and/or covered. Speaker220may include a component to receive input signals from communications device200and transmit audio output signals, which communicate audible information to a user of communications device200.

Display screen230may include a component to receive input signals and present a visual output in the form of text, images, videos and/or combinations of text, images, and/or videos. In one implementation, display screen230may selectively present a portion of programming data101and/or present a user interface to receive programming data101. In one implementation, display screen230may display text that is input into communications device200, text, images, and/or video received from another device, and/or information regarding incoming or outgoing calls or text messages, emails, media, games, phone books, address books, the current time, etc. In one implementation, display screen230may correspond to a touch screen that includes a component to detect an input. For example, display screen230may include a pressure sensor and to detect touch for inputting content to touch screen230. Alternatively or additionally, display screen230may include a capacitive or field sensor to detect a touch or proximity of the user or an input device to display screen230.

Control buttons240may include one or more buttons that accept, as input, mechanical pressure from the user (e.g., the user presses a control button or combinations of control buttons) and send electrical signals to a processor (not shown) that may cause communications device200to perform one or more operations. For example, control buttons240may be used to cause communications device200to transmit information.

Microphone250may include a component to receive audible information from a user and send, as output, a signal transmitted to another user device, or cause the device to perform one or more operations. In one implementation, microphone250may capture audio data from an associated user, and communications device200may convert the audio data (e.g., by performing a speech-to-text conversion) into a portion of programming data101.

Camera element260may be provided on a front or back side of communications device200, and may include a component to receive, as input, optical signals and send, as output, a digital image or video that can be, for example, viewed on touch screen230, stored in the memory of communications device200, discarded and/or transmitted to another communications device200. In one implementation, camera element260may capture image data, and communication device200may identify a portion of programming data101(e.g., a serial number associated with user device120, an SSID and/or WPA code associated with access point152, etc.) based on the captured image data.

FIG. 3shows an exemplary wearable device300that may correspond to user device120. As shown inFIG. 3, wearable device300may include a housing310, a control button320, a speaker/microphone330, and/or fastening element340. Housing310may include a chassis via which some or all of the components of wearable device300are mechanically secured and/or covered.

Control button320may include a structure to accept, as an input, mechanical pressure from the user (e.g., the user presses control button320) and send signals to a processor (not shown) that may cause wearable device300to perform one or more operations. For example, control button340may be used to initiate a communication to a device identified in programming data101.

Speaker/microphone330may include a component to receive input signals from wearable device300and transmit audio signals for presenting audible information to a user of wearable device300. Speaker/microphone330may also include a component to receive audible information from a user and send, as output, an electrical signal that may be transmitted to another user device, or cause the device to perform one or more operations.

Fastening element340may include a component that may be used to affix wearable device300to an associated user. For example, fastening element340may include a strap or a band and a buckle to hold wearable device300on a wrist of a user.

Thus, in comparison to communications device200, wearable device300may include limited input and/or output functionality. For example, in some implementations, wearable device300may not include a keypad/key pad, touch screen or other input features. In other implementations, wearable device300may not include a display screen to present data to a user. In still other implementations, wearable device300may not be able to output data to acknowledge receipt and/or acceptance of programming data101.

AlthoughFIG. 3depicts exemplary components of wearable device300, in other implementations, wearable device300may include fewer components, additional components, different components, or differently arranged components than illustrated inFIG. 3. Furthermore, one or more components of wearable device300may perform one or more tasks described as being performed by one or more other components of wearable device300. For example, wearable device300may include an interface to couple to a wireless router or other type of access device to receive local network signal102and/or wireless network signal103. Wearable device300may include a sensor to collect information regarding a wearer such as a heart rate, blood pressure, blood composition (oxygen, glucose, etc.) temperature, skin conductivity, etc. Wearable device300may further include a sensor to collect information regarding a surrounding environmental condition, a temperature, altitude, barometric pressure, etc.

FIG. 4is a diagram illustrating exemplary functional components of device400according to an implementation described herein. Mobile device110, user device120, network node132, bank end device134, access point152, or another component of network130, local network140, and/or wireless network150may each include one or more devices400. As shown inFIG. 4, device400may include a bus410, a processing unit420, a memory430, an input unit440, an output unit450, and a communication interface460.

Bus410may include a path that permits communication among the components of device400. Processing unit420may include any type of single-core processor, multi-core processor, microprocessor, latch-based processor, and/or processing logic (or families of processors, microprocessors, and/or processing logics) that interprets and executes instructions. In other embodiments, processing unit420may include an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and/or another type of integrated circuit or processing logic.

Memory430may include any type of dynamic storage device that may store information and/or instructions, for execution by processing unit420, and/or any type of non-volatile storage device that may store information for use by processing unit420. For example, memory430may include a random access memory (RAM) or another type of dynamic storage device, a read-only memory (ROM) device or another type of static storage device, a content addressable memory (CAM), a magnetic and/or optical recording memory device and its corresponding drive (e.g., a hard disk drive, optical drive, etc.), and/or a removable form of memory, such as a flash memory.

Input unit440may allow an operator to input information into device400. Input unit440may include, for example, a keyboard, a mouse, a pen, a microphone, a remote control, an audio capture device, an image and/or video capture device, a touch-screen display, and/or another type of input device. In some embodiments, device400may be managed remotely and may not include input unit440. In other words, device400may be “headless” and may not include a keyboard, for example.

Output unit450may output information to an operator of device400. Output unit450may include a display, a printer, a speaker, and/or another type of output device. For example, device400may include a display, which may include a liquid-crystal display (LCD) for displaying content to the customer. In some embodiments, device400may be managed remotely and may not include output unit450. In other words, device400may be “headless” and may not include a display, for example.

Communication interface460may include a transceiver that enables device400to communicate with other devices and/or systems via wireless communications (e.g., radio frequency, infrared, and/or visual optics, etc.), wired communications (e.g., conductive wire, twisted pair cable, coaxial cable, transmission line, fiber optic cable, and/or waveguide, etc.), or a combination of wireless and wired communications. Communication interface460may include a transmitter that converts baseband signals to radio frequency (RF) signals and/or a receiver that converts RF signals to baseband signals.

Communication interface460may include and/or may be coupled to an antenna for transmitting and receiving RF signals. For example, communication interface460may be coupled to an antenna assembly that includes one or more antennas to transmit and/or receive RF signals. The antenna assembly may, for example, receive data from communication interface460and transmit RF signals associated with the data (e.g., programming data101and/or local network signal102), or the antenna assembly may receive RF signals (e.g., wireless network signal103) and provide them to communication interface460to be processed.

AlthoughFIG. 4shows exemplary components of device400, in other implementations, device400may include fewer components, different components, additional components, or differently arranged components than those depicted inFIG. 4. Additionally or alternatively, one or more components of device400may perform one or more tasks described as being performed by one or more other components of device400.

FIG. 5is a diagram illustrating an exemplary user interface500that may be presented by mobile device200(e.g., via display screen220) in connection with collecting a portion of programming data101. As shown inFIG. 5, user interface500may be a graphical user interface (GUI) that includes one or more input prompts510and one or more input fields520to receive input from a user. Input prompt510may direct a user input data to be included in programming data101and/or used to obtain a portion of programming data101. Input field520may be an area of user interface500that is adapted to receive a user input. Additionally or alternatively, input field520may include a drop down menu or other graphical element for receiving a user input.

Input prompt510may direct a user to enter data that may be used by user device120to verify that programming data110is being sent from mobile device110. For example, input prompt510may direct the user to enter an identifier for user device120(as shown inFIG. 5), and this identifier may include a serial number associated with user device120, an MDN or other telephone number associated with user device120, a pass code, etc. As shown inFIG. 5, user interface500may also include input prompt510that directs a user to enter data identifying a telephone number, such as an MDN associated with a device that may be dialed by user device120(e.g., based on a user selection of control button320).

Another input prompt510in user interface500may direct a user to enter an identifier such as an SSID or other attribute associated with wireless network150. In another example, mobile device110may receive, via user interface500, information identifying a location (e.g., GPS coordinates; a name of a business, school, organization, etc. at the location; and/or the name of a wireless network150at the location). Mobile device110may use this information to identify an attribute (e.g., the SSID) associated with wireless network150. For example, mobile device110may access a database, website, search engine, etc. to determine one or more attributes of wireless network150.

Mobile device110may populate programming data101based on user data submitted via input fields520. Mobile device110may further access additional data and include this additional data in programming data101. For example, mobile device110may automatically (e.g., without receiving a user input) determine information identifying a telephone number, such as an MDN associated with mobile device110, and/or an SSID and/or other data associated with local network provided or managed by mobile device110. Mobile device110may then include the determined information in programming data101along with data submitted via user interface500.

AlthoughFIG. 5shows exemplary elements of user interface500, in other implementations, user interface500may include fewer elements, different elements, additional elements, or differently arranged elements than those depicted inFIG. 5. Additionally or alternatively, one or more elements of user interface500may perform one or more tasks described as being performed by one or more other elements of user interface500.

FIG. 6is a flowchart of a process600of providing programming data101according to an implementation described herein. In some implementations, process600may be performed by mobile device110. In other implementations, some or all of process600may be performed by another device or a group of devices separate from and/or including mobile device110.

Process600may include receiving a programming instruction (block610). For example, as shown inFIG. 5, mobile device110may present a user interface to receive data relates to a programming instruction, such as a MDN associated with a number to be dialed from user device120and/or an data associated wireless network150(such as an identifier, an SSID, location etc.) that may be used to geographically limit the operation of user device120. After receiving the programming instructions, mobile device110may establish local network130(block620). For example, mobile device110may provide for a mobile hotspot to tether user device120to mobile device110. When tethered to mobile device110, user device120can access a data connection (e.g., Internet access) of mobile device110(e.g., a data connection via network130). Mobile device110may provide the tethering with user device110over wireless LAN using Wi-F), over Bluetooth or by physical connection using a cable, such as a universal serial bus (USB).

As shown inFIG. 6, process600may further include generating programming data101that includes the programming instructions and data about local network140(block630). For example, mobile device110may include, in programming data101, information identifying a number (e.g., MDN) that can be dialed by user device120and/or an SSID associated with wireless network150. Additionally, programming data101may include data identifying a time period when the MDN and/or the SSID for wireless network150should be used by user device. For example, programming data101may include an indication that a first MDN, associated with mobile device110should be used (e.g., enabled to be dialed by user device120) during a first time period (e.g., during work hours) and a second MDN for a different device should be used by user device120during a second, different time period. In another example, programming data101may include data identifying when the SSID for wireless network150should be used by user device120. For example, if wireless network150corresponds to an amusement park, programming data101may include an indication that the SSID for wireless network150should be used by user device120during a certain time period when an associated user is visiting the amusement park.

Programming data101may further include authentication data. For example, programming data101may further include data identifying the SSID and/or other attributes associated with local network140generated and/or managed by mobile device110. Programming data101may further include other authentication information, such as a passcode, a serial number for user device120, a MDN for user device120, etc.

Continuing withFIG. 6, process600may further include forwarding the programming data101to user device120(block640). For example, mobile device110may generate an SMS message or other communication to forward programming data101, and mobile device110may forward the communication to user device110via network130. In another implementation, mobile device110may send some instructions, as programming data101, via network130, and other programming instructions via another message and/or via local network140. For example, programming data101include data indentifying the SSID for local network140and may prompt user device to access mobile device110via local network140using the SSID. User device120may then interface with mobile device110via local network140to acquire other programming information, such as an MDN to be dialed out by user device120and/or the SSID for wireless network150. In this example, the additional programming instructions may be carried via local network signal102.

In another example, programming data101include data indentifying the SSID for wireless network150and may prompt user device to interface with access point152via wireless network150using the SSID. User device120may then interface with access point152via wireless network150to acquire other information, such as an instruction to become active when it is located within communications range of access point152(e.g., within network boundary154). In this example, the additional programming instructions may be carried via wireless network signal103.

FIG. 7is a flowchart of a process700for providing data regarding mobile device110to local device150. In some implementations, process700may be performed by user device120. In other implementations, some or all of process700may be performed by another device or a group of devices (e.g., other devices that are not shown inFIG. 1) separate from and/or including user device120.

As shown inFIG. 7, process700may include receiving programming data101via a first network (block710). For example, user device120may receive a SMS or other message carrying programming data101from network130. Additionally or alternatively, user device110may receive an SMS or other message providing data that enables user device120to access programming data101. For example, the message may identify a device, storage location, web page, IP address, domain, etc. where programming data101is stored and/or information (e.g., a pass code) that can be used by user device120to access the stored programming data101. In another example, user device120may receive programming data101or related information from mobile device110via a first communication connection (e.g., Bluetooth®) or via a physical connection such as a USB cable.

In another implementation, user device120may receive programming data101from mobile device110only when mobile device110and user device120are in proximity to each other. For example, mobile device110may provide programming data101to user device120when mobile device110and user device120are located at the shared location (e.g., within the same building). In another example, mobile device110may provide programming data101to user device120via a short-range signal or connection, such as a short-range wireless link like Bluetooth®, via WiFi® (e.g., via local network140), or via a physical cable.

As shown inFIG. 7, process700may also include user device120parsing programming data101to extract data regarding a second network (block720). For example, user device may extract, from programming data101, information identifying an SSID or other attributes (e.g., a WPA code) of the second network, such as local network140. In block720, user device120may further extract other authentication data, such as a pass code, an MDN associated with mobile device110, a serial number of user device120, an MDN associated with user device120, etc. User device120may determine whether the authentication data can be verified (block730). For example, user device120may, in block730, determine whether the authentication data included in programming data matches data previously received and/or stored by user device120. When user device120cannot verify the authentication data (block730-No), user device120may ignore programming data101(block740).

As shown inFIG. 7, when user device120can verify the authentication data (block730—Yes), process700may also include user device120attempting to connect to the second network using the contents of programming data101(block750). For example, user device120may use an SSID or other data associated local network140with attempt to tether to mobile device110via local network140. If user device cannot connect to mobile device110via local network140(block750-No), user device120may ignore programming data101(block740).

If user device120connects to mobile device110via local network140using data identified in programming data101(block750—Yes), user device120may execute instructions in programming data101(block760). For example, if programming data101identifies an MDN, user device120may be programmed to dial out to the identified MDN. For example, user device120may be programmed so that a user selection of control button320causes user device120to dial the identified MDN.

As shown inFIG. 7, process700may further include user device120determining whether programming data101includes information associated with a third boundary network (block770). For example, user device120may determine whether programming data101includes data identifying an SSID or another attribute of wireless network150. If programming data101includes information associated with the third boundary network (block770—Yes), user device120may deactivate itself if a connection to the third network is lost (block780). For example, if user device120cannot receive wireless network signal103from access point152(e.g., user device120moves outside of network boundary154), user device120will not dial out to a specific MDN when control button320is pressed. In another example, user device120may, instead of deactivating itself, may deactivate certain features, such as deactivating communications, while continuing to perform other functions, such as reporting a position of user device120and/or reporting other sensor readings regarding ambient conditions (e.g., temperature, light levels, orientations) or about a user (e.g., heart rate, body temperature, etc.). In yet another example, user device120may perform a particular function when if the connection to the third network is lost, such as forwarding an alert message to mobile device110or another device identified in programming data101.

For example, while a series of blocks have been described with respect toFIGS. 6-7, the order of the blocks and/or signals may be modified in other implementations. Further, non-dependent blocks and/or signals may be performed in parallel.

The term “logic,” as used herein, may refer to a combination of one or more processors configured to execute instructions stored in one or more memory devices, may refer to hardwired circuitry, and/or may refer to a combination thereof. Furthermore, a logic may be included in a single device or may be distributed across multiple, and possibly remote, devices.