This specification relates to enhanced caller identification (Caller ID) selection and delivery for a call, for example, by selecting one or more enhanced Caller ID information items from a plurality of enhanced Caller ID information items pertaining to a caller associated with the call and delivering the selected enhanced Caller ID information items to an endpoint electronic communications device of a callee associated with the call.
Under some circumstances, contact information or an image of a caller (for example a caller calling a telephone call or a caller establishing a video conference call) can be associated with an address book entry for the caller. Moreover, the address book may be associated with a callee's electronic communications device (such as a mobile communications device, personal computer, or the like). The device sometimes presents the contact information or the image of the caller when a phone call from the caller is being received by the callee's device.
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
General Overview
This specification describes technologies relating to enhanced Caller ID information selection for a caller associated with a call and delivery of the selected enhanced Caller ID information to a callee associated with the call. More specifically, the described technologies relate to selecting, according to selection criteria, one or more enhanced Caller ID information items from a collection of available enhanced Caller ID information items that are stored across one or more databases of enhanced Caller ID information.
In one aspect, selection of enhanced Caller ID information items is based on the context, purpose, nature, or subject of the call and takes into account a relationship between the caller and the callee. For example, if a caller with a medical emergency calls a doctor or a public emergency number, enhanced Caller ID information items pertaining to the caller's medical condition or history may be selected and delivered to the callee's communications device based an established trust relationship between the caller and the callee.
In one aspect, enhanced Caller ID information about the caller belongs to one of the following three categories and selection of enhanced Caller ID information to deliver to the callee is based on its categorization as: 1) publicly available information about the caller, 2) information about the caller contributed by the callee, or 3) private information about the caller that the caller has given permission to be shared with the callee. Thus, selection of enhanced Caller ID information about the caller delivered to the callee can be based on, for example, one or more attributes of the caller or the callee, such as an identity of the caller, an identity of the callee; or a known relationship between the caller and the callee, prior correspondence between the caller and the callee, and/or the context or subject of the call, which can be inferred from the identity of the caller, the identity of the callee, the known relationship between the caller and the callee, prior correspondence between the caller and the callee, and/or the analysis of the content of the call or previous calls between the caller and the callee.
Advantageously, by providing selected enhanced Caller ID information about the caller to the callee, the caller and the caller's communication experience is improved because the callee is provided with more information about the caller that helps the callee better understand the context of the call.
Details of one or more implementations of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Example System
In some example implementations, cloud phone system 108 uses Voice over IP (VoIP) technology to deliver a hosted phone system over communications network 106. The phone system may be hosted on a private or public server computer system. Cloud phone system 108 may use Internet networking protocols to facilitate voice communications between devices 102 and 104 such as, for example, the Internet Protocol (IP) and the Session Initiation Protocol (SIP). With the facilitation of cloud phone system 108, mobile communications device 102 (or device 104) may place a phone call to mobile communications device 104 (or device 102) over communications network 106. Once the phone call has been established, voice and data may be sent over communications network 106 between the devices 102 and 104 in IP data packets.
Example Method
Method 200 can be performed by one or more processes executing on one or more servers of cloud phone system 108. Method 200 includes identifying 202 a caller associated with a call from an originating electronic communications device 102. The identification can be performed based on information included in a conventional Caller ID database hosted by the cloud phone system 108, as described in greater detail in conjunction with
Method 200 further includes identifying 204 a plurality of enhanced Caller ID information items about the identified caller. In general, enhanced Caller ID information items can include any available information about the identified caller including, but not limited to, the caller's previous call history, the caller's social networking activity (e.g., the caller's posts, likes, and other activity on a social networking web site), news stories, articles, or blog posts about the caller, the caller's resume or curriculum vitae, the caller's job history, the caller's birthday, anniversary, or other personally important date, the caller's employer or affiliation, past or future events or meeting scheduled on a calendar associated with the caller, or any other information about the caller that can supplement conventional Caller ID information which typically includes just the caller's name, nickname, address, and/or photo.
In general, enhanced Caller ID information about the identified caller can be stored at multiple locations. In some implementations, enhanced Caller ID information items about the identified caller can be identified by searching a first database accessible to cloud phone system 108. For example, a local query executed by cloud phone system 108 can identify the caller's enhanced Caller ID information items stored on data storage 110 local to cloud phone system 108.
In some example implementations, enhanced Caller ID information items about the identified caller are identified by searching a second database located on a network server system. For example, a network query launched by cloud phone system 108 can identify the caller's enhanced Caller ID information items stored on data storage 112 located on a network server of an internet service provider, or a social networking site, and the like.
In some implementations, enhanced Caller ID information items about the identified caller can be identified by searching or crawling web page(s) 120 of web site(s) 116 on the Internet 114. For example, an Internet search engine query launched by cloud phone system 108 can identify the caller's enhanced Caller ID information items publicly available on web page(s) 120 served by web site(s) 116.
In some implementations, enhanced Caller ID information items about the identified caller can be identified in information received from the caller's electronic communications device 102. For example, cloud phone system 108 can identify enhanced Caller ID items in incoming call information sent from the caller's device 102.
Further, method 200 includes selecting 206 one or more of the identified enhanced Caller ID information items for delivery to electronic communications device 104 of a callee associated with the call. As described in detail below in connection with
Finally, method 200 includes delivering 208 the selected enhanced Caller ID information item(s) to electronic communications device 104 of the callee. In some implementations, the selected enhanced Caller ID information item(s) can be delivered in one or more IP data packets to the callee's electronic communications device 104. For example, the selected enhanced Caller ID information item(s) can be delivered in one or more SIP messages, one or more HyperText Transfer Protocol (HTTP) messages, or one or more other IP-based application networking layer protocol messages.
While in the embodiment of the method 200 of
Further, while in some example embodiments, the method 200 of
Example Cloud Phone System
The cloud phone system server(s) 306 can receive an incoming call at incoming call handler 308. The incoming call can be a voice communication, a text communication, a video communication, a fax communication, and the like. Processor(s) 312 can compare information about the incoming call produced by incoming call handler 308 against information stored in conventional Caller ID database 310 to determine the caller's identity.
In some implementations, the incoming call information includes at a unique contact identifier of the caller. For example, the unique contact identifier can be a telephone number, an e-mail address, a user identifier, a Uniform Resource Indicator (URI).
Processor(s) 312 can match the unique contact identifier associated with the incoming call to corresponding conventional Caller ID information stored in conventional Caller ID database 310. The conventional Caller ID information can include a name, nickname, or the like, associated with the unique contact identifier.
Processor(s) 312 are configured to identify conventional Caller ID information in conventional Caller ID database 310 and a plurality of enhanced Caller ID information items pertaining to the identified caller stored in another database 304. Processor(s) 312 are further configured to select one or more of the identified enhanced Caller ID information items and deliver the selected enhanced Caller ID information items to an electronic communications device of a callee. Method 314 can be performed by processor(s) 312 to accomplish the identifying, selecting, and delivering.
Method 314 includes identifying 314A enhanced Caller ID information pertaining to the identified caller. Identifying 314A can include a determination whether data storage 304 includes enhanced Caller ID information associated with the identifier caller.
In some implementations, to determine whether data storage 304 includes enhanced Caller ID information associated with the identified caller, processor(s) 312 are configured to query data storage 304 based on the unique contact identifier.
If enhanced Caller ID information associated with identified caller is identified in data storage 304, method 314 further includes selecting 314B one or more of the identified enhanced Caller ID information items based on selection criteria, as described in detail below in connection with
Finally, processor(s) 312 are configured to deliver 314C the selected enhanced Caller ID information items to an electronic communications device of the callee. In some implementations of delivering 314C, processor(s) 312 are further configured to include the selected enhanced Caller ID information items in one or more outbound IP-based data packets sent to the callee's electronic communications device by cloud phone system server(s) 306 as part of establishing, connecting, delivering, or otherwise facilitating the call. For example, processor(s) 312 can be configured to add the selected enhanced Caller ID information items to one or more e-mail messages, one or more text messages, one or more SIP messages, one or more HTTP messages, or one or more other type of network messages sent by cloud phone system server(s) 306 to establish, connect, deliver, or otherwise facilitate the call.
In some implementations, some or all of a selected enhanced Caller ID information item may be delivered to the callee's device by reference. That is, a hyperlink, such as, for example, a Uniform Resource Locator (URL), that references a network location of the enhanced Caller ID information item, may be delivered to the callee's device instead of delivering the entire content of the enhanced Caller ID information item. The hyperlink, when activated at the callee's device, causes the callee's device to download content of the enhanced Caller ID information item from the network location referenced by the hyperlink and present the downloaded content to the callee at the callee's device. This by-reference delivery method may be preferable when content of the enhanced Caller ID information is presented to the callee at the callee's device upon the callee's request (e.g., in response to detecting the callee's input to the device), or to avoid having to store the content on cloud phone system server(s) 306, or because the content is multimedia content, or for some other reason.
Example Selection Criteria
In some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 404 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller that have a relevance ranking better than or equal to a pretermitted ranking threshold. For example, enhanced Caller ID information items in the set of identified enhanced Caller ID information items pertaining to the caller can be ranked according to their perceived relevance to the callee. For example, enhanced Caller ID information items may be automatically ranked better (e.g., higher) if the enhanced Caller ID information items are more recent than other enhanced Caller ID information items. Additionally, enhanced Caller ID information items can be automatically ranked better (e.g., higher) if they pertain to the callee as well as the caller. For example, call records for previous calls between the caller and the callee may be automatically ranked better (e.g., higher) than other enhanced Caller ID information pertaining to the caller that does not also pertain to the callee.
In some implementations, ranking enhanced Caller ID information items according to their perceived relevance to the callee is based on a known relationship between the caller and the callee. For example, if the caller and the callee have a patient-physician relationship, then enhanced Caller ID items pertaining to the patient's medical history with that physician may be automatically ranked better that other enhanced Caller ID information pertaining to the caller.
In some implementations, ranking enhanced Caller ID information items according to their perceived relevance to the callee is based on answers the caller provided in response to prompts from an interactive voice response (IVR) system. For example, the callee may be a business that uses an IVR system to prompt callers whether they are seeking sales support or technical support before connecting the call to a sales representative, in the case the caller is seeking sales support, or a technical support representative, in the case the caller is seeking technical support. Depending on the type of support the caller is seeking, enhanced Caller ID items pertaining to the selected type of support may be automatically ranked better than other enhanced Caller ID information pertaining to the caller. For example, if the caller is seeking sales support, then enhanced Caller ID items pertaining to the caller's purchase activity with the callee may be ranked better. On the other hand, if the caller is seeking technical support, then enhanced Caller ID items pertaining to any open service tickets with the callee may be ranked better.
Accordingly, in some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 406 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to both the caller and the callee. For example, metadata associated with an identified enhanced Caller ID information item can include information relating to the parties of a call, if the identified enhanced Caller ID information item pertains to a call. If the party information indicates that both the caller and the callee were parties to the call, then the enhanced Caller ID information item may be selected. If there are multiple identified enhanced Caller ID information items pertaining to calls between the caller and the callee, then one or more of the most recent of the multiple items may be selected.
In some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 408 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller that have not yet been delivered to the callee, or have been delivered to the callee less than or equal to a threshold number of times. For example, metadata associated with an enhanced Caller ID information item pertaining to the caller may track whether or how many times the item has been delivered to an electronic communication device of the callee. If the item has never been so delivered or so delivered less than or equal to a threshold number of times, then the item may be selected for delivery. If there are multiple of such items pertaining to the caller, then the most or a number of recent of the multiple items may be selected.
In some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 410 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller that are associated with an event. The event may be a business promotion, a wedding, a birthday, an anniversary, or other event important to the caller. For example, method 400 can include selecting from among the set of identified enhanced Caller ID information items pertaining to the caller an enhanced Caller ID information item concerning a recent job promotion of the caller. By delivering this information as Caller ID information to the callee's device, the callee is informed of the caller's recent promotion in the context of answering or responding to the call where the callee might not otherwise know about the promotion in the same context.
In some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 412 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller relating to a geo-location of the originating electronic communications device. Referring to
In some implementations, selecting 402 enhanced Caller ID information items to deliver to the callee's device can include selecting 412 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller relating to environmental information detected at the caller's electronic communications device. For example, the incoming call may include information about the physical environment in which the caller's electronic communications device is situated. Such physical environment information may include, for example, an air temperature reading (e.g., by a thermometer of the device), an ambient noise level measurement (e.g., by a microphone of the device), an ambient light level measurement (e.g., by a camera or other light sensor of the device), or a bio-measurement of the caller such as, for example, the caller's heart rate or physical activity measurement. In the case where a selected enhanced Caller ID information relates to environment information detected at the caller's electronic communications device, the enhanced Caller ID information item may be provided to the cloud phone system performing the selecting from the caller's electronic communications device, for example, in conjunction with the incoming call.
For example, information about the caller's physical condition as detected by the caller's electronic communication device or sensors attached thereto could be valuable to communicate to the callee as enhanced Caller ID information items if the callee is the caller's doctor or other public emergency personnel. To protect the caller's privacy, the physical condition information about the caller may be delivered to only certain callees as reflected by access controls associated with the information. More generally, an enhanced Caller ID information item or a class or group enhanced Caller ID information items about a caller can be associated with access control permissions which reflect which callees or groups of callees have permission to receive the enhanced Caller ID information items.
In some implementations, selecting enhanced Caller ID information items to deliver to the callee's device can include selecting 414 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller relating to a current time of the call. For example, the current time of the call can be used to select from among the set of identified enhanced Caller ID information items pertaining to the caller an enhanced Caller ID information item indicating an activity the caller very recently participated in. For example, if the caller recently finished (e.g., within a threshold amount of time from the current time of the time) participating in a calendared meeting or event according to the current time of the call and date/time and duration information associated with the calendared meeting or event, then an enhanced Caller ID information item indicating the meeting or event may be selected. By delivering this information as Caller ID information to the callee's device, the callee is informed of the caller's recent activities in the context of answering or responding to the call where the callee might not otherwise know about the activities in the same context. The current time of the call, from the caller's perspective, can also be valuable in the context of the caller and the callee being in different time zones. This can happen increasingly with international calling, and the callee's awareness of the time of day for the caller can help the callee to tailor their communication more effectively.
In some example implementations, selecting enhanced Caller ID information items to deliver to the callee's device can include selecting 414 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller relating to the caller's emotional state. The caller's emotional state may be inferred from content of the call and/or information detected by an accelerometer sensor and/or other MEMs sensors, such as temperature or heartbeat sensors, associated with the caller's electronic communications device. Data collected from multiple sensors such as an accelerometer and one or more other MEMs sensors can be combined for improved or more accurate assessment of the caller's emotional state. For example, an audio signal analysis of the caller's voice during the call can be performed to determine if the caller may be excited or agitated or in an otherwise highly emotional state. Information from the accelerometer of the caller's device may be used to corroborate a determination resulting from the audio signal analysis. For example, information from the accelerometer indicating the caller's device is rapidly moving or changing positions may be because the caller is nervous, exited, angry, or otherwise in a highly emotional state. Geo-location data (location based services data such as GPS) can also be used or complemented with MEMs data to further assess the caller's state, such as determining the caller is in an emergency room at a hospital or at a scene of accident.
In some implementations, selecting enhanced Caller ID information items to deliver to the callee's device can include selecting 414 enhanced Caller ID information items from among the set of identified enhanced Caller ID information items pertaining to the caller relating to the caller's non-publically available information where the information is available to the callee under appropriate conditions such as, for example, when it is clear the caller would authorize sharing of certain non-public information with the callee based on the identity of the callee. For example, if a job seeker calls a number for an employment service, resume items from the caller's resume or items about the caller's employment history may be selected for delivery to the callee's device.
As another example, the caller may not be proficient or fluent in the speaking language of the callee. Thus, an enhanced Caller ID item that indicates the primary speaking language of the caller, or indicates that the primary speaking language of the caller is not that of the callee, could be selected for delivery to the callee's device when the primary speaking language of the caller does not match the primary speaking language of the callee. Such primary speaking language preferences could be maintained as part of user profiles or user accounts, for example.
Example Delivery Method
In some implementations, the delivering 502 can include sending 504 the selected enhanced Caller ID information items in one or more IP-based data packets toward the callee's electronic communications device. For example, the selected enhanced Caller ID information items can be sent in one or more SIP data packets of which at least one of the SIP data packets is for ringing the callee's electronic communications device about the incoming call. The selected enhanced Caller ID-information items are not limited to being sent in SIP data packets and the selected enhanced Caller ID information items can be sent in one or more other types of application layer networking data packets such as, for example, in one or more HTTP packets, one or more eXtensible Messaging and Presence Protocol (XMPP) packets, one or more Real-time Transport Protocol (RTP) packets, one or more Real Time Streaming Protocol (RTSP) packets, and so forth.
The IP-based data packets containing the selected enhanced Caller ID information items received at the callee's electronic communications device can be received at the callee's electronic communications device at different times relative to the call. For example, the selected enhanced Caller ID information items can be received and presented at the callee's electronic communications device when the call is incoming to the device. In this case, the selected enhanced Caller ID information items can be presented to the callee at the device when ringing the callee about the call. For example, the device may produce an audible phone ringing sound from a speaker of the callee's device and at the same time display on a display device of the callee's device “Incoming call from John Doe. John was recently promoted to Vice President at ACME Corp.”, where the information about John's promotion is selected enhanced Caller ID information.
In addition or alternatively, selected enhanced Caller ID information items can be received and presented at the callee's electronic communications device during the call. For example, the cloud phone system may monitor the voice communications of the call including performing a real-time speech-to-text translation of the voice communications. A selected enhanced Caller ID information item may be sent to the callee's device in response to detecting a spoken keyboard. The selected Caller ID information item sent to the callee's device may pertain to the spoken keyboard. For example, if during the call one of the parties to the call mentions “wife”, an enhanced Caller ID item identifying the name of the caller's wife may be sent to the callee's device. The device may display the caller's wife's name to the callee in response to receiving the selected enhanced Caller ID information item. In this way, the callee would know the name of the caller's wife without having to ask the caller, which might be embarrassing to the callee if the callee is expected to know the caller's wife's name.
In some embodiments, a selected enhanced Caller ID item about the caller is not delivered to the callee until after receiving permission from the caller to share the enhanced Caller ID item with the callee. For example, after selecting an enhanced Caller ID item about the caller but before delivering the item to the callee's electronic communications device, the cloud phone system may send the item to the caller's device so as to prompt the caller to confirm sharing of the item with the callee. If the caller declines, then the item is not delivered to the callee's device. If the caller approves, then the item is delivered to the callee's device.
Implementing Computing Device
The systems, methods, and apparatuses of the present invention may be implemented on one or more computing devices. Such a computing device may be implemented in various forms including, but not limited to, a client, a server, a network device, a mobile device, a laptop computer, a desktop computer, a workstation computer, a personal digital assistant, a blade server, a mainframe computer, and other types of computers. The computing device described below and its components, including their connections, relationships, and functions, is meant to be exemplary only, and not meant to limit implementations of the systems, methods, and apparatuses described in this specification. Other computing devices suitable for implementing the systems, methods, and apparatuses of the present invention may have different components, including components with different connections, relationships, and functions.
Computing device 600 also includes a main memory 606, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 602 for storing information and instructions to be executed by processor 604. Main memory 606 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 604. Such instructions, when stored in non-transitory storage media accessible to processor 604, render computing device 600 into a special-purpose computing device that is customized to perform the operations specified in the instructions.
Computing device 600 further includes a read only memory (ROM) 608 or other static storage device coupled to bus 602 for storing static information and instructions for processor 604.
A storage device 610, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to bus 602 for storing information and instructions.
Computing device 600 may be coupled via bus 602 to a display 612, such as a liquid crystal display (LCD) or other electronic visual display, for displaying information to a computer user. Display 612 may also be a touch-sensitive display for communicating touch gesture (e.g., finger or stylus) input to processor 604.
An input device 614, including alphanumeric and other keys, is coupled to bus 602 for communicating information and command selections to processor 604.
Another type of user input device is cursor control 616, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 604 and for controlling cursor movement on display 612. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
Computing device 600 may implement the methods described herein using customized hard-wired logic, one or more application-specific integrated circuits (ASICs), one or more field-programmable gate arrays (FPGAs), firmware, or program logic which, in combination with the computing device, causes or programs computing device 600 to be a special-purpose machine.
The methods herein may also be performed by computing device 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 610. Execution of the sequences of instructions contained in main memory 606 causes processor 604 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a computing device to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as storage device 610. Volatile media includes dynamic memory, such as main memory 606. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip of cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 602. Transmission media can also take the form of acoustic or fight waves, such as those generated during radio-wave and infra-red data communications.
Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 604 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone fine using a modem. A modem local to computing device 600 can receive the data on the telephone fine and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 602. Bus 602 carries the data to main memory 606, from which processor 604 retrieves and executes the instructions. The instructions received by main memory 606 may optionally be stored on storage device 610 either before or after execution by processor 604.
Computing device 600 also includes a communication interface 618 coupled to bus 602. Communication interface 618 provides a two-way data communication coupling to a network link 620 that is connected to a local network 622. For example, communication interface 618 may be an integrated services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 618 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 618 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 620 typically provides data communication through one or more networks to other data devices. For example, network link 620 may provide a connection through local network 622 to a host computer 624 or to data equipment operated by an Internet Service Provider (ISP) 626. ISP 626 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 628. Local network 622 and Internet 628 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 620 and through communication interface 618, which carry the digital data to and from computing device 600, are example forms of transmission media.
Computing device 600 can send messages and receive data, including program code, through the network(s), network link 620 and communication interface 618. In the Internet example, a server 630 might transmit a requested code for an application program through Internet 628, ISP 626, local network 622 and communication interface 618.
The received code may be executed by processor 604 as it is received, and/or stored in storage device 610, or other non-volatile storage for later execution.
A software system is typically provided for controlling the operation of computing device 600. The software system, which is usually stored in main memory 606 and on fixed storage (e.g., hard disk) 610, includes a kernel or operating system (OS) which manages low-level aspects of computer operation, including managing execution of processes, memory allocation, file and network input and output (I/O), and device I/O. The OS can be provided by a conventional operating system such as, for example, MICROSOFT WINDOWS, SUN SOLARIS, LINUX, UNIX, IOS, ANDROID, and so forth.
One or more application(s), such as client software or “programs” or set of processor-executable instructions, may also be provided for execution by computer 600. The application(s) may be “loaded” into main memory 606 from storage 610 or may be downloaded from a network location (e.g., an Internet web server). A graphical user interface (GUI) is typically provided for receiving user commands and data in a graphical (e.g., “point-and-click” or “touch gesture”) fashion. These inputs, in turn, may be acted upon by the computing device in accordance with instructions from OS and/or application(s). The graphical user interface also serves to display the results of operation from the OS and application(s).
In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
This application is a continuation of and claims priority from U.S. patent application Ser. No. 14/924,083, filed Oct. 27, 2015 (U.S. Pat. No. 9,456,078), which is a continuation of U.S. patent application Ser. No. 14/448,469, filed Jul. 31, 2014 (U.S. Pat. No. 9,203,954), all of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | 15946084 | Apr 2018 | US |
Child | 16786536 | US | |
Parent | 15267989 | Sep 2016 | US |
Child | 15946084 | US | |
Parent | 14924083 | Oct 2015 | US |
Child | 15267989 | US | |
Parent | 14448469 | Jul 2014 | US |
Child | 14924083 | US |