EP2127124A2 - Dispositif de traitement de données et procédé d'utilisation d'un dispositif de traitement de données produisant des représentations de l'état de disponibilité de programmes d'application - Google Patents
Dispositif de traitement de données et procédé d'utilisation d'un dispositif de traitement de données produisant des représentations de l'état de disponibilité de programmes d'applicationInfo
- Publication number
- EP2127124A2 EP2127124A2 EP07865816A EP07865816A EP2127124A2 EP 2127124 A2 EP2127124 A2 EP 2127124A2 EP 07865816 A EP07865816 A EP 07865816A EP 07865816 A EP07865816 A EP 07865816A EP 2127124 A2 EP2127124 A2 EP 2127124A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- metadata
- data
- availability status
- user
- remote source
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Definitions
- the present disclosure relates to data processing apparatus and a method of operating data processing apparatus, in particular, but not exclusively to mobile communications devices that utilize communications availability status.
- Communications applications are known that take a predetermined action dependent upon the communications availability status that has been recorded for a terminating device in a communications network. Examples of such communications applications include instant messaging and push to talk (PTT) applications.
- PTT push to talk
- Conventional push to talk (PTT) applications are known to be used on mobile telephones and the like.
- the push to talk application provides a two-way radio having a bidirectional radio transceiver operating as a half-duplex channel in which only one unit transmits at a time, and any number of units can listen.
- Such a service allows a user of the mobile telephone to instantly reach users of other mobile telephones whilst eliminating the dialing and ringing steps that are required when making a regular cellular telephone call. Such operation is sometimes known as a "walkie-talkie" service.
- a user In order to set up a PTT call, a user need only select the one or more contacts with which they wish to participate in a PTT call, and as long as those contacts are available, the user can hold down a PTT button on their mobile phone and speak into the microphone of their mobile phone. Initially, each participant in the PTT call can then hear the initial user who set up the call on their speaker. Once the user who set up the call has released their PTT button, any of the other participants in the PTT call can press their PTT button in order for their voice to be outputted by the speakers of the other participant's mobile telephones. [0008] During a PTT call it is only possible for one participant in the call to transmit at any one time. When no one is transmitting, the first person to press their PTT key is allocated the right to transmit by the PTT system. Having the right to transmit is known as "having the floor".
- a user selects and records a presence status associated with themselves from a predetermined list of presence status options.
- the recorded presence status of the user is displayed to other users of push to talk applications on their mobile telephones. This enables users of a push to talk application to view the presence status of their contacts before deciding whether or not they wish to attempt to set up a PTT call with them.
- a push to talk application and/or a push to talk server associated with the application can take a predetermined action based upon a contact's presence status when a user tries to set up a PTT call with that contact. For example, if a contact's presence status is recorded as "available”, a push to talk call will be set up automatically. However, if the contact's presence status is recorded as "do not disturb”, a push to talk call will be automatically rejected. It is also possible for a contact to have a presence status of "silent", in which case the contact will be prompted to provide an input as to whether or not they want to accept the push to talk call.
- a data processing apparatus comprises a plurality of application programs configured to utilize an availability status of a user.
- the data processing engine also comprises a presence engine.
- the presence engine is further configured to receive data representative of the availability status of the user, generate one or more representations of the received availability status data suitable for one or more of the plurality of application programs, and make available the one or more representations of the received availability status data to the corresponding one or more of the plurality of application programs.
- the data processing apparatus receives data representative of an availability status of a user.
- the data processing apparatus generates one or more representations of the received availability status data suitable for one or more of a plurality of application programs configured to utilize an availability status of a user.
- the data processing apparatus also makes available the one or more representations of the received availability status data to one or more of the plurality of application programs.
- a communications module is configured to perform the method of the second aspect of the invention.
- a communications network comprises a communications core and the data processing apparatus of the first aspect described above.
- the communications core and the data processing apparatus are in communication with each other.
- a computer-readable medium carries instructions for operating a data processing apparatus.
- the instructions including instructions, that when executed by one or more processes, cause the one or more processors to perform steps that comprise receiving data representative of an availability status of a user, generating one or more representations of the received availability status data suitable for one or more of a plurality of application programs configured to utilize an availability status of a user, and making available the one or more representations of the received availability status data to one or more of the plurality of application programs.
- An application that utilizes availability status may be one that uses the availability status in any way, for example, when setting up a call to a user or initiating any other form of communication, when receiving a call from a user or any other form of communication, when receiving or transmitting any data.
- utilizing availability status may comprise displaying availability status to a user, and not necessarily using the availability status for any further functionality.
- Embodiments herein may include advantages such as a user having a single interface with regard to the availability status of themselves and other users. This can ensure that the availability status of a user is consistent across a number of application programs, and makes efficient use of computer and network resources.
- the presence engine, and the associated method provides an improved user interface as the user can set and monitor availability status through a consistent interface.
- the availability status of the user may be a communications availability status of the user for one or more application programs, and the availability status may define how any incoming communications requests to the user are processed.
- the availability status may be used by non-communications application programs, for example calendar application programs, user profile application programs, and games application programs.
- the received communications availability status data may be in a format that is native to an application program and/or native to the presence engine.
- the format that is native to the presence engine may be referred to as a "generic" format, which is not necessarily native to any application programs.
- the received communications availability status data may be independent of any one application program.
- the data processing apparatus may further comprise a user interface configured to receive user input indicative of the availability status of the user, and provide the presence engine with data representative of the availability status of the user. This enables a local user who is logged on to at least one application program on the data processing apparatus to record their availability status.
- the data processing apparatus may further comprise a communications interface configured to receive data indicative of the availability status of a user and provide the presence engine with data representative of the availability status of the user.
- the user may be the user of the data processing apparatus itself, or a third party user, also referred to as a contact. This enables the data processing apparatus to be kept up-to-date with the availability status of remote users who are logged on to a different data processing apparatus.
- the communications interface may be a network interface, and this allows a user's data processing apparatus to be synchronized with other user's communications devices over the network.
- the data processing apparatus may further comprise a first computer memory, and the presence engine may be configured to store the data representative of the availability status of the user in the first computer memory.
- the first computer memory may be configured such that the data representative of the availability status of the user stored in the first computer memory is accessible by more than one of the plurality of application programs.
- the data processing apparatus further may comprise a second computer memory, and the presence engine may be further configured to store the one or more representations of the availability status in the second computer memory.
- the second computer memory may be configured such that the representations of the availability status stored in the second computer memory are accessible by more than one of the plurality of application programs.
- the presence engine may be further configured to provide the one or more of the plurality of application programs with the representation of the availability status data that is suitable for that application program.
- the presence engine may be configured to determine which of the plurality of application programs have been recorded as requiring the availability status of the user; and provide those application programs that have been recorded as requiring the availability status of the user with the appropriate representation of the availability status data.
- the presence engine also may be configured to generate the one or more representations of the received availability status data by using a concordance stored in computer memory to look up the one or more representations that are suitable for the one or more of the plurality of application programs using the received availability status data.
- Examples of advantages include application programs that are automatically informed each time an availability status changes. This may require that application programs that utilize availability status/presence information are standardized such that they can interact with a presence engine according to an embodiment of the invention. Standardization can include the application programs being reprogrammed, at least in part. For example, one or more modules within the application program may require amendment such that the application program can interact with a presence engine, preferably in a generic format that is not necessarily the same as the application program's native format.
- the reprogrammed software in the application program may be provided as an interoperability layer that provides a bridge between the application program software that utilizes availability status/presence information and the presence engine. Such an interoperability layer may avoid the need for reprogramming of application software, other than providing for communication between the layer and the application.
- At least two of the application programs may utilize different representations of the availability status.
- Embodiments of the invention may be used in a peer-to-peer communications environment, peer-to-server-to-peer communications environment, and peer- to-server-to-server-peer communications environment.
- the plurality of application programs may comprise one or more of: a push to talk (PTT) application program, an instant messaging application program, a short message service (SMS) application program, a voice calling application program, an email application program, a video conferencing application program, a game, a contacts list, a phone book, a calendar, user preferences for the data processing apparatus, and optical-mechanical aspects of the data processing apparatus.
- the optical-mechanical aspects of the data processing apparatus may comprise the status of a ringer switch on the apparatus, a tactile status indicator, for example a vibration setting of the apparatus, a light on the apparatus, for example, an LED on the apparatus, etc.
- the data processing apparatus may be a communications device, preferably a wireless/mobile communications device.
- the wireless communications device may be configured for mobile (e.g., cellular) telephony, such as a mobile telephone.
- the data processing apparatus may be a computing device, preferably a mobile computing device such as a personal digital assistant (PDA), smart phone (e.g., PDA type and/or entertainment/media type), a personal computer (PC) or a laptop.
- PDA personal digital assistant
- the communications device may be structured for a handheld configuration.
- the wireless communications device also may include a hardware and/or software wireless communication module configured for mobile (e.g., cellular) telephony that is functionally integrated with the data processing apparatus.
- the communications core within the network of the fourth aspect of the invention may be a push to talk (PTT) server.
- PTT push to talk
- a communications device configured to send and receive availability status information over a peer to peer communications channel/network.
- a network is configured to send and receive PTT communications availability status information between devices that are configured to provide PTT functionality.
- a presence engine configured to manage availability status of a user.
- the presence engine comprises an input configured to receive a signal representative of an audio signal, an output configured to send a signal representative of an audio signal.
- a processor is configured to encode availability status of a user into a signal representative of an audio signal and/or configured to decode availability status of a user from a signal representative of an audio signal.
- the input may be configured to receive the signal representative of an audio signal over a communications channel that may used to communicate signals representative of user's voices.
- the communications channel may be known as a voice channel.
- the output may be configured to send the signal representative of an audio signal over a communications channel that may used to communicate signals representative of user's voices.
- the communications channel may be known as a voice channel.
- the system configuration comprises storing on the local device a subset of the data stored on the remote source; storing metadata on the local device, the metadata usable to navigate and locate data stored on the remote source; accessing at least one of the data and the metadata by an application on the local device; responsive to the accessing by the application on the local device, determining additional data or metadata to request from the remote source; and requesting the additional data or metadata from the remote source.
- the system configuration may comprise responsive to the accessing by the application on the local device, determining additional data or metadata to request from the remote source; and requesting the additional data or metadata from the remote source.
- the system configuration also may comprise discontinuing the accessing; and responsive to the discontinuing, canceling the request for additional data or metadata from the remote source.
- the system also may include displaying the stored metadata to a user while the additional data or metadata are requested from the remote source.
- the system also may include a configuration is configured for responsive to requesting the additional data or metadata, displaying metadata stored on the local device associated with the additional data or metadata.
- the system may also have a configuration for responsive to a request to access a second set of additional data or metadata not stored on the local device, requesting the second set of additional data or metadata from the remote source; and accessing data stored on the local device that is related to the second set of additional data or metadata until the second set of additional data or metadata is obtained by the local device.
- the stored metadata comprise searchable fields of the data.
- the system may further comprise, responsive to a request to access data or metadata not stored on the local device, displaying information indicating the requested data or metadata are not stored on the local device.
- the data requested from the remote source may comprise graphical images.
- the system may include metadata associated with the graphical images comprise an attribute selected from a group consisting of: a creation date, a storage date, a title, and an association with a collection; and wherein determining additional graphical images or metadata to request from the remote source is based at least in part on the attributes associated therewith.
- the system also may have the graphical images as part of an ordered collection, and determining additional graphical images to request from the remote source is based at least in part on comparing the proximity in the ordered collection of the additional graphical images to one or more of the accessed graphical images. Further, the system may be configured for determining additional graphical images to request from the remote source is based at least in part on comparing a collection associated with the additional graphical images to a collection associated with one or more accessed graphical images. [0038] The system can be configured so that the data stored on the remote source comprise electronic documents.
- the metadata associated with the electronic documents may comprise an attribute selected from a group consisting of: a modification date, a creation date, and a filename; and wherein determining additional electronic documents or metadata to request from the remote source is based at least in part on the attributes associated therewith.
- the system also may be configured for determining additional electronic documents to request from the remote source is based at least in part on comparing the modification date of the additional electronic documents to the modification date of one or more accessed electronic documents.
- the system could be configured for determining additional electronic documents to request from the remote source comprises selecting one or more additional electronic documents that have a recent modification date.
- the system also stores data on the remote source as audio files.
- the metadata associated with the audio files comprises an attribute selected from a group consisting of: a rating, a play count, a title, an association with a collection, and a playlist designation; and wherein determining additional audio files or metadata to request from the remote source is based at least in part on the attributes associated therewith.
- the system configuration is for determining additional audio files to request from the remote source comprises selecting one or more additional audio files that have a highest rating.
- the system could also be configured for determining additional audio files to request from the remote source comprises selecting one or more additional audio files that have a highest frequency of play.
- the audio files may be part of an ordered collection, and determining additional audio files to request from the remote source is based at least in part on comparing the proximity of one or more of the additional audio files in the collection to one or more accessed audio files.
- the audio files may be part of a playlist, and determining additional audio files to request from the remote source comprises selecting additional audio files from the playlist that are adjacent to one or more accessed audio files.
- a system for configured for synchronizing data between or among multiple devices.
- the system configuration comprises modifying a shared data file on a local device; generating metadata describing the modification of the shared data file; and transmitting the metadata to a remote device, the metadata usable by the remote device to recreate the modification of the shared data file.
- the remote device comprises a central server having a copy of the shared data file.
- the metadata comprises textual commands for use by an application to recreate the modification of the shared data file.
- the system may also be configured for storing the generated metadata on the local device and transmitting the metadata to a remote device, for example, by receiving a request from the remote device for the stored metadata; and transmitting the metadata to the remote device in response to the received request.
- System may be configured for generating metadata describing the modification of the shared data file by, for example, responsive to an action by an application on the local device, generating metadata describing the modification of the shared data file.
- the system may be further configured for comparing a size of the metadata to a size of the modified data file; and responsive to the size of the metadata exceeding the size of the modified data file, transmitting the modified data file to the remote device.
- the disclosed configurations may also include a system (and computer program product and/or method) that is configured for synchronizing data between or among multiple devices.
- the system may be configured for storing a shared data file on a local device; receiving metadata from a remote device, the metadata describing a modification of the shared data file made on a remote device; and modifying a shared data file on the local device according to the metadata to recreate the modification of the shared data file.
- the system may be further configured for receiving metadata from the remote device by, for example, receiving metadata from the remote device; and storing the received metadata on the local device.
- the metadata comprise textual commands for use by an application to recreate the modification of the shared data file and the remote device is a central server having a copy of the shared data file.
- Figure 1 illustrates an embodiment of a communications network
- Figure 2 illustrates an embodiment of a communications device
- Figure 3 illustrates another embodiment of a communications network
- Figure 3 a illustrates a process flow control diagram showing an embodiment of steps performed for operation of a communications device
- Figure 4 illustrates another embodiment of a communications network
- Figure 4a illustrates a process flow control diagram showing an embodiment of steps performed when operating a communications device
- Figure 5 illustrates still another embodiment of a communications network
- Figure 6 illustrates yet another embodiment of a communications device
- Figure 7 illustrates a process flow control diagram showing an embodiment of steps performed when operating a communications device
- Figure 8 illustrates yet another embodiment of a communications network
- Figure 9 illustrates an embodiment of another communications network.
- FIG. 1 illustrates an embodiment of a communication network.
- the communication network are three communications devices 100, 100', 100", a push to talk (PTT) exchange server 114 and a conventional MSN Messenger instant messaging server 116.
- PTT push to talk
- the PTT exchange server 114 is functionally and logically coupled to a communications network which may be a topological, cellular, PSTN, VOIP, or other suitable communications network.
- the MSN server 116 is coupled to the internet.
- the communications device 100 comprises computer memory 102, a processor
- the PTT exchange server 114 manages PTT users' availability and calls amongst one another.
- the PTT exchange server 114 comprises a subscriber database 128, an availability manager 130 and a conferencing manager 132.
- the subscriber database 128 contains information about each of the users/subscribers to the PTT service with the PTT exchange server 114 including the presence status that has been recorded for each user.
- the availability manager 130 and conferencing manager 132 are logical modules that are configured to manage the availability of each of the users that use a PTT application through the PTT exchange server 114 and set up the PTT calls respectively.
- the system provides PTT functionality between a number of communications devices 100 having PTT application modules 106 via the PTT exchange server 114.
- a user of the communications device 100 wants to communicate with another user through one of the application programs 106, 110, they do so by selecting the user(s) they want to contact from the appropriate contacts database 108, 112.
- the user who initiates a call is known as the so-called "originator”, and the user that receives a call is known as the so-called “terminator”.
- a list of potential terminators is provided as a so-called contacts list, and in this context a "contact” is a term given to a potential terminator.
- the screen 120 on the communications device 100 is configured to expose/display a list of contacts information sorted by a contacts name. The user of the communications device 100 can select a contact by their name using the keyboard 122.
- Push to talk application programs are known to utilize the so-called "presence" of a user.
- the "presence” is an indicator of availability that is stored in computer memory for a specific user of a PTT application program, and is used to provide calling options to a calling party that can potentially call the user.
- a user of the push to talk application 106 can have one of three presence settings that are native to the PTT application. These settings include, for example, available; silent; and do not disturb. A user also logs in to the PTT application when they wish to use PTT functionality, and log out of the PTT application when PTT functionality is no longer required.
- the PTT application 106 causes three presence status options to be displayed on the screen 120. These are: available; silent; and do not disturb. Also, at any time whilst the user is logged on to the PTT application program, they can change their presence status by selecting the desired presence status from a drop down list of presence status options displayed on screen 120. The drop down list can be activated by a user selecting an icon associated with their presence status as currently stored in memory. [0066] After the user has selected one of the displayed status options using the keyboard 122, the selected status of the user is stored in the contacts database 108 in computer memory 102. The selected presence status is also sent to the PTT exchange server 114 via the RF interface 118.
- the availability manager 130 causes the subscriber database 128 to be updated with the PTT presence status of the user.
- the availability manager 130 sends data representative of the user's PTT presence to each of the contacts' devices 100', 100" that have the user in their list of contacts.
- the contact's devices 100', 100" will cause their locally stored PTT contacts lists to be updated with the new PTT presence status information of the user.
- the availability manager 130 in the PTT exchange server 110 sends a confirmation message to the user's communications device 100 confirming that the PTT presence status has been updated.
- the PTT exchange server 114 receives a message from that contact's communications device 100', 100", which causes the PTT exchange server 114 to send a message to the user's communications device 100 providing information about the change of PTT presence status for that one of the user's contacts.
- the PTT application 106 causes the PTT contacts database 108 to be updated accordingly.
- a user When a user wishes to set up a PTT call, they select an appropriate icon with the keyboard 122.
- the user may open a dedicated PTT application program to set up a call and select one or more contacts from a list of contacts with whom they wish to set up a PTT call.
- the user may access a call log and set up the call by selecting the contact with whom he wishes to call directly from the call log.
- a user may set up a call by responding to an alert, for example, by responding to a prompt to "Call Tom" that is displayed to the user by a calendar application program.
- the user need not necessarily initiate a PTT call set up directly through the PTT application, and other forms of call initiation may be implemented in embodiments of the invention.
- the PTT application 106 When the PTT application 106 receives an instruction that a PTT call is to be set up for a selected one or more contacts, the PTT application extracts the PTT contacts information corresponding to the selected one or more contacts from PTT contacts database 108 and generates a dial string.
- the dial string includes an identifier of the PTT exchange server 114 that will set up the PTT call, a caller identifier, and an identifier of the one or more contacts that the user wishes to contact.
- the PTT application 106 then sends the dial string to the PTT exchange server 114 via the RF interface 118 in the user's communications device 100.
- the user's communications device 100 is now an originating communications device.
- the conferencing manager 132 in the PTT exchange server 114 uses the identifier of each of the one or more contacts to look up the telephone numbers of the one or more contacts in the subscriber database 128.
- the conferencing manager 132 then generates a second dial string that includes an indicator that a PTT call is being requested, and an identifier of the user that is requesting the call.
- the PTT exchange server then sends the dial string to the telephone numbers of the one or more contacts - that is the terminating devices.
- a terminating communications device 100', 100" processes the incoming dial string from the PTT exchange server 114 depends upon their presence status as stored in computer memory of their terminating communications device 100', 100". The user of the terminating communications device will have already recorded their intended presence setting in computer memory as discussed above.
- the contact is recorded as "logged in and available” in the availability manager on the PTT server 114, the call is set up and routed to the called terminating communications device 100', 100". If the contact is recorded as "logged in and silent", the PTT application within the terminating communications device 100', 100" causes the user of the terminating communications device 100', 100" to be presented with an option as to whether or not they would like to accept the PTT call.
- the PTT application sends a message to the PTT exchange server 114 that indicates that the call is accepted, and the call is set up. If the user of the terminating communications device 100', 100" provides an indication that they want to reject the call, the PTT application sends a message to the PTT exchange server 114 that indicates that the call is rejected, and the PTT call is not set up.
- the contact is recorded as "logged in and do not disturb" in the availability manager on the PTT server 114 automatically responds by rejecting the call. This is an automatic response, and occurs without any action or knowledge of the user of the called terminating communications device 100', 100".
- a call log in the PTT server may record that a call was rejected.
- the PTT application allows only one user to have the floor at any one time.
- a user can "take the floor” by pressing their "push to talk” button.
- the user's communications device makes a "chirp” sound as confirmation and the user's speech is transmitted to the other communications devices.
- the user's communications device makes a "bong” sound and the user knows that they do not have the floor. If the user does not have the floor, their speech is not transmitted to the other communications devices.
- the communications devices are effectively "walkie-talkie's" during PTT calls.
- the MSN Messenger instant messaging application program 104 also utilizes a communications availability status of the user and the user's contacts, and allows instant text messages to be sent from a user to one or more recipients over the internet.
- the user's MSN Messaging contacts are stored in contacts database 208, along with their availability status, in a format that is native to the MSN application program 110.
- MSN Messenger Once a user has logged in to MSN Messenger, they can set their availability, for example, as one of the following: Online; Busy; Be Right Back; Away; In a Call; Out to Lunch; or Appear Offline. These availability statuses are native to the MSN application.
- the native format of the instant messaging availability status is not the same as the native format of the presence of the PTT presence status.
- the identifier for a contact is also different between PTT applications and MSN Messenger: the native format for identifying a contact in PTT applications is the telephone number of the contact, whereas the native format for identifying a contact in an MSN Messenger application is an email address.
- a user of the MSN instant messaging application can type in a textual message and send it to any one of their contacts, independent of the contacts availability. The availability is used more as an indicator of whether or not the user can expect a reply. If the contact is offline, the message cannot be sent. If the contact is online, the message is displayed to the user. [0080] The user of a communications device 100, 100', 100" can manage the way they communicate with their contacts using instant messaging by setting up their own instant messaging availability status, and viewing the instant messaging availability of their contacts. [0081]
- Figure 2 illustrates an embodiment of a communications device 200 which is a data processing apparatus.
- Communications device 200 comprises a computer memory 202, processor 204, network interface, 218, screen 220, keyboard 222, microphone 224, speaker 226, and data bus 201.
- a PTT application program 206 and an instant messaging application program 210 are stored in computer memory 202 and are configured to be run on processor 204.
- Communications device 200 also comprises a presence engine 208 which is stored in computer memory 202 and configured to be run on processor 204.
- the presence engine 208 is an application programming interface (API) configured to receive data representative of the communications availability status/presence of a user, which may be the person who is using the communications device 200 or one of their contacts.
- API application programming interface
- the received data will be in a format that is native to an application program but is not necessarily in a format that is native to all application programs that are present on the communications device 200.
- the format of the received data may or may not be in a format that corresponds to the format of an application program that is already present on the communications device 200.
- the presence engine 208 checks the format of the data and determines if the format is suitable for either or both of the PTT application program 206 and one or other of the application programs, for example, instant messenger application 210. If the presence engine 208 determines that the received communications availability status data is in a format that is native to the PTT application program 206, then the presence engine 208 generates a representation of the communications availability status data in the instant messaging format. Similarly, if the presence engine 208 determines that the received communications availability status data is in a format that is native to the instant messaging application program 210, then the presence engine generates a representation in the PTT format.
- the presence engine 208 determines that the received communications availability status data is in a format that is not native to either of the PTT application program and the instant messaging application program, then the presence engine generates two representations of the availability status of the user: one in the PTT format and the other in the instant messaging format.
- the number of different representations generated by the presence engine 208 depends upon how many different formats of availability status are utilized by application programs within the communications device compared with the received representation of the communications availability status. It will be appreciated that instant messaging and push to talk (PTT) applications are described as illustrative and non- limiting examples of application programs.
- Figure 3 illustrates an embodiment of network that includes a mobile communications device 300, a PTT exchange server 314, a games server 316, a calendar server 334, a user profile server 336, an MSN instant messenger (IM) server 338, a Yahoo instant messenger (IM) server 340, and a generic presence server 342.
- the mobile communications device 300 comprises computer memory 302, processor 304, user interface 310, network interface 312 and data bus 301.
- Figure 3 provides an illustrative example of a peerl to server to peer2 communication.
- the network interface 312 provides access for the communications device 300 to a communication channel between the mobile communications device 300 and each of the PTT exchange server 314, games server 316, calendar server 320, user profile server 336, MSN instant messenger (IM) server 338, Yahoo instant messenger (IM) server 340, and a presence server 342.
- the presence server 342 may be a generic presence server that is configured to communicate availability status information between a number of different applications on a number of different data processing apparatus/communications devices, optionally in a generic format.
- the user interface 310 in this embodiment comprises a touch (or inductive pen) sensitive screen 326, a keyboard/keypad 328, a microphone 330, and a speaker 332.
- the touch sensitive screen 326, keyboard/keypad 328, and microphone 330 are all configured to receive input from a user of the device 300.
- the touch sensitive screen 326 is configured to visually display information to the user, and the speaker 332 is configured to provide the user with audio information.
- the memory 302 has six application programs stored upon it
- the PTT exchange server 314 is functionally similar to the PTT exchange server shown in Figure 1 and previously described.
- the MSN instant messaging server 338 is the same as that discussed in relation to Figure 1.
- the Yahoo instant messaging server 340 is functionally similar to the MSN instant messaging server 338 but has its own user interface and utilizes different native availability statuses.
- the games server 316 enables the user to use the games application 322 to play multiplayer games with other users that are in communication with the games server 316 over a network. Depending upon the game, examples of availability statuses that may be utilized are "alive” and "dead”.
- a presence server 342 is a server dedicated to processing availability status information.
- the presence server 342 comprises a database that is configured to store availability status information for each of the users that are registered with the presence server 342.
- the presence server 342 is configured to receive availability status information from a plurality of communications devices 300, store the availability status information in a database within computer memory, and provide the availability status information to other user's communications devices when instructed to do so by a user, and/or when a communications availability status changes.
- the presence server 342 may provide the availability status information to each of the users registered with the presence server 342, or to a subset of the registered users. In one embodiment, the presence server 342 is not configured to set up a call or otherwise facilitate any communication between users of communications devices. In such embodiments, the presence server 342 is configured to only transfer availability status information of users. Alternatively, in other embodiments the presence server 342 may be configured, or configurable, to set up calls between users.
- Calendar application programs are known, and examples of availability statuses that may be utilized by a calendar application program 320 are: “on holiday”, “in the head office”, “in a satellite office”, “working from home”, “ill”, “unobtainable”, etc.
- the calendar server 334 enables a user to monitor and optionally make entries in other users calendars using their communications device.
- Availability statuses may be used by a user profile application program 324 to record how the communications device will react upon receipt of an incoming request, for example a call.
- the availability statuses may indicate optical mechanical aspects of the communications device 300 such as tactile status indication or an LED, and example statuses are "vibrate”, "audio alarm”, “illuminate”, or any combination thereof.
- a user of a communications device can make a decision on how to interact with one of their contacts based upon the contact's user profile availability status.
- the user of the communications device 300 wants to set their availability status, they use the touch screen display 326 (or the keyboard 328 or the microphone 330) to indicate that they want to update their availability status. In the first instance, this may be by logging in to an application that utilizes presence such as described with reference to Figure 2 above, or later by selecting an icon that is displayed on the screen 326 indicating they want to change their availability status. For example by selecting a drop-down menu that is provided next to the indicator of the current availability status.
- the presence engine 308 When the presence engine 308 receives an indication that the user wants to set their availability status, the presence engine 308 displays on screen 326 a list of the potential availability statuses that the user can record himself as having.
- the list of potential availability statuses that are displayed are the availability statuses that are in a generic format and in this embodiment the generic format is the same as the format that is native to the PTT application program. However, it will be appreciated that the generic format may be equivalent to a format that is native to any other application program.
- the generic format may be not entirely native to one of the application programs, but instead a mixture of different native availability statuses in order that the displayed availability statuses can more accurately reflect the availability statuses for each application program. In further embodiments still, the generic format may not be native to any of the application programs.
- a signal is sent from the touch screen display 326 or keyboard 328 to the presence engine 308 indicative of the selection.
- the presence engine 308 Following receipt of the signal indicative of the new availability status for a user, the presence engine 308 generates five representations of the new availability status - one suitable for each of the calendar application 320, the game application 322, the user profile application 324, the MSN instant messaging application 323, and the Yahoo instant messaging application 325 - and makes these representations available to each of the respective applications in its native format.
- the new availability status is already in a format is native to PTT, and therefore a representation does not need to be generated by the presence engine 308 for the PTT application program 318.
- the presence engine 308 also causes the network interface 312 to send data indicative of the new availability status to each of the PTT exchange server 314, the games server 316, the calendar server 334 the user profile server 336, the MSN instant messaging server 338, the Yahoo instant messaging server 340, and the presence server 342 in order that any subscriber databases that are stored on the servers 314, 316, 334, 336, 338, 340, 342 can be updated. Furthermore, the servers 314, 316, 334, 336, 338, 340, 342 also send signals representative of the new availability status of the user to each of the user's contacts for each of the application programs.
- a list of application programs that utilize availability status for a user is stored in memory 302 on the communications device 300.
- the presence engine is configured to retrieve the application programs that utilize availability status from the memory 302 for a specific user, and send a signal representative of the new availability status of the user to each server associated with the application programs retrieved from memory 302.
- the presence engine 308 is configured to translate the new availability status into the required format for each of the servers.
- the presence engine 308 is configured to cause the network interface 312 to send the signal representative of the new availability status to each of the servers in the generic format, and the servers are configured to translate the new availability status from generic format into their native format.
- the user's communications device 300 will receive a signal indicative of that change from one or more of the servers.
- the network interface 312 provides the presence engine 308 with the received signal representative of the new availability status of the contact, and the presence engine 308 generates the necessary representations of the availability status that are required in order for the presence engine to make available a representation of the availability status to each of the applications 318, 320, 322, 323, 324, 325 in its native format.
- the availability status is exposed to the application programs 318, 320, 322, 323, 324, 325 in the generic format and the application programs are configured to translate the availability status from generic format into their native format.
- the PTT exchange server 314, MSN server 338, and Yahoo server 340 may be referred to as so-called "communications cores".
- a communications core provides at least a part of the communication functionality for the communications device.
- the presence engine 308 receives a signal indicative of a change in availability status of a user.
- the signal may be indicative of a change in availability status of a user that is logged in to one or more application programs on the communications device 300, or maybe indicative of a third-party user who is recorded as a contact for a user who is logged on to the communications device 300.
- the presence engine 308 retrieves from memory 302 a list of application programs that utilize availability status for the user whose availability status has changed.
- the presence engine 308 translates the received signal into one or more signals indicative of the change in availability status in a format that is native to each of the application programs that were retrieved at step 352.
- the presence engine 308 provides each one of the list of application programs that were retrieved from memory 302 as utilizing availability status for the user, with the signal indicative of the change in availability status in the format that is native to that application program. Similarly, the presence engine 308 provides each server associated with the application programs with the signal indicative of the change in availability status in its native format at step 358.
- Figure 4 illustrates an embodiment of two communications devices 400, 400'.
- the first communications device 400 comprises memory 402, processor 404, user interface 410, network interface 412, and data bus 401.
- the second communications device 400' comprises memory 402', processor 404', user interface 410', network interface 412', and data bus 401 '.
- a PTT application program 418 and presence engine 408 are stored in memory
- the first and second communications devices 400, 400' are configured to communicate directly with each other, not via a server /communications core. This is known as peer to peer communications. More specifically, the network interfaces 412, 412' are configured to send and receive data directly to and from network interfaces 412, 412' of other communications devices.
- the presence engine 408 is configured to generate a representation of the change in communications availability status in a generic format and provide the network interface 412 with details of the change in communications availability status in generic format.
- the generic format is one that is recognized and stored by the presence engine. Generating the representation of the change in communications availability status involves translating the representation from a format that is native to PTT application 418 into the generic format, if the native format is not the same as the generic format. In this embodiment, the generic format is the same as the native PTT format and therefore a translation is not required.
- the network interface 412 then transmits a signal representative of the change in communications availability status in the generic format directly to each communications device that is listed as a contact for the user of first communications device 400.
- the user of second communications device 400' is listed as a contact for the user of the first communications device 400, and therefore network interface 412 of the first communications device 400 transmits details of the change in communications availability status in generic format directly to the network interface 412' of the second communications device 400'.
- the presence engine 408' in the second communications device 400' automatically generates representations of the change in communications availability status in formats that are native for each of the application programs that utilize communications availability status stored in memory 402'.
- the generic format for communications availability status is native to the PTT application program 423', and therefore only a representation of the change in availability status in a format that is native to the MSN application program 418' is required to be generated.
- FIG. 4a illustrates a process flow control diagram showing an embodiment of steps performed when operating a communications device.
- a user of a first communications device 400 selects an icon using a user interface 410 to indicate that they wish to change their availability status, and also selects the new availability status that they would like to record for themselves.
- the user interface 410 generates a signal indicative of the new availability status, and provides the signal to a presence engine 408 associated with the first communications device 400.
- the signal provides availability status information in a format that is native to one or more application programs associated with the first communications device 400.
- the presence engine 408 associated with the first communications device 400 translates the signal indicative of availability status in native format into a signal indicative of availability status in a "generic" format at step 452.
- the generic format is independent of any application programs that may be associated with the first communications device 400.
- the presence engine 408 sends the signal indicative of availability status in generic format to a second communications/peer device 400'. More specifically, the presence engine 408 causes a network interface 412 associated with the first communications device 400 to transmit the signal to a network interface 412' associated with the second communications device 400'.
- a presence engine 408' translates the received signal into signals indicative of availability status that are native to any application programs that utilize availability status that are stored on the second communications device 400'.
- the native format signals indicative of the availability status are provided to the application programs in the second communications device 400' at step 458.
- a change in PTT communications availability status may be communicated directly between the first and second communications devices 400, 400' in a format that is native to the PTT application programs 418, 418'.
- the presence engine within the receiving communications device presents the PTT application program with the change in communications availability status in its native format.
- the presence engine may, or may not, be configured to also translate the change in communications availability status for any application programs where necessary. For example, if the second communications device 400' were to receive a signal indicative of the change in communications availability status of the first communications device 400 in native PTT format, the presence engine 408' may, or may not, be configured to translate the received communications availability status into a format that is native to the MSN application 423'.
- they may be provided a communications device configured to send and receive availability status information over a peer to peer communications channel/network.
- Figure 5 illustrates an embodiment of a network that includes a first communications device 500, a second communications device 500', and two communication cores: an MSN server 538, and a Yahoo server 540. It is noted that Figure 5 provides an illustrative example of peer 1 to server 1 to server2 to peer2 communications.
- first and second communications devices 500, 500' each comprise a processor 504, 504', memory 502, 502', user interface 510, 510', network interface 512, 512', and data bus 501, 501 '.
- An MSN application program 523 and presence engine 508 are stored on memory 502 in the first communications device 500, and a Yahoo application program 525' and presence engine 508' are stored on memory 502' in the second communications device 500'.
- the MSN application program 523, Yahoo application program 525' and presence engine 508, 508' are all as discussed above.
- communications availability status information is communicated between the first communications device 500 and the second communications device 500' via both the MSN server 538 and the Yahoo server 540. It will be appreciated that it is not possible for users of the communications devices 500, 500' to communicate directly with each other by instant messaging as they are both using different, incompatible, application programs. Nonetheless it is still possible for communications availability status information to be shared between the two communications devices 500, 500' as discussed below.
- the presence engine 508 is configured to generate and store a representation of the change in communications availability status in a generic format, which in this example is a format that is native to a PTT application.
- the presence engine 508 then provides the network interface 512 with the representation of the change in communications availability status in the generic format such that the network interface 512 can transmit the signal representative of the change in communications availability status to MSN server 538.
- MSN server 538 translates the signal representative of the change in communications availability status in generic format into a format that is native to the MSN server 538.
- the MSN server 538 can then store the communications availability status in its native format in a database within the MSN server 538, and also communicate the change in communications availability status (either in generic or native format) to other communications devices that have the user whose communications availability status has changed stored in their MSN contacts list.
- the identity of the users to which the change in communications availability status should be sent is determined from contacts lists associated with each of the users that are stored in memory on MSN server 538.
- the MSN server 538 is configured to transmit a signal representative of the change in communications availability status in generic format to the Yahoo server 540, and any other servers whose identity is stored in memory within the MSN server 538. Reciprocal agreements between communications core providers to share communications availability status may be put in place, and identifiers of such reciprocating communications core providers may be stored in memory associated with the communications core.
- the Yahoo server 540 is configured to translate the received representation of the communications availability status into its native format, and store the native communications availability status in memory.
- the Yahoo server 540 transmits a signal representative of the change in communications availability status in generic format to communications devices that have the user whose communications availability status has changed stored in their Yahoo contacts list, which in this embodiment includes second communications device 500'.
- the network interface 512' of second communications device 500' receives a signal representative of a change in communications availability status from the Yahoo server 540, a signal is sent to the presence engine 508', whereby the communications availability status is translated from generic format into a format that is native to the Yahoo application program 525'.
- the translated communications availability status is provided to the Yahoo application program 525' such that the contacts list within the second communications device 500' is updated with the new communications availability status of the user of the first communications device 500.
- the described embodiment allows non-common server subscribers to share presence information. That is, a subscriber to the MSN server 538 (the user of communications device 500), shares presence information with a subscriber to the Yahoo server 540 (the user of the second communications device 500'). Further, it is noted that in other embodiments there may be more than two communication cores/servers between two end communications devices/peers.
- FIG. 6 illustrates an embodiment of a mobile telephone 600, which is a communications device.
- the mobile telephone comprises computer memory 602, processor 604, touch sensitive display screen 626, keyboard 628, microphone 630, speaker 632, communications interface 612 and data bus 601.
- Stored in computer memory 602 are a first application program 608, a second application program 610 and presence engine 606.
- the presence engine 608 can access data stored in user availability status database 612, contacts database 614, availability concordance database 616 and applications database 618, all of which are stored in computer memory 602.
- the user availability status database 612 stores a concordance between a user and their availability status, and an example of the data contained within user availability status database is shown below:
- the generic availability status is in a format that is equivalent to a format that is native to a PTT application (discussed in more detail below) and the unique user identifier is a telephone number associated with a user. Therefore, the unique user identifier is globally unique to that user.
- the same user identifier is used in different communications devices to represent different users: that is, the formats of the unique user identifier and/or the generic availability statuses are unique only within the presence engine 606.
- users may be allocated an internal user identifier as a number in the sequence: 01, 02, 03, etc., and it does not matter that the internal unique identifiers are unique only within the communications device 600, as the instance of the unique identifier will always be translated into a format that is native to a specific application, or translated into a generic format before being sent from the communications device.
- the presence engine 608 is configured to receive data about an update of the availability status of a user. The presence engine 608 receives this data in a format that is native to an application program or in a generic format.
- the presence engine 606 looks up the unique user identifier in the contacts database 614 in order to translate the received user identifier into the unique user identifier.
- An example of the data stored within contacts database 614 is shown below:
- the presence engine 606 receives an update of status from an MSN Messenger server, the user whose availability status has changed is identified by their email address. In this case the presence engine 606 looks up the unique user identifier in the contacts database using the received email address.
- the presence engine 606 receives an update of status from a PTT server, the user whose availability status has changed is identified by their telephone number. In this case the presence engine will look up the unique user identifier from the contacts database using the received telephone number, and the unique identifier will be the same as the telephone number.
- the user of the communications device 600 is unaware of the underlying unique user identifier, as it is used solely for internal operations within the communications device 600. The user will continue to select which contacts they wish to interact with from a display of contacts names on the display screen 626.
- the presence engine 606 also uses the availability concordance database 616 to translate the received availability status into the generic format of user availability that is required for the user availability status database. An example of data stored within availability concordance database 616 is shown below:
- the generic availability status format is directly linked to the representation of the PTT presence status. That is, "A” is equivalent to “Logged in and available”, “B” is equivalent to “Logged in and do not disturb”, “C” is equivalent to “Logged in and silent”, and “D” is equivalent to “Logged out”.
- the availability concordance database may be customized by a user. For example, the user may specify whether they would like generic availability status "C” (which is equivalent to "Logged in and silent") to be classed or classified as “dead” or “alive” for gaming applications.
- the presence engine e.g., 606
- the messenger application program may be provided with an interoperability layer that is configured to determine which of the native messenger availability status as to use for a corresponding availability status in generic format.
- the applications database 618 is used for recording which application programs require availability status for which users/contacts. For example, different contacts may have different application programs and therefore the contacts list for each of the application programs may be different. An example of data stored within the applications database 618 is shown below:
- the presence engine 606 When the presence engine 606 receives information about a change of availability status of a user, the presence engine 606 then looks up which, if any, application programs require information about the availability status of the user. The presence engine 606 can generate as many representations of the updated availability status of the user as are required in order to make the updated availability status available in native format to each of the application programs that require the availability status of the user.
- the presence engine 606 receives a message from a PTT server that the new status for user "jef ⁇ ,palm.com” is "Online”
- the presence engine 606 will look up user ' 'jefejjajmxom' ' in contacts database 614 and determine that the user in question has unique user identifier "0313781436”.
- the presence engine 606 will also look up status "Online” in availability concordance database 616 and determine that the generic availability status is "A”. Having made the above two determinations, the presence engine then writes the new status information to user availability database 612 to show that user "0313781436" now has availability status "A”.
- the presence engine 606 looks up user "0313781436" in applications database 618, and determines that only the first application 608 has been recorded as requiring the availability status information for user "0313781436". The presence engine continues to generate a representation of the availability status of user "0313781436” that is in a format that is native to the first application 608 as determined from the availability concordance database 616. The presence engine 606 then sends the representation in the format that is native to the first application program to the first application program 608.
- the format of the availability status and the user identifier will already be in the generic availability status format and the unique user identifier format that are used in availability status database 612. Therefore it will not be necessary to translate the received availability status into the generic availability status using availability concordance database 616 and contacts database 614 before storing the update in the availability status database 612.
- the contacts database 614, availability concordance database 616 and applications database 618 may not be required in all embodiments of the invention. This may depend upon the format of the received data, whether or not the optional feature that the application programs can be recorded as requiring availability status is present, and how the data is stored in computer memory.
- the user availability database may store all of the representations in each of the different formats for each of the users. [0143] In embodiments where communications availability status is communicated between devices in a generic format (as in figure 5), the contacts database 614 and availability concordance database 616 will not be required to translate the incoming signal representing communications availability status in order to store the communications availability status in user availability status database 612. The incoming signal will already provide the unique user identifier and generic availability status in the format that is required for user availability status database 612.
- FIG. 7 illustrates a process flow control diagram showing one embodiment of steps performed when operating a mobile communications device 600.
- a user logs on to a presence engine 606 on a communications device 600. This may happen automatically when a user first switches on the communications device 600, or may occur automatically when the user first tries to use an application program 608, 610 that utilizes availability status of a user. Alternatively, the user may have to actively open a specific presence engine application in order to log on to the presence engine 606.
- Application programs 608, 610 that require availability status information of a user are recorded in applications database 618 in computer memory 602 at step 704.
- the application program's 608, 610 requirement for availability status may be recorded when that application 608, 610 is opened by a user. Alternatively, or additionally, if the user logs on to the presence engine 606 after one or more applications 608, 610 have already been opened, the presence engine 606 may monitor a list of the applications that are running to determine whether or not they utilize availability status information. If the presence engine 606 determines that any applications 608, 610 are running that do utilize availability status information, it automatically records in the applications database 618 in computer memory 602 those application programs 608, 610 that require the availability status of all of its associated contacts at step 704.
- the presence engine 606 receives data representative of availability status of a user.
- the data may be received from a user interface 626, 628, 630 on the communications device 600 and relate to the local user who has logged on to the communications device 600, or the indication may be received from a communications interface 612 and relate to a remote user who is listed as being one of the local user's contacts.
- the received data representative of availability status is translated into a representation of the availability status in a generic format, and the generic format representation of the availability status is stored in a user availability user availability database 612 in computer memory 602 at step 710.
- FIG. 8 illustrates yet another embodiment of a network.
- This embodiment of the network includes a communications device 800, an MSN server 820, and a PTT server 814.
- Communications device 800 comprises a processor 804, a user interface 812, computer memory 802, network interface 818, and data bus 801.
- MSN server 820 includes a translation module 821
- PTT server 814 also includes a translation module 815.
- the PTT application program 806 includes an interoperability layer 807 that is configured to translate any incoming communications availability status data from a generic format into the format that is native for the PTT application program 806.
- the MSN application program 810 includes an interoperability layer 811 that is configured to translate any incoming communications availability status data from a generic format into the format that is needed for the MSN application program 810. It will be appreciated that the term "interoperability layer" describes a logical interface between the application program software and the outside world.
- the presence engine 808 is configured to receive a signal indicative of the change in communications availability status of a user in a generic format.
- the presence engine is configured to receive signals indicative of the change in communications availability status from the user interface 812 via the PTT application program 806, via the MSN application program 810, and is also configured to receive signals indicative of the change in communications availability status from the network interface 818.
- the presence engine 808 is configured to process communications availability statuses in the generic format. It is the responsibility of the application programs 806, 810 and the application servers 820, 814 to translate the communications availability status from its native format into the generic format when sending communications availability status information and translating from generic format to native format when receiving communications availability status. This functionality is provided by the interoperability layers 807, 811 in the application programs 806, 810 and the translation modules 821, 815 in the servers 820, 814.
- FIG. 9 shows schematically another embodiment of a communications network 900.
- the network 900 comprises a first landline telephone 902, second landline telephone 904, and network exchange 906.
- a first presence engine 908 is situated in the communications channel between the first landline telephone 902 and the network exchange 906, and a second presence engine 910 is situated in the communications channel between the second landline telephone 904 and the network exchange 906.
- Each presence engine 908, 910 has memory 909, 911 associated with it.
- the presence engines 908, 910 are application programming interfaces (APIs) stored in a computer memory that may be located on any device (existing or retro-fitted) in the communications path between the first landline telephone 902 and the second landline telephone 904.
- APIs application programming interfaces
- the first and second landline telephones 902, 904 provide a direct or established connection into the network 900 and are effectively "dumb terminals" configured for terminating voice calls over the network 900.
- Each landline telephone 902, 904 comprises a microphone 912, 918, a speaker 914, 920 and a keypad 916, 922.
- the landline telephones 902, 904 do not have any application programs running on them as such: they are configured for receiving and making regular voice telephony calls (for example using GSM, VoIP, or other suitable standard).
- the presence engines 908, 910 are configured to automatically encode communications availability status/presence information into a voice channel. Where a user of the first landline telephone 902 wishes to manage the communications availability status of the first landline telephone 902 they use the landline telephone 902 to interact with the first presence engine 908 by pressing buttons on the keypad 916 and/or by speaking into the microphone 912. In this example, a user of the first landline telephone 902 accesses the presence engine by dialing a specific predefined number with the keypad 916. [0155] The first presence engine 908 is situated between the first landline telephone
- the presence engine 908 terminates the call and does not attempt to route the call over the network 900. Any dialed numbers that are not in relation to presence information are allowed to pass through the presence engine 908 to the network exchange 906 unaffected.
- the presence engine 908 When the first presence engine 908 recognizes that a dialled number is in relation to presence information, the presence engine 908 is configured to send a signal to the first landline telephone 902 that will cause the user of the first landline telephone 902 to be presented with a first list of options in relation to communications availability status.
- the options are presented to the user as an automated audio message by the speaker 914 associated with the landline telephone 902.
- the options presented to the user are:
- the user may select one of the options by pressing the corresponding number on the keypad 916 on the landline telephone 902, and/or by speaking the number of the option that they want to select into the microphone 912, and a signal indicative of the user's selection is sent to the presence engine 905.
- the first presence engine 908 receives a signal indicative of the user's selection, the first presence engine 908 decodes that signal, for example by determining which key was pressed and/or by applying voice recognition software to the user's speech.
- the presence engine 908 sends a signal to the first landline telephone 902 that causes the user to be presented with a further list of options:
- the presence engine 908 is configured to store in memory 909 the communications availability status associated with the first landline telephone 902. If the user selects option 2) from the first list of options to check the communications availability status of the landline telephone 902 that they are using, the presence engine 908 is configured to retrieve the communications availability status associated with the landline telephone 902 from memory 909 and generate a signal representative of the communications availability status that can be sent to the landline telephone 902 such that it will cause the speaker 914 to output an audio signal representative of the communications availability status.
- the first presence engine 908 allows calls to pass through it unaffected as it is not recognized as an instruction to manage communications availability status.
- the second presence engine 910 recognizes that the call is for a landline telephone that utilizes communications availability status information and whose communications availability status is managed by that presence engine 910. Also, the presence engine 910 automatically recognizes that the communications availability status of the second landline telephone 904 should be considered before the call is set up.
- the second presence engine 910 retrieves the communications availability status information for the second landline telephone from memory 911. If the communications availability status of the second landline telephone 904 is "online”, the second presence engine 910 enables a call to be set up between the first landline telephone 902 and the second landline telephone 904 in the usual way - in this example by causing the second landline telephone 904 to ring. When the communications availability status of the called landline telephone is "online”, the presence engines are transparent to the users of the landline telephones.
- the second presence engine 910 is configured to prevent the call from being set up between the first landline telephone 902 and the second landline telephone 904 by preventing the second landline telephone from ringing.
- the second presence engine 910 is configured to generate a signal that is subsequently sent back to the first landline telephone 902 that causes the speaker 914 to provide the user of the first landline telephone 902 with an audio message informing the user that the called party (second landline telephone 904) is offline.
- the second presence engine 910 may be configured to generate a signal that provides the user of the first landline telephone 902 with an option to leave a voicemail message, for example the speaker 914 of the first landline telephone 902 may output an automated audio message that says "Telephone number 0368451264 is currently offline. Please press 1 to leave a voicemail message".
- One or more landline telephones may be associated with the same presence engine, and the memory associated with the presence engine may be configured for storing communications availability status for a plurality of landline telephones.
- the presence engine may be located in a logical layer that is underneath the landline telephone, and may conveniently be located within any module, or device, or computer, or server within the network 900, optionally within the network exchange 906.
- a software-controlled programmable processing device such as a general purpose processor or special-purposes processor, digital signal processor, microprocessor, or other processing device, data processing apparatus or computer system
- a computer program for configuring a programmable device, apparatus or system to implement the foregoing described methods, apparatus and system is envisaged as an aspect of the present invention.
- the computer program may be embodied as any suitable type of code, such as source code, object code, compiled code, interpreted code, executable code, static code, dynamic code, and the like.
- the instructions may be implemented using any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language, such as C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, JAVA, ActiveX, assembly language, machine code, and so forth.
- any suitable high-level, low-level, object-oriented, visual, compiled and/or interpreted programming language such as C, C++, Java, BASIC, Perl, Matlab, Pascal, Visual BASIC, JAVA, ActiveX, assembly language, machine code, and so forth.
- computer in its most general sense encompasses programmable devices such as referred to above, and data processing apparatus and computer systems.
- the computer program is stored on a carrier medium in machine readable form
- the carrier medium may comprise memory, removable or nonremovable media, erasable or non-erasable media, writeable or re-writeable media, digital or analog media, hard disk, floppy disk, Compact Disk Read Only Memory (CD-ROM), Company Disk Recordable (CD-R), Compact Disk Rewriteable (CD-RW), optical disk, magnetic media, magneto-optical media, removable memory cards or disks, various types of Digital Versatile Disk (DVD) subscriber identify module, tape, cassette solid-state memory.
- the computer program may be supplied from a remote source embodied in the communications medium such as an electronic signal, radio frequency carrier wave or optical carrier waves.
- any of the application programs, or any other logical module may be made up of more than one functional unit that may be distributed across more than one server/computer.
- the one or more server computers may or may not be in the same physical location.
- any reference to "one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment.
- the appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
- connection along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context. [0174] As used herein, the terms “comprises,” “comprising,” “includes,” “including,”
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/615,792 US20080153427A1 (en) | 2006-12-22 | 2006-12-22 | Data Processing Apparatus and a Method of Operating Data Processing Apparatus for Setting a State of a User Application |
US11/615,801 US7694313B2 (en) | 2006-12-22 | 2006-12-22 | Terminating device and a method of operating a terminating device configured to communicate availability status directly between terminating devices |
US11/615,805 US7715859B2 (en) | 2006-12-22 | 2006-12-22 | Presence engine and a method of operating a presence engine for encoding or decoding availability status into a signal representative of an audio signal |
PCT/US2007/087961 WO2008079823A2 (fr) | 2006-12-22 | 2007-12-18 | Dispositif de traitement de données et procédé d'utilisation d'un dispositif de traitement de données produisant des représentations de l'état de disponibilité de programmes d'application |
Publications (2)
Publication Number | Publication Date |
---|---|
EP2127124A2 true EP2127124A2 (fr) | 2009-12-02 |
EP2127124A4 EP2127124A4 (fr) | 2010-01-27 |
Family
ID=39563179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP07865816A Withdrawn EP2127124A4 (fr) | 2006-12-22 | 2007-12-18 | Dispositif de traitement de données et procédé d'utilisation d'un dispositif de traitement de données produisant des représentations de l'état de disponibilité de programmes d'application |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP2127124A4 (fr) |
WO (1) | WO2008079823A2 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902129B1 (en) | 2023-03-24 | 2024-02-13 | T-Mobile Usa, Inc. | Vendor-agnostic real-time monitoring of telecommunications networks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004034718A1 (fr) * | 2002-10-09 | 2004-04-22 | Nokia Corporation | Systeme de communication |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1399833B1 (fr) * | 2000-11-20 | 2017-04-19 | AT & T Mobility II, LLC | Procedes et systemes offrant des informations de presence de niveau d'application dans une communication sans fil |
JP4317061B2 (ja) * | 2004-03-16 | 2009-08-19 | 株式会社日立製作所 | プレゼンス情報の共有方法およびシステム |
US20060195532A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | Client-side presence documentation |
-
2007
- 2007-12-18 EP EP07865816A patent/EP2127124A4/fr not_active Withdrawn
- 2007-12-18 WO PCT/US2007/087961 patent/WO2008079823A2/fr active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004034718A1 (fr) * | 2002-10-09 | 2004-04-22 | Nokia Corporation | Systeme de communication |
Non-Patent Citations (1)
Title |
---|
See also references of WO2008079823A2 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902129B1 (en) | 2023-03-24 | 2024-02-13 | T-Mobile Usa, Inc. | Vendor-agnostic real-time monitoring of telecommunications networks |
Also Published As
Publication number | Publication date |
---|---|
WO2008079823A2 (fr) | 2008-07-03 |
EP2127124A4 (fr) | 2010-01-27 |
WO2008079823A3 (fr) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694313B2 (en) | Terminating device and a method of operating a terminating device configured to communicate availability status directly between terminating devices | |
US7715859B2 (en) | Presence engine and a method of operating a presence engine for encoding or decoding availability status into a signal representative of an audio signal | |
US7685608B2 (en) | Data processing apparatus and a method of operating data processing apparatus for generating representations of availability status for application programs | |
US11303748B2 (en) | Location based masked communication | |
EP2528312B1 (fr) | Liste de contact unifiée | |
US8204939B2 (en) | Method and apparatus initiating instant messaging with a party during a telephone call where instant messaging address and telephone number are associated in a database | |
KR101203233B1 (ko) | 입력 콜 및 출력 콜을 용이하게 하고, 관리하고, 제어하는 방법 및 사용자 인터페이스를 실현시키기 위한 프로그램을 기록한 컴퓨터 판독가능 기록매체 | |
US7068768B2 (en) | Method for populating a caller's information to a host-based address book | |
JP5615922B2 (ja) | 電話で見いだされるマッシュアップとプレゼンス | |
US7587457B2 (en) | Message automatic notification system, message automatic notification method, communication terminal device, and recording medium | |
RU2520355C2 (ru) | Расширенное использование голосовой почты посредством автоматического создания предварительного просмотра сообщения голосовой почты | |
US20090175425A1 (en) | Outgoing voice mail recording and playback | |
US8422642B2 (en) | Message system for conducting message | |
KR20060034233A (ko) | 서비스를 제공하는 시스템 및 방법 | |
KR20060009853A (ko) | 동적으로 맞춤화 가능한 스마트 전화번호부 | |
KR100477061B1 (ko) | 착신자의 착신 상태 정보 제공 방법 및 그 시스템 | |
EP2127124A2 (fr) | Dispositif de traitement de données et procédé d'utilisation d'un dispositif de traitement de données produisant des représentations de l'état de disponibilité de programmes d'application | |
US20080153427A1 (en) | Data Processing Apparatus and a Method of Operating Data Processing Apparatus for Setting a State of a User Application | |
JP2005333588A (ja) | ネットワーク端末 | |
JP5996356B2 (ja) | 通信端末 | |
JP2006101532A (ja) | 情報受信処理方法およびコンピュータ・テレフォニイインテグレーションシステム | |
WO2008079822A2 (fr) | Dispositif de traitement de données et procédé de fonctionnement d'un dispositif de traitement de données fixant un état d'une application d' utilisateur | |
KR20050085712A (ko) | 인스턴트 메시징 및 프리젠스 서비스들 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20090720 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC MT NL PL PT RO SE SI SK TR |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 20091228 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 9/46 20060101AFI20091218BHEP |
|
DAX | Request for extension of the european patent (deleted) | ||
17Q | First examination report despatched |
Effective date: 20100323 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20110607 |