WO2009032630A1 - System, method and device to use messaging to implement programmatic actions - Google Patents

System, method and device to use messaging to implement programmatic actions Download PDF

Info

Publication number
WO2009032630A1
WO2009032630A1 PCT/US2008/074320 US2008074320W WO2009032630A1 WO 2009032630 A1 WO2009032630 A1 WO 2009032630A1 US 2008074320 W US2008074320 W US 2008074320W WO 2009032630 A1 WO2009032630 A1 WO 2009032630A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
trigger
detecting
action
mobile computing
Prior art date
Application number
PCT/US2008/074320
Other languages
French (fr)
Inventor
Junius Ho
Christina Tseng
Benoit Boningue
Sachin Kansal
Original Assignee
Palm Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Palm Inc. filed Critical Palm Inc.
Priority to EP08829485A priority Critical patent/EP2188906A4/en
Publication of WO2009032630A1 publication Critical patent/WO2009032630A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72436User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for text messaging, e.g. short messaging services [SMS] or e-mails
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72457User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72484User interfaces specially adapted for cordless or mobile telephones wherein functions are triggered by incoming communication events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/10Details of telephonic subscriber devices including a GPS signal receiver

Definitions

  • the disclosed embodiments relate to operations of a computer. More specifically, embodiments described herein relate to a system, method and device to use messaging to implement programmatic actions.
  • Computing devices particularly handheld and portable devices, have evolved to include numerous types of communication capabilities and functionality.
  • handheld devices exist that operate as cellular phones, messaging terminals, Internet devices, while including personal information management (PIM) software and photo-management applications.
  • PIM personal information management
  • Internet Protocol services exist that can transform Internet-enabled machines into telephony devices.
  • stand-alone telephones that connect to traditional Public Switched Telephone Networks (PSTN) are including more software to enhance the telephone's functionality.
  • PSTN Public Switched Telephone Networks
  • In enhancing communication capabilities and functionality effort has been made to enhance and assist the user in using such devices.
  • software features exist to facilitate the ease in which the user can act on a phone number in an email message.
  • a sequence of phone numbers can be presented to a user for selection, and upon such selection being made, a telephony application uses the phone number in making a phone call.
  • Small form-factor computing devices such as devices that provide cellular phone functionality, have particular use for such short-cut functionality, in order to reduce the manual involvement of the user. These devices have smaller keyboards that may be harder to operate, and/or use in mobile or dynamic environments, where the user cannot readily retrieve a desired number.
  • Telephony devices are just one type of communication device. There are now many types of communication types, and multi-functional devices exist to accommodate the different communication types. Examples of communication types other than telephony include email, instant message (including SMS protocol messages and Multimedia Message Service (MMS) protocol messages), and video conferencing. Many computing devices, particularly smart phones, are enabled to support communications using multiple communication mediums. BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a simplified block diagram of a messaging system in accordance with an embodiment of the invention.
  • FIG. 2A illustrates an outgoing message having an embedded trigger, under an embodiment of the invention.
  • FIG. 2B illustrates an incoming message for use in a system for exchanging messages, in accordance with one or more embodiments of the invention.
  • FIG. 3 illustrates one embodiment in which pre-formulated text is used to specify a specific action that is to be performed or initiated, under an embodiment of the invention.
  • FIG. 4 illustrate use of pre-formulated text messages to incorporate and convey triggers, under an embodiment of the invention.
  • FIG. 5 illustrate an embodiment in which a system comprising a sending device and a receiving device coordinate to include location-based functionality in association with communication of a message between the sending and receiving device, under an embodiment of the invention.
  • FIG. 6 is a simplified diagram of a system for enabling receipt of incoming messages and/or transmission of outgoing messaging having function triggers, under an embodiment of the invention.
  • FIG. 7 illustrates a hardware diagram for a mobile computing device configured in accordance with one or more embodiments of the invention
  • Embodiments described herein provide for messages, communicated amongst persons, to include programmatic triggers that cause a device or machine on either the sending or receiving end to perform a function.
  • the triggers are provided as part of a header or body of a message, and are in the form of one or more characters, so as to comprise text data.
  • SMS Short Message Service
  • the message reply may include a trigger that causes either the sending or receiving device to perform a function, such as a call back.
  • the incoming call may be received by way of cellular telephony, such as over a voice channel.
  • the user may reply with a message over, for example, Short Message Service (SMS) transport.
  • SMS Short Message Service
  • the communicated SMS message may contain a trigger that initiates an action on either the device that received the call/sent the message or the device that placed the call/received the message.
  • a mobile computing device includes processing resources, a memory that stores instructions and data, and a wireless communication sub-system.
  • the processing resources use the instructions and data stored in the memory to enable a messaging application to be operable on the mobile computing device.
  • the messaging application handles incoming messages received by the wireless communication sub-system and communicates outgoing messages over the wireless communication sub-system.
  • a trigger detect component is configured to inspect an incoming message for presence of one or more triggers.
  • One or more action components initiate or automatically perform an action responsive to the trigger detect component detecting a corresponding trigger.
  • a mobile computing device may be configured to process a message that may be either incoming into or outgoing from the mobile computing device.
  • a trigger is detected in association with the message.
  • the device associates the trigger with an operation.
  • the mobile computing device may automatically perform or initiate the operation in response to detecting the trigger.
  • the operation may be performed using data contained in the message, or data otherwise identified by the trigger.
  • a message may be stored in a computer-readable medium.
  • the message may include a body of the message having a text content, and a data element included in a header or in the body of the message.
  • the data element is structured to be recognizable, by a device that handles the message, as a trigger to initiate or automatically perform a function identified or associated with the trigger.
  • the computer-readable medium may correspond to a cache, or other memory element where a message may be stored temporarily or before more permanent storage.
  • One or more embodiments described herein provide that methods, techniques and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically means through the use of code, or computer-executable instructions. A programmatically performed step may or may not be automatic.
  • a module may include a program, a subroutine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions.
  • a module can exist on a hardware component independently of other modules, or a module can be a shared element or process of other modules, programs or machines.
  • one or more embodiments described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium.
  • Machines shown in figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing embodiments of the invention can be carried and/or executed.
  • the numerous machines shown with embodiments of the invention include processor(s) and various forms of memory for holding data and instructions.
  • Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers.
  • Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on many cell phones and personal digital assistants (PDAs)), and magnetic memory.
  • Computers, terminals, network enabled devices e.g. mobile devices such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer- readable mediums.
  • FIG. 1 is a simplified block diagram of a messaging system in accordance with an embodiment of the invention.
  • a first mobile computing device 110 (“sending device 110") is configured to send a second mobile computing device 120 ("receiving device 120") a message 125, from which programmatic actions 140 may be triggered on one or both of the devices.
  • the mobile computing devices 110, 120 may communicate across one or more networks, including cellular networks.
  • One or both mobile computing devices 110, 120 may correspond to a portable and/or multi-functional devices having messaging capabilities across either voice or data channels.
  • the mobile computing devices 110, 120 correspond to cellular telephony/messaging devices.
  • the message 125 may be provided on any one of many possible transports, including Short Message Service (SMS), Multimedia Message Service (MMS), instant messaging, or email.
  • SMS Short Message Service
  • MMS Multimedia Message Service
  • instant messaging email
  • email email
  • voice channels voice channels
  • email and instant messaging are provided on data channels.
  • the message 125 communicated from the sending device 110 may include a body 126, having text or other content. Additionally, the message 125 includes a trigger 130, which may be detectable by one or both devices. In one embodiment, the trigger 130 is detected and used by sending device 110, which processes the message 125 for triggers as an outgoing message. In another embodiment, the trigger is detected by the receiving device 120, which processes the message 125 for triggers as incoming. Still, the message 125 may include one or more triggers 130 that are used by both devices. [0022] In one embodiment, the trigger 130 is provided in a header of the message, and may be carried in the form of text or characters. Alternatively, such a trigger may be carried in the body of the message.
  • the detecting device programmatically initiates and/or performs a corresponding action 140.
  • the programmatic action 140 may be performed using data that is identified by the trigger and/or carried by the message 125.
  • the programmatic action 140 may be performed automatically or semi-automatically. In one embodiment, programmatic action 140 is performed automatically, so as to be initiated and performed without user-input in response to the trigger being detected.
  • the programmatic action 140 is initiated, but may require user-input to be completed.
  • the programmatic action 140 may prompt the user to elect to have the identified action fully performed.
  • the action 140 is performed.
  • trigger 130 directly identifies in the message 125 the data 128 that is to be used to perform the programmatic action 140.
  • one of the devices may be configured to use the trigger 130 to also locate or identify application data 128 for performing the programmatic action 140.
  • the data 128 may be positioned, for example, adjacent the trigger 130, so that detection of the trigger also results in detection of the data 128.
  • the data 128 and trigger 130 may be combined into one data structure.
  • message 125 may carry data 128 independent of the trigger 130.
  • the data 128 may be carried in the message header (or in the body of the message).
  • the trigger 130 may invoke action 140 on one of the two devices, in which the second mobile device 120 (as receiver of message 125 incoming) performs the action of telephoning the sending device 110 using a phone number carried in the header of the message 125.
  • the programmatic action 140 is performed without data that is identified by trigger 130 or included as part of the message 125.
  • the trigger 130 may direct both devices 110, 120 to check voicemail.
  • the trigger 130 may invoke action 140 in which receiving device 120 opens a folder and/or application where message 125 is stored immediately after it completes its in-progress routine/activity/process. For example, if receiving device 120 is on a phone call when message 125 is received, the receiving device may be configured to perform the action 140 of rendering the message 125 immediately after the phone call is over. Thus, the sending device 110 may include the trigger 130 that causes the message to be rendered as soon as the receiving device is available.
  • trigger 130 is processed to perform a delay notification by either the sending or receiving device 110, 120.
  • message 125 may carry the trigger 130 to direct the receiving device 120 to phone the sending device 110 in a given duration of time (e.g. ten minutes) has passed.
  • trigger 130 may direct either sending or receiving device 110, 120 to insert data in a record for use with another application.
  • the trigger action carried in the message 125 may be used to insert a line or data item in a calendar, task or memorandum entry.
  • the programmatic action 140 may correspond to an application, or a process that controls the application or initiates use of the application.
  • trigger 130 may initiate use and/or control an application.
  • either the sending device 110 or receiving device 120 may use trigger 130 in such context.
  • the detecting device may be configured to detect trigger
  • the programmatic action 140 caused by the trigger may include processes that launch the application and/or execution of the application using the data 128.
  • the trigger 130 and/or programmatic action 140 may be relevant or otherwise associated with a content of the message 125.
  • the body 126 includes a text message that is pre-formulated.
  • the trigger 130 may be associated with the pre-formulated message, such that when the pre-formulated text message is selected by the sender 110, the associated trigger 130 is inserted to identify and trigger an associated action.
  • FIG. 2A and FIG. 2B illustrate messages that are structured in accordance with one or more embodiments. Messages such as described by an embodiment of FIG. 2A and FIG. 2B may be processed and stored in, for example, a cache or as part of memory used by a messaging program.
  • FIG. 2A illustrates an outgoing message having an inserted or embedded trigger, under an embodiment of the invention.
  • an outgoing message 210 is shown in the form of an SMS message that is either (i) in a state of composition, (ii) recently composed, or (iii) in process of transmission.
  • the outgoing message 210 may be in the outbox folder.
  • the message 210 includes "to" and "from” fields 212, 214 for identifying source and destination of the outgoing message 210.
  • the "to" field 212 includes values 213a, 213b that identify a phone number and a name (or in this case an initial) of the intended recipient.
  • the "from” field 214 also includes an identification value 215.
  • a body 226 of message 210 may include a text content 222.
  • the text content 222 is a pre-formulated or "canned" message, meaning it is selectable and insertable as a whole into the message. The user may be able to select from a menu or list of pre- formulated text messages. With selection input, an entire message comprising several words or a phrase may be inserted into the body 226 of the message.
  • trigger 230 is provided within the body 226 of the message. As outgoing, trigger 230 may be inserted by the sending device 110 (FIG. 1). Furthermore, under one implementation, trigger 230 may be used by the sending device 110. The sending device 110 may use the trigger to perform an action programmatically, and at least partially automatically. Thus, under an embodiment, one of the composition and/or transmission of the message may initiate a corresponding action on the sending device.
  • the trigger 230 may correspond to character data, such as special characters (e.g. "*/"), or alternatively a designated set of letters and/or numbers.
  • the trigger 230 is text data and easily carried in any messaging transport, including SMS.
  • the trigger 230 is also associated with the pre- formulated text content 222.
  • the selection of the pre-formulated text content 222 may invoke a corresponding designated action on the sending device 110 (FIG. 1).
  • different pre-formulated messages may be used to invoke different actions.
  • the action associated with the trigger is relevant to the pre-formulated text content 222.
  • the text content 222 may state: "I will call you back" and the action performed on the outgoing device may be to prompt or initiate the phone call to the recipient device 120 after a designated duration or in response to a specific event.
  • the sending device is the detecting device
  • the call back action may be initiated on the sending device 110 right after the sender terminates another call that was in progress when the message 210 was communicated.
  • the trigger 230 may also be identified or associated with other data that is actually used by the sending device 110 (FIG. 1) to perform the action.
  • the trigger 230 may be associated with a value of the "To" field. More specifically, the trigger 230 may cause the sending device 110 to perform the action that uses the value 213a of the "To" field 212. Alternatively, the action triggered by the trigger may seek and use one of the values of the fields when it is performed
  • FIG. 2B illustrates an incoming message for use in a system for exchanging messages, in accordance with one or more embodiments of the invention.
  • an incoming message 250 may be an SMS message and may optionally correspond to the same message as the outgoing message 210 in FIG. 2A. Accordingly, the incoming message 250 may include the "to" and "from” fields 212, 214 for identifying source and destination of the outgoing message 210.
  • message 250 may be received on the receiving device 120 (FIG. 1) and forwarded to an inbox.
  • the receiving device 220 may detect and process a trigger 260, which causes the receiving device to automatically initiate and/or perform a corresponding programmatic action.
  • the trigger 260 may, under one embodiment, be in the form of characters, including special characters, text or numbers.
  • a body 256 of the message 250 may include text content 252 that also contains the trigger 260.
  • the trigger 260 may be provided with a pre- formulated text content 252.
  • the pre-formulated text content 252 may be relevant to the action that is performed.
  • the user of the sending device 110 (FIG. 1) may select pre-formulated text content 252 to both communicate a message and direct the receiving device 120 (Fig. 1) to perform an action.
  • the sending device 110 is able to use trigger 260 to prompt the receiving device into making a phone call to the sending device after a designated duration of time.
  • the pre-formulated text content 222 may be equivalent to "Call me back in 10 minutes" and the action performed on the receiving device 120 (FIG.
  • the trigger 260 may identify or be associated with data that is to be used by the receiving device 120 (FIG. 1) in performing its action.
  • the trigger 260 may be associated with one of the fields, such as the "from" field 214.
  • the action triggered by the trigger may seek and use one of the values of the fields when it is performed.
  • the action performed as a result of the trigger 260 may incorporate or use the phone number of the "from" field 214.
  • FIG. 3 illustrates one embodiment in which pre-formulated text content of a message is used to trigger a specific action that is to be performed or initiated when the message is communicated, under an embodiment of the invention.
  • a method of FIG. 3 reference is made to elements described in a system of FIG. 1, for purpose of illustration suitable elements or sub-elements for performing a step or portion thereof.
  • step 310 an event occurs or is in progress when a user on sending device 110 composes an outgoing message.
  • the user may select one pre-formulated text message from other pre-formulated text messages.
  • text content corresponding to the pre-formulated text message is inserted into a body of the message.
  • An example of an event may correspond to a device receiving an incoming call.
  • the method described may be implemented in the context of message replying the caller, as a substitute for answering the call.
  • a trigger may be associated with the pre-formulated message.
  • Each trigger may invoke a corresponding action.
  • different pre-formulated messages may contain different triggers.
  • the pre-formulated text message may be associated with a particular set of characters, such as special characters, that are identifiable as a trigger to a detecting device.
  • the trigger provided with the pre-formulated message may include a trigger identification, to identify one trigger (and thus a programmatic action) from other triggers and programmatic actions.
  • the trigger is detected when the message is communicated.
  • the trigger is detected and used by the sending device.
  • the trigger may invoke a delayed action (e.g. notification or application launch or use) on the sending device 110.
  • the trigger is detected and used by the receiving device 120.
  • both devices may detect and use the trigger in one message exchange.
  • the process of detecting the trigger may be one where the body of the message (whether incoming or outgoing) is scanned for presence of characters that identify the trigger.
  • the detecting device may include logic for scanning messages of the particular transport used to convey the trigger (such as SMS).
  • the detecting device may use pattern recognition of the text body. For example, a pre-formulated text message may be recognized from the words used, even if other words appear before or after the message.
  • the trigger may be event-based.
  • the detecting device may include logic that detects a condition or device state, and infers the trigger based on the presence of the condition. For example, the receiving device may detect a trigger (i) if that device has just placed a call to a particular number, and (ii) an SMS message is received within a designated duration of time from the same phone number of the incoming caller. The presence of these two conditions may infer a "message ignore scenario" where one device may ignore an incoming message with a message reply (such as by way of SMS). In such instances, for example, the receiving device may scan the message for a field value that indicates a duration of time ("5 minutes"), and then may perform an action or notification in that time period.
  • Step 340 provides that the detecting device either initiates or performs automatically the action identified by the trigger. If the detecting device initiates performance of the action, it may display to the user a question or other prompt to confirm the device should perform the action. For example, the action may correspond to calling a number included in the "to" or "from” field (depending on whether the detecting device is the recipient or sender of the message). Upon receiving the confirmation input from user, the action (e.g. placing the call) may be performed. Alternatively, the action may be performed automatically. For example, the detecting device may place the call immediately, after a given duration designated by the trigger or action, or after an event (such as termination of a call in progress).
  • the detecting device may place the call immediately, after a given duration designated by the trigger or action, or after an event (such as termination of a call in progress).
  • FIG. 4 illustrate use of pre-formulated text messages to incorporate and convey triggers, under an embodiment of the invention.
  • FIG. 4 illustrates an embodiment in which a user can select pre-formulated text messages 410 from a menu 402 for transmission to another device, where actions associated with the message are to be performed on the sending device.
  • Messages 410a-410c may be implemented in a call-ignore scenario, where the user is able to message reply an incoming call, rather than answer the call.
  • the messages 410a-410c enable the user to select a particular duration of time.
  • the trigger associated with each message 410a-410c may invoke the sender to perform the call back, using the time specified in the content of the message.
  • both the specific action (placing the call) and the timing as to when the action is to be performed may be specified by the trigger of the pre-formulated text message.
  • the timing as to when the action is to be performed may be supplied as input by the user of the sending device.
  • the pre-formulated message may present a field that the user can fill in with a numeric value.
  • the action performed in association with the message may scan for the field value and delay (or otherwise configure or modify) performance of the action based on the field value.
  • Message 41Od provides an example of a sender specifying a programmatic action on the recipient device.
  • message 41Od may also be provided in context of a call-ignore event.
  • message 410d may include a trigger that specifies the recipient device to perform the call back (or initiate the call back) after a given duration of time.
  • the user of the sending device may specify the value when the call back is to be performed.
  • the pre-formulated message 410d may provide text content and trigger with an open field that can be supplied manually with user-input.
  • the value of the user- input may affect the trigger and/or action to be performed. For example, the timing of a delay notification may be affected by the user-input.
  • Message 41Oe shows an example where the composition and/or transmission of the message causes both the sender and recipient device to perform an action.
  • the user's selection of the pre-formulated text message "Here is my card” may cause one or both of the following: (i) the sender device to automatically attach the sender's contact information or v-card, and (ii) have the information or card stored in a contact application on the recipient device.
  • Message 41Of shows another implementation where the sender may select a pre-formulated text message that invokes the recipient device to store the message as a task or memo.
  • An actual task item may be entered manually by the user.
  • the text of the task item is carried into task or memo as part of the action performed (responsive to the trigger).
  • the corresponding action may be performed by the acting device having logic to (i) detect the trigger embedded or included in the body of the message, and (ii) perform the action identified or otherwise associated with the trigger.
  • the sending device 110 may be configured to insert the trigger automatically when a corresponding pre- formulated message is selected and inserted into the body of the message.
  • Such a trigger may be inserted as text data (e.g. special characters, such as "*/") into the body of the message.
  • the sending and/or receiving device may be configured to detect the presence of the trigger, and then either perform the action, or alternatively initiate performance of the action.
  • the sending device 110 may recognize and perform a function associated with a composed or outgoing message simply be detecting the selection of the pre-formulated message.
  • the sending device may operate without triggers embedded or provided within the body of the message. Rather, the trigger may correspond to the user of the device selecting a particular pre-formulated message.
  • Location-based functions may correspond to functions that integrate location information, in any particular form, such as by way of coordinates (e.g. through use of GPS component) or street address.
  • FIG. 5 illustrate an embodiment in which a system comprising a sending device and a receiving device coordinate to include location-based functionality in association with communication of a message between the sending and receiving device, under an embodiment of the invention.
  • a method of FIG. 5 reference is made to elements of a system of FIG. 1, for purpose of illustrating suitable elements for performing a step (or sub-step) being described.
  • the sending device 110 is operated to insert a trigger for location-based functionality into a message.
  • the message may be of a kind used under any transport, such as SMS.
  • the trigger may be operated by the user performing an action that is associated with insertion of the trigger. For example, the user may select a pre-formulated text that pertains to location-based functionality (e.g. "Where are you?"). Selection of the text may automatically insert a trigger into the header or body of the message.
  • the trigger may be used by the recipient device 120. Under an embodiment, the trigger may also be used by the sending device 110.
  • insertion of the trigger may occur responsive and/or in connection with insertion of location-based information, such as provided from GPS resources that may be resident on the device.
  • location-based information such as provided from GPS resources that may be resident on the device.
  • the user may select a pre-formulated text (e.g. "where are you").
  • the selection of the pre-formulated message, or the inclusion of a trigger associated with that message may also trigger the sending device 110 to use the GPS resources to identify coordinates of the sending device for insertion into the header or body of the message.
  • the insertion of GPS coordinates of the sending device may be used to enable the receiving device 120 to (i) estimate a measure of separation between the two devices, or (ii) map the position of the sending device in preparing a response answer.
  • the user of the sending device may communicate the message: "Meet me here".
  • the inclusion of the message may include a trigger, or otherwise separately trigger the sending device to include coordinates from GPS resources, or information about the location of the user from a mapping service.
  • the composition of the message may separately trigger the sending device 110 to include supplemental information from the GPS resources.
  • the user of the sending device may operate the GPS resources to direct the GPS resources to programmatically insert the information into the body of the message.
  • the user of the sending device 110 may select the pre-formulated message and manually supplement the message with information about the location of the user into the message.
  • the user may operate a separate GPS device, operate the GPS application of the detecting device independently, or enter location information in the form of a steet address or zip-code. The information may be carried as entered by the user of the sending device.
  • the trigger in the message causes the sending device 110 to access the GPS resources and programmatically convert the entered information into a form of data that can be used by the GPS resources of the receiving device.
  • the receiving device 120 receives the message.
  • the device may be configured to process the message for triggers.
  • the receiving device 120 may scan the header or body of the incoming message for a designated set of characters that are indicative of a trigger.
  • the trigger may be combined by the presence of numbers and characters that match a form of coordinates from a GPS application.
  • presence of other words or data element types may act as a trigger.
  • the presence of the word "address" or the detection of a string of characters that appear to be an address e.g. string including 1-4 numbers at beginning, followed by words and ending with various words or abbreviation indicative of road, street etc.
  • the trigger may be provided as a header or in the message body.
  • Step 530 provides that the receiving device 120 associates the detected trigger with a function.
  • the receiving device 120 may also handle the message in a manner in which messages of the SMS (or other) transport are normally handled. For example, the message may be stored as a new message in an inbox folder.
  • Step 540 provides that the receiving device performs the identified function associated with the detected trigger.
  • the identified function may be performed immediately or subsequently, after a duration of completion of an event.
  • the trigger may cause the receiving device to either perform the action automatically, or to initiate the action.
  • the trigger may cause the receiving device 120 to prompt the user for confirmation input before completing the action.
  • the action that is performed requires identification of location information of the receiving device 120.
  • the action may require the receiving device to access its GPS resources.
  • the action may include the receiving device determining its coordinates to identify its location.
  • the action that is to be performed on the receiving device may include the use of data provided in the received message.
  • the action may use coordinates provided in the incoming message with a mapping application, so that the recipient device generates a map from information contained in the message.
  • the action may require use of location information of the sending device for purpose of determining a distance measurement between the two devices.
  • the trigger may be provided to identify the location-information.
  • the logic that performs the action on the receiving device 120 may detect the location information in the incoming message based on, for example, data format or pattern recognition.
  • the action performed by the receiving device may also include the receiving device 120 processing the GPS information from the sending device 110.
  • the receiving device 120 may determine a difference between the position of the sending and receiving devices 110, 120. This difference may correspond to distance and/or time measurement (e.g. "You are 8 minutes away at current speed.”).
  • the action performed by the receiving device 120 in response to receiving the triggered message may also be multi-stepped.
  • the receiving device may also be configured to perform the action of sending a reply message back to the sending computer.
  • the reply message may include the location information of the recipient device 120 (as determined by the GPS resources of the device 120) and/or evaluation of location information of the sending device 110 (if any present).
  • An embodiment such as recited with FIG. 5 may be implemented to initiate or trigger actions that announce or relate to a delayed arrival of a user carrying a mobile computing device.
  • GPS resources on a device may detect its position, and that information may in turn be used to communicate delayed arrivals.
  • a person may communicate an outgoing message from one mobile computing device to another device having GPS resources, to the effect of "Call me when you get home.”
  • a trigger in the message may initiate the receiving device to (i) programmatically determine when the device is ⁇ home', and (ii) initiate or place the call for the user.
  • the device may communicate a message consistent with "I will call you from home". The device may process the outgoing message to detect when it is home, and then programmatically initiate or place the call.
  • FIG. 6 is a simplified diagram of a system for enabling receipt of incoming messages and/or transmission of outgoing messaging having function triggers, under an embodiment of the invention.
  • a system 600 such as described with an embodiment of FIG. 6 may be implemented on, for example, a mobile computing device (e.g. cellular messaging/voice device), although embodiments may be implemented on numerous different types of devices, such as multi-functional portable computing devices, laptop computers and desktop computers.
  • a system such as described by an embodiment of FIG. 6 may be implemented using a combination of components and/or modules, including a messaging application 610 having one or more trigger detect components 612 and/or a trigger insert component 614.
  • the messaging application 610 may communicate with one or more action components 620.
  • a message store 615 may be maintained and used by the messaging application 610.
  • a device on which system 600 is provided may use wireless communication mediums, such as provided by cellular mediums, to send and receive messages.
  • the device may use Wireless Fidelity ("WiFi") as defined by, for example, the 802.11(b) or 802.11(g) standards, or even WiMax networks that operate under the 802.16 standards. Land connections may also be used. While different messaging transports may be used with embodiments described herein, one or more embodiments provide for system 600 to be implemented for SMS transport, using a cellular network or other network that can handle SMS messaging.
  • WiFi Wireless Fidelity
  • system 600 may process the message by inspecting the message for a trigger.
  • the trigger detect 612 inspects the incoming message 606 by scanning the header and/or body of the message for the presence of the trigger.
  • the trigger detect 612 scans the message for text that is characteristic of a trigger.
  • the message may be scanned for a cluster of special characters that are indicative of a trigger.
  • trigger detect 612 may scan the message for text patterns that are indicative of a particular function, such as may be provided with a pre-formulated message.
  • trigger detect 612 scans the incoming message 606 for characters that are indicative of the trigger, and then removes the characters from the message before the messaging application 610 subsequently stores and/or renders the incoming message 606.
  • the messaging application 610 stores the incoming message 606 in the message store 615 (e.g. "inbox"), and sends an instruct 616 or other signal to one of the action components 620.
  • the messaging application 610 also identifies data for performing the action identified by the trigger from the incoming message 606.
  • the messaging application 610 may, for example, identify data from the header of the message, or data included with or identified by the trigger.
  • the messaging application 610 may communicate the identified data to the action component 620.
  • the action components 620 may correspond to applications, plug- ins, or software and/or other logic that uses the instruct 616 and/or identified data to perform the function associated with the trigger.
  • the action component 620 may correspond to anyone of an application (or plug- in) corresponding to a phone application (for when the action is to place a call), a mapping application (for performing location-based functions in the form of mapping), a GPS application that interfaces with corresponding GPS hardware (for performing location-based functions), task manager, file manager, or notification manager for generating instant and delayed notifications.
  • system 600 may also be configured to (i) insert triggers into an outgoing message, and optionally (ii) process triggers in outgoing messages.
  • the outgoing message 608 may be one that is composed, placed in a folder (e.g. "outbox") for transmission, or in a state of transmission.
  • Trigger insert 614 may correspond to a component that places, for example, a character or set of characters that identify a particular function in the header or body of a message that is to be outgoing.
  • the trigger insert 614 may be integrated with the messaging application 610, or provided separately from it.
  • the trigger insert 614 is associated with a menu or list of pre-formulated messages. The selection of a message from the list results in the trigger insert 614 inserting a corresponding trigger for the selected message in the header or body of the outgoing message 608.
  • trigger insert 614 may be associated with a GPS application. The use of the GPS application in certain instances may generate data that may be inserted into the message as or with a separate identifiable trigger. Numerous other forms of trigger inserts may be used.
  • the system 600 is configured to detect and act on triggers in outgoing messages.
  • Trigger detect 612 may thus scan the outgoing message 608, including the header and body for presence of the trigger.
  • the trigger insert 614 may communicate with the messaging application 610 to signal the presence of a trigger.
  • the trigger may then be acted on by one of the action components 620.
  • the messaging application 610 may provide an instruct 616 for the outgoing message 608, which may be handled and processed by, for example, a notification component (generate a delayed notification) or telephony application (place a call to recipient device at a later time).
  • FIG. 7 illustrates a hardware diagram for a mobile computing device configured in accordance with one or more embodiments of the invention.
  • a device 700 includes a processor 710, memory resources 715, a display 720, a wireless communication sub-system 730, and mechanical input features 740.
  • the wireless communication sub-system 730 may send and receive wireless data over data channels 702 and voice channels 704. Messages over SMS and MMS transports are communicated over voice channels 704. Emails and instant messages are communicated over data channels 702.
  • Processor 710 may be configured with software and/or other logic to perform one or more processes, steps and other functions described with embodiments.
  • Processor 710 is configured, with instructions and data stored in memory resources 715, to execute messaging application 610 (see FIG. 6), as well as components for trigger detect 612 (FIG. 6) and trigger insert 614 (FIG. 6).
  • the incoming and outgoing messages may be received or transmitted from the wireless sub-system (which may or may not include processor 710).
  • processing resource 710 may execute a GPS application and use an integrated GPS sub-system 750 that handles receipt of GPS data 752.
  • FIG. 7 is illustrated for a mobile computing device, one or more embodiments may be implemented on other types of devices, including multi-functional devices, or full-functional computers such as laptops.
  • embodiments described herein provide for use of incorporating or embedding triggers with messages, other embodiments provide for coordinating performance of certain actions with communication of specific messages.
  • One or more embodiments may be implemented in the context of providing message replies to incoming phone calls. More specifically, U.S. Patent Application No. 11/200,511 (hereby incorporated by reference) describes a device that enables a user to respond to an incoming phone call with a message reply to the caller. For example, the user may elect to ignore an incoming call by text messaging the caller to call back.
  • a user of a mobile computing device can, with one or more short-cut actions, answer an incoming phone call and place it on hold, while messaging the caller back and informing him that is he or she is on hold.
  • the user in response to an incoming call, the user can select a pre-formulated message that states content to the effect of "You are on hold, Please wait.”
  • the answering device when the pre- formulated message is selected, the answering device (where the message is composed) also performs, for example, actions of (i) answering the incoming call and (ii) placing it on hold.
  • the act of selecting the particular "on hold" message may trigger the device to answer a call and place it on hold.
  • a user may perform an action that triggers both the selection of text content (e.g. through the selection of a pre-formulated text message) and concurrent programmatic actions.
  • the user may provide a single input that (i) composes and sends the pre-formulated message (e.g. "hang on, placing you on hold"), then (ii) answers the call and (iii) places it on hold.
  • the user may be prompted with a message in response to an incoming call. The message may ask the user as to whether he or she wishes to place the call on hold and message reply the user. If the user selects the action of the prompt, the message is sent and the call is answered and placed on hold.
  • a pre-formulated text message may be provided without triggers or associated functionality, but as a form, with one or more fields that the user can fill in.
  • a pre-formulated message may be used, for example, to message response incoming calls.
  • Such forms may be incorporated into SMS or MMS messaging applications.
  • a mobile computing device that is configured to incorporate triggers for use in message replying responses to incoming phone calls.
  • a mobile computing device may be configured to enable the user of a mobile computing device to message reply a caller.
  • the mobile computing device may further be configured to programmatically detect a trigger in association with the message. In response to detecting the trigger, the device automatically performs the operation that is associated with the trigger.
  • the message reply may invoke or trigger an operation that requires use of data contained in the body of the message.
  • One or more embodiments provide for message replies to incoming telephony calls.
  • an incoming cellular telephony call to a first device may result in an application executing on the receiving device to prompt the user to message-reply the caller.
  • a particular messaging application may partially compose a new outgoing message.
  • the SMS application or plug-in open a new message and insert the phone number of the caller into the address field, and have the message ready to receive text content for its body. The user may then be prompted with a list of possible message replies, of which some (or all) may include triggers.
  • the list of possible message replies may, for example, be represented by an embodiment of FIG. 4.
  • the message reply may be handled consistent with any of the embodiments described herein.
  • both the sending and receiving device may process the trigger to implement some immediate or delayed programmatic action (e.g. notification, call placement etc.).
  • the devices may communicate using "Voice Over IP” (VOIP) communications.
  • VOIP Voice Over IP
  • one device may place a VOIP call to another device, and the device receiving the incoming call may message reply the caller back with a message that is structured in accordance with embodiments described herein.
  • the devices using VOIP may be connected devices, in communication with the Internet or other public networks through the use of high-speed network connections.
  • an embodiment such as described may also apply to mobile computing devices that use cellular data channels to perform VOIP Telephony.
  • message replies are carried over transports such as e-mail or Instant messaging.
  • an initiating computing device may send messages to multiple participants who operate other devices, using, for example, an SMS message transport.
  • the messages may be sent independent of any call that the sender is on.
  • Each message may include a common trigger that identifies a time, date and a phone number for a conference call to take place. Additional information, such as the subject of the meeting, or the conference code, may be included in a body of the message.
  • the receiving devices process the incoming messages programmatically.
  • each receiving device may perform one or more of the following : (i) provide a reminder notification of a scheduled conference call; (ii) provide a notification as to when the conference call is to initiate; (iii) prompt the user into initiating programmatic steps for placing the device on the call, including dialing the number or using the conference code; and (iv) perform some or all of the actions needed to place the user on the conference call (including dialing the number and the conference code). Under one implementation, all of the recited steps are performed automatically.
  • the usage scenario recites a cellular device
  • other embodiments contemplate use of desktop or laptop machines, which may use VOIP and/or other forms of messaging transports (such as email or instant messaging).

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Environmental & Geological Engineering (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)

Abstract

A mobile computing device may be configured to process a message may be incoming into or outgoing from the mobile computing device. A trigger may be detected in association with the message, and the trigger may be associated with an operation. The mobile computing device may automatically perform or initiate the operation in response to detecting the trigger.

Description

SYSTEM, METHOD AND DEVICE TO USE MESSAGING TO IMPLEMENT
PROGRAMMATIC ACTIONS
RELATED APPLICATION
This application claims priority to U.S. Patent Application No. 11/848,216, filed 30 August 2007, entitled "System, Method and Device to Use Messaging to Implement Programmatic Actions," the aforementioned application being hereby incorporated by reference in its entirety.
TECHNICAL FIELD
The disclosed embodiments relate to operations of a computer. More specifically, embodiments described herein relate to a system, method and device to use messaging to implement programmatic actions.
BACKGROUND
[0001] Computing devices, particularly handheld and portable devices, have evolved to include numerous types of communication capabilities and functionality. For example, handheld devices exist that operate as cellular phones, messaging terminals, Internet devices, while including personal information management (PIM) software and photo-management applications. Additionally, Internet Protocol services exist that can transform Internet-enabled machines into telephony devices. Even stand-alone telephones that connect to traditional Public Switched Telephone Networks (PSTN) are including more software to enhance the telephone's functionality. [0002] In enhancing communication capabilities and functionality, effort has been made to enhance and assist the user in using such devices. For i example, software features exist to facilitate the ease in which the user can act on a phone number in an email message. A sequence of phone numbers can be presented to a user for selection, and upon such selection being made, a telephony application uses the phone number in making a phone call. Small form-factor computing devices, such as devices that provide cellular phone functionality, have particular use for such short-cut functionality, in order to reduce the manual involvement of the user. These devices have smaller keyboards that may be harder to operate, and/or use in mobile or dynamic environments, where the user cannot readily retrieve a desired number.
[0003] Telephony devices are just one type of communication device. There are now many types of communication types, and multi-functional devices exist to accommodate the different communication types. Examples of communication types other than telephony include email, instant message (including SMS protocol messages and Multimedia Message Service (MMS) protocol messages), and video conferencing. Many computing devices, particularly smart phones, are enabled to support communications using multiple communication mediums. BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a simplified block diagram of a messaging system in accordance with an embodiment of the invention.
[0005] FIG. 2A illustrates an outgoing message having an embedded trigger, under an embodiment of the invention.
[0006] FIG. 2B illustrates an incoming message for use in a system for exchanging messages, in accordance with one or more embodiments of the invention.
[0007] FIG. 3 illustrates one embodiment in which pre-formulated text is used to specify a specific action that is to be performed or initiated, under an embodiment of the invention.
[0008] FIG. 4 illustrate use of pre-formulated text messages to incorporate and convey triggers, under an embodiment of the invention.
[0009] FIG. 5 illustrate an embodiment in which a system comprising a sending device and a receiving device coordinate to include location-based functionality in association with communication of a message between the sending and receiving device, under an embodiment of the invention.
[0010] FIG. 6 is a simplified diagram of a system for enabling receipt of incoming messages and/or transmission of outgoing messaging having function triggers, under an embodiment of the invention.
[0011] FIG. 7 illustrates a hardware diagram for a mobile computing device configured in accordance with one or more embodiments of the invention
DETAILED DESCRIPTION
[0012] Embodiments described herein provide for messages, communicated amongst persons, to include programmatic triggers that cause a device or machine on either the sending or receiving end to perform a function. Under one or more embodiments, the triggers are provided as part of a header or body of a message, and are in the form of one or more characters, so as to comprise text data.
[0013] Among numerous applications, embodiments enable a device to respond to an incoming call by message replying the caller. The message reply may include a trigger that causes either the sending or receiving device to perform a function, such as a call back. On a cellular mobile computing device, the incoming call may be received by way of cellular telephony, such as over a voice channel. The user may reply with a message over, for example, Short Message Service (SMS) transport. The communicated SMS message may contain a trigger that initiates an action on either the device that received the call/sent the message or the device that placed the call/received the message. As described with other embodiments provided below, however, one or more embodiments may be incorporated with other forms of telephony, including Voice Over IP (VOIP) or proprietary protocols such as provided by SKYPE. [0013] According to an embodiment, a mobile computing device includes processing resources, a memory that stores instructions and data, and a wireless communication sub-system. The processing resources use the instructions and data stored in the memory to enable a messaging application to be operable on the mobile computing device. The messaging application handles incoming messages received by the wireless communication sub-system and communicates outgoing messages over the wireless communication sub-system. A trigger detect component is configured to inspect an incoming message for presence of one or more triggers. One or more action components initiate or automatically perform an action responsive to the trigger detect component detecting a corresponding trigger.
[0014] In still another embodiment, a mobile computing device may be configured to process a message that may be either incoming into or outgoing from the mobile computing device. A trigger is detected in association with the message. The device associates the trigger with an operation. The mobile computing device may automatically perform or initiate the operation in response to detecting the trigger.
[0015] As a variation, the operation may be performed using data contained in the message, or data otherwise identified by the trigger.
[0016] Still further, a message may be stored in a computer-readable medium. The message may include a body of the message having a text content, and a data element included in a header or in the body of the message. The data element is structured to be recognizable, by a device that handles the message, as a trigger to initiate or automatically perform a function identified or associated with the trigger. In one implementation, the computer-readable medium may correspond to a cache, or other memory element where a message may be stored temporarily or before more permanent storage.
[0017] One or more embodiments described herein provide that methods, techniques and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically means through the use of code, or computer-executable instructions. A programmatically performed step may or may not be automatic.
[0018] One or more embodiments described herein may be implemented using modules. A module may include a program, a subroutine, a portion of a program, or a software component or a hardware component capable of performing one or more stated tasks or functions. As used herein, a module can exist on a hardware component independently of other modules, or a module can be a shared element or process of other modules, programs or machines.
[0019] Furthermore, one or more embodiments described herein may be implemented through the use of instructions that are executable by one or more processors. These instructions may be carried on a computer-readable medium. Machines shown in figures below provide examples of processing resources and computer-readable mediums on which instructions for implementing embodiments of the invention can be carried and/or executed. In particular, the numerous machines shown with embodiments of the invention include processor(s) and various forms of memory for holding data and instructions. Examples of computer-readable mediums include permanent memory storage devices, such as hard drives on personal computers or servers. Other examples of computer storage mediums include portable storage units, such as CD or DVD units, flash memory (such as carried on many cell phones and personal digital assistants (PDAs)), and magnetic memory. Computers, terminals, network enabled devices (e.g. mobile devices such as cell phones) are all examples of machines and devices that utilize processors, memory, and instructions stored on computer- readable mediums.
[0020] FIG. 1 is a simplified block diagram of a messaging system in accordance with an embodiment of the invention. A first mobile computing device 110 ("sending device 110") is configured to send a second mobile computing device 120 ("receiving device 120") a message 125, from which programmatic actions 140 may be triggered on one or both of the devices. The mobile computing devices 110, 120 may communicate across one or more networks, including cellular networks. One or both mobile computing devices 110, 120 may correspond to a portable and/or multi-functional devices having messaging capabilities across either voice or data channels. In one implementation, the mobile computing devices 110, 120 correspond to cellular telephony/messaging devices. The message 125 may be provided on any one of many possible transports, including Short Message Service (SMS), Multimedia Message Service (MMS), instant messaging, or email. Generally, on cellular devices, SMS and MMS transports are provided on voice channels, while email and instant messaging are provided on data channels.
[0021] The message 125 communicated from the sending device 110 may include a body 126, having text or other content. Additionally, the message 125 includes a trigger 130, which may be detectable by one or both devices. In one embodiment, the trigger 130 is detected and used by sending device 110, which processes the message 125 for triggers as an outgoing message. In another embodiment, the trigger is detected by the receiving device 120, which processes the message 125 for triggers as incoming. Still, the message 125 may include one or more triggers 130 that are used by both devices. [0022] In one embodiment, the trigger 130 is provided in a header of the message, and may be carried in the form of text or characters. Alternatively, such a trigger may be carried in the body of the message. When the trigger 130 is detected, the detecting device programmatically initiates and/or performs a corresponding action 140. In an embodiment, the programmatic action 140 may be performed using data that is identified by the trigger and/or carried by the message 125. The programmatic action 140 may be performed automatically or semi-automatically. In one embodiment, programmatic action 140 is performed automatically, so as to be initiated and performed without user-input in response to the trigger being detected.
[0023] In another embodiment, the programmatic action 140 is initiated, but may require user-input to be completed. For example, the programmatic action 140 may prompt the user to elect to have the identified action fully performed. Upon the user's input (e.g. the user entering selection input confirming to have the action performed), the action 140 is performed.
[0024] According to an embodiment, trigger 130 directly identifies in the message 125 the data 128 that is to be used to perform the programmatic action 140. For example, one of the devices may be configured to use the trigger 130 to also locate or identify application data 128 for performing the programmatic action 140. The data 128 may be positioned, for example, adjacent the trigger 130, so that detection of the trigger also results in detection of the data 128. Similarly, the data 128 and trigger 130 may be combined into one data structure.
[0025] Still further, message 125 may carry data 128 independent of the trigger 130. For example, in one embodiment, the data 128 may be carried in the message header (or in the body of the message). The trigger 130 may invoke action 140 on one of the two devices, in which the second mobile device 120 (as receiver of message 125 incoming) performs the action of telephoning the sending device 110 using a phone number carried in the header of the message 125. [0026] One or more embodiments also provide that the programmatic action 140 is performed without data that is identified by trigger 130 or included as part of the message 125. As an example, the trigger 130 may direct both devices 110, 120 to check voicemail. As another example, in the event the receiving device 120 is performing an activity, process or routine when the message is received, the trigger 130 may invoke action 140 in which receiving device 120 opens a folder and/or application where message 125 is stored immediately after it completes its in-progress routine/activity/process. For example, if receiving device 120 is on a phone call when message 125 is received, the receiving device may be configured to perform the action 140 of rendering the message 125 immediately after the phone call is over. Thus, the sending device 110 may include the trigger 130 that causes the message to be rendered as soon as the receiving device is available.
[0027] Numerous implementation examples may be provided with use of a system such as described in FIG. 1. In one embodiment, trigger 130 is processed to perform a delay notification by either the sending or receiving device 110, 120. For example, message 125 may carry the trigger 130 to direct the receiving device 120 to phone the sending device 110 in a given duration of time (e.g. ten minutes) has passed. In another embodiment, trigger 130 may direct either sending or receiving device 110, 120 to insert data in a record for use with another application. For example, the trigger action carried in the message 125 may be used to insert a line or data item in a calendar, task or memorandum entry.
[0028] Still further, the programmatic action 140 may correspond to an application, or a process that controls the application or initiates use of the application. In such an embodiment, trigger 130 may initiate use and/or control an application. Depending on implementation, either the sending device 110 or receiving device 120 may use trigger 130 in such context. In such embodiments, the detecting device may be configured to detect trigger
130 and use data 128 carried in the message 125 and/or identified by trigger 130. The programmatic action 140 caused by the trigger may include processes that launch the application and/or execution of the application using the data 128.
[0029] According to one or more embodiments, the trigger 130 and/or programmatic action 140 may be relevant or otherwise associated with a content of the message 125. In one embodiment, the body 126 includes a text message that is pre-formulated. The trigger 130 may be associated with the pre-formulated message, such that when the pre-formulated text message is selected by the sender 110, the associated trigger 130 is inserted to identify and trigger an associated action.
[0030] FIG. 2A and FIG. 2B illustrate messages that are structured in accordance with one or more embodiments. Messages such as described by an embodiment of FIG. 2A and FIG. 2B may be processed and stored in, for example, a cache or as part of memory used by a messaging program.
[0031] FIG. 2A illustrates an outgoing message having an inserted or embedded trigger, under an embodiment of the invention. In FIG. 2A, an outgoing message 210 is shown in the form of an SMS message that is either (i) in a state of composition, (ii) recently composed, or (iii) in process of transmission. As an example, the outgoing message 210 may be in the outbox folder. The message 210 includes "to" and "from" fields 212, 214 for identifying source and destination of the outgoing message 210. In the example provided, the "to" field 212 includes values 213a, 213b that identify a phone number and a name (or in this case an initial) of the intended recipient. The "from" field 214 also includes an identification value 215.
[0032] A body 226 of message 210 may include a text content 222. In one implementation, the text content 222 is a pre-formulated or "canned" message, meaning it is selectable and insertable as a whole into the message. The user may be able to select from a menu or list of pre- formulated text messages. With selection input, an entire message comprising several words or a phrase may be inserted into the body 226 of the message.
[0033] In an embodiment, trigger 230 is provided within the body 226 of the message. As outgoing, trigger 230 may be inserted by the sending device 110 (FIG. 1). Furthermore, under one implementation, trigger 230 may be used by the sending device 110. The sending device 110 may use the trigger to perform an action programmatically, and at least partially automatically. Thus, under an embodiment, one of the composition and/or transmission of the message may initiate a corresponding action on the sending device.
[0034] According to an embodiment, the trigger 230 may correspond to character data, such as special characters (e.g. "*/"), or alternatively a designated set of letters and/or numbers. In this form, the trigger 230 is text data and easily carried in any messaging transport, including SMS.
[0035] In an embodiment the trigger 230 is also associated with the pre- formulated text content 222. When the sending device 210 is to perform the action, the selection of the pre-formulated text content 222 may invoke a corresponding designated action on the sending device 110 (FIG. 1). As described with one or more embodiments of FIG. 4, different pre-formulated messages may be used to invoke different actions. One or more embodiments provide that the action associated with the trigger is relevant to the pre-formulated text content 222. For example, the text content 222 may state: "I will call you back" and the action performed on the outgoing device may be to prompt or initiate the phone call to the recipient device 120 after a designated duration or in response to a specific event. For example, in an implementation where the sending device is the detecting device, the call back action may be initiated on the sending device 110 right after the sender terminates another call that was in progress when the message 210 was communicated.
[0036] The trigger 230 may also be identified or associated with other data that is actually used by the sending device 110 (FIG. 1) to perform the action. For example, the trigger 230 may be associated with a value of the "To" field. More specifically, the trigger 230 may cause the sending device 110 to perform the action that uses the value 213a of the "To" field 212. Alternatively, the action triggered by the trigger may seek and use one of the values of the fields when it is performed
[0037] FIG. 2B illustrates an incoming message for use in a system for exchanging messages, in accordance with one or more embodiments of the invention. In FIG. 2B, an incoming message 250 may be an SMS message and may optionally correspond to the same message as the outgoing message 210 in FIG. 2A. Accordingly, the incoming message 250 may include the "to" and "from" fields 212, 214 for identifying source and destination of the outgoing message 210. As incoming, message 250 may be received on the receiving device 120 (FIG. 1) and forwarded to an inbox. In an embodiment of FIG. 2B, the receiving device 220 may detect and process a trigger 260, which causes the receiving device to automatically initiate and/or perform a corresponding programmatic action. As with an embodiment of FIG. 2A, the trigger 260 may, under one embodiment, be in the form of characters, including special characters, text or numbers.
[0038] A body 256 of the message 250 may include text content 252 that also contains the trigger 260. The trigger 260 may be provided with a pre- formulated text content 252. The pre-formulated text content 252 may be relevant to the action that is performed. For example, the user of the sending device 110 (FIG. 1) may select pre-formulated text content 252 to both communicate a message and direct the receiving device 120 (Fig. 1) to perform an action. For example, in one implementation, the sending device 110 is able to use trigger 260 to prompt the receiving device into making a phone call to the sending device after a designated duration of time. For example, the pre-formulated text content 222 may be equivalent to "Call me back in 10 minutes" and the action performed on the receiving device 120 (FIG. 1) may be to prompt the user to make the call after ten minutes. [0039] The trigger 260 may identify or be associated with data that is to be used by the receiving device 120 (FIG. 1) in performing its action. For example, the trigger 260 may be associated with one of the fields, such as the "from" field 214. Alternatively, the action triggered by the trigger may seek and use one of the values of the fields when it is performed. In such an example, the action performed as a result of the trigger 260 may incorporate or use the phone number of the "from" field 214.
[0040] PRE-FORMULATED MESSAGES
[0041] FIG. 3 illustrates one embodiment in which pre-formulated text content of a message is used to trigger a specific action that is to be performed or initiated when the message is communicated, under an embodiment of the invention. In describing a method of FIG. 3, reference is made to elements described in a system of FIG. 1, for purpose of illustration suitable elements or sub-elements for performing a step or portion thereof. In step 310, an event occurs or is in progress when a user on sending device 110 composes an outgoing message. In composing the message, the user may select one pre-formulated text message from other pre-formulated text messages. With selection, text content corresponding to the pre-formulated text message is inserted into a body of the message. An example of an event may correspond to a device receiving an incoming call. The method described may be implemented in the context of message replying the caller, as a substitute for answering the call.
[0042] In step 320, a trigger may be associated with the pre-formulated message. Each trigger may invoke a corresponding action. Furthermore, different pre-formulated messages may contain different triggers. As described with an embodiment of FIG. 2A, the pre-formulated text message may be associated with a particular set of characters, such as special characters, that are identifiable as a trigger to a detecting device. Optionally, the trigger provided with the pre-formulated message may include a trigger identification, to identify one trigger (and thus a programmatic action) from other triggers and programmatic actions.
[0043] In step 330, the trigger is detected when the message is communicated. In one embodiment, the trigger is detected and used by the sending device. For example, the trigger may invoke a delayed action (e.g. notification or application launch or use) on the sending device 110. In another embodiment, the trigger is detected and used by the receiving device 120. Still further, both devices may detect and use the trigger in one message exchange.
[0044] The process of detecting the trigger may be one where the body of the message (whether incoming or outgoing) is scanned for presence of characters that identify the trigger. Thus, the detecting device may include logic for scanning messages of the particular transport used to convey the trigger (such as SMS). As an alternative to special or designated characters, the detecting device may use pattern recognition of the text body. For example, a pre-formulated text message may be recognized from the words used, even if other words appear before or after the message.
[0045] Still further, the trigger may be event-based. The detecting device may include logic that detects a condition or device state, and infers the trigger based on the presence of the condition. For example, the receiving device may detect a trigger (i) if that device has just placed a call to a particular number, and (ii) an SMS message is received within a designated duration of time from the same phone number of the incoming caller. The presence of these two conditions may infer a "message ignore scenario" where one device may ignore an incoming message with a message reply (such as by way of SMS). In such instances, for example, the receiving device may scan the message for a field value that indicates a duration of time ("5 minutes"), and then may perform an action or notification in that time period.
[0046] Step 340 provides that the detecting device either initiates or performs automatically the action identified by the trigger. If the detecting device initiates performance of the action, it may display to the user a question or other prompt to confirm the device should perform the action. For example, the action may correspond to calling a number included in the "to" or "from" field (depending on whether the detecting device is the recipient or sender of the message). Upon receiving the confirmation input from user, the action (e.g. placing the call) may be performed. Alternatively, the action may be performed automatically. For example, the detecting device may place the call immediately, after a given duration designated by the trigger or action, or after an event (such as termination of a call in progress).
[0047] FIG. 4 illustrate use of pre-formulated text messages to incorporate and convey triggers, under an embodiment of the invention. FIG. 4 illustrates an embodiment in which a user can select pre-formulated text messages 410 from a menu 402 for transmission to another device, where actions associated with the message are to be performed on the sending device. Messages 410a-410c may be implemented in a call-ignore scenario, where the user is able to message reply an incoming call, rather than answer the call. The messages 410a-410c enable the user to select a particular duration of time. The trigger associated with each message 410a-410c may invoke the sender to perform the call back, using the time specified in the content of the message. Thus, both the specific action (placing the call) and the timing as to when the action is to be performed may be specified by the trigger of the pre-formulated text message.
[0048] As an alternative or addition, the timing as to when the action is to be performed may be supplied as input by the user of the sending device. Under one embodiment, the pre-formulated message may present a field that the user can fill in with a numeric value. The action performed in association with the message may scan for the field value and delay (or otherwise configure or modify) performance of the action based on the field value.
[0049] Message 41Od provides an example of a sender specifying a programmatic action on the recipient device. Message 41Od may also be provided in context of a call-ignore event. However, message 410d may include a trigger that specifies the recipient device to perform the call back (or initiate the call back) after a given duration of time. As an alternative or addition, the user of the sending device may specify the value when the call back is to be performed. Thus, the pre-formulated message 410d may provide text content and trigger with an open field that can be supplied manually with user-input. Under one implementation, the value of the user- input may affect the trigger and/or action to be performed. For example, the timing of a delay notification may be affected by the user-input.
[0050] Numerous alternative actions may be associated with pre- formulated messages. Message 41Oe shows an example where the composition and/or transmission of the message causes both the sender and recipient device to perform an action. In message 41Oe, the user's selection of the pre-formulated text message "Here is my card" may cause one or both of the following: (i) the sender device to automatically attach the sender's contact information or v-card, and (ii) have the information or card stored in a contact application on the recipient device.
[0051] Message 41Of shows another implementation where the sender may select a pre-formulated text message that invokes the recipient device to store the message as a task or memo. An actual task item may be entered manually by the user. Under one implementation, the text of the task item is carried into task or memo as part of the action performed (responsive to the trigger).
[0052] In any of the examples provided by FIG. 4, the corresponding action may be performed by the acting device having logic to (i) detect the trigger embedded or included in the body of the message, and (ii) perform the action identified or otherwise associated with the trigger. In an embodiment in which SMS transport is used, the sending device 110 may be configured to insert the trigger automatically when a corresponding pre- formulated message is selected and inserted into the body of the message. Such a trigger may be inserted as text data (e.g. special characters, such as "*/") into the body of the message. Depending on the implementation, the sending and/or receiving device may be configured to detect the presence of the trigger, and then either perform the action, or alternatively initiate performance of the action.
[0053] As an alternative or addition, the sending device 110 (FIG. 1) may recognize and perform a function associated with a composed or outgoing message simply be detecting the selection of the pre-formulated message. Thus, the sending device may operate without triggers embedded or provided within the body of the message. Rather, the trigger may correspond to the user of the device selecting a particular pre-formulated message.
[0054] LOCATION-BASED FUNCTIONS
[0055] One or more embodiments provide for use of messages to trigger performance of location-based functions. Location-based functions may correspond to functions that integrate location information, in any particular form, such as by way of coordinates (e.g. through use of GPS component) or street address.
[0056] FIG. 5 illustrate an embodiment in which a system comprising a sending device and a receiving device coordinate to include location-based functionality in association with communication of a message between the sending and receiving device, under an embodiment of the invention. In describing a method of FIG. 5, reference is made to elements of a system of FIG. 1, for purpose of illustrating suitable elements for performing a step (or sub-step) being described.
[0057] In step 510, the sending device 110 is operated to insert a trigger for location-based functionality into a message. The message may be of a kind used under any transport, such as SMS. The trigger may be operated by the user performing an action that is associated with insertion of the trigger. For example, the user may select a pre-formulated text that pertains to location-based functionality (e.g. "Where are you?"). Selection of the text may automatically insert a trigger into the header or body of the message. The trigger may be used by the recipient device 120. Under an embodiment, the trigger may also be used by the sending device 110.
[0058] In one embodiment, insertion of the trigger may occur responsive and/or in connection with insertion of location-based information, such as provided from GPS resources that may be resident on the device. For example, under one implementation, the user may select a pre-formulated text (e.g. "where are you"). The selection of the pre-formulated message, or the inclusion of a trigger associated with that message, may also trigger the sending device 110 to use the GPS resources to identify coordinates of the sending device for insertion into the header or body of the message. As will be described, the insertion of GPS coordinates of the sending device may be used to enable the receiving device 120 to (i) estimate a measure of separation between the two devices, or (ii) map the position of the sending device in preparing a response answer.
[0059] As another example, the user of the sending device may communicate the message: "Meet me here". The inclusion of the message may include a trigger, or otherwise separately trigger the sending device to include coordinates from GPS resources, or information about the location of the user from a mapping service. Thus, the composition of the message may separately trigger the sending device 110 to include supplemental information from the GPS resources.
[0060] As an alternative, the user of the sending device may operate the GPS resources to direct the GPS resources to programmatically insert the information into the body of the message. As still another variation, the user of the sending device 110 may select the pre-formulated message and manually supplement the message with information about the location of the user into the message. For example, the user may operate a separate GPS device, operate the GPS application of the detecting device independently, or enter location information in the form of a steet address or zip-code. The information may be carried as entered by the user of the sending device. Alternatively, once the location information is entered and the communication of the message is initiated (e.g. the message is placed in the outbox), the trigger in the message causes the sending device 110 to access the GPS resources and programmatically convert the entered information into a form of data that can be used by the GPS resources of the receiving device.
[0061] In step 520, the receiving device 120 receives the message. The device may be configured to process the message for triggers. For example, the receiving device 120 may scan the header or body of the incoming message for a designated set of characters that are indicative of a trigger. As an alternative, the trigger may be combined by the presence of numbers and characters that match a form of coordinates from a GPS application. Still further, presence of other words or data element types may act as a trigger. For example, the presence of the word "address" or the detection of a string of characters that appear to be an address (e.g. string including 1-4 numbers at beginning, followed by words and ending with various words or abbreviation indicative of road, street etc.) may all be determined to be location information by the detecting device. Other variations are also possible. As mentioned, the trigger may be provided as a header or in the message body.
[0062] Step 530 provides that the receiving device 120 associates the detected trigger with a function. The receiving device 120 may also handle the message in a manner in which messages of the SMS (or other) transport are normally handled. For example, the message may be stored as a new message in an inbox folder.
[0063] Step 540 provides that the receiving device performs the identified function associated with the detected trigger. The identified function may be performed immediately or subsequently, after a duration of completion of an event. The trigger may cause the receiving device to either perform the action automatically, or to initiate the action. For example, the trigger may cause the receiving device 120 to prompt the user for confirmation input before completing the action.
[0064] According to an embodiment, the action that is performed requires identification of location information of the receiving device 120. As an alternative or addition, the action may require the receiving device to access its GPS resources. For example, the action may include the receiving device determining its coordinates to identify its location.
[0065] Still further, the action that is to be performed on the receiving device may include the use of data provided in the received message. For example, the action may use coordinates provided in the incoming message with a mapping application, so that the recipient device generates a map from information contained in the message. As another example described (in more detail with the following paragraph), the action may require use of location information of the sending device for purpose of determining a distance measurement between the two devices. The trigger may be provided to identify the location-information. Alternatively, the logic that performs the action on the receiving device 120 may detect the location information in the incoming message based on, for example, data format or pattern recognition.
[0066] Under one embodiment, the action performed by the receiving device may also include the receiving device 120 processing the GPS information from the sending device 110. Thus, for example, the receiving device 120 may determine a difference between the position of the sending and receiving devices 110, 120. This difference may correspond to distance and/or time measurement (e.g. "You are 8 minutes away at current speed.").
[0067] The action performed by the receiving device 120 in response to receiving the triggered message may also be multi-stepped. For example, the receiving device may also be configured to perform the action of sending a reply message back to the sending computer. Depending on the embodiment, the reply message may include the location information of the recipient device 120 (as determined by the GPS resources of the device 120) and/or evaluation of location information of the sending device 110 (if any present).
[0068] An embodiment such as recited with FIG. 5 may be implemented to initiate or trigger actions that announce or relate to a delayed arrival of a user carrying a mobile computing device. In one implementation, GPS resources on a device may detect its position, and that information may in turn be used to communicate delayed arrivals. For example, a person may communicate an outgoing message from one mobile computing device to another device having GPS resources, to the effect of "Call me when you get home." A trigger in the message may initiate the receiving device to (i) programmatically determine when the device is λhome', and (ii) initiate or place the call for the user. In another implementation, the device may communicate a message consistent with "I will call you from home". The device may process the outgoing message to detect when it is home, and then programmatically initiate or place the call.
[0069] SYSTEM ARCHITECTURE
[0070] FIG. 6 is a simplified diagram of a system for enabling receipt of incoming messages and/or transmission of outgoing messaging having function triggers, under an embodiment of the invention. A system 600 such as described with an embodiment of FIG. 6 may be implemented on, for example, a mobile computing device (e.g. cellular messaging/voice device), although embodiments may be implemented on numerous different types of devices, such as multi-functional portable computing devices, laptop computers and desktop computers. A system such as described by an embodiment of FIG. 6 may be implemented using a combination of components and/or modules, including a messaging application 610 having one or more trigger detect components 612 and/or a trigger insert component 614. The messaging application 610 may communicate with one or more action components 620. A message store 615 may be maintained and used by the messaging application 610.
[0071] In an embodiment, a device on which system 600 is provided may use wireless communication mediums, such as provided by cellular mediums, to send and receive messages. Alternatively, the device may use Wireless Fidelity ("WiFi") as defined by, for example, the 802.11(b) or 802.11(g) standards, or even WiMax networks that operate under the 802.16 standards. Land connections may also be used. While different messaging transports may be used with embodiments described herein, one or more embodiments provide for system 600 to be implemented for SMS transport, using a cellular network or other network that can handle SMS messaging.
[0072] With regard to an incoming message 606, system 600 may process the message by inspecting the message for a trigger. In one embodiment, the trigger detect 612 inspects the incoming message 606 by scanning the header and/or body of the message for the presence of the trigger. With SMS messages which carry text, the trigger detect 612 scans the message for text that is characteristic of a trigger. For example, the message may be scanned for a cluster of special characters that are indicative of a trigger. As an alternative or addition, trigger detect 612 may scan the message for text patterns that are indicative of a particular function, such as may be provided with a pre-formulated message. In one embodiment, trigger detect 612 scans the incoming message 606 for characters that are indicative of the trigger, and then removes the characters from the message before the messaging application 610 subsequently stores and/or renders the incoming message 606. In one embodiment, the messaging application 610 stores the incoming message 606 in the message store 615 (e.g. "inbox"), and sends an instruct 616 or other signal to one of the action components 620.
[0073] In one embodiment, the messaging application 610 also identifies data for performing the action identified by the trigger from the incoming message 606. The messaging application 610 may, for example, identify data from the header of the message, or data included with or identified by the trigger. The messaging application 610 may communicate the identified data to the action component 620.
[0074] The action components 620 may correspond to applications, plug- ins, or software and/or other logic that uses the instruct 616 and/or identified data to perform the function associated with the trigger. For example, the action component 620 may correspond to anyone of an application (or plug- in) corresponding to a phone application (for when the action is to place a call), a mapping application (for performing location-based functions in the form of mapping), a GPS application that interfaces with corresponding GPS hardware (for performing location-based functions), task manager, file manager, or notification manager for generating instant and delayed notifications.
[0075] As an alternative or addition, system 600 may also be configured to (i) insert triggers into an outgoing message, and optionally (ii) process triggers in outgoing messages. As mentioned, the outgoing message 608 may be one that is composed, placed in a folder (e.g. "outbox") for transmission, or in a state of transmission. Trigger insert 614 may correspond to a component that places, for example, a character or set of characters that identify a particular function in the header or body of a message that is to be outgoing. The trigger insert 614 may be integrated with the messaging application 610, or provided separately from it.
[0076] In one implementation, for example, the trigger insert 614 is associated with a menu or list of pre-formulated messages. The selection of a message from the list results in the trigger insert 614 inserting a corresponding trigger for the selected message in the header or body of the outgoing message 608. As an alternative or addition, trigger insert 614 may be associated with a GPS application. The use of the GPS application in certain instances may generate data that may be inserted into the message as or with a separate identifiable trigger. Numerous other forms of trigger inserts may be used.
[0077] As mentioned, an embodiment provides that the system 600 is configured to detect and act on triggers in outgoing messages. Trigger detect 612 may thus scan the outgoing message 608, including the header and body for presence of the trigger. Alternatively, the trigger insert 614 may communicate with the messaging application 610 to signal the presence of a trigger. The trigger may then be acted on by one of the action components 620. For example, the messaging application 610 may provide an instruct 616 for the outgoing message 608, which may be handled and processed by, for example, a notification component (generate a delayed notification) or telephony application (place a call to recipient device at a later time).
[0078] HARDWARE DIAGRAM
[0079] FIG. 7 illustrates a hardware diagram for a mobile computing device configured in accordance with one or more embodiments of the invention. A device 700 includes a processor 710, memory resources 715, a display 720, a wireless communication sub-system 730, and mechanical input features 740. The wireless communication sub-system 730 may send and receive wireless data over data channels 702 and voice channels 704. Messages over SMS and MMS transports are communicated over voice channels 704. Emails and instant messages are communicated over data channels 702.
[0080] Processor 710 may be configured with software and/or other logic to perform one or more processes, steps and other functions described with embodiments. Processor 710 is configured, with instructions and data stored in memory resources 715, to execute messaging application 610 (see FIG. 6), as well as components for trigger detect 612 (FIG. 6) and trigger insert 614 (FIG. 6). The incoming and outgoing messages may be received or transmitted from the wireless sub-system (which may or may not include processor 710). For location-based functions, processing resource 710 may execute a GPS application and use an integrated GPS sub-system 750 that handles receipt of GPS data 752.
[0081] While FIG. 7 is illustrated for a mobile computing device, one or more embodiments may be implemented on other types of devices, including multi-functional devices, or full-functional computers such as laptops.
[0082] ALTERNATIVE EMBODIMENTS
[0083] While embodiments described herein provide for use of incorporating or embedding triggers with messages, other embodiments provide for coordinating performance of certain actions with communication of specific messages. One or more embodiments may be implemented in the context of providing message replies to incoming phone calls. More specifically, U.S. Patent Application No. 11/200,511 (hereby incorporated by reference) describes a device that enables a user to respond to an incoming phone call with a message reply to the caller. For example, the user may elect to ignore an incoming call by text messaging the caller to call back. In this context, one or more embodiments provide that a user of a mobile computing device can, with one or more short-cut actions, answer an incoming phone call and place it on hold, while messaging the caller back and informing him that is he or she is on hold. For example, in response to an incoming call, the user can select a pre-formulated message that states content to the effect of "You are on hold, Please wait." When the pre- formulated message is selected, the answering device (where the message is composed) also performs, for example, actions of (i) answering the incoming call and (ii) placing it on hold. Thus, the act of selecting the particular "on hold" message may trigger the device to answer a call and place it on hold.
[0084] As an alternative or addition to embodiments described herein, a user may perform an action that triggers both the selection of text content (e.g. through the selection of a pre-formulated text message) and concurrent programmatic actions. For example, rather than the user selecting a pre- formulated message to trigger an incoming call to be placed on hold, the user may provide a single input that (i) composes and sends the pre-formulated message (e.g. "hang on, placing you on hold"), then (ii) answers the call and (iii) places it on hold. For example, the user may be prompted with a message in response to an incoming call. The message may ask the user as to whether he or she wishes to place the call on hold and message reply the user. If the user selects the action of the prompt, the message is sent and the call is answered and placed on hold.
[0085] In still another embodiment, a pre-formulated text message may be provided without triggers or associated functionality, but as a form, with one or more fields that the user can fill in. Such a pre-formulated message may be used, for example, to message response incoming calls. Such forms may be incorporated into SMS or MMS messaging applications.
[0086] Still further, embodiments described herein provide for a mobile computing device that is configured to incorporate triggers for use in message replying responses to incoming phone calls. In one embodiment, a mobile computing device may be configured to enable the user of a mobile computing device to message reply a caller. The mobile computing device may further be configured to programmatically detect a trigger in association with the message. In response to detecting the trigger, the device automatically performs the operation that is associated with the trigger.
[0087] Under one variation, and as mentioned with one or more other embodiments, the message reply may invoke or trigger an operation that requires use of data contained in the body of the message.
[0088] USAGE SCENARIOS AND ALTERNATIVES
[0089] One or more embodiments provide for message replies to incoming telephony calls. On a cellular mobile computing device, for example, an incoming cellular telephony call to a first device may result in an application executing on the receiving device to prompt the user to message-reply the caller. If the user elects to message-reply the caller, a particular messaging application may partially compose a new outgoing message. For example, the SMS application or plug-in open a new message and insert the phone number of the caller into the address field, and have the message ready to receive text content for its body. The user may then be prompted with a list of possible message replies, of which some (or all) may include triggers. The list of possible message replies may, for example, be represented by an embodiment of FIG. 4. Once the message reply is inserted, the message and its trigger may be handled consistent with any of the embodiments described herein. For example, both the sending and receiving device may process the trigger to implement some immediate or delayed programmatic action (e.g. notification, call placement etc.).
[0090] As an alternative to conventional cellular telephony, the devices may communicate using "Voice Over IP" (VOIP) communications. Thus, one device may place a VOIP call to another device, and the device receiving the incoming call may message reply the caller back with a message that is structured in accordance with embodiments described herein. The devices using VOIP may be connected devices, in communication with the Internet or other public networks through the use of high-speed network connections. However, an embodiment such as described may also apply to mobile computing devices that use cellular data channels to perform VOIP Telephony. With VOIP telephony, one or more embodiments provide that message replies (with triggers) are carried over transports such as e-mail or Instant messaging.
[0091] As mentioned elsewhere, embodiments described herein may also be implemented outside of the content of message-replies to incoming calls. In one embodiment, an initiating computing device (e.g. mobile cellular telephony device) may send messages to multiple participants who operate other devices, using, for example, an SMS message transport. The messages may be sent independent of any call that the sender is on. Each message may include a common trigger that identifies a time, date and a phone number for a conference call to take place. Additional information, such as the subject of the meeting, or the conference code, may be included in a body of the message. The receiving devices process the incoming messages programmatically. At or before the given time and date, each receiving device (and the sending device) may perform one or more of the following : (i) provide a reminder notification of a scheduled conference call; (ii) provide a notification as to when the conference call is to initiate; (iii) prompt the user into initiating programmatic steps for placing the device on the call, including dialing the number or using the conference code; and (iv) perform some or all of the actions needed to place the user on the conference call (including dialing the number and the conference code). Under one implementation, all of the recited steps are performed automatically. Moreover, while the usage scenario recites a cellular device, other embodiments contemplate use of desktop or laptop machines, which may use VOIP and/or other forms of messaging transports (such as email or instant messaging).
[0092] Although illustrative embodiments of the invention have been described in detail herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments. As such, many modifications and variations will be apparent to practitioners skilled in this art. Accordingly, it is intended that the scope of the invention be defined by the following claims and their equivalents. Furthermore, it is contemplated that a particular feature described either individually or as part of an embodiment can be combined with other individually described features, or parts of other embodiments, even if the other features and embodiments make no mentioned of the particular feature. This, the absence of describing combinations should not preclude the inventor from claiming rights to such combinations.

Claims

What is claimed is:
1. A method for performing a location-based function, the method comprising:
receiving an incoming message;
detecting location information in a header or a body of the incoming message; and
in response to detecting the location information, automatically performing the location-based function using the location information.
2. The method of claim 1, wherein detecting location information includes detecting a trigger that indicates a presence of the location information.
3. The method of claim 2, wherein the trigger is a designated set of characters.
4. The method of claim 3, wherein the designated set of characters corresponds or identifies a pre-formulated text message.
5. The method of claim 1, wherein receiving the incoming message includes receiving one of a Short Message Service (SMS), an instant message, an email, or a Multimedia Message Service (MMS) message.
6. The method of claim 1, wherein detecting the location information includes detecting a set of coordinates for use with a global positioning system component.
7. The method of claim 6, wherein performing the location function includes executing a process of a global positioning system application using the set of coordinates.
8. A method for performing a location-based function on a mobile computing device, the method comprising: detecting an outgoing message;
detecting a trigger for performing a location based function;
responsive to detecting the trigger, performing the location based function to generate a result;
including data corresponding to the result in the outgoing message.
9. The method of claim 8, wherein detecting an outgoing message includes detecting one of a Short Message Service (SMS), an instant message, an email, or a Multimedia Message Service (MMS) that is in composition or ready for transmission.
10. The method of claim 8, wherein detecting a trigger includes detecting inclusion of a designated set of characters in the body of the outgoing message.
11. The method of claim 8, wherein performing the location based function includes determining information about a location of the mobile computing device, and wherein including data corresponding to the result includes programmatically inserting data corresponding to the location in the outgoing message.
12. A message stored in a computer-readable medium, the message comprising:
a body of the message having a text content;
a data element included in a header or in the body of the message that is recognizable, by a device that handles the message, as a trigger to initiate or automatically perform a function identified or associated with the trigger.
13. The message of claim 12, wherein the trigger corresponds to a set of one or more characters.
14. The message of claim 12, wherein the message is one of a Short Message Service (SMS) or Multimedia Message Service (MMS) type message.
15. The message of claim 12, wherein the text content is a pre-formulated message.
16. A method for performing messaging operations on a mobile computing device, the method comprising:
for a message that is incoming into or outgoing from the mobile computing device, detecting a trigger in association with the message;
associating the trigger with an operation; and
automatically performing the operation in response to detecting the trigger, using at least in part, data contained in the message.
17. The method of claim 16, wherein detecting a trigger includes detecting the trigger from a data element contained in a header or a body of the message.
18. The method of claim 16, wherein the data element corresponds to a designated set of characters.
19. The method of claim 18, wherein detecting the trigger further comprises detecting the designated set of characters in association with a pre-formulated text message.
20. A mobile computing device comprising:
processing resources;
a memory that stores instructions and data;
a wireless communication sub-system; wherein the processing resources use the instructions and data stored in the memory to enable:
a messaging application to be operable on the mobile computing device, wherein the messaging application handles incoming messages received by the wireless communication sub-system and communicates outgoing messages over the wireless communication sub-system;
a trigger detect component that is configured to inspect an incoming message for presence of one or more triggers;
one or more action components that initiate or automatically perform an action responsive to the trigger detect component detecting a corresponding trigger.
21. The mobile computing device of claim 20, wherein the processing resources enable a trigger insert component that inserts a trigger into an outgoing message for causing another device receiving the outgoing message to initiate or automatically perform a corresponding action.
22. The mobile computing device of claim 20, wherein the processing resources enable the trigger detect component to inspect an outgoing message for presence of another trigger, and wherein another action component is configured to initiate or perform an action identified by the detected trigger of the outgoing message.
23. The mobile computing device of claim 20, wherein the messaging application is for either a Short Message Service (SMS) or Multimedia Message Service (MMS) transport.
24. The mobile computing device of claim 20, wherein the one or more action components use data provided in the incoming message to initiate or automatically perform the action.
25. The mobile computing device of claim 24, wherein the data provided in the incoming message is location information provided by a Global Positioning Resource, and wherein the action is a location-based function.
PCT/US2008/074320 2007-08-30 2008-08-26 System, method and device to use messaging to implement programmatic actions WO2009032630A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP08829485A EP2188906A4 (en) 2007-08-30 2008-08-26 System, method and device to use messaging to implement programmatic actions

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/848,216 US20090061833A1 (en) 2007-08-30 2007-08-30 System, method and device to use messaging to implement programmatic actions
US11/848,216 2007-08-30

Publications (1)

Publication Number Publication Date
WO2009032630A1 true WO2009032630A1 (en) 2009-03-12

Family

ID=40408266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2008/074320 WO2009032630A1 (en) 2007-08-30 2008-08-26 System, method and device to use messaging to implement programmatic actions

Country Status (3)

Country Link
US (1) US20090061833A1 (en)
EP (1) EP2188906A4 (en)
WO (1) WO2009032630A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866950B2 (en) 2017-12-06 2020-12-15 Motorola Solutions, Inc. Method and system for modifying a search request corresponding to a person, object, or entity (POE) of interest

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844037B2 (en) * 2005-08-08 2010-11-30 Palm, Inc. Method and device for enabling message responses to incoming phone calls
US8005194B2 (en) * 2005-12-21 2011-08-23 Hewlett-Packard Development Company, L.P. Technique for handling incoming reply messages
US8442507B2 (en) * 2007-09-26 2013-05-14 Qualcomm Incorporated Methods and apparatus for dynamic source determination of provisioning information on a per-network service basis for open market wireless devices
US20090082004A1 (en) * 2007-09-26 2009-03-26 Qualcomm Incorporated Apparatus and methods of open market handset identification
US8831575B2 (en) * 2007-09-26 2014-09-09 Qualcomm Incorporated Apparatus and methods associated with open market handsets
US9756004B2 (en) * 2007-11-08 2017-09-05 Skype Message delivery system and method
US20090209275A1 (en) * 2008-02-14 2009-08-20 Moraes Ian M Message robot
ES2347402B1 (en) * 2008-11-26 2011-09-01 Vodafone España, S.A.U. INCLUSION OF INFORMATION IN A MESSAGE.
US20100216492A1 (en) * 2009-02-16 2010-08-26 Comverse, Ltd. Employment of a text message by a user of a first mobile telephone to invoke a process that provides information to a user of a second mobile telephone
US8385975B2 (en) * 2009-04-23 2013-02-26 Qualcomm Incorporated Context-based messaging for wireless communication
US20100323729A1 (en) * 2009-06-17 2010-12-23 Carrie Chitsey Electronic card presentation and exchange
US20120110681A1 (en) * 2010-11-03 2012-05-03 Yat Wai Edwin Kwong Systems for email communications
US9665266B2 (en) * 2011-10-27 2017-05-30 Blackberry Limited Setting reminders from an instant messaging application
EP2817925B1 (en) * 2012-01-05 2019-11-27 Glympse Inc Systems and methods for mobile communication integration
US20130324094A1 (en) * 2012-05-31 2013-12-05 Tip Solutions, Inc. Image response system and method of forming same
US9715325B1 (en) 2012-06-21 2017-07-25 Open Text Corporation Activity stream based interaction
US9692675B1 (en) 2012-06-21 2017-06-27 Open Text Corporation Activity stream based collaboration
US8942674B2 (en) * 2013-01-18 2015-01-27 Blackberry Limited Responding to incoming calls
US10701014B2 (en) * 2013-03-15 2020-06-30 Companyons, Inc. Contextual messaging systems and methods
KR102057944B1 (en) * 2013-09-17 2019-12-23 삼성전자주식회사 Terminal device and sharing method thereof
US9923887B2 (en) * 2015-08-27 2018-03-20 Pivotal Software, Inc. Push notification activation
US9942732B2 (en) * 2016-07-09 2018-04-10 Microsoft Technology Licensing, Llc Triggering actions with mobile messages
GB201718860D0 (en) * 2017-11-15 2017-12-27 Ashford Simon Scheduling communication system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484036B1 (en) * 1999-11-19 2002-11-19 International Business Machines Corporation Method and apparatus for scheduling mobile agents utilizing rapid two-way communication
US20060041470A1 (en) * 2004-08-18 2006-02-23 Blah! Sociedad Anonima De Servicos E Comercio Message generation for mobile communication devices
KR20060093183A (en) * 2005-02-21 2006-08-24 주식회사 팬택 Home network system and method using global positioning system function in a mobile communication terminal
KR20070078369A (en) * 2006-01-26 2007-07-31 엘지전자 주식회사 Method for requesting triggered location service between terminals in location information system

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US589505A (en) * 1897-09-07 Bottle-stopper
US4922526A (en) * 1987-12-16 1990-05-01 Dytel Corporation Automated access facilities for use with key telephone systems
US5029196A (en) * 1988-07-11 1991-07-02 Dytel Corporation Automated call screening
US4996704A (en) * 1989-09-29 1991-02-26 At&T Bell Laboratories Electronic messaging systems with additional message storage capability
US5396544A (en) * 1993-10-25 1995-03-07 General Research Of Electronics, Inc. Telephone answering system
US5585749A (en) * 1994-12-27 1996-12-17 Motorola, Inc. High current driver providing battery overload protection
KR0155633B1 (en) * 1995-05-11 1998-11-16 김광호 Method for transmitting greeting message in answering telephone
US5751707A (en) * 1995-06-19 1998-05-12 Bell Atlantic Network Services, Inc. AIN interaction through wireless digital video network
US5748100A (en) * 1995-10-06 1998-05-05 Motorola, Inc. Reliable wireless message distribution system
US5991290A (en) * 1996-06-03 1999-11-23 Ricoh Company, Ltd. Method and system for forming a digital facsimile message including a subaddress
US5805978A (en) * 1996-10-15 1998-09-08 Motorola, Inc. Method and apparatus for overlaying an inbound channel on an outbound system
US5943401A (en) * 1997-01-03 1999-08-24 Ncr Corporation Electronic forms voice messaging apparatus and method
US5884193A (en) * 1997-02-03 1999-03-16 Qualcomm Incorporated System and method for call restriction in a wireless communication device
JP3457493B2 (en) * 1997-03-18 2003-10-20 富士通株式会社 ARP server
US6219413B1 (en) * 1997-08-07 2001-04-17 At&T Corp. Apparatus and method for called-party telephone messaging while interconnected to a data network
US6055305A (en) * 1997-12-16 2000-04-25 At&T Corp. Method and apparatus for providing network-based customized call treatment
US6229878B1 (en) * 1998-01-21 2001-05-08 Lucent Technologies, Inc. Telephone answering method and apparatus
US6430271B1 (en) * 1998-02-20 2002-08-06 Aspect Communications Corporation Message delivery system
US7009990B1 (en) * 1998-04-23 2006-03-07 Nortel Networks Limited Methods and systems for a telephone e-mail interface
US7218710B1 (en) * 1999-05-20 2007-05-15 Agere Systems Inc. Separately secured voice messages
AU7720000A (en) * 1999-09-27 2001-04-30 Jeremy Hoenack Ballistically deployed vehicle and utility covers
US7269428B1 (en) * 1999-11-23 2007-09-11 Nokia Coporation Method for enabling a user to be notified of his/her positioning requests
JP3470664B2 (en) * 1999-12-01 2003-11-25 日本電気株式会社 E-mail terminal device with received mail display method and pictogram conversion function
US6680935B1 (en) * 1999-12-30 2004-01-20 At&T Corp. Anonymous call rejection
US6404860B1 (en) * 2000-02-09 2002-06-11 Ss8 Networks, Inc. System and method for internet call management with text-to-speech messaging
US6895558B1 (en) * 2000-02-11 2005-05-17 Microsoft Corporation Multi-access mode electronic personal assistant
KR100816197B1 (en) * 2000-03-22 2008-03-21 이데미쓰 고산 가부시키가이샤 Method and apparatus for manufacturing organic el display
WO2001084814A1 (en) * 2000-04-27 2001-11-08 Matsushita Electric Industrial Co., Ltd. Telephone speech control system, intermediate processing device, and exchange
US7062452B1 (en) * 2000-05-10 2006-06-13 Mikhail Lotvin Methods and systems for electronic transactions
US6804334B1 (en) * 2000-05-19 2004-10-12 Lucent Technologies Inc. Method and device for dynamic message delivery based upon identification of originating caller
US6795530B1 (en) * 2000-06-29 2004-09-21 Lanny Gilbert System and method for customized telephone greeting annoucements
US20080045182A1 (en) * 2000-08-22 2008-02-21 Symbian Software Limited Method of and Apparatus for Communicating User Related Information Using a Wireless Information Device
US6823184B1 (en) * 2000-09-08 2004-11-23 Fuji Xerox Co., Ltd. Personal digital assistant for generating conversation utterances to a remote listener in response to a quiet selection
US7286649B1 (en) * 2000-09-08 2007-10-23 Fuji Xerox Co., Ltd. Telecommunications infrastructure for generating conversation utterances to a remote listener in response to a quiet selection
US20020067714A1 (en) * 2000-09-28 2002-06-06 Crain Louis M. System and method for wide area network and telco infrastructure integration
US6697473B2 (en) * 2000-12-04 2004-02-24 Bobby G. Batten Automated personalized telephone management system
AU2002234148A1 (en) * 2000-12-29 2002-07-16 Bellsouth Intellectual Property Corporation Web based messaging system with personalized caller specific messages
US6647108B1 (en) * 2001-01-02 2003-11-11 Verizon Services Corp. Internet call manager
US20020187794A1 (en) * 2001-05-04 2002-12-12 Comverse Network Systems, Ltd. SMS automatic reply and automatic handling
US7051099B2 (en) * 2001-05-31 2006-05-23 Level 3 Communications, Inc. ISDN disconnect alarm generation tool for use in voice over IP (VoIP) networks
US7272220B1 (en) * 2002-03-04 2007-09-18 Sprint Spectrum L.P. Method of locating an idle mobile telecommunication device
US20040203854A1 (en) * 2002-04-26 2004-10-14 Nowak Steven P. Formatting location information based on output device specifications
US7010288B2 (en) * 2002-05-06 2006-03-07 Cingular Wireless Ii, Llc System and method for providing an automatic response to a telephone call
US7136466B1 (en) * 2002-05-30 2006-11-14 Bellsouth Intellectual Property Corporation DSL integrated call waiting
US7145998B1 (en) * 2002-07-29 2006-12-05 Bellsouth Intellectual Property Corporation Systems, methods, and devices for a callback/callback reminder feature
JP4004986B2 (en) * 2003-04-08 2007-11-07 松下電器産業株式会社 Mobile terminal device
JP4379138B2 (en) * 2003-04-24 2009-12-09 パナソニック株式会社 Private branch exchange, voice storage device, and message processing method
US7471946B2 (en) * 2003-06-27 2008-12-30 At&T Delaware Intellectual Property, Inc. Methods of providing messages using location criteria and related systems
EP1526705A1 (en) * 2003-10-21 2005-04-27 Hewlett-Packard Development Company, L.P. Method of providing a mediated communication service
DE602004003787T2 (en) * 2004-02-13 2007-10-11 Sony Ericsson Mobile Communications Ab Method and device for message delivery
JP2005234660A (en) * 2004-02-17 2005-09-02 Nec Corp Personal digital assistant and mail system
US20050201533A1 (en) * 2004-03-10 2005-09-15 Emam Sean A. Dynamic call processing system and method
US20050216949A1 (en) * 2004-03-23 2005-09-29 Ray Candelora Systems and methods for a universal media server with integrated networking and telephony
US8285338B2 (en) * 2004-03-27 2012-10-09 Avaya Inc Method and apparatus for incoming call pause notification
US7593740B2 (en) * 2004-05-12 2009-09-22 Google, Inc. Location-based social software for mobile devices
US7480733B2 (en) * 2004-07-15 2009-01-20 International Business Machines Corporation Routing incoming call requests
US20060020993A1 (en) * 2004-07-21 2006-01-26 Hannum Sandra A Advanced set top terminal having a call management feature
US7200387B1 (en) * 2004-09-01 2007-04-03 Cellco Partnership Application invocation on a mobile station using messaging service
US20060215829A1 (en) * 2005-03-23 2006-09-28 Schwartz Paul M Method and system for selectable call termination attempt notification and blocking
EP1744526A1 (en) * 2005-07-13 2007-01-17 Sony Ericsson Mobile Communications AB Method and apparatus for acquiring further information about caller using caller ID
US8705727B2 (en) * 2005-07-26 2014-04-22 Livewire Mobile, Inc. Methods and apparatus for enhancing ringback tone quality during telephone communications
US7844037B2 (en) * 2005-08-08 2010-11-30 Palm, Inc. Method and device for enabling message responses to incoming phone calls
US8005194B2 (en) * 2005-12-21 2011-08-23 Hewlett-Packard Development Company, L.P. Technique for handling incoming reply messages
DE112006003578T5 (en) * 2005-12-31 2008-11-06 General Motors Corp., Detroit User initiated vehicle email notification
KR101223788B1 (en) * 2006-06-09 2013-01-17 삼성전자주식회사 A method for providing target set's positioning in for mation of supl system
US20070298774A1 (en) * 2006-06-21 2007-12-27 International Business Machines Corporation Phone service feature for convenient identification of callback number
KR101316750B1 (en) * 2007-01-23 2013-10-08 삼성전자주식회사 Apparatus and method for playing audio file according to received location information
US20080267117A1 (en) * 2007-04-24 2008-10-30 Stern Donald S Method and system for linking to content and services for a communication device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484036B1 (en) * 1999-11-19 2002-11-19 International Business Machines Corporation Method and apparatus for scheduling mobile agents utilizing rapid two-way communication
US20060041470A1 (en) * 2004-08-18 2006-02-23 Blah! Sociedad Anonima De Servicos E Comercio Message generation for mobile communication devices
KR20060093183A (en) * 2005-02-21 2006-08-24 주식회사 팬택 Home network system and method using global positioning system function in a mobile communication terminal
KR20070078369A (en) * 2006-01-26 2007-07-31 엘지전자 주식회사 Method for requesting triggered location service between terminals in location information system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2188906A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10866950B2 (en) 2017-12-06 2020-12-15 Motorola Solutions, Inc. Method and system for modifying a search request corresponding to a person, object, or entity (POE) of interest

Also Published As

Publication number Publication date
EP2188906A1 (en) 2010-05-26
US20090061833A1 (en) 2009-03-05
EP2188906A4 (en) 2012-01-11

Similar Documents

Publication Publication Date Title
US20090061833A1 (en) System, method and device to use messaging to implement programmatic actions
US7844037B2 (en) Method and device for enabling message responses to incoming phone calls
US10075589B2 (en) Data and call routing and forwarding
US8238526B1 (en) Voicemail outbox
US8543144B2 (en) Automated caller identifier from contact lists of a user's contacts
US20170086036A1 (en) Techniques for group messaging on a mobile computing device
US8311531B2 (en) Methods, apparatuses and computer program products for automatically saving information associated with one or more unknown contacts
US8175656B2 (en) System and method of displaying incoming communication alerts at a wireless device
US11601543B2 (en) Automated messaging
TWI413425B (en) Communication management features
US7706832B2 (en) Systems and methods for using aliases to manage contact information in a mobile communication device
US20070259657A1 (en) Systems and methods for remotely controlling mobile stations
TWI378708B (en) Call processing method and system implemented in a mobile communication terminal
KR20090132613A (en) Pre-programmed subscriber response
CN103685734B (en) A kind of polymorphic type communication integration method and device
CN111010479A (en) Information sharing method, mobile terminal and computer storage medium
WO2012116613A1 (en) Information notification method, device, and electronic apparatus
US8654944B2 (en) Automated call to a contact with whom another form of communication is exchanged
CN104243680A (en) Information processing method and electronic devices
CN111080223A (en) Mail processing method, device and computer readable storage medium
US10841429B1 (en) Handling unanswered calls for alternate phone number on mobile device
JP2004178294A (en) Mobile terminal displaying related e-mail, method of displaying e-mail, and program
KR102192295B1 (en) Call processing method, terminal, and system
EP3403425B1 (en) Automated messaging
CN118264990A (en) Short message sending method and device, storage medium, mobile device and wearable device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08829485

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008829485

Country of ref document: EP