Abstract:

A system and method for detecting mutually supported capabilities between
two or more mobile devices is described. In some cases, the system
transmits a message to a called device requesting information about the
device. In some cases, the transmitted message is answered by a user of
the device. In some cases, the transmitted message is automatically
received and answered by the called device. In some cases, the system
presents information about a service supported by a called party during a
call placed to the party.

Claims:

1. A method of identifying a service supported by a mobile device, the
method comprising:at a first mobile device associated with a first user,
receiving an indication of a voice call placed to a called number for a
second mobile device associated with a second user;querying a database
relating numbers for mobile devices with a service provided by the mobile
devices;determining based on the query that the called number is not
contained within the database;transmitting via the first mobile device a
first message to the second mobile device, wherein the first message is
configured to request information related to one or more services
supported by the first mobile device and possibly supported by the second
mobile device;receiving at the first mobile device a second message from
the second mobile device that indicates one or more services supported by
the second mobile device; andin response to the received second message,
initiating communications between the first mobile device and the second
mobile device using the one or more indicated services supported by the
second mobile device.

2. The method of claim 1, wherein the second message is automatically
generated and transmitted from the second mobile device to the first
mobile device in response to receiving the first message by the second
mobile device.

3. The method of claim 1, wherein the second message includes information
selected by a user associated with the second mobile device.

4. The method of claim 1, wherein the database is stored with the first
mobile device.

5. The method of claim 1, wherein the database is stored with a network
server in communication with the first mobile device.

6. The method of claim 1, wherein the first message includes a unique
identifier associated with the first mobile device.

7. The method of claim 1, wherein initiating communications includes
requesting a selection from the first user for the one or more indicated
services.

8. The method of claim 1, further comprising:updating the database to
relate the one or more indicated services to the called number.

9. The method of claim 1, wherein the first message and second message are
text messages.

10. The method of claim 1, wherein the second device is from a group of
two or more devices.

11. The method of claim 1, wherein initiating communications includes
initiating an interactive application between the first mobile device and
the second mobile device using the one or more indicated services
supported by the second mobile device.

12. The method of claim 1, wherein the second message includes information
input by a user associated with the second mobile device.

13. A system for enhancing a phone call between two mobile devices, the
system comprising:an input component, wherein the input component is
configured to receive input from a user associated with a first mobile
device to initiate placement of a call to a party associated with a
second mobile device;a call component, wherein the call component is
configured to receive the input and place a call to the party associated
with the second mobile device;a determination component, wherein the
determination component is configured to determine whether the second
mobile device supports one or more services supported by the first mobile
device;a display component, wherein the display component is configured
to display to the user information about services supported by both
mobile devices for selection by the user; andan implementation component,
wherein the implementation component is configured to implement one or
more services selected by the user.

14. The system of claim 13, further comprising:a message component,
wherein the message component is configured to transmit a message to the
second mobile device when the determine component does not determine any
services supported by both devices, the message requesting information
related to services supported by the second mobile device.

15. The system of claim 13, wherein the determination component queries a
database relating phone numbers with services provided by devices
associated with the phone numbers.

16. The system of claim 13, wherein the display component displays a
request to the user to implement one or more of the services supported by
both mobile devices.

17. A method performed by a mobile device for determining capabilities of
other mobile devices, the method comprising:automatically transmitting a
first message to a destination mobile device associated with a user,
wherein the message is configured to request information related to a
service supported by the destination mobile device; andreceiving a second
message from the destination mobile device that answers the request.

18. A method performed by a cell phone associated with a user, the method
comprising:receiving a first message related to another cell phone in
response to a communication received by the cell phone, wherein the
message requests whether the user wishes to use a service supported by
the other cell phone,wherein the message includes at least two
user-selectable options;receiving user input selecting one of the at
least two user-selectable options; and,wherein if the selected option
includes declining to use the service supported by the other cell phone,
and if a threshold number of times declining to use the service has not
been reached, then providing a second message at another time again
asking whether the user wishes to use the service in response to a later
received call.

[0002]Currently, mobile devices are capable of providing numerous services
to a user. In addition to voice calls, mobile devices provide text
messaging, instant messaging, cameras, music players, video services,
voice over IP (such as via Skype), online or multiplayer games (such as
World of Warcraft), bill pay, and so on.

[0003]However, for a variety of reasons, users of mobile devices are not
taking advantage of the capabilities provided to them by their mobile
devices. In some cases, one mobile device may have certain services,
while other mobile devices may have other services. In some cases, a user
of a mobile device may be unaware of services of his/her device, or of
services on other users' devices, such as devices called by the user.
These and other problems exist with respect to providing services to
mobile device users.

BRIEF DESCRIPTION OF THE DRAWINGS

[0004]FIG. 1 is a schematic diagram illustrating a mobile device on which
systems of detecting enhanced services may be implemented.

[0005]FIGS. 2A-2B are flow diagrams illustrating a method of detecting
enhanced services on a mobile device.

[0006]FIG. 3 is a mobile device display illustrating an example screen for
presenting options during calls.

DETAILED DESCRIPTION

[0007]A system and method for detecting the capabilities of mobile devices
is disclosed. The system, via a user's mobile device, may detect,
determine, and/or identify some or all enhanced services provided by
another mobile device called by the user. In some examples, the system
sends a short message from the user's mobile device to the called mobile
device in order to determine services and/or capabilities provided by the
called device. In some examples, the system appends a machine-readable
code or identifier to the number used to call the device. The message
and/or information may prompt the called device to return a message or
information to the user device that identifies or otherwise indicates the
capabilities of the called device. In some cases, the returned data may
identify some or all capabilities of the called device. Alternatively or
additionally, the returned data may identify a supported service or
capability specifically requested by the user device.

[0008]In some cases, the system presents information about services
supported by the called party when a call is being made. The information
may ask the user to select a service, or may provide information about
services supported by the called device. For example, while a call is
placed to a called party, the system may determine that the called party
supports a service and query the user to proceed with the call using the
service. Upon receiving a positive indication from the user, the system
connects or updates the call with the service.

[0009]The technology will now be described with respect to various
examples. The following description provides specific details for a
thorough understanding of, and enabling description for, these examples
of the technology. However, one skilled in the art will understand that
the technology may be practiced without these details. In other
instances, well-known structures and functions have not been shown or
described in detail to avoid unnecessarily obscuring the description of
the examples of the technology.

[0010]It is intended that the terminology used in the description
presented below be interpreted in its broadest reasonable manner, even
though it is being used in conjunction with a detailed description of
certain specific examples of the technology. Certain terms may even be
emphasized below; however, any terminology intended to be interpreted in
any restricted manner will be overtly and specifically defined as such in
this Detailed Description section.

Suitable System

[0011]FIG. 1 illustrates a mobile device 100 on which can be implemented
in accordance with several examples of the technology. A
receiver/demodulator 104 receives a transmitted signal via an antenna 102
and reconstructs the original transmitted signal. The transmitted signal
is sent to a microcontroller 106, which consists of a decoder 108, a
processor 112, and RAM (Random Access Memory) 114. The decoder 108
translates the signals into meaningful data and interfaces to other
devices. Decoded data, along with subscriber inputs 110, are sent to the
processor 112. In addition, the mobile device may include optional
components, such as an automated data collection 120 unit linked to the
processor 112, which can include an automated RFID (Radio Frequency
Identification) tag reader, a magnetic card swipe reader, a bar code
reader, and others. Additionally, or alternatively, the mobile device may
include a biometric reader (e.g., thumbprint reader, voice fingerprint
recognition functionality, etc.), and/or a media output device (e.g., MP3
player, television tuner/player, camera, speaker, headphones, etc.) 120.
The mobile device may also include a subscriber identity module (SIM)
122. The output of the processor 112 can be stored in a programmable
non-volatile memory 116 or in the RAM memory 118.

[0012]Memory 116, 118, or memory of the SIM card 122 may contain a
detection component 140 that provides data, scripts, applications and
other information required to detect the services and/or capabilities of
mobile devices that interact with the mobile device 100. Additionally,
the device may contain a detection component 140 (described herein) as a
separate component outside of the device memory components 116, 118 or
the SIM device 122.

[0013]FIG. 1 and the discussion herein provide a brief, general
description of a suitable telecommunications or computing environment in
which the technology can be implemented. Although not required, aspects
of the technology are described in the general context of
computer-executable instructions, such as routines executed by a
general-purpose computer, e.g., mobile device, a server computer, or
personal computer. Those skilled in the relevant art will appreciate that
the technology can be practiced with other communications, data
processing, or computer system configurations, including: Internet
appliances, hand-held devices (including personal digital assistants
(PDAs)), wearable computers, all manner of cellular or mobile phones,
multi-processor systems, microprocessor-based or programmable consumer
electronics, set-top boxes, network PCs, mini-computers, mainframe
computers, and the like. Indeed, the terms "computer," "host," and "host
computer," and "mobile device" and "handset" are generally used
interchangeably herein, and refer to any of the above devices and
systems, as well as any data processor. Indeed, aspects of the invention
apply not only to mobile devices, but also to stationary ones with
network connections, such as an appliance (refrigerator) having a
wireless LAN connection (WiFi).

[0014]Aspects of the technology can be embodied in a special purpose
computing device or data processor that is specifically programmed,
configured, or constructed to perform one or more of the
computer-executable instructions explained in detail herein. Aspects of
the technology may also be practiced in distributed computing
environments where tasks or modules are performed by remote processing
devices, which are linked through a communications network, such as a
Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a
distributed computing environment, program modules may be located in both
local and remote memory storage devices.

[0015]Aspects of the technology may be stored or distributed on
computer-readable media, including magnetically or optically readable
computer discs, hard-wired or preprogrammed chips (e.g., EEPROM
semiconductor chips), nanotechnology memory, biological memory, or other
data storage media. Indeed, computer implemented instructions, data
structures, screen displays, and other data under aspects of the
technology may be distributed over the Internet or over other networks
(including wireless networks), on a propagated signal on a propagation
medium (e.g., an electromagnetic wave(s), a sound wave, etc.) over a
period of time, or they may be provided on any analog or digital network
(packet switched, circuit switched, or other scheme). Those skilled in
the relevant art will recognize that portions of the technology reside on
a server computer, while corresponding portions reside on a client
computer such as a mobile or portable device, and thus, while certain
hardware platforms are described herein, aspects of the technology are
equally applicable to nodes on a network. In an alternative embodiment,
the mobile device or portable device may represent the server portion,
while the server may represent the client portion.

[0016]While the examples herein employ software stored on the mobile
device, the scripts and other software described herein may be hard coded
into the mobile device (e.g. stored in EEPROM, PROM, etc.). Further, the
above functionality may be implemented without scripts or other special
modules.

Detection of Capabilities of Mobile Devices

[0017]As described herein, in some cases a detection component 140 is
configured to determine if a mobile device, in communication with device
100, supports certain enhancements. Referring to FIGS. 2A-2B, a flow
diagram illustrating a routine 200 for detecting enhanced services on a
mobile device is shown. The system may perform some or all steps of
routine 200 when determining enhanced services supported by a mobile
device.

[0018]Beginning at block 202, a user of a mobile device 100 initiates a
voice or other call to another device. For example, the user may input a
number of the called party, may select a contact from a list of contacts
stored on the device 100, may reply to a received call, may press a speed
dial key associated with the voice call, may speak the number or
information associated with the called party, and so on.

[0019]In addition, the user may initiate other communications to the other
device. For example, the user may send an SMS message to the device, a
USSD communication, an email message, an instant message, and so on. The
messages may be sent to the phone number of the device, or may be sent to
other addressed associated with the device (e.g., an email address, an
instant messaging address, and so on).

[0020]In addition to or instead of a call or communications being
initiated in 202, the call or communications may have been terminated,
may have been placed or terminated for a certain predetermined number of
times at the given other device (such as a call placed to a phone number
for the third time), the number or communication address may be placed
into a speed dial list, the number or communication address may be placed
into an address book or a contact list, a combination of above triggers
may have occurred, and so on.

[0021]In decision block 204, the routine 200 checks to see if the system
is aware of any previously determined information or indicators that the
called number is capable of enhanced services, which in the depicted
example is video calling or conferencing. For example, the check may
include searching the "numbers flagged for reminder" list 248 for
information associated with the called number. If the system does
retrieve information, such as information related to a called number
being flagged, routine 200 proceeds to block 206 (and, optionally to
block 212), else to block 214. Such a check, and a database storing such
data, can be done locally on the phone. Alternatively or additionally,
thus a check can be done by the wireless network (e.g. by a server with
database in communication with the network). As such, the database and
server can include user account records that indicate services available
for particular users (e.g. whether a user has paid for certain services).
The server may also recognize the type or model of phone and thus
recognize whether the phone is configured for certain services.

[0022]At decision block 206, routine 200 requests information to display a
reminder to the user that the called device supports enhanced services
(e.g., video calling). For example, routine 200 may also proceed to block
212 and increment a counter before requesting information whether to
display the reminder to the user. In another example, the routine 200 in
block 212 may perform a test to determine if a 3G network is currently
available for making a video call. Then, routine 200 may check the count
and display reminders when the count is below a threshold number (e.g.,
only display the reminder the first three times the number is called). In
some cases, routine 200 may always display the reminder, may allow the
user to disable reminders or to request additional reminders at a later
time, and so on). When decision block 206 receives an indication to
display a reminder to a user (such as checking the count and determining
the count is below the threshold), routine 200 proceeds to block 208 and
the device reminds the user that the called number (or, called device
associated with the number) is capable of enhanced services, in this
example video calling. When decision block 206 receives an indication to
not show the reminder, routine 200 ends and the device proceeds with the
call as a normal call.

[0023]An example reminder screen may display: "Did you know you can place
a video call to this number? Try it now?" If the user selects "Yes", the
system may automatically initiate a video call. If the user selects "Not
Now", the reminder is dismissed and may be presented the next time the
number is called or messaged.

[0024]Referring back to decision block 204, when the called number is not
flagged or the system has not already determined capabilities related to
the called number, routine 200 proceeds to decision block 214 and
requests information related to the called number. If the system has
knowledge that the number is configured for video calling, routine 200
proceeds to block 216 and routine 200 ends. If the system does not have
knowledge or information related to the capabilities supported by the
called number, routine 200 proceeds to decision block 218 and checks to
see whether detection features are enabled on the device 100, such as an
auto ask feature that automatically transmits messages to called devices
when prompted. In addition to checking if the detection component 140 is
configured to request information from called numbers, the routine 200 at
decision block 218 may also prompt the device 100 to determine whether
the called number has provided a response at an earlier time. For
example, the phone or cellular network component may contain a database
of called numbers that do not support video calling and routine 200 may
look to the database before requesting information from a called number.
For example, the number may be in the list of "numbers flagged for
reminder" 248.

[0025]When a positive indication is received at decision block 218,
routine 200 proceeds to block 222, else to block 220 and ends. At block
222, the system transmits a short message (SMS) or other signal to the
called number. For example, the SMS may contain some or all machine
readable information used to prompt the device associated with the called
number to return an answer to any requested information. For example, the
system may append a unique identifier or other machine-readable
identifier to the end of an address where the SMS is sent, or into the
extended dialing digits of the called number. Additionally, the SMS may
contain machine-readable information in the message body, in a subject
field, in a return address field, and so on.

[0026]The SMS message may be binary SMS, or some form of text-based SMS,
among others. For example, the communication from one device to the other
may use one or more binary SMS messages, instead of or in addition to one
or more text SMS messages. In other cases, data or messages may be
transmitted over a voice channel in a machine-recognizable manner (e.g.,
one or more DTMF tones).

[0027]In some cases, information associated with enhanced services on
devices may be maintained or stored on one or more network servers, such
as within a directory associating the device phone number with the
enhanced service(s) supported or not supported on that device. The
directory may be a phone directory used to maintain not only addresses,
names, and phone numbers, but other information associated with enhanced
services. In these cases, the device may transmit the SMS message to the
server instead of or in addition to the called device. For public
servers, the SMS message may include a password to be received by the
server.

[0028]In some cases, devices without SIM cards may also transmit messages
with unique identifiers, such as an ESN on a CDMA device). In these
cases, the identifier enables the device to be recognized by the wireless
network without requiring a SIM card by associating the device with a
phone number and allowing (or denying) access to a wireless service based
on this information.

[0029]The system may remind a user of enhanced services the first time a
number is called, and not remind the user again. For example, when the
same number is called after receiving a reminder at an earlier time, the
number is placed in list 248 to avoid transmitting additional reminders.
Also, the system may set the reminder count 212 to a high value to
prevent reminders when subsequent calls are made to the same number.

[0030]In some cases, the called device may contain the client,
application, and or scripts similar to those found in detection component
140, such as a script that invokes and performs some or all steps of
routine 200. Thus, after the SMS is sent by device 100, the system, at
decision block 224, determines if the called device contains a similar
script or client that is capable of reading and replying to SMS messages
containing machine readable information (the "SNAPin Client" depicted in
FIG. 2B).

[0031]Clients on mobile devices may enable mobile operators to deploy
their detection capabilities to many of their users, working on various
different devices, because the client uses portable, customizable
scripts. For example, they may brand the user experience (such as
displays associated with steps 206, 208, or 218). Additionally, upon
detection or non-detection, the clients may facilitate the transfer or
update of services between devices or between network components and
associated devices.

[0032]If the called device contains a script or client, routine 200
proceeds to block 232, else to block 226. At block 226, the user receives
the SMS requesting information related to video calling. Should the user
reply to the message, at decision block 228, with a positive indication
(such as a message containing the word "yes" or simply by replying with a
blank message body), routine 200 proceeds to block 244. Should the user
reply with a negative indication, routine 200 proceeds to block 230 and
ends. In some cases, routine 200 may cause the system to then query the
user about the services not supported by his/her device. When possible,
the system may facilitate providing services to users once it becomes
known the user's device does not include these services.

[0033]At block 232, when the called device contains a similar client or
application, the received SMS triggers the client to run on the called
device and determine the services supported by the called device. Routine
200 may proceed to decision block 234 and determine if the called device
is configured to perform such capabilities. Should the device not be
configured, or be disabled, routine 200 proceeds to block 236 and ends,
else to block 238.

[0034]At decision block 238, the running script attempts to detect if the
device supports video calling. If the device does not support video
calling (or, alternatively, if the called party does not want to indicate
that the device supports video calling), routine proceeds to block 240
and returns a message to the user of device 100 indicating that the
called device does not support video calling, and ends. The called device
may also provide no indication. If the device does support video calling,
routine 200 proceeds to block 242 and indicates to the user of the mobile
device 100 that the called device supports video calling. For example,
the system may send a machine readable SMS to device 100 providing such
an indication.

[0035]After blocks 228 or 242, routine 200 proceeds to block 244 and the
system receives the return SMS at device 100. Reception of the return
message (or a message having a machine-readable or human-readable
positive indication) may trigger a script to begin video calling, to
update a database of numbers known to support video calling, and so on.
At block 246, the system may update a user's contact to list with
information related to video calling. Routine 200 may proceed from block
246 to block 248 and insert the number to provide a reminder to the user
at a later time, may proceed to block 250 and implement a reminder or
other indicators to the user's contact list, or may initiate other
processes, such as video calling between the user and the called party.

[0036]Referring to FIG. 3, a display illustrating an example screen 300 is
shown. Screen 300 includes the called number 310, and a reminder balloon
320 that reminds the user that the device associated with the called
number supports video calling. During the placement of the call, the
system may present options to the user, such as a "Yes" option 322 to
begin video calling, or a "Not Now" option 324 to proceed as a regular
call. Thus, in some cases, the system presents the user calling options
during the placement of a call, during a call, and so on.

[0037]Thus, the system is capable of determining from a users' device
whether a called device contains a certain service or capability. For
example, the system may determine the support of services such as video
calling, audio or video conferencing (such as two-way conferencing),
picture messaging, media playback, and so on. Upon a positive
determination, the system may provide options to a user, such as options
to proceed with a certain service during or instead of the call.

[0038]In some cases, the system is implemented in both the user device 100
and a called device, and uses machine-readable messages sent via the
background of the devices. In these cases, the user and/or users may not
be aware or alerted to the transmission of messages. In some cases, the
system is only implemented on the user device 100. In these cases, the
system may send a human-readable message (such as "Hi, I have video
calling. Do you? Please reply to this message if you have video calling
and would like to use this capability."). The system may then require the
called user to send a return message in order to determine what services
the called party's device supports.

[0039]While video calling is described above as an example, various other
services or features may likewise benefit from the system described
above. For example, the system may help users to employ voice over IP to
communicate using mobile devices. Users may find other or remote players
to join them in playing a multiplayer game, such as a multiplayer video
game hosted by a server that coordinates play between separate user
devices. Text messaging, instant messaging, cameras, music players, and
sharing of images, videos, music or other content are further features
that the above system helps users employ.

CONCLUSION

[0040]The teachings of the technology provided herein can be applied to
other systems, not necessarily the system described above. The elements
and acts of the various examples described above can be combined to
provide further examples. All of the above patents and applications and
other references, including any that may be listed in accompanying filing
papers, are incorporated by reference. Aspects of the technology can be
modified, if necessary, to employ the systems, functions, and concepts of
the various references described above to provide yet further examples of
the technology.

[0041]These and other changes can be made to the technology in light of
the above Detailed Description. While the above description details
certain examples of the technology and describes the best mode
contemplated, no matter how detailed the above appears in text, the
technology can be practiced in many ways. Details of the system may vary
considerably in its implementation details, while still being encompassed
by the technology disclosed herein. As noted above, particular
terminology used when describing certain features or aspects of the
technology should not be taken to imply that the terminology is being
redefined herein to be restricted to any specific characteristics,
features, or aspects of the technology with which that terminology is
associated. In general, the terms used in the following claims should not
be construed to limit the technology to the specific examples disclosed
in the specification, unless the above Detailed Description section
explicitly defines such terms. Accordingly, the actual scope of the
technology encompasses not only the disclosed examples, but also all
equivalent ways of practicing or implementing the technology under the
claims.

[0042]While certain aspects of the technology are presented below in
certain claim forms, the inventors contemplate the various aspects of the
technology in any number of claim forms.