Communication devices, also called telecommunication devices, have evolved from mobile replacements for the telephone to all-in-one communication, media, and productivity solutions. In addition to voice calling, telecommunication devices now support video and song playback, calendaring, and a variety of other features. Such features include web browsing, video streaming, video chat, and many others. Additionally, communication devices now include a wide variety of device types, including cellular phones, personal computers (PCs), personal digital assistants (PDAs), tablet computers and media players. These devices may be configured with communication clients that enable the devices to be online with respect to a communication service, such as a service for instant messaging, text messaging, video calling, voice calling, social networking, email, or gaming, a media server, or a mobile wallet service.
Often a given user will have multiple communication devices, such as a cellular phone, a tablet computer, and a PC. And frequently, each of the communication devices will be online with respect to a communication service at the same time as the others. Thus, when a new instant message is received by an instant messaging service for a user, that instant message is transmitted to all online communication devices at a same time. The user may, however, be away from one or more of the online communication devices, allowing instant messages to accumulate unread on those devices while they are read on others. This creates an annoying experience for the user when he or she returns to those devices, forcing the user to review, as “unread,” messages that have been read on another device.
The detailed description is set forth with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
This disclosure describes, in part, techniques for selection of an online communication device based on user proximity and for transmission of a communication to the selected online communication device. The techniques may include receiving device data from one or more online communication devices of a user and determining proximity of the devices to that user based on the device data. Alternatively, the techniques may involve receiving, from the one or more online communication devices, proximity information indicative of the proximity of the user to the one or more online communication devices. Based on the determined proximity or proximity information, one of the one or more online communication devices is selected, and a communication is transmitted to the selected online communication device.
In various embodiments, the techniques described herein may be performed entirely or in part by a service that is remote from the online communication devices. The remote service may be associated with or part of a network operator, or may be a separate application service provider reachable via a network. The remote service may include both a proximity service and one or more communication services. The one or more communication services may be associated with any or all of instant messaging, text messaging, video calling, voice calling, email, gaming, or social networking. The online communication devices are referred to as “online” because they are online (e.g., logged in) with respect to the communication service(s). In other embodiments, the proximity service may be integrated into the communication service(s) or provided by a different device or entity than the communication service(s).
Each of one or more of the online communication devices determines device data indicative of user proximity. Each may then use the device data to determine user proximity or may provide the device data to the remote service for the remote service to determine user proximity. Example device data may include one or more of i) data indicating activity of accelerometers or electronic compasses of the one or more online communication devices, ii) readings of heat sensors one or more online communication devices, iii) data indicating detection of the user's voice in ambient sound, iv) device speeds of the one or more online communication devices, v) data indicating connections to a WiFi network by the one or more online communication devices, or vi) an image or images captured by cameras of the one or more online communication devicess. In determining user proximity, the online communication device or the remote service may utilize any type of device data (e.g., device speed) in isolation, or may utilize a combination of device data types (e.g., device speed and detection of a user's voice in ambient sound). Also, the online communication device or the remote service may utilize models associated with any of the device data types (e.g., a model of heat sensor readings).
Example Environment
In various embodiments, the online communication devices 104 may each be any sort of device capable of engaging in wireless communication with other, remote devices. For example, one of the online communication devices 104, such as online communication device 104a or online communication device 104b, may be any of a smart phone, a tablet computer, a personal digital assistant (PDA), a personal computer (PC), a laptop computer, a media center, a work station, etc. The others of the online communication devices 104 may be devices of the same type or of different type(s). An example online communication device 104 is illustrated in
Further, the online communication devices 104 may be multiple devices of one user 102. The user 102 may have a single service plan or multiple service plans that enable the devices 104 of the user 102 to have wireless connectivity over the network 106. The user 102 may also have an account or identifier with one or more communication services 110. For example, the user 102 may have an account with an instant messaging service. Clients for that communication service 110 may be installed on multiple ones of the communication devices 104, enabling the multiple communication devices 104 to be online with respect to the communication service 110 at a same time. And because the multiple communication clients for a communication service may also be associated with a single user account with that service, messages or other sorts of communications directed to that user account may be transmittable to any or all of the clients. As described herein, a proximity service 118 associated with the communication service 110 selects a single one of the online communication devices 104 to receive the message communication.
In various embodiments, the network 108 may represent any sort of network or networks, such as a cellular network (circuit-based, packet-based, or both), a WiFi network, a wide access network (WAN), a local area network (LAN), or the Internet. An example cellular network 108 may include a base station (e.g., a node B or an eNode B), a radio network controller (RNC), and/or a core network. A network 108 that is a non-cellular data network, such as a WiFi network, may include an access point device for sending and receiving wireless transmissions. These access devices may in turn be associated with an Internet service provider that provides connectivity to the Internet. Further, the network 108 may include private network(s), public network(s), or both.
In some embodiments, the remote service 106 may be associated with or part of a network operator (such as the network operator associated with network 108), or may be a separate application service provider reachable via the network 108. The remote service 106 may include both the proximity service 118 and one or more communication services 110. The one or more communication services 110 may be associated with any or all of instant messaging, text messaging, video calling, voice calling, email, gaming, or social networking. And as mentioned above, the online communication devices 104 are referred to as “online” because they are online (e.g., logged in) with respect to the communication service(s) 110. In other embodiments, the proximity service 118 may be integrated into the communication service(s) 110 or provided by a different entity than the communication service(s) 110.
As is further illustrated in
In various embodiments, that device data may include one or more of i) data indicating activity of accelerometers or electronic compasses of an online communication device 104, ii) reading(s) of heat sensor(s) of the online communication device 104, iii) data indicating detection of the user's voice in ambient sound, iv) device speed(s) of the online communication device 104, v) data indicating connection(s) to a WiFi network by the online communication device 104, or vi) an image or images captured by a camera of the online communication device 104. They gathering of the device data by components of the online communication devices 104 is described below with respect to
Upon gathering the device data, each of the online communication devices 104 may provide the device data to the proximity service 118 or may determine proximity of the user 102 based on the device data. Prior to determining proximity, the online communication device 104 or the proximity service 118 may perform one or more operations on device data to determine, for example, whether the online communication device 104 is moving. If multiple electronic compass readings or base station identifiers indicate motion, the online communication device 104 or the proximity service 118 may determine that the online communication device 104 is moving. Further, one or more accelerometer readings may indicate that the online communication device 104 is moving.
Determination of proximity by either the online communication device 104 or the proximity service 118 may be based on rules, criteria, and/or models. For example, the online communication device 104 or the proximity service 118 may compare an item of device data, such as a device speed or heat sensor reading, to a threshold or to a model. A model may be used because there may be expected fluctuations of the item of device data, and a simply threshold may not adequately account for the fluctuations. The models may also include a model of the user's voice that may be used to detect that voice in an audio input stream of ambient sound. Further, the online communication device 104 or the proximity service 118 may apply rules requiring that either a single item of device data meet a threshold or model, that or a combination of items of device data meet thresholds or models (“meet a model” means that an item of device data be either outside of a range of data gathered when a user is not proximate or inside a range of data gathered when a user is proximate). The use of a combination allows the online communication device 104 or the proximity service 118 to determine user proximity with a higher degree of confidence. For example, a device speed or data from an accelerometer or electronic compass indicates that the online communication device 104 is moving, and movement may be indicative of user proximity. In some circumstances (e.g., plane flight, where the online communication device 104 is in baggage), the data indicating movement may be a false positive. Accordingly, the online communication device 104 or the proximity service 118 may require that an additional factor (e.g., user voice or a heat sensor reading) be met in order to determine user proximity. If user proximity is determined by the online communication device 104, the online communication device 104 may then provide proximity information indicative of the proximity determination to the proximity service 118.
In various embodiments, upon determining user proximity or upon receiving proximity information, the proximity service 118 may select one or more of the online communication devices 104 based on the determined proximity or proximity information. If only a single online communication device is proximate to the user 102 (as is illustrated in
Upon receiving or retrieving the selection of the one or more online communication devices 104, the communication service(s) 110 may transmit any messages or other communications 120 directed to an account of the user 102 to the selected one or more online communication devices 104. The retrieving or receiving may be performed periodically or on an event-driven basis. For example, when a message or communication 120 directed to the account of the user 102 is received, a communication service may receive or retrieve the selection of the one or more online communication devices 104. If, in contrast, the selection is retrieved or received periodically, that selection is used for a period of time for any incoming messages or communications 120 directed to the account of the user 102. In some embodiments, if no online communication device is proximate to the user 102, the communication service(s) 110 may queue the messages or communications 120 until an online communication device 102 is proximate to the user 102.
In some embodiments, in addition to transmitting the message or communication 120 to the selected one or more online communication devices 104, the communication service(s) 110 may transmit the message or communication 120 to other online communication device(s) 104 based on user preferences, regardless of whether those other online communication device(s) 104 are proximate to the user 102. For example, the user 102 may have a preference that messages or communications 120 always be transmitted to the user's tablet computer.
In further embodiments, the communication service(s) 110 may determine that a message or communication 120 remains unread on the selected online communication device(s) 104 to which the message or communication 120 was transmitted. The communication service(s) 110 may make this determination if the message or communication 120 is unread after a period of time starting when the message or communication 120 was transmitted. The communication service(s) 110 may then transmit the unread message or communication 120 to the other online communication devices 104 of the user 102. Alternatively or additionally, the communication service(s) 110 may make this determination when the communication service(s) 110 receives or retrieves information indicating that the user 102 is proximate to a different online communication device 104. The communication service(s) 110 may then transmit the unread message to the different online communication device 104.
In various embodiments, the communication service(s) 110 may periodically synchronizing messages and communications 120 across the online communication devices 104 of the user 102, delivering the messages and communication 120 to those other online communication devices 104 as they become proximate to the user 102 or after a period of time.
Example Remote Service Device
As illustrated, the remote service device 200 comprises a system memory 202 storing a communication service 110, user data 204, a proximity service 118, models 206, and user preferences 208. Also, the remote service device 200 includes processor(s) 210, a removable storage 212 and non-removable storage 214, input device(s) 216, output device(s) 218, and transceivers 220.
In various embodiments, system memory 202 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The communication service 110, user data 204, proximity service 118, models 206, and user preferences 208 stored in the system memory 202 may comprise methods, threads, processes, applications or any other sort of executable instructions. The communication service 110, user data 204, proximity service 118, models 206, and user preferences 208 may also include files and databases. Further description of the communication service 110 and the proximity service 118 is provided above.
The user data 204 may be data utilized by the communication service(s) 110 to determine whether the user 102 is online and to authenticate the user 102 when the user logs in. Thus, the user data 204 may comprise a list of the communication devices of the user 102 that are online communication devices 104. Also, that list may be maintained and updated based on log-ins or authentications using the log-in/authentication information maintained in the user data 204.
The models 206 may be models specific to types of device data of individual online communication devices 104 or to types of device data across multiple online communication devices 104. For example, a model of the voice of the user 102 may be used across all of the online communication devices 104 of the user 102. Heat sensor readings may, in contrast, be specific to an individual online communication device 104 of the user 102. The models 206 may be used by the proximity service 118 in the manner described above.
The user preferences 208 may be transmission preferences specific to the user 102 that are used by the proximity service 118 in selecting online communication device(s) 104 and/or used by the communication service(s) 110 in determining which online communication device(s) 104 messages or communications 120 should be transmitted to. For example, the user preferences 208 may specify that the user 102 prefers messages or communications 120 be transmitted to a smart phone rather than a tablet computer when booth are proximate to the user 102. Further, the user preferences 208 may include a preference that messages or communications 120 always be transmitted to a smart phone of the user 102, regardless of whether the smart phone is proximate to the user 102.
In some embodiments, the processor(s) 210 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or other processing unit or component known in the art.
The remote service device 200 also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
The remote service device 200 also has input device(s) 216, such as a keypad, a cursor control, a touch-sensitive display, voice input device, etc., and output device(s) 218 such as a display, speakers, etc. These devices are well known in the art and need not be discussed at length here.
As illustrated in
Example Online Communication Device
In various embodiments, system memory 302 is volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.) or some combination of the two. The online communication clients 304, a proximity client 306, models 308, and user preferences 310 stored in the system memory 302 may comprise methods, threads, processes, applications or any other sort of executable instructions. The online communication clients 304, a proximity client 306, models 308, and user preferences 310 may also include files and databases.
In some embodiments, online communication client(s) 304 may be applications of the online communication device 104 associated with corresponding communication service(s) 110 (e.g., an instant messaging client for an instant messaging service). These online communication client(s) 304 may be logged into or otherwise authenticated with their corresponding communication service(s) 110 and are thus referred to as “online.” The online communication client(s) 304 may send messages or other communications and may receive messages or other communications 120. The online communication client(s) 304 may also respond to status requests from their corresponding communication service(s) 110 inquiring as to whether particular messages or other communications 120 are read or unread.
In various embodiments the proximity client 306 may receive device data from any or all of the heat sensor 318, the GPS 320, the electronic compass 322, the accelerometer 324, the microphone 326, the camera 328, the other input device(s) 330, or the wireless transceiver(s) 334. Using this device data, the proximity client 306 may determine proximity of the user 102, in the manner described above, and may provide an indication of that determined proximity to the proximity service 118 as proximity information 116. Alternatively, the proximity client 306 may provide the received device data to the proximity service 118 as device data 116 that is used by the proximity service 118 to determine the proximity of the user 102 to the online communication device 104.
In further embodiments, models 308 may be models specific to types of device data. For example, the models 308 may include a model of the voice of the user 102 or a model of heat sensor readings. The models 308 may be used by the proximity client 306 in the manner described above.
In various embodiments, user preferences 310 may be transmission preferences specific to the user 102 that are used by the proximity service 118 in selecting online communication device(s) 104 and/or used by the communication service(s) 110 in determining which online communication device(s) 104 messages or communications 120 should be transmitted to. These user preferences 310 may be entered by the user 102 on the online communication device 104 and transmitted to the proximity service 118 and/or communication service(s) 110, as appropriate.
In some embodiments, the processor(s) 312 is a central processing unit (CPU), a graphics processing unit (GPU), or both CPU and GPU, or other processing unit or component known in the art.
The online communication device 104 also includes additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
In some embodiments, the heat sensor 318 may be any sort of instrumentality capable of measuring heat, as well as logical interfaces coupled to the instrumentality and capable of delivering or providing a heat reading to the proximity client 306. For example, the heat sensor 318 may be a heat sensor coupled to a battery of the online communication device 104
The GPS 320 may be functionality and logic capable of wirelessly communicating with a GPS system to receive GPS locations, such as GPS coordinates, from the GPS system. The GPS 320 may expose those GPS locations to a platform or applications of the online communication device 104, such as the proximity client 306.
The electronic compass 322 may capture directional orientations of the online communication device 104 and may expose those orientations (e.g., facing north-northwest) to a platform or applications of the online communication device 104, such as the proximity client 306.
The accelerometer 324 measures acceleration of the online communication device 104 and may expose that/those acceleration measurements to a platform or applications of the online communication device 104, such as the proximity client 306.
The microphone 326 may be any sort of microphone capable of capturing ambient sound when activated and of providing that recorded ambient sound to a platform or applications of the online communication device 104, such as the proximity client 306.
In various embodiments, the camera 328 may be any sort of camera capable of capturing an image or images and of exposing the image or images to a platform or applications of the online communication device 104, such as the proximity client 306.
Online communication device 104 also has other input device(s) 330, in addition to the microphone 326 and camera 328, such as a keypad, a cursor control, a touch-sensitive display, etc. Also, the online communication device 104 includes output device(s) 332, such as a display, speakers, etc. These devices are well known in the art and need not be discussed at length here.
As illustrated in
Example Processes
At 404, a proximity service receives device data indicative of whether the user is proximate to one or more of the plurality of online communication devices. The one or more of the plurality of online communication devices may be a subset of the plurality of online communication devices. The device data may include one or more of i) data indicating activity of accelerometers or electronic compasses of the one or more online communication devices, ii) readings of heat sensors of the one or more online communication devices, iii) data indicating detection of the user's voice in ambient sound, iv) device speeds of the one or more online communication devices, v) data indicating connections to a WiFi network by the one or more online communication devices, or vi) image(s) captured by camera(s) of the one or more online communication devices. The device speeds may be determined using cell site handover information or global positioning system (GPS) information. Also, each of the one or more online communication devices may use a model of accelerometer data, electronic compass data, heat sensor readings, voice or sound data, or device speed data. Further, the one or more online communication devices may utilize rules or criteria to select factors to use in determining the proximity of the user. In some embodiments, the proximity service utilizes a combination of at least two of factors i)-v).
At 406, the proximity service determines proximity of the user to the one or more online communication devices based on the device data.
At 408, the proximity service selects one of the online communication devices based at least in part on the determined proximity. At 408a, the proximity service further selects the one of the online communication devices based on a user preference for selecting among multiple proximate, online communication devices.
At 410, the communication service transmits a communication to the selected online communication device.
At 412, based on a user preference, the communication service transmits the communication to an additional one of the plurality of online communication devices regardless of whether the additional one of the plurality of online communication devices is proximate to the user.
At 414, the communication service transmits the communication to others of the plurality of online communication devices when user is proximate to those others of the plurality of online communication devices or after completion of a time period beginning when the communication is transmitted to the selected online communication device.
At 416, the proximity service determines that the user proximate at a different online communication device than the selected online communication device. At 418, the communication service determines that the transmitted communication is unread on the selected online communication device. At 420, the communication service then transmits the communication to the different online communication device.
At 422, the communication service determines the completion of a time period beginning when the communication is transmitted to the selected online communication device. At 424, the communication service determines that the transmitted communication is unread on the selected online communication device. At 426, the communication device then transmits the communication to one or more others of the plurality of online communication devices.
At 504, a proximity service receives proximity information indicating whether the user is proximate to one or more of the plurality of online communication devices. The one or more of the plurality of online communication devices may be a subset of the plurality of online communication devices. The proximity information reflects determinations of user proximity made by the one or more online communication devices based on device data of those online communication devices. The device data may include one or more of i) data indicating activity of accelerometers or electronic compasses of the one or more online communication devices, ii) readings of heat sensors of the one or more online communication devices, iii) data indicating detection of the user's voice in ambient sound, iv) device speeds of the one or more online communication devices, v) data indicating connections to a WiFi network by the one or more online communication devices, or vi) image(s) captured by camera(s) of the one or more online communication devices. The device speeds may be determined using cell site handover information or global positioning system (GPS) information. Also, each of the one or more online communication devices may use a model of accelerometer data, electronic compass data, heat sensor readings, voice or sound data, or device speed data. Further, the one or more online communication devices may utilize rules or criteria to select factors to use in determining the proximity of the user. In some embodiments, the proximity service utilizes a combination of at least two of factors i)-v).
At 506, the proximity service selects one of the online communication devices based at least in part on the proximity information. At 506a, the proximity service further selects the one of the online communication devices based on a user preference for selecting among multiple proximate, online communication devices.
At 508, the communication service transmits a communication to the selected online communication device.
At 510, based on a user preference, the communication service transmits the communication to an additional one of the plurality of online communication devices regardless of whether the additional one of the plurality of online communication devices is proximate to the user.
At 512, the communication service transmits the communication to others of the plurality of online communication devices when user is proximate to those others of the plurality of online communication devices or after completion of a time period beginning when the communication is transmitted to the selected online communication device.
At 514, the proximity service determines that the user proximate at a different online communication device than the selected online communication device. At 516, the communication service determines that the transmitted communication is unread on the selected online communication device. At 518, the communication service then transmits the communication to the different online communication device.
At 520, the communication service determines the completion of a time period beginning when the communication is transmitted to the selected online communication device. At 522, the communication service determines that the transmitted communication is unread on the selected online communication device. At 524, the communication device then transmits the communication to one or more others of the plurality of online communication devices.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claims.
Number | Name | Date | Kind |
---|---|---|---|
6108709 | Shinomura | Aug 2000 | A |
6865385 | Kohda et al. | Mar 2005 | B1 |
7298831 | Keohane et al. | Nov 2007 | B1 |
7424302 | Carpenter | Sep 2008 | B2 |
7461378 | Beyda | Dec 2008 | B2 |
7496630 | Arellano | Feb 2009 | B2 |
7716289 | Malik | May 2010 | B2 |
7870264 | Clark et al. | Jan 2011 | B2 |
8103304 | Miller | Jan 2012 | B1 |
8634788 | Wright et al. | Jan 2014 | B2 |
8799380 | Odell et al. | Aug 2014 | B2 |
8823507 | Touloumtzis | Sep 2014 | B1 |
8849253 | Nasir | Sep 2014 | B2 |
8856383 | Beninato | Oct 2014 | B2 |
9491251 | Deeter | Nov 2016 | B2 |
20030200266 | Henry | Oct 2003 | A1 |
20060073839 | Gorday et al. | Apr 2006 | A1 |
20070165623 | Clark | Jul 2007 | A1 |
20080025307 | Preiss | Jan 2008 | A1 |
20080225760 | Iyer | Sep 2008 | A1 |
20090254975 | Tumbull | Oct 2009 | A1 |
20100262361 | Matz | Oct 2010 | A1 |
20110083111 | Forutanpour et al. | Apr 2011 | A1 |
20120036261 | Salazar | Feb 2012 | A1 |
20120079018 | Rottler | Mar 2012 | A1 |
20120117161 | Best | May 2012 | A1 |
20120142378 | Kim | Jun 2012 | A1 |
20130136089 | Gillett | May 2013 | A1 |
20130198307 | Ruetschi | Aug 2013 | A1 |
20130212176 | Koulomzin | Aug 2013 | A1 |
20130331127 | Sabatelli | Dec 2013 | A1 |
20140075464 | McCrea | Mar 2014 | A1 |
20140128021 | Walker et al. | May 2014 | A1 |
20140172953 | Blanksteen | Jun 2014 | A1 |
20150382166 | Ferraz | Dec 2015 | A1 |
Number | Date | Country | |
---|---|---|---|
20140280541 A1 | Sep 2014 | US |