[go: up one dir, main page]

HK1085540B - System and method for providing partial presence notifications - Google Patents

System and method for providing partial presence notifications Download PDF

Info

Publication number
HK1085540B
HK1085540B HK06103072.9A HK06103072A HK1085540B HK 1085540 B HK1085540 B HK 1085540B HK 06103072 A HK06103072 A HK 06103072A HK 1085540 B HK1085540 B HK 1085540B
Authority
HK
Hong Kong
Prior art keywords
presence information
file
information
terminal
server
Prior art date
Application number
HK06103072.9A
Other languages
Chinese (zh)
Other versions
HK1085540A1 (en
Inventor
Mikko Lonnfors
Eva-Maria Leppanen
Jose Costa-Requena
Original Assignee
诺基亚有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/196,327 external-priority patent/US6757722B2/en
Application filed by 诺基亚有限公司 filed Critical 诺基亚有限公司
Publication of HK1085540A1 publication Critical patent/HK1085540A1/en
Publication of HK1085540B publication Critical patent/HK1085540B/en

Links

Description

System and method for providing partial presence notifications
Technical Field
The present invention relates generally to communications, and more particularly to a system and method for communicating partial notifications related to presence information of a presentity.
Background
Mobile and landline/wired computing devices have become valuable tools in everyday communications in recent years. Desktop computers, workstations, and other wired computers currently allow users to communicate via email, video conferencing, and Instant Messaging (IM), to name just a few communication applications. Mobile devices such as mobile phones, handheld computers, Personal Digital Assistants (PDAs), etc. are also engaged in everyday communications. Mobile/wireless phones have been generally used as voice communication devices, but through technological advances, it has recently proven to be an effective device for transmitting data, images, and the like. With the increasing demand for users to seamlessly communicate across different platforms, wireless and landline technologies continue to incorporate more uniform communication systems.
Many communication applications allow for real-time and near real-time communications that are not within the range of traditional voice communications and wireless telephone communications associated with wireline. Chat conferencing, instant messaging, Short Message Service (SMS), video conferencing are just a few of such communication tools. Many of these types of communications have been well accepted by the communicating public and are expected to become more prevalent, particularly due to the proliferation and continued technological breakthroughs of wireless devices.
To implement these techniques, a "presence" technique is used to determine location, willingness to communicate, and other parameters related to real-time and near real-time communications. Presence technology generally refers to applications and services that facilitate (factitioate) locating and identifying one or more endpoints of such communication links. For example, if a user of a wireless, handheld device wants to initiate an IM session with another IM user, a presence service may be used to provide the user's willingness to receive IM messages. Presence services are an integral part of third generation (3G) wireless networks and are intended to be used across a wide variety of communication devices.
Current presence service technology includes the concepts of presentities, presence servers, and watchers. In general, a presentity is able to provide information about its "presence" (e.g., location, willingness to communicate at a certain time or with a certain user, etc.). This information may be collected and utilized by a presence server, which may inform authorized "watchers" interested in presence information that certain presence information is available. The watcher application may be implemented in a wired or wireless terminal to obtain presence information about other users from a presence server. It may be obtained in the form of an advertisement, issued by the presence server to the watcher.
Typically, the notification to the user/watcher that the target user/device has become available is sent with the complete presence information. In other words, there are multiple pieces of distinct presence information associated with the presence information population, and an original or updated announcement results in all presence information being sent to the announcing subscriber who "waits" for that particular presence information. For example, in current IETF presence format specifications, such as the common instant messaging description file (CPIM) and the Presence Information Data Format (PIDF), all presence information is sent regardless of whether the portion of information sent is already available to watchers. In some environments, such as wireless environments, sending the entire presence information may not be a favorable option when only a portion of the information changes, as the available bandwidth is typically significantly lower than in a fixed internet environment.
If some of the data received earlier has become invalid, the existing presence specification does not provide any indication. This may occur, for example, in the event that a watcher changes filtering information, a presentity changes presence authorization registration, and presence attributes become unavailable on the network. Furthermore, existing specifications do not provide version information that would be necessary if the presence information were communicated using multiple application protocols, since protocol-specific version mechanisms cannot be used in such cases.
Accordingly, there is a need in the communications industry for more efficient and convenient ways to provide presence information. The present invention fulfills these and other needs, and provides other advantages over the prior art.
Summary of The Invention
The present invention is directed to a system for communicating a partial advertisement relating to presence information of a presentity.
In accordance with one embodiment of the present invention, a method is provided for communicating presence information between a presence server and a terminal coupled to the presence server through a network. The method includes identifying at least one presentity for which the terminal has requested a presence service. A presence file is created, wherein the presence file includes presence information corresponding to a presentity. The presence information is structured as partial presence information that includes less presence information than the total number of presence information available to the presentity. The presence file with the partial presence information is transmitted to the terminal requesting the presence information.
In accordance with another embodiment of the present invention, a method for advertising presence information to a client terminal is provided. The method comprises creating a presence file for use by at least one terminal requesting presence information about a presentity. Creating a presence file includes creating at least one tuple, wherein the tuple includes a version value indicating a tuple version relative to a previous version of the tuple, and associating presence information with the tuple, wherein the presence information includes a subset of a complete set of presence information for a presentity. The presence file is sent to the client terminal requesting the presence information, where the version value provided by the tuple is compared with the current version value stored on the client terminal. If the version value provided by the tuple indicates that new presence information is available for the tuple, the client terminal is directed to modify the presence information associated with the tuple.
According to another embodiment of the present invention, a presence aware (aware) system is provided. The system includes at least one terminal having a watcher application that watches for presence information corresponding to a presentity. At least one presence server is provided that is coupled to the terminal via a network. The presence server includes a processor configured to identify at least one presentity for which a watcher application has requested presence services. Through the processor (and other computing components), a presence file is provided that includes presence information corresponding to a presentity. The presence information is structured as partial presence information having less than the total number of presence information available to the presentity. The presence file with the portion of the presence information is transmitted to a watcher application of the terminal requesting the presence information.
In accordance with another embodiment of the present invention, a presence server is provided, wherein the presence server is coupled to a plurality of terminals via a network. The presence server transmits presence information to one or more of the plurality of terminals over the network. The presence server includes a memory configured to store presence information for a plurality of presence entities and to store terminal subscriptions for terminals authorized to receive presence information for one or more of the presence entities. A processing system is provided with the presence server and is configured to identify at least one presentity to which a particular terminal has subscribed, create a presence file including presence information corresponding to the presentity, wherein the presence information is configured to correspond to partial presence information of a subset of a set of presence information available to the presentity. The data transmission module is coupled to the processing system to transmit the partial presence information to the subscribing terminal over the network via the presence file.
The summary of the invention is not intended to describe each illustrated embodiment or implementation of the present invention. This is the purpose of the following figures and related discussion.
Brief Description of Drawings
The invention will be described in connection with the embodiments illustrated in the following figures.
Fig. 1 is a block diagram illustrating a representative presence service system in which the principles of the present invention may be applied.
Fig. 2 illustrates a representative message flow that may be used in connection with the present invention.
Fig. 3 illustrates a representative namespace extension that facilitates utilizing partial advertisements in accordance with the principles of the present invention.
FIG. 4 illustrates a representative program segment for implementing one embodiment of namespace expansion in accordance with the present invention.
Fig. 5 is a flow diagram illustrating an exemplary embodiment of providing partial advertisements to a watcher application in accordance with this invention.
Fig. 6 is a flow chart illustrating an exemplary embodiment of a method for processing presence information received at a client device in accordance with the present invention.
Fig. 7 is a flow diagram illustrating an exemplary embodiment of a method for communicating information between a presence server and a terminal coupled to the presence server over a network, independent of any particular interface format.
FIG. 8 illustrates an example of a representative mobile terminal computing system capable of carrying out operations in accordance with the invention; and
FIG. 9 illustrates an example of a representative computing system capable of providing presence information in accordance with the invention.
Detailed description of the invention
A portion of the disclosure of the content of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights and associated copyright rights whatsoever.
In the following description of the exemplary embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized, as structural and operational changes may be made without departing from the scope of the present invention.
In general, the present invention provides a way for communicating presence information. Presence information is created at a presence server or related system, wherein the presence information is structured as partial presence information that includes less than all of the status information regarding the presentity. In this way, presence information that has been transferred to the watcher application does not have to be sent redundantly from the server of the presence to the client watcher application.
Multiple entities are typically implemented in a presence service architecture. A presentity is an entity that provides presence information. Another entity is a presence server that receives presence information from a presentity. Watchers are entities interested in presence information. A representative embodiment of a presence service architecture is shown in fig. 1.
Fig. 1 is a block diagram illustrating a representative presence service system 100 in which the principles of the present invention may be applied. In the illustrated embodiment, the presence service system 100 is implemented as an IP Multimedia Subsystem (IMS) network, wherein watcher and presentity presence proxy functions are mapped to IMS network elements when located inside the IMS.
The presence server 102 manages presence information provided by one or more presence providers 104, such as presence user agents and external presence agents, as well as presence information (i.e., location information) provided over a network. The presence server 102 combines presence-related information for a particular presentity from the information it receives from multiple presence providers 104 into a single presence file based on the presence attributes and policies defined in the presence server 102. The user then makes a subscription request for presence information available at the presence server 102. As described more fully below, a user acting as a watcher may make a subscription request to receive presence information available from a presentity at server 102. The presentity is also able to make subscription requests in order to receive information about watchers who have subscribed to its presence information in the server 102.
The Home Subscriber Server (HSS)106 acts as a master database and manages information about mobile subscribers, such as user profile (profile) information. The HSS 106 may support a subscription profile that identifies given user information for a given user, such as user identity, subscription services and profiles, service-specific information, mobility management information, authorization information, etc. The HSS 106 is similar to a second generation (2G) Home Location Register (HLR) and includes information such as location information that may be used to develop location-based services. The third generation (3G) HLR is a subset of the HSS 106.
The presence service system 100 also includes watcher applications, such as watcher applications 108 and 110. A watcher application is an entity that requests and/or subscribes to presence information about one or more presentity entities. When a watcher application attempts to access some presence information of a presentity, it obtains the address (e.g. the sip url) at which the request is targeted, and can thus discover the presence server containing this presence information through the network. The presentity presence agent 112 assists in this regard when the presentity presence agent 112 determines the identity of the presence server 102 associated with a particular presentity. In addition, the watcher presence agent 114 performs (among other things) address resolution and identification of the target network associated with the presentity. Other functions of the watcher presence agent 114 and the presentity presence agent 112 depend on, for example, the relative locations and trust relationships of the watcher application 108 and the presence server 102.
Each of the proxies 112, 114 may include various Call State Control Function (CSCF) modules. The watcher presence proxy 114 includes a proxy CSCF (P-CSCF)116 and a serving CSCF (S-CSCF) 118. S-CSCF 118 performs and/or facilitates the performance of a number of functions including controlling sessions for user equipment/watcher applications, obtaining addresses of CSCFs and P-CSCFs 116 in presentity presence agent 112, forwarding SIP requests/responses to and from presentity presence agent 112, triggering and performing services, authorization, etc. The P-CSCF 116 serves as a contact point for the watcher application 108 and performs and/or assists in performing functions such as translation, security, authorization, etc.
The presentity presence proxy 112 also includes an S-CSCF 120, and an interrogating CSCF (I-CSCF) 122. The I-CSCF 122 serves as a contact point in the home network for connections destined for subscribers of the home network or roaming subscribers currently located in the service area of the network. The I-CSCF 122 performs a number of functions including assigning the serving CSCF 120 to a registering user, contacting the HSS 106 to obtain an S-CSCF address, and forwarding SIP requests/responses to the S-CSCF 120.
In the system 100 of fig. 1, there are two alternative locations for a watcher application in the IMS network. The first watcher application 108 may be located within a User Equipment (UE) terminal registered in the network. In the illustrated embodiment, the observer application 108 is able to register with the network, such as specified in standard IMS procedures, by registering with the S-CSCF 118 through the P-CSCF 116. Another watcher application 110 can be associated with the application server 124 behind an ISC interface 126, which will be described more fully below. The application server 124 may be used to increase the functionality of the watcher presence broker 114 by allowing the watcher application 110 to subscribe to several presentity entities using a single subscription request.
The presence service system 100 includes a plurality of IMS interfaces, which in one embodiment implement the Session Initiation Protocol (SIP). The IMS interface associated with the illustrated architecture is referred to as a reference point. Reference point P indicated on interface line 128XRepresenting the interface between the presentity presence agent 112 and the Home Subscriber Server (HSS) 106. This interface facilitates the location of the presence server 102 of the presentity. Due to CxInterface support CSInformation transfer between CF and HSS 106, the specific reference point PxIs CxAn interface. HSS manages location information (among others), and CxThe interface thus supports the transfer of at least location information between the HSS 106, the I-CSCF 122, and the S-CSCF 120.
Another reference point P represented on interface portions 130A, 130B, and 130CwRepresenting the interface between the watcher application 108 and the presence server 102. This interface allows a watcher application to request and obtain presence information. In one embodiment of the invention, the interface is compliant with the Common Profile for Instant Messaging (CPIM) specification using the Presence Information Data Format (PIDF) and is implemented, for example, using SIP. PwIs GmAn interface that allows the watcher application 108 to communicate with the P-CSCF 116. PwIs MwInterfaces that allow the CSCFs to interface with each other. The MwThe interface thus facilitates communication between the S-CSCF 118 of the watcher presence proxy 114 and the I-CSCF 122 of the presentity presence proxy 112. PwIs an IMS service control Interface (ISC), which is a reference point between the CSCF and the server. The ISC thus allows the S-CSCF 120 to communicate with the presence server 102. Alternatively, the watcher presence agent 114S-CSCF 118 can communicate with another watcher application 110 directly over the ISC interface 126.
When the watcher application 108 requests presence information, this can be done using the CPIM PIDF interface definition, for example. For example, a request for information is sent from the watcher application 108 to the presence server 102. If the presence server 102 authorizes the subscription, the presence advertisement is allowed to be sent back to the watcher application 108. These notifications may be repeatedly sent to each subscribing watcher application whenever the presentity's status changes.
Fig. 2 illustrates a representative message flow 200 that may be used in connection with the present invention. Message flow 200 illustrates a representative example of how a watcher obtains presence information for one or more presentities. This example illustrates a number of network elements, networks and standards that are part of the IMS domain 201, including a User Equipment (UE) terminal 202, a Radio Access Network (RAN)204, a General Packet Radio Service (GPRS)/Dynamic Host Configuration Protocol (DHCP) entity 206, a P-CSCF 208, a presence server 210 and a domain name server (DSN) 212. UE 202 represents a device that may include a watcher application that desires to obtain presence information. The RAN 204 is a 3G network that can provide mobile access to multiple core networks of mobile and fixed origin-it is a network that bridges radio links and IP core networks.
GPRS/DHCP 206 represents a typical communication standard that may be used in IMS domain 201. GPRS is a packet-switched wireless communication standard for the global system for mobile communications GSM) that maps the internet model and enables seamless transition to 3G networks. GPRS provides practical packet radio access for mobile GSM and Time Division Multiple Access (TDMA) users and is ideal for Wireless Application Protocol (WAP) services. However, any suitable IP connectivity network other than GPRS may be implemented. DHCP is an IP address discovery method that can provide a mechanism by which a device such as UE 202 can automatically obtain TCP/IP configuration settings through the network. The UE 202 can contact the DHCP server by broadcasting a request packet on the RAN 204 to obtain its configuration parameters. The DHCP server assigns an IP address to the UE 202 and provides certain parameters. These IP addresses and configuration parameters are leased to the UE 202 instead of being statically assigned as in the case of static IP addressing, thus reducing the effort required to manage a large network. In addition to providing the UE with an IP address, DHCP can also provide the IP address of the P-CSCF, which is the first network entity that the UE contacts to access the IMS core network. DNS 212 represents a naming server that resolves logical names (fully qualified domain names; FQDNs) into IP addresses for corresponding internet addresses. Other IP address discovery methods than DHCP may also be used.
The subscription request, represented on path 214, is provided from the watcher application in the UE 202 to the P-CSCF 210 through the RAN 204 and GPRS/DHCP 206 address discovery. The subscribe request is used to represent the watcher application's interest in the presence information of the target presentity and thus identifies the target presentity in the request URI. The P-CSCF 208 forwards the subscription request to the presence server 210, as illustrated by path 216. The presence server 210 receives the request and authorizes (and in some cases may also authenticate) the user. If the subscription is authorized, the presence server 210 responds by providing an OK-back code shown on path 218, which is forwarded to the UE 202 via the P-CSCF 208, as shown by path 220. At this point, the UE 202 waits for presence information from the target presentity.
To propagate the presence information of the target presentity, an announce message, shown on path 222, is sent to the P-CSCF 208 through the presence server 210 and then on to the UE 202 through the P-CSCF 208 as shown on path 224. This information includes the status of the presentity and the subscription. In this way, the announcement message informs the watcher in the UE 202 when the presence information of the presentity it has subscribed to has been activated or has subsequently changed. If the presence information has been correctly received and processed, the UE 202 responds with an OK message shown on path 226, which is received and forwarded to the presence server 210 on path 228.
In accordance with conventional presence specifications and practices, the announcement information will include all presence information relating to the presentity to which the UE 202 has subscribed. For example, the existing CPIM PIDF specification specifies that the entire presence information is to be sent each time an announcement message is sent. However, in some environments, such as wireless networks, this may not be ideal or practical. In such an environment, it is undesirable to transmit the entire presence file when only some parts of the file change, due in large part to the relatively limited bandwidth in the wireless environment. The present invention solves this problem and reduces the redundant transmission of presence information already available at the UE watcher.
In accordance with the present invention, a presence server provides partial notifications regarding the presence status of a presentity. The UE, such as a mobile terminal, is able to receive these partial advertisements. When the presence information includes the presentity's communication device, the capability to send the presentity, the willingness to communicate, and other attributes, only the changed portion of the information is sent, thereby minimizing bandwidth consumption. By providing for the use of partial presence advertisements, the present invention provides for extensions to the current advertising specification and any similar advertising practices. The present invention provides the ability to indicate that only a portion of the presence information that has been previously received is no longer valid and also provides better support for presence information versions.
In one embodiment of the present invention, the currently existing presence specification can also be used to provide most of the presence information. Thus, when the present invention provides an extension to an existing specification, all current analysis programs and specifications can be used. An extension may be defined in such a way that it does not cause an inter-operational problem with existing implementations that do not recognize the extension. The present invention also facilitates versioning, as one embodiment of the present invention provides its own versioning support. This provides independence of the application layer protocol for transferring presence files.
The present invention is described in conjunction with the IMS, SIP, and CPIM PIDF specifications (draft-ieft-CPIM-pdif-05.txt) to facilitate an understanding of the present invention. It will be apparent to those skilled in the art from the description provided herein that while the present invention is described in terms of existing presence specifications, i.e., in terms of the CPIM PIDF specification, the present invention is equally applicable to other presence information data formats.
Fig. 3 illustrates a representative namespace extension that facilitates utilizing partial advertisements in accordance with the principles of the present invention. To facilitate an understanding of the various elements and attributes associated with such extensions, the representative namespace extensions are described in tabular form, and tabular form is not intended to represent any particular data structure associated with such information. Further, in the context of IMS, this representative namespace extension is described as an extension to CPIM PIDF using extensible markup language (XML). However, the principles described herein may be similarly applied to similar systems, presence information data formats, and programming languages.
In the exemplary embodiment of FIG. 3, the extended namespace includes various elements, including version 300, action 308, and schema 310. The version element 300 may be used to identify the version of an entire presence file or a single presence tuple. When used at the presence file level 302, the version parameters can provide version support across different application protocols, such as SIP, HTTP, and the like. When used at the tuple level 304, the version parameter provides information to the watcher indicating whether a particular tuple should be updated. A specific example of using version elements at the file and tuple level is then provided in connection with fig. 4.
An action element 306 may be used in the tuple to indicate the action taken by the customer for that particular tuple. The representative value associated with action element 306 includes a remove 308 value and a clear 310 value. For example, removing a 308 value may indicate that the presence server no longer has the particular presence information for the tuple, for whatever reason, and the client may ignore or remove the information associated with the tuple. The flush 310 value may indicate that the client flushed the currently stored presence information corresponding to the tuple. Any other desired value 312 may also be used to correspond to desired action 306.
The schema attributes element 314 may be used at the file level to indicate whether the advertisement is an update for a portion of the presence information or whether the advertisement is to provide full presence status. Further, an attribute having a standard value may be provided. To provide common behavior in the UE, and to facilitate interoperability, a set of accurately defined values (e.g., No change, No value, etc.) may be normalized as part of an extended namespace. For example, the No _ change attribute may be used to indicate that the client should keep its current value it previously received. The No _ value attribute may be used to indicate that the element is available to the client, but that the presence server is currently unable to provide its value. An example of how such standard attribute values may be used is described below in conjunction with fig. 4.
With the extended namespace and associated elements described above, an advertisement may be provided that includes only partial presence information updates. Additional, fewer, or different elements and attributes may also be associated with the partial advertisement extensions of the present invention.
FIG. 4 illustrates a representative program segment 400 that implements one embodiment of namespace expansion in accordance with the present invention. The representative program segments are illustrated in terms of extensible markup language (XML) to illustrate an exemplary manner in which the principles of the present invention may be implemented. However, one of ordinary skill in the art will appreciate from the description provided herein that other programming languages may be used to implement this functionality.
The program segment 400 includes XML processing instructions and encoding declarations 402. The body of the representative XML file includes a root presence element 404. This element 404 includes at least one tuple element and extension elements from other namespaces, as will be described in more detail below. The presence element 404 includes a namespace declaration including a namespace declaration 408 to indicate the namespace on which the presence file is based. Namespace declarations can include other namespace declarations for the extension used. In the illustrated embodiment, two other namespace declarations 410, 412 are provided for the extensions used. Namespace declaration 410 is related to instant messages and namespace declaration 412 is related to a partial advertisement extension in accordance with the present invention and is named "PE" (i.e., presence extension) in the illustrated embodiment. The presence element 404 also includes entity attributes 414. Presence information is indicated by a presentity or a "pres" URL of a presentity. The value of the entity attribute 414 is the "pres" URL of the presentity that publishes the presence file, which in the illustrated embodiment is someone @ example.
In accordance with the present invention, version element 416 is provided at the presence file level. The version element 416 may be used to identify the version of the entire existing file, with associated version parameters 418 providing version support across application protocols. For example, if the presence file has a version parameter 418 with a value of "3," this indicates that the advertisement is the third advertisement in a particular subscription. The client/viewer will have a stored version parameter that can be compared to the version parameter 418. This can be used to determine whether all tuples should be obtained from the presence server, not just those that may be specified in other partial advertisements. For example, if the version parameter 418 has a value two or more greater than the value stored at the client, this would indicate that the client and presence server are not synchronized. In this case, the user will retrieve all presence tuples from the presence server.
The version elements may be used at the tuple level, so that the version parameters may be provided in one or more individual presence tuples. The version element 420 constructed in the tuple element 422 includes a version parameter provided for the presence information. In this example, the version parameter has a value of "2". When used at the tuple level, the version parameter provides information to the watcher indicating whether the tuple should be updated. For example, a tuple 422 with an identification id of "mobile-im" includes a version element 420 with a version number 424 having a value of "2". If this version number is higher than the current version number stored at the client device, the client should then update the tuple since the higher version number 424 indicates that this is information for a new version of the tuple (i.e., the information has changed).
In embodiments of the invention where the CPIM specification and PIDF presence data format is utilized, the presence element 404 will include at least one tuple containing a state element. The tuple 422 in fig. 4 includes such a state element 426. The status element 426 provides some presence status information, and the illustrated status element 426 includes a base element 428 that may specify values "open" and "closed". These values represent the availability to receive instant messages if the tuple is for an instant message address, which is the case for the exemplary tuple 422. In the illustrated embodiment, the value "on" is a value for the base element 428 indicating that the presentity is available to receive instant messages. The presence element 404 may include other elements, such as a contact element 432, which includes the URL of the contact address. The contact element 432 may include an attribute such as a "priority" attribute 434 that identifies the relative priority of the contact address with respect to other contact addresses.
Other tuples may also be provided in the presence element 404, such as tuple 436 with an identification "id ═ call". Within the tuple 436 is another element 438, which is an action element 438 according to the present invention. Action element 438, labeled "PE: action," indicates the action that the client should take for that particular tuple 436. The particular value associated with the illustrated action element 438 is "remove" 440, which, according to one embodiment of the invention, indicates that the customer call tuple no longer has a relevant value, for whatever reason, and that the customer can ignore, remove, and the value. Any number of different predetermined actions may be associated with such action elements in accordance with the present invention.
The representative presence element 404 also includes a schema element 442. As previously described, schema elements in accordance with the present invention can be used at the file level to indicate whether a presence advertisement is part of a process for updating presence information (i.e., "partial advertisement"), or whether the advertisement provides full presence state. In the illustrated embodiment, the value associated with schema element 442 is an "update" value 444, which indicates a partial advertisement.
As previously indicated, a set of exact limit values (e.g., No _ change, No _ value, etc.) may be standardized as part of an extended namespace to provide common behavior in UEs and to facilitate interoperability. As an example of how such standard attribute values may be used, a presence element may comprise a tuple element, which in turn comprises one or more attributes selected from a set of exact constraint attribute values. The following representative code fragments are examples of how such standard attribute values may be used.
<presence>
<tuple id=″886647846″>
<attribute_1>
value_1
</attribute_1>
<attribute_2)
value_2
</attribute_2>
</tuple>
</presence>
In this example, the UE already has presence information including attribute-1 having a value of "value _ 1" and attribute-2 having a value of "value _ 2". When a subsequent announcement is received, the attributes may be changed in the following manner:
<presence>
<tuple id=″886647846″>
<attribute_1>
value_new
</attribute_1>
<attribute_2)
no_change
</attribute_2>
</tuple>
</presence>
as we can see, since this easily identifiable standard value of "no _ change" has been assigned to attribute _2, the UE has clearly demonstrated that attribute _1 has a new value and that the UE should keep its current value of attribute _ 2.
Fig. 5 is a flow chart illustrating an embodiment of a method for providing partial notifications to a watcher application in accordance with the present invention. Namespace declarations 500 are created that include at least one extended namespace declaration for the element types and attributes associated with the partial advertisement. The file level version 502 may be identified to enable a client/watcher to determine, for example, whether it is synchronized with the presence server. The pattern 504 may be identified to indicate, for example, whether the presence advertisement provides full presence status or whether the presence advertisement is a partial update. One or more tuples are created 506. Tuple level version 508 may be identified for any of the one or more tuples. An action 510 may also be identified for one or more created tuples. When the presence file has been created, it may be sent to the appropriate watcher application in any desired manner. For example, in one embodiment of the invention, the presence file is sent to the subscribing watcher application when the associated presence information changes. Other means, such as observer event triggered fetching and/or interval polling may be used.
Fig. 6 is a flow chart illustrating an exemplary embodiment of a method for processing presence information received at a client device in accordance with the present invention. A presence advertisement 600 is received, where the presence advertisement is created at a presence server or other entity, such as in the manner described in connection with fig. 5. If it is determined 602 at the decision block that a file level version is included in the presence information, a determination is made as to whether the file level version indicates that the client syncs 604 with the presence server. In one embodiment of the invention, this is determined by comparing the file-level version to a stored value at the client, and if the file-level version is two or more greater than the client value, the user has lost synchronization with the presence server. In this case, all presence tuples are requested 606 from the presence server.
If at decision block 608, the schema is provided with presence information, a determination is made as to whether the schema indicates that a partial update is not to be performed 610. If not, the full presence state is updated 612. Otherwise, in the case of a partial update, one or more tuples may include a version value. At decision block 614 it is determined whether the tuple includes a tuple level version. If the tuple includes a tuple level version in accordance with the present invention, a determination is made as to whether there is a change in the version 616, which is determined in one embodiment by determining whether the customer version is equal to the tuple level version provided with presence information. If the values are equal, then no change has occurred based on the presence information that the client already knows has, and the tuple is not updated 618. Otherwise, the tuple 620 is updated. For any tuple, it may also be determined whether a particular tuple includes an action 622 in accordance with the present invention, and if so, the action 624 is performed.
The present invention may be applied in connection with different interface data formats, protocols, etc. Fig. 7 is a flow chart illustrating an exemplary embodiment of a method for communicating information between a presence server and a terminal coupled to the presence server over a network, independent of any particular interface format. At least one presentity 700 to which a terminal/watcher has requested presence services is identified. A presence file 702 is created, where the presence file includes presence information corresponding to the presentity. The presence information is structured to include less than all of the presence information available to the presentity 704. The presence file including the portion of the presence information is transmitted to the terminal 706 that requested the presence information.
The terminals having the observer application described in connection with the present invention may be any number of terminals including desktop/personal computers, workstations, large-scale computing terminals, wireless terminals or any other device capable of executing presence-aware applications. Wireless terminals include devices such as wireless/mobile phones, personal digital assistants (PAD) or other wireless handsets, as well as portable computing devices. The mobile terminal utilizes the computing components to control and manage the conventional device activities as well as the functions provided by the present invention. Hardware, firmware, software, or a combination thereof may be used to perform the various viewer application functions and associated features described herein. For purposes of illustration and not limitation, an example of a representative mobile terminal computing system capable of carrying out operations in accordance with the invention is illustrated in FIG. 8. However, it should be recognized that the principles of the present invention are equally applicable to standard computing systems.
An exemplary mobile computing arrangement 800 suitable for implementing observer application functions in accordance with the invention includes a processing/control unit 802, such as a microprocessor, Reduced Instruction Set Computer (RISC), or other central processing module. Processing unit 802 need not be a single device and may include one or more processors. For example, processing unit 802 may include a master processor and associated slave processors coupled to communicate with the master processor.
The processing unit 802 controls the basic functions of the mobile terminal, as dictated by programs available in the memory/storage 804. In this manner, the processing unit 802 performs the functions associated with the watcher and the related features of the present invention. More particularly, the memory/storage 804 may include an operating system and program modules for executing functions and applications on the mobile terminal. For example, the program memory may include one or more Read Only Memories (ROMs), flash ROMs, programmable and/or erasable ROMs, Random Access Memories (RAMs), user interface modules (SIMs), Wireless Interface Modules (WIMs), smart cards or other removable memory devices, and the like. The program modules and associated features may be transmitted to the mobile computing arrangement 800 by way of data signals, such as data signals downloaded electronically via a network, such as the internet.
One of the programs that may be stored in the storage/memory 804 is a watcher program 806. As previously described, the watcher program 806 can extract and/or subscribe to presence information of one or more presentities. The watcher 806 and/or related features can be embodied in software and/or firmware operable with the processor 802. The program storage/memory 804 may also be used for storing data 808, such as various file and tuple version values, or other data associated with the present invention. In one embodiment of the present invention, the programs 806 and data 808 are stored in non-volatile electrically-erasable, programmable ROM (eeprom), flash ROM, etc. so that the information is not lost upon power down of the mobile terminal 800.
The processor 802 is also coupled to user interface 810 elements associated with the mobile terminal. The user interface 810 of the mobile terminal may include, for example: a display 812 such as a liquid crystal display, a keypad 814, a speaker 816, and a microphone 818. These and other user interfaces are coupled to the processor 802, as is well known in the art. Keypad 814 includes alphanumeric keys for performing a variety of functions including dialing numbers and performing operations that are assigned to one or more keys. Alternatively, other user interface mechanisms may be employed, such as voice commands, switches, touch pads/screens, graphical user interfaces with pointing devices, trackballs, joysticks, or any other user interface mechanism.
The mobile computing arrangement 800 may also include a Digital Signal Processor (DSP) 820. The DSP 820 may perform various functions, including analog-to-digital (AD) conversion, digital-to-analog (D/a) conversion, speech encoding/decoding, encryption/decryption, error detection and correction, bit stream conversion, filtering, and so forth. The transceiver 822, which is typically coupled to an antenna 824, transmits and receives radio signals associated with the wireless device.
The mobile computing arrangement 800 of FIG. 8 is provided as a representative example of a computing environment in which the principles of the present invention may be applied. From the description provided herein, those skilled in the art will appreciate that the present invention is equally applicable in a variety of other currently known and future mobile computing environments. For example, the watcher application 806 and related features and data can be stored in a variety of ways, can be operable on a variety of processing devices, and can be operable in a mobile device having additional, fewer, or different supporting circuitry and user interface mechanisms. It is to be noted that: the principles of the present invention are equally applicable to non-mobile terminals, i.e., landline computing systems.
A presence server or other system for providing presence information in connection with the present invention may be any type of computing device capable of processing and communicating presence information. The presence server utilizes a computing system to control and manage presence awareness activities. An example of a representative computing system capable of carrying out operations in accordance with the invention is illustrated in FIG. 9. Hardware, firmware, software, or a combination thereof may be used to perform the various presence-aware functions and operations described herein. The computing architecture 900 of fig. 9 is an example of a computing architecture that can be used in connection with such a presence system.
Examples of computing arrangements 900 suitable for performing presence activities in accordance with the present invention include a presence server 901 comprising a Central Processing Unit (CPU)902 coupled to a Random Access Memory (RAM)904 and a Read Only Memory (ROM) 906. ROM 906 may also be another type of storage medium that stores programs, such as Programmable ROM (PROM), Erasable PROM (EPROM), and the like. The processor 902 may communicate with other internal and external components via input/output (I/O) circuitry 908 and a bus 910 to provide control signals, etc. The processor 902 performs a variety of functions known in the art, as indicated by software and/or firmware instructions.
The server 901 may also include one or more data storage devices, including hard and floppy disk drives 912, CD-ROM drives 914, and other hardware capable of reading and/or storing information, such as DVDs and the like. In one embodiment, the software for performing portions of the presence notification operations in accordance with the present invention may be stored and distributed on CD-ROM 916, disk 917, or other form of medium capable of conveniently storing information. These storage media may be inserted into, or read by, a device such as CD-ROM drive 914, disk drive 912, etc. The software may also be transmitted to the presence server 901 by a data signal, such as being downloaded electronically over a network such as the internet. The server 901 is coupled to a display 920, which may be any type of known display or display screen, such as an LCD display, a plasma display, a Cathode Ray Tube (CRT), and the like. A user input interface 922 is provided that includes one or more user interface mechanisms such as a mouse, keyboard, microphone, touch pad, touch screen, voice recognition system, or the like.
The server 901 is coupled to other computing devices, such as online and/or wireless terminals and associated watcher applications, over a network. In a Global Area Network (GAN), such as the internet 928, the server may be part of a larger network fabric that allows eventual connection to various on-line and/or mobile user/watcher devices.
Using the description provided herein, the invention may be implemented as a machine, process, or article of manufacture by using standard programming and/or engineering techniques to produce programming software, firmware, hardware or any combination thereof.
Any resulting program(s), having computer-readable program code, may be embodied on one or more computer-usable media such as resident memory, smart cards or other removable memory devices, or transmitting devices, thereby making a computer program product or article of manufacture according to the invention. As such, the terms "article of manufacture" and "computer program product" as used herein are intended to encompass a computer program that exists permanently or temporarily on any computer-usable medium or in any transmitting medium which transmits such a program.
As indicated above, the memory/storage devices include, but are not limited to, magnetic disks, optical disks, removable memory devices such as smart cards, SIM, WIM, semiconductor memories such as RAM, ROM, PROMS, etc. Transmission media includes, but is not limited to, transmission over wireless/radio wave communication networks, the internet, intranets, telephone/modem-based network communication, hard-wired/cabled communication network, satellite communication, and other fixed or mobile network systems/communication links.
From the description provided herein, those skilled in the art are readily able to combine software created as described with appropriate general purpose or special purpose computer hardware to create a mobile computer system and/or computer subcomponents embodying the invention, and to create a computer system and/or computer subcomponents for carrying out the method of the invention.
The foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. The scope of the invention is not limited to the illustrated embodiments, but can be determined only from the following claims.

Claims (38)

1. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network, the method comprising:
identifying at least one presentity to which the terminal has requested presence services;
creating a presence file including presence information corresponding to the presentity;
constructing the presence information to include less than all of the presence information available to the presentity; and
transmitting the presence file having the partial presence information to a terminal requesting the presence information.
2. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 1, wherein constructing the presence information comprises providing status information for the changed presence information.
3. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 1, wherein constructing the presence information comprises providing a mode value in the presence information indicating whether a presence file includes partial presence information or a full update of presence information.
4. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 1, wherein constructing the presence information comprises providing at least one action element in the presence information.
5. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 1, wherein creating the presence file comprises creating the presence file to conform to the common profile for instant messages CPIM specification using presence information data format PIDF and creating an extension to the common profile for instant messages CPIM presence information data format PIDF presence file to facilitate constructing the presence information to include less than all of the presence information available to the presentity.
6. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 5, wherein constructing the presence information comprises providing status information for one or more presence file tuples that have undergone a change in status information.
7. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 6, wherein constructing the presence information further comprises providing a tuple version indicator corresponding to a new version of a tuple that has undergone a state information change.
8. The method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 6, wherein constructing the presence information comprises providing at least one action element in a presence document tuple to identify an action to be taken at the terminal on the corresponding presence document tuple.
9. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 5, wherein constructing the presence information comprises providing a file version indicator to identify a file version of the presence file, wherein the file version can be used by the terminal to determine whether the presence information stored at the terminal is synchronized with the presence server.
10. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 1, further comprising facilitating terminal subscription to presence information of at least one presentity.
11. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 10, wherein facilitating terminal subscription to presence information comprises facilitating at least one of terminal-initiated extraction of presence information and terminal-initiated polling for presence information.
12. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 11, wherein facilitating terminal subscription to presence information comprises subscribing the terminal to presence information advertisements initiated at the presence server.
13. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 12, wherein communicating the presence file comprises communicating the presence file when at least some of the presence information has changed.
14. A method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 1, further comprising identifying changes in at least some of the presence information, and transmitting the presence file comprises transmitting the presence file in response to the changes in the presence information.
15. The method for communicating presence information over a network between a presence server and a terminal coupled to the presence server as recited in claim 1, wherein communicating the presence file comprises communicating the presence file in response to at least one of: the occurrence of a predetermined event, the occurrence of a predetermined time lag, and a predetermined time.
16. A method for communicating presence information between a presence server and a terminal coupled to the presence server over a network as recited in claim 1, wherein constructing the presence information comprises providing at least one predetermined attribute value having partial presence information.
17. A method for notifying a client terminal of presence information, comprising;
(a) creating at least one presence file for use by a terminal requesting presence information about a presentity, comprising:
(i) creating at least one tuple, wherein the tuple comprises a version value indicating a version of the tuple relative to a previous version of the tuple;
(ii) associating presence information with the tuple, wherein the presence information comprises a subset of a full set of presence information of the presentity;
(b) sending the presence file to the client terminal requesting the presence information;
(e) comparing the version value provided by the tuple with a current version value stored on the client terminal; and
(d) directing the client terminal to update presence information associated with the tuple if a version value provided by the tuple indicates that new presence information is available for the tuple.
18. A method for notifying a client terminal of presence information as claimed in claim 17 wherein creating a presence file includes associating presence information with a tuple if the presence information changes with respect to previous presence information.
19. A method for notifying a client terminal of presence information as claimed in claim 17 wherein creating a tuple comprises: the action elements are included by the tuple to guide the client terminal to implement the corresponding action upon execution of the tuple.
20. A method for notifying a client terminal of presence information in accordance with claim 17 wherein creating a presence file further comprises creating a file level version element including a file level version value corresponding to a number of times in which the presence file has been sent to the client terminal.
21. A method for notifying a client terminal of presence information as claimed in claim 17 wherein creating a presence file further comprises creating a pattern element including a pattern value indicating whether the client device should be updated with a subset of the presence information set of the presentity or whether the client device should be fully updated with a full set of presence information.
22. A method for notifying a client terminal of presence information in accordance with claim 17 wherein creating a presence file further comprises creating at least one namespace declaration corresponding to elements associated with the tuple.
23. A method for notifying a client terminal of presence information as claimed in claim 17 wherein creating a presence file includes creating a presence file conforming to the common profile for instant messaging CPIM specification using the presence information data format PIDF and creating a presence file further includes creating an extension to the common profile for instant messaging CPIM presence information data format PIDF presence file to facilitate creation of the presence file as a subset presence information including the complete set of presence information as a presentity.
24. A presence awareness system comprising;
(a) at least one terminal including a watcher application that watches for presence information corresponding to a presentity;
(b) at least one presence server capable of being coupled to at least one terminal over a network, wherein the presence server comprises a processor configured to;
(i) identifying at least one presentity to which a watcher application has requested presence services;
(ii) creating a presence file including presence information corresponding to a presentity;
(iii) constructing the presence information to include less than all of the presence information available to the presentity;
(iv) the presence file with the partial presence information is transmitted to the watcher application of the terminal requesting the presence information.
25. The presence awareness system of claim 24, wherein the network comprises:
a presentity presence agent coupled to the presence server;
a watcher presence agent coupled to the terminal and to the presentity presence agent; and is
Wherein the presentity presence agent and the watcher presence agent facilitate the transfer of presence files and presence information over the network.
26. A presence server capable of being coupled to a plurality of terminals over a network for communicating presence information to one or more of the plurality of terminals over the network, the presence server comprising:
a memory configured to store presence information for a plurality of presentities and to store terminal subscriptions for terminals authorized to receive presence information for one or more presentities;
a processing system coupled to the memory, configured to identify at least one presentity to which a particular terminal has subscribed, and create a presence file including presence information corresponding to the presentity, wherein the presence information is constructed as partial presence information corresponding to a subset of a set of presence information available to the presentity: and
a data transmission module coupled to the processing system transmits the partial presence information to the subscribing terminal over the network via the presence file.
27. A presence server couplable to a plurality of terminals through a network as recited in claim 26, wherein the processing system is configured to create the presence file by creating a presence file that conforms to the instant messaging common profile CPIM specification using the presence information data format PIDF and to facilitate construction of the presence information as part of the presence information by creating an extension to the instant messaging common profile CPIM presence information data format PIDF presence file.
28. A presence server capable of being coupled to a plurality of terminals over a network as claimed in claim 27 wherein the processing system is configured to create an extension to the instant messaging common description file CPIM presence information data format PIDF presence file by providing status information to one or more presence file tuples that have undergone a change in status information.
29. A presence server coupleable to a plurality of terminals via a network as recited in claim 28, wherein the processing system is further configured to provide a tuple version indicator corresponding to the new version of the tuple that has undergone the state information change.
30. A presence server coupleable to a plurality of terminals via a network as recited in claim 28, wherein the processing system is further configured to create the extension to the instant messaging common description file CPIM presence information data format PIDF presence file by providing at least one action element in the presence file tuple to identify an action to be taken on the corresponding presence file tuple at the subscribing terminal.
31. A presence server capable of being coupled to a plurality of terminals over a network as recited in claim 27, wherein the processing system is further configured to create an extension to the instant messaging common description file CPIM presence information data format PIDF presence file by providing a file version indicator to identify a file version of the presence file, wherein the file version can be used by the subscribing terminal to determine whether the presence information stored at the subscribing terminal is synchronized with the presence server.
32. A presence server capable of being coupled to a plurality of terminals over a network as claimed in claim 26 wherein the processing system is further configured to create the presence file as part of the presence information by identifying in the presence file a subset of the presence information that has changed relative to the presence information stored at the subscribing terminal.
33. A user equipment, UE, terminal comprising:
a processor;
a watcher application executable by the processor to generate at least one request for presence information of at least one presentity and to receive partial presence information comprising less than all of the presence information available to the at least one presentity; and
the memory storing the presence information updates a portion of the presence information identified by the partial presence information.
34. A user equipment terminal as claimed in claim 33, wherein the watcher application is executable by the processor to generate the at least one request in the form of a subscribe request to subscribe to presence information of the at least one presentity.
35. The user equipment terminal of claim 34, wherein the subscription request comprises a session initiation protocol, SIP, subscription method.
36. The user equipment terminal of claim 33, wherein the watcher application is executable by the processor to receive the partial presence information in the form of an announcement message, and to provide the partial presence information to the watcher application.
37. The user equipment terminal of claim 36, wherein the announcement message comprises a session initiation protocol, SIP, announcement method.
38. The user equipment terminal of claim 33, wherein the user equipment terminal comprises a mobile terminal comprising a transmitter capable of wirelessly transmitting the request for presence information and comprising a receiver capable of wirelessly receiving the partial presence information over the network.
HK06103072.9A 2002-07-16 2003-07-10 System and method for providing partial presence notifications HK1085540B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/196,327 US6757722B2 (en) 2002-07-16 2002-07-16 System and method for providing partial presence notifications
US10/196,327 2002-07-16
PCT/IB2003/003089 WO2004008178A2 (en) 2002-07-16 2003-07-10 System and method for providing partial presence notifications

Publications (2)

Publication Number Publication Date
HK1085540A1 HK1085540A1 (en) 2006-08-25
HK1085540B true HK1085540B (en) 2010-12-17

Family

ID=

Similar Documents

Publication Publication Date Title
EP1532541B1 (en) System and method for providing partial presence notifications
US9106671B2 (en) Capability discovery optimization
US7293271B2 (en) Systems and methods for event semantic binding in networks
US8191082B2 (en) System and method for accessing really simple syndication (RSS) enabled content using session initiation protocol (SIP) signaling
US20110214051A1 (en) Methods and apparatus to subscribe for change notifications in a document management system
EP2047380A1 (en) System and method for managing user preference profile
US8769076B2 (en) Methods and systems for presence publication using SIP register feature tags
US20090299985A1 (en) Network Based Address Book with Optional Storage of Data
EP2360894A1 (en) Methods and systems for network based address book based on personal cards
HK1085540B (en) System and method for providing partial presence notifications
US8719906B2 (en) Reactive authorization for publications