A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the software engine and its modules, as it appears in the Patent and Trademark Office Patent file or records, but otherwise reserves all copyright rights whatsoever.
Embodiments generally relate to using metadata to take action on an SMS message on a proprietary system.
Due to certain limitations imposed by proprietary systems, users of wearable electronic devices might not be able to act on incoming SMS messages on the wearable electronic devices.
Apparatuses, systems, and processes are discussed for using metadata to take action on an SMS message on a proprietary system.
In some embodiments, an apparatus has a wearable device application resident in a first memory of a wearable electronic device. The wearable device application can cooperate with one or more processors to execute instructions to present an SMS notification of an SMS message from an SMS application resident in a first memory of a mobile computing device. The SMS notification can display on a display screen of the wearable electronic device. The wearable device application can cooperate with the one or more processors to execute instructions to analyze the SMS notification and create a set of notification data that is derived from the SMS message. The wearable device application can cooperate with the one or more processors to execute instructions to provide the notification data from the SMS notification to either a partner application resident in a second memory of the mobile computing device or a search module over a wide area network, via an input circuit, on a partner server. Either the partner application or the search module can perform a reverse look-up query using the notification data in one or more fields of a contacts list of a user a contacts list of a user resident in the wearable electronic device, mobile computing device, or the partner server. Either the partner application or the search module can construct a first list with potential SMS-message senders derived from search results of the reverse look-up query. The wearable device application can cooperate with the one or more processors to execute instructions to present a user interface with one or more SMS-message actions on the display screen to the user for a user selection of the one or more SMS-message actions. The wearable device application can communicate with the partner server, optionally via the partner application, in order to effect the user selection of the one or more SMS-message actions chosen from the wearable device application without the user needing to open and run the SMS application on the mobile computing device. The partner server has an API module that can communicate in a schema and format required by an API of an SMS provider.
In some embodiments, a system has the foregoing apparatus and one or more servers of at least one SMS provider.
In some embodiments, a method can present an SMS notification of an SMS message with a wearable device application resident in a first memory of a wearable electronic device. The SMS message can be from an SMS application resident in a first memory of a mobile computing device. In some embodiments, the method can provide notification data from the SMS notification to either i) a partner application resident in a second memory of the mobile computing device or ii) a search module over a wide area network, via an input circuit, on a partner server. Either the partner application or the search module can perform a reverse look-up query using the notification data in one or more fields of a contacts list of a user of the wearable electronic device. Either the partner application or the search module can construct a first list with potential SMS-message senders derived from search results of the reverse look-up query. In some embodiments, the method can present one or more SMS-message actions on a display screen of the wearable electronic device to a user of the wearable electronic device for a user selection of the one or more SMS-message actions. The wearable device application can communicate with the partner server, optionally via the partner application, in order to effect the user selection of the one or more SMS-message actions chosen from the wearable device application without the user needing to open and run the SMS application on the mobile computing device. The partner server has an API module that can communicate in a schema and format required by an API of an SMS provider.
The drawings refer to embodiments of the design in which:
While the design is subject to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will herein be described in detail. The design should be understood to not be limited to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the design.
In the following description, numerous specific details are set forth, such as examples of specific data signals, named components, connections, number of memory columns in a group of memory columns, etc., in order to provide a thorough understanding of the present design. It will be apparent, however, to one of ordinary skill in the art that the present design can be practiced without these specific details. In other instances, well known components or methods have not been described in detail but rather in a block diagram in order to avoid unnecessarily obscuring the present design. Further specific numeric references such as first driver, can be made. However, the specific numeric reference should not be interpreted as a literal sequential order but rather interpreted that the first driver is different than a second driver. Thus, the specific details set forth are merely exemplary. The specific details can be varied from and still be contemplated to be within the spirit and scope of the present design. The term coupled is defined as meaning connected either directly to the component or indirectly to the component through another component.
API: Application Programming Interface
SMS: Short Message Service
Due to certain limitations imposed by proprietary systems, users of wearable electronic devices might not be able to take action on SMS messages associated with the proprietary systems. Apparatuses, systems, and processes are discussed for using metadata to take action on SMS messages associated with proprietary systems.
The wearable device application, a partner mobile application, and a server module on the partner server system cooperate to use meta-data from an SMS message in order to be able to generate a reply to the sender's of the SMS message when having to go through a proprietary system located in between the electronic wearable device and the carrier of the SMS service provider. In an embodiment, the wearable device application is resident on a wearable electronic device, such as a smart watch, the partner mobile application, and the server module on the partner server system on the cloud server, all establish communications with each other and cooperate with each other to enable one or more actions such as a Reply, Delete, etc. to an SMS message from a notification of the SMS message.
A wearable device application on a wearable electronic device (e.g., smart watch) can receive an SMS notification (
In accordance with a user-chosen further action, the wearable device application can extract a set of notification data including metadata from the SMS notification and send it to a partner application on the mobile computing device (FIG. 3C). The metadata for a potential SMS message sender can be extracted from the SMS notification, as well as metadata for other SMS message recipients if the SMS message is a group SMS message. The wearable device application can detect the potential SMS message sender of an SMS message from the SMS notification because the potential SMS message sender might be the only entity listed in the SMS notification or a header thereof. The wearable device application can detect the potential SMS message sender of a group SMS message from the SMS notification because the potential SMS message sender might be the first-listed entity in the SMS notification or the header thereof. The wearable device application can detect other SMS message recipients of the group SMS message because the other SMS message recipients might be listed in-between or following delimiters (e.g., commas, semicolons, spaces) in the SMS notification or the header thereof. If the potential SMS message sender or one of the other SMS message recipients is a group, the wearable device application can detect the group (e.g., group name) from the SMS notification or the header thereof.
The partner application can perform a reverse look-up using the metadata across various fields in a contacts application on the mobile computing device (
The partner application can send the list of potential SMS message senders, other SMS message recipients, or the combination thereof to the wearable device application for presentation to the user of the wearable electronic device (
If the user chooses, for example, a reply action (
The partner application can package contact information for the intended SMS-message recipients with the SMS response in a package and send the package to a partner server (
The partner server can reference the package with the contact information for the intended SMS-message recipients against a second database (on the partner server) of SMS providers and users serviced by the SMS providers (
Using a third database (on the partner server) of application programming interfaces (APIs) for the SMS providers, the partner server can determine an API format and schema for each of the intended SMS-message recipients' SMS providers (
Upon confirmation of receipt (e.g., success or failure) from each of the SMS providers, the partner server can confirm receipt to the mobile computing device, which, in turn, can confirm receipt to the wearable electronic device and the user thereof.
The wearable device application can present an SMS notification of an SMS message from an SMS application resident in a first memory of a mobile computing device (
The wearable device application can present one or more SMS-message actions on a display screen for a user selection of the one or more SMS-message actions.
The wearable device application resident in a first memory of a wearable electronic device can cooperate with one or more processors to execute instructions.
The mobile computing device 200 can be communicatively coupled though a number of different connections to a number of different devices and/or systems for sending and receiving signals from each other as requests and responses. In a first example of communicative coupling, the mobile computing device 200 can be communicatively coupled through a wireless or cellular connection 324 with a proprietary server 326 for the mobile computing device 200. The mobile computing device 200 may utilize a proprietary operating system or a proprietary application that passes SMS notifications to the wearable electronic device 100 but not the actual SMS message itself. The proprietary server 326, in turn, can be communicatively coupled through a connection 328 with a number of SMS-message servers 330. The connection 328 can represent more than one connection. For example, the proprietary server 326 can be communicatively coupled to a first SMS-message server 330a through a first connection 328A (not shown), a second SMS-message server 330b (
Due to certain limitations imposed by proprietary systems, users of wearable electronic devices such as the wearable electronic device 100 might not be able to act on incoming SMS messages when communicating through some of these communication channels. In a third example of communicative coupling, the mobile computing device 200 can be communicatively coupled through a wireless or cellular connection 334 to a partner server 336 for circumventing the limitations imposed by the proprietary systems. The partner server 336, in turn, can be communicatively coupled through a connection 338 with the number of SMS-message servers 330. Like the connection 328, the connection 338 can represent more than one connection. For example, the partner server 336 can be communicatively coupled to the first SMS-message server 330A through a first connection 338A (not shown) and the second or nth SMS-message server 330n through a second or nth connection 338n (not shown). In some embodiments, as discussed, the wearable electronic device 100 can also be communicatively coupled through a wireless or cellular connection 323 to a partner server 336.
The wearable device application can provide the notification data from the SMS notification to a search module over a wide area network, via an input circuit, on a partner server.
The wearable device application can communicate with the partner server, optionally via the partner application, in order to effect the user selection of the one or more SMS-message actions without the user needing to open and run the SMS application on the mobile computing device to effect the user selection of the one or more SMS-message actions chosen from the wearable device application.
The wearable device application can provide the notification data from the SMS notification to a partner application resident in a second memory of the mobile computing device.
The wearable device application can analyze the SMS notification and create a set of notification data that is derived from the SMS message.
Upon the request by the wearable device application 110 for potential SMS-message senders and/or potential additional SMS-message recipients, the partner application 225 can compare the notification data with contact information for contacts in the contacts application 325 and/or the preferred contacts database 425, for example, in a reverse look-up query. Depending upon correspondence of the notification data to one or more contacts, the partner application 225 can order the one or more contacts in an ordered list for subsequent user selection in the wearable device application (
For example, the partner application 225 can compare notification data such as the sender's first name; the sender's last name; the sender's full name; the sender's username; the sender's phone number; the additional recipient's first name; the additional recipient's last name; the additional recipient's full name; the additional recipient's username; or the additional recipient's phone number. As shown in
The partner application (or the search module in some embodiments) can perform a reverse look-up query using the notification data in one or more fields of a contacts list of a user of the wearable electronic device. The partner application (or the search module in some embodiments) can construct a first list with potential SMS-message senders derived from search results of the reverse look-up query. The partner application can construct a second list with potential additional SMS-message recipients derived from search results of the reverse look-up query. Optionally, the first list and the second list can be combined.
The notification data queried in the one or more fields is selected from the group consisting of a sender's first name; the sender's last name; the sender's full name; the sender's username; the sender's phone number; an additional recipient's first name; the additional recipient's last name; the additional recipient's full name; the additional recipient's username; and the additional recipient's phone number.
The partner application can store the user selection of the one or more potential SMS-message senders and the user selection of the one or more potential additional SMS-message recipients in a preferred list for the reverse look-up query, so that once the user positively identifies a particular SMS-message sender or a particular additional SMS-message recipient with the reverse look-up query using the notification data, then the wearable device application can auto-populate information for the particular SMS-message sender or the particular additional SMS-message recipient in the future.
As shown in
The wearable device application can communicate with the partner server via the partner application, receive the first list from the partner application, and present a user interface with the first list to the user for a user selection of one or more of the potential SMS-message senders. The wearable device application can store the user's selection the one or more of the potential SMS-message senders from the first list to assist in retrieving the SMS-message and effect the user selection of the one or more SMS-message actions chosen from the wearable device application.
The wearable device application can receive the ordered list from the partner application and present the ordered list to the user for a user selection of one or more of the potential SMS-message senders and/or one or more of the potential additional SMS-message recipients.
The wearable device application can construct a query with terms including the one or more potential SMS message senders, along with other metadata including a time stamp of the SMS message and an access token for the user's SMS account to the SMS provider to retrieve the SMS-message from an appropriate SMS server. In an embodiment, the wearable device application merely sends the meta data to the partner application on the mobile device and then the partner application on the mobile device constructs the package with the query terms and access token.
The wearable device application can send the user selection of the one or more SMS-message actions, content supplied by the user in response to the SMS message, the user selection of the one or more potential SMS-message senders and/or the one or more of potential additional SMS-message recipients as intended recipients, and an access token for the SMS provider in order to effect the user selection of the one or more SMS-message actions without the user of the wearable electronic device needing to open and run the SMS application on the mobile computing device. In an embodiment, the partner application on the mobile device sends the user selection of the one or more SMS-message actions, content supplied by the user in response to the SMS message, the user selection of the one or more potential SMS-message senders and/or the one or more of potential additional SMS-message recipients as intended recipients, and an access token for the SMS provider to the backend server.
As illustrated in
In an embodiment, the wearable device application is configured to provide users a way to reply to an incoming SMS or iMessage. The wearable device application is configured to work with the server module on the partner server that is configured to integrate with one or more application programming interfaces of one or more SMS service providers. The server module is configured to receive data from the electronic wearable device and then format and translate the data of the text message into the format and schema of the application programming interface of each SMS service provider.
The partner server can reference the package against an SMS-provider database of SMS providers and users serviced by the SMS providers and determine one or more of the SMS providers to use in order to effect the user selection of the one or more SMS-message actions.
The partner server can access a second database of APIs for the SMS providers, put the package into the schema and format required by the API for each of the SMS providers needed in order to effect the user selection of the one or more SMS-message actions, and send the package to each of the foregoing SMS providers.
The partner server can communicate a successful or failed attempt to effect the user selection of the one or more SMS-message actions to the wearable device application via the partner application.
In an embodiment, one or more of the phone carriers have their own web based SMS authentication flow (Auth flow), where the user either i) clicks ‘Accept’ to giving the wearable device application permission to send SMS messages on their behalf or ii) is asked to text message a code to an AT&T owned number (the two scenarios are based on if user is on WiFi or AT&T data network).
The wearable device application 110 can send the user's selection of the message action (e.g., the message action 102A corresponding to reply), the user's selection of intended SMS-message recipients (e.g., the second contact selection 102E corresponding to Contact 2), and the user's selection of the SMS-message response to the partner application 225 on the mobile computing device 200 through the wireless connection 322 (
The mobile computing device 200 can, in turn, send the package with the encrypted access token to the partner server 336 through the wireless or cellular connection 324 (
A first security algorithm can store the access token as an encrypted access token in the first memory of the wearable electronic device.
A first security algorithm can store user-provided authentication information as encrypted data in the first memory of the wearable electronic device or the second memory of the mobile computing device.
A first routine can periodically refresh the access token from the SMS provider by periodically supplying the user-provided authentication information stored on the backend server, or on the wearable electronic device or on the mobile computing device in an encrypted form to one or more SMS-message servers. The partner server has an authentication module that can reference SMS-provider authentication processes to obtain access tokens. At least two or more authentication processes are indexed and stored in an authentication database that cooperates with the authentication module on the partner server.
In general, the wearable electronic device includes one or more systems and can be coupled to one or more networks.
A cloud provider service can install and operate application software in the cloud and users can access the software service from the client devices. Cloud users who have a site in the cloud may not solely manage the cloud infrastructure and platform where the application runs. Thus, the servers and databases may be shared hardware where the user is given a certain amount of dedicate use of these resources. The user's cloud-based site is given a virtual amount of dedicated space and bandwidth in the cloud. Cloud applications can be different from other applications in their scalability, which can be achieved by cloning tasks onto multiple virtual machines at run-time to meet changing work demand. Load balancers distribute the work over the set of virtual machines. This process is transparent to the cloud user, who sees only a single access point.
The cloud-based remote access is coded to utilize a protocol, such as Hypertext Transfer Protocol (HTTP), to engage in a request and response cycle with both a mobile device application resident on a client device as well as a web-browser application resident on the client device. The cloud-based remote access for a wearable electronic device, can be accessed by a mobile device, a desktop, a tablet device, and other similar devices, anytime, anywhere. Thus, the cloud-based remote access to a wearable electronic device hosted on a cloud-based provider site is coded to engage in 1) the request and response cycle from all web browser based applications, 2) SMS/twitter based request and response message exchanges, 3) the request and response cycle from a dedicated on-line server, 4) the request and response cycle directly between a native mobile application resident on a client device and the cloud-based remote access to a wearable electronic device, and 5) combinations of these.
In an embodiment, the server computing system 204A may include a server engine, a page management component or other network user interface component, such as a mobile application or wearable device application managing component, a content management component, and a database management component. The server engine performs basic processing and operating system level tasks. The page management component handles creation and display or routing of web pages or other interface screens associated with receiving and providing digital content and/or digital advertisements. Users may access the server-computing device by means of a URL associated therewith. The content management component handles most of the functions in the embodiments described herein. The database management component includes storage and retrieval tasks with respect to the database, queries to the database, and storage of data.
An embodiment of a server computing system to display information, such as a web page, etc. is discussed. An application including any program modules, apps, services, processes, and other similar software executable when executed on the server computing system 204A, causes the server computing system 204A to display windows and user interface screens on a portion of a media space, such as a web page. A user from the client computing system 202A may interact with the web page, and then supply input to the query/fields and/or service presented by a user interface of the application. The page may be served by a server computing system 204A on any Hypertext Markup Language (HTML) or Wireless Access Protocol (WAP) enabled client computing system 202A or any equivalent thereof. For example, the client mobile computing system 202A may be a wearable electronic device, smart phone, a touch pad, a laptop, a netbook, etc. The client computing system 202A may host a browser to interact with the server computing system 204A. Each application has a code scripted to perform the functions that the software component is coded to carry out such as presenting fields and icons to take details of desired information. Algorithms, routines, and engines within the server computing system 204A take the information from the presenting fields and icons and put that information into an appropriate storage medium such as a database. A comparison wizard is scripted to refer to a database and make use of such data. The applications may be hosted on the server computing system 204A and served to the browser of the client computing system 202A. The applications then serve pages that allow entry of details and further pages that allow entry of more details.
Computing system 810 typically includes a variety of computing machine-readable media. Computing machine-readable media can be any available media that can be accessed by computing system 810 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computing machine-readable mediums uses include storage of information, such as computer readable instructions, data structures, other executable software or other data. Computer storage mediums include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information and which can be accessed by computing device 800. Transitory media such as wireless channels are not included in the machine-readable media.
The system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 831 and random access memory (RAM) 832. A basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computing system 810, such as during start-up, is typically stored in ROM 831. RAM 832 typically contains data and/or software that are immediately accessible to and/or presently being operated on by processing unit 820. By way of example, and not limitation,
The computing system 810 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only,
As an example, the computer readable storage medium 841 stores Operating System software for smart watches to cooperate with both Android OS and iOS.
The drives and their associated computer storage media discussed above and illustrated in
A user may enter commands and information into the computing system 810 through input devices such as a keyboard, touchscreen, or even push button input component 862, a microphone 863, a pointing device and/or scrolling input component 861, such as a mouse, trackball or touch pad. The microphone 863 may cooperate with speech recognition software. These and other input devices are often connected to the processing unit 820 through a user input interface 860 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A display monitor 891 or other type of display screen device is also connected to the system bus 821 via an interface, such as a display and video interface 890. In addition to the display monitor, computing devices may also include other peripheral output devices such as speakers 897, a vibrator 899, and other output device, which may be connected through an output peripheral interface 890.
The computing system 810 may operate in a networked environment using logical connections to one or more remote computers/client devices, such as a remote computing device 880. The remote computing device 880 may be a wearable electronic device, a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computing system 810. The logical connections depicted in
It should be noted that the present design can be carried out on a computing system such as that described with respect to
Another device that may be coupled to bus 811 is a power supply such as a battery and Alternating Current adapter circuit. As discussed above, the DC power supply may be a battery, a fuel cell, or similar DC power source that needs to be recharged on a periodic basis. The wireless communication module 872 may employ a Wireless Application Protocol to establish a wireless communication channel. The wireless communication module 872 may implement a wireless networking standard such as Institute of Electrical and Electronics Engineers (IEEE) 802.11 standard, IEEE std. 802.11-1999, published by IEEE in 1999.
Examples of mobile computing devices may be a laptop computer, a cell phone, a personal digital assistant, or other similar device with on board processing power and wireless communications ability that is powered by a Direct Current (DC) power source that supplies DC voltage to the mobile device and that is solely within the mobile computing device and needs to be recharged on a periodic basis, such as a fuel cell or a battery.
The method 900A has a second step 920 of providing notification data from the SMS notification to a partner application resident in a second memory of the mobile electronic device.
The method 900A has a third step 930 of performing a reverse look-up query with the partner application using the notification data in one or more fields of a contacts list of a user of the wearable electronic device. Likewise, the method 900B has a third step 990 of performing a reverse look-up query with a partner application resident in a second memory of the mobile electronic device using the notification data in one or more fields of a contacts list of a user of the wearable electronic device.
The methods 900A and 900B have a fourth step 940 of constructing a first list with potential SMS-message senders derived from search results of the reverse look-up query.
The methods 900A and 900B have a fifth step 950 of presenting one or more SMS-message actions on a display screen of the wearable electronic device to a user of the wearable electronic device for a user selection of the one or more SMS-message actions.
The methods 900A and 900B have a sixth step 960 of communicating with a partner server using the wearable device application, optionally via the partner application, in order to effect the user selection of the one or more SMS-message actions.
The methods 900A and 900B have a seventh step 970 of communicating with an SMS provider using the partner server in a schema and format required by an API of the SMS provider.
In one embodiment, the software used to facilitate the algorithms discussed herein can be embodied onto a non-transitory machine-readable medium. A machine-readable medium includes any mechanism that stores information in a form readable by a machine (e.g., a computer). For example, a non-transitory machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; Digital Versatile Disc (DVD's), EPROMs, EEPROMs, FLASH memory, magnetic or optical cards, or any type of media suitable for storing electronic instructions.
Some portions of the detailed descriptions above are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. These algorithms can be written in a number of different software programming languages such as C, C+, or other similar languages. Also, an algorithm can be implemented with lines of code in software, configured logic gates in software, or a combination of both. In an embodiment, the logic consists of electronic circuits that follow the rules of Boolean Logic, software that contain patterns of instructions, or any combination of both.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussions, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers, or other such information storage, transmission or display devices.
While some specific embodiments of the design have been shown the design is not to be limited to these embodiments. For example, most functions performed by electronic hardware components can be duplicated by software emulation. Thus, a software program written to accomplish those same functions can emulate the functionality of the hardware components in input-output circuitry. The design is to be understood as not limited by the specific embodiments described herein, but only by scope of the appended claims.
Number | Date | Country | |
---|---|---|---|
Parent | 15050080 | Feb 2016 | US |
Child | 15682360 | US |