This invention relates to electronic address books. In particular, the present invention relates to updating of contacts in such address books.
This section is intended to provide a background or context to the invention that is recited in the claims. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the description and claims in this application and is not admitted to be prior art by inclusion in this section.
Address books are referred to in the industry by various names, such as phonebook, contacts, etc. A Network Address Book (NAB) is an address book stored in a network. The Open Mobile Alliance (OMA) is in the process of standardizing an NAB in terms of a Converged Address Book (CAB).
With such standardization, CAB may define a network repository for the own contact information of a user, referred to as a Personal Contact Card (PCC). A user is expected to maintain and update his/her PCC in the network. The repository of the PCC's of various users is referred to herein as a PCC Server.
It is a common practice to send contact information to one or more recipients. The sending is variously referred to as a “send” operation, e.g. “provide”, “exchange”, “share”. As the action is called “Contact Share” in OMA for CAB, both the terms share and send are used here to address the action. In this regard, any contact information from an address book is sent to a device or a network repository of a user of interest. The contact information being sent may be part or full contact information of the sender or any number of contact entries of the address book owned by the sender. Further, the information sent may include contact information of any number of entries of the address book. Thus, in one case, the entire address book may be sent.
In one aspect of the invention, a method comprises receiving a notification to share contact information for a contact in an address book of a sender with a recipient; retrieving the contact information for the contact; and causing delivery of the contact information to the recipient.
In one embodiment, the notification includes an address for the recipient and an address for the sender. The notification may further include the contact information to be shared. The notification may include a pointer to the contact information to be shared. The contact information to be shared may be indicated by the address for the sender.
In one embodiment, the receiving a notification is in response to an update to a contact share document. The contact share document may be an XML Document Management document.
In one embodiment, the method further comprises updating a contact share status upon successful delivery of the contact information to the recipient. The updating a contact share status may include updating an XML Document Management document. The updating an XML Document Management document may include updating a recipient subscription list with a contact share flag. The method may further comprise sending a notification to the sender when the subscription list XML document is updated.
In one embodiment, the retrieving the contact information includes retrieving the contact information from a personal contact card server or a network repository of address book.
In one embodiment, the delivering the contact information includes transporting the contact information to a remote domain.
In one embodiment, the method further comprises updating a network address book with the contact information.
In one embodiment, the method further comprises receiving a reject or accept from the recipient indicating whether the recipient rejects or accepts the contact information.
In another aspect, an apparatus comprises a processor and a memory unit communicatively connected to the processor. The memory unit includes computer code for receiving a notification to share contact information for a contact in an address book of a sender with a recipient; computer code for retrieving the contact information for the contact; and computer code for causing delivery of the contact information to the recipient.
In another aspect, the invention relates to a computer program product embodied on a computer-readable medium. The computer program product comprises computer code for receiving a notification to share contact information for a contact in an address book of a sender with a recipient; computer code for retrieving the contact information for the contact; and computer code for causing delivery of the contact information to the recipient.
These and other advantages and features of various embodiments of the present invention, together with the organization and manner of operation thereof, will become apparent from the following detailed description when taken in conjunction with the accompanying drawings.
Example embodiments of the invention are described by referring to the attached drawings, in which:
In the following description, for purposes of explanation and not limitation, details and descriptions are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these details and descriptions.
Currently, there is no standardized solution for sending contact information from a sender to a recipient, resulting in poor user experience. For example, different vendors and different implementations may use different transport mechanism (e.g., messaging services such as SMS, MMS) for sending contact information, and a user or device may not always be aware of the fact that contact information is hidden in a transport payload.
Further, sending contact information from a local copy in a device typically requires over-the-air transport of the whole contact information being sent. The mobile terminal may also need to process the information (e.g., encode/encrypt, decode/decrypt). This may exacerbate existing power management and corresponding delay issues.
In accordance with embodiments of the present invention, an extension of OMA XML Document Management (XDM) provides a solution for sharing contact information.
As used herein, a “contact” may refer to a person or an entity corresponding to contact information.
Embodiments of the present invention provide an efficient and reliable system, apparatus and method for sending contact information. Referring now to
An interface may be provided between the CAB client 210 and the CAB server 202. This interface may be configured to support the data synchronization between the CAB client 210 and the CAB server 202 and may support the following functions:
1) data synchronization protocol of the CAB;
2) CAB management function such as add, delete, update of the CAB; and
3) mutual authentication with the CAB client 210.
A Personal Contact Card (PCC) server 204 is provided to manage and store PCC of various users.
In accordance with embodiments of the present invention, a subscription function (SF) 206 is provided between the CAB server 202 and the PCC server 204. The SF 206 may be a stand-alone network entity, or may be included within any other network entity. In accordance with embodiments of the present invention, synchronization of the address book is performed between the CAB client 210 and the CAB server 202.
In the embodiment of
In accordance with embodiments of the present invention, the UPP XDMS 212 stores and manages a Contact Share XML document for each user. The Contact Share XML document is a document by which a user (e.g., the CAB client 210) may indicate with whom certain contact information is to be shared. In various embodiments, the Contact Share XML document has at least “To:” and “From” fields. The format of the “To” and “From” fields may be a telephone number, an email address, a Network Access Identifier (NAI) or the like. Further, in other embodiments, the Contact Share XML document may include the actual contact share information or a reference to the information. For example, a Contact field may either contain full contact information to be shared or just an identifier of the contact entry and a corresponding attribute or parameter (without any value) as a reference. Contact share information may not be required when PCC data of the sender (i.e., the “From” field) is to be shared. Of course, it will be understood by those skilled in the art that the names of the fields (e.g., “To”, “From”, and “Contact”) described above are merely provided as examples. The exact names of the field may be different in a standard and in various implementations.
In various embodiments, the contact information may include part or full information about one or more contact entries in an address book of the sending user and/or part or the full information of Personal Contact Card of the sending user. In some embodiments, the contact information and/or the recipient information may include a pointer to the contact information and/or the recipient address.
The UPP XDMS 212 may also store and manage a Contact Status XML document. The Contact Status XML document is a document indicating the status of a Contact Share operation or any other CAB operation to the user, or the CAB client 210.
The UPP XDMS 212 may also store and manage CAB User Preferences XML documents. The CAB User Preferences XML documents include a list of properties or attributes of the contact entries and the list of contact entries (i.e. subscription list) to which a CAB client wants to subscribe. For example, the CAB User Preferences XML document may include a subscription list. Further, the CAB User Preferences XML document may include personalization preferences for the CAB client 210.
In accordance with embodiments of the invention, as illustrated in
As illustrated in
In accordance with embodiments of the present invention, the Contact Share Function 214 receives a notification when the Contact Share XML document in the UPP XDMS 212 is updated by a CAB Client 210. The Contact Share Function 214 is further configured to retrieve the contact information from, for example, the PCC Server 204 and the CAB Server 202. As an example, upon receiving the notification, the Contact Share Function 214 may retrieve the PCC of the sender from PCC Server (e.g., using an XCAP operation) if the “Contact” field is not available in the contact share request. If the “Contact” field exists and it includes a reference to an entry, the Contact Share Function 214 retrieves the contact information of the entry from the CAB Storage 218. The XCAP operation may also be used here if the CAB Storage is an XDMS (e.g., Address Book XDMS). Alternatively, the Contact Share Function 214 may directly retrieve the shared contact information from the CAB Server using synchronization. Here, the Contact Share Function 214 may use the functionality of a DS Client and, using DS filtering, can provide means for retrieving specific contact information. If the “Contact” field includes the shared contact information instead, the retrieval operation is not required. Note that this retrieval operation may not be required if the shared contact information is available in the PCC Server 204 and the recipient is a CAB user, as described below. The Contact Share Function 214 may be a stand-alone network entity, or it may be part of any other network entity, such as, for example, the Subscription Function 206.
In one embodiment, a messaging service 216 is configured to provide delivery of the contact information to the recipient address if the recipient is not a CAB user. Example messaging services that can be used are SMS, MMS, IM, E-mail. In other embodiments, any other transport or service may be used for delivery of the contact information to the non-CAB user recipient provided that the transport/service provides the necessary means for delivery. For example, protocols such as SIP, HTTP can be used in this regard with some definition of payload and the values of some headers. When the SIP protocol is used, the MESSAGE method may be used.
Referring now to
Referring now to
Referring now to
Upon successful updating of the Contact Share XML document in the UPP XDMS, the Contact Share Function receives a notification of the pending or new Contact Share request (block 254). The notification includes the content of the Contact Share request. The Contact Share Function then retrieves the corresponding contact information (block 256). As noted above, the contact information to be shared may be that of the sender or of another entity in the senders address book. If the Contact field includes a reference, the contact information is retrieved from the from the CAB Server or the PCC Server, as described above. If the Contact field is missing, the Contact Share Function assumes that the PCC data of the sender is to be shared.
Further, the Contact Share Function may resolve the “To” address field to determine whether the recipient is in the local domain or in a remote domain. The Contact Share Function may further resolve the type of recipient to determine whether the recipient is a CAB user or a non-CAB user, for example. The Contact Share Function may use local service Contact Status or other local service provisioning database to determine the type of recipient.
Thus, at block 258, the Contact Share Function determines whether the user is a CAB user or a non-CAB user. If the user is determined to be non-CAB user, the Contact Share Function may use a messaging service (e.g., SMS, MMS, IM, e-mail) or a suitable transport protocol (e.g., SIP MESSAGE method) to send the contact information to the recipient (block 260), as described above with reference to
If, on the other hand, the determination is made at block 258 that the recipient is a CAB user, the Contact Share Function determines whether the recipient is in the local domain or in a remote domain (block 262). If the determination is made at block 262 that the recipient is in the local domain, the Contact Share Function delivers the contact share information to the Contact Subscription Function (block 266). Reference may be made to
The Contact Share Function uses either a push or a pull method to deliver the contact share information to the Contact Subscription Function. In a pull method according to various embodiments of the present invention, the actual contact share content is not transported to the CAB system until the Subscription Function fetches the content. This method is similar to content indirect delivery. The pull method may be useful when the contact maintains his/her PCC in the PCC server. In the pull method, the Contact Share Function may update the recipient subscription list XML document with a contact share flag to the UPP XDMS 212. The CAB Client 210 receives a notification when the subscription list XML document is updated by the UPP XDMS 212.
In a push method according to various embodiments of the present invention, the Contact Share Function pushes the contact share information to the Subscription Function. The push method may be useful when the contact does not maintain his/her PCC in a PCC server.
In this regard, the pull method may be advantageous since the contact share is recorded in the subscription list and tracked. Thus, in the event of any failure, the Subscription Function may be able to retrieve the contact share. Further, the recipient may review the contact share status and/or the subscription list prior to synchronization to the recipient address book. This option provides the recipient the ability to accept or reject the contact share information prior to synchronization with the address book. If the recipient rejects the contact share information, then the recipient uses the XDM Client update the XML document of the subscription list. An advantage of the push method is that it requires fewer operations in the network.
Upon delivery of the contact information to the Subscription Function, the Subscription Function updates the CAB address book via synchronization and may update the Contact Status XML document in the UPP XDMS (block 268). In the case of the pull method, the Contact Share Function updates the subscription list in the UPP XDMS by including either the “From” (if sender's own information is shared) or “Contact” (if contact information of an entry of the address book of the sender is shared) field. In various embodiments, an attribute field is provided in the subscription list. The attribute field may be used for tracking and/or differentiating between the user's own subscription list and contact share subscription.
The Subscription Function may receive an update of the subscription list from the UPP XDMS. The Subscription Function processes the notification and fetches the PCC contact information from the PCC XDMS. The Subscription Function may further update the user's CAB address book via synchronization, and updates the sender Contact Status XML document.
In the case of the push method, the Contact Share Function pushes the contact share information to the Subscription Function. The Subscription Function then updates the user's CAB address book via synchronization and updates the sender Contact Status XML document.
Updating of the sender Contact Status XML document in the UPP XDMS may indicate to the sender that the Contact Share operation has been completed. It may not, however, indicate that the recipient accepted the contact share.
In various embodiments, the Contact Share Function may monitor the sender Contact Status XML document. When the sender Contact Status XML document shows that the contact share is completed, the Contact Share Function may update the subscription list by clearing the contact entry with the special field. If the Contact Share operation failed with multiple attempts, the Contact Share Function updates the subscription list by clearing the contact entry based on local policy.
If the determination is made at block 262 that the recipient is not in the local domain, but rather in a remote domain, the Contact Share Function may use SIP MESSAGE or SIP INVITE and MSRP method to deliver the Contact Share content to the remote domain. Reference may be made to
In various embodiments, the contact whose information is shared may not maintain the PCC. Thus, it is safe to include the contact information to be shared within the SIP MESSAGE so that the information can be pushed to the Subscription Function of the recipient, as described above. In this case, the recipient Subscription Function does not need to fetch the contact information from the PCC server.
Alternatively, a messaging service (e.g., SMS, MMS, IM, e-mail) or a suitable transport protocol (e.g., SIP MESSAGE method) may be used to send the contact information to the recipient. In this case, the contact information would be delivered to recipient's user equipment (UE), and there is no responsibility of the remote domain as such. Upon receiving the contact information, the UE may store it in the local address book, and the information may be propagated to the network-based address book repository upon synchronization of the address book between the UE and the network-based repository.
Contact information of multiple contacts may be easily encoded within multipart/mixed or multipart/related MIME objects. An image or an icon may also be embedded or referred from a MIME multipart/related object. Both MMS and E-mail support MIME encoding. E-mail would be a useful transport, when contact information is sent to an e-mail address, though MMS may be also used to sent information to an e-mail address. Instant Messaging (IM) may also be used, particularly if the recipient address is an IM address (e.g. SIP URL).
In accordance with embodiments of the present invention, upon receiving a message (e.g., SMS, MMS, e-mail, IM), the recipient terminal decodes the message and automatically looks at the content of the message. If the recipient terminal finds that the content of the message is contact information, it informs the recipient user that contact information has been received and asks the recipient user for permission to save the contact information in her address book. In some embodiments, the recipient device can store the contact information directly to the address book if the recipient terminal has been accordingly configured by the user or service provider.
Upon storing the contact information in the local copy of the address book of the recipient terminal, the recipient terminal may start synchronization of the address book with the network-based master copy of the address book, if there is a such network-based address book. Upon the update in the network-based address book with the received contact information, the local copy of the address book in other possible devices owned by the same recipient user would be eventually updated by follow-up synchronization process.
In some embodiments, with reference to
In accordance with various embodiments of the present invention, as noted above, the recipient terminal may be configured to decode a received message and determine if the content of the message includes contact information. In some embodiments, if the message is MIME encoded, the value of the MIME Content-Type header can directly indicate if the content is contact information. For example, if the value is text/x-vCard or application/directory, it implies that the content is contact information. In some embodiments, the header may have some generic value (e.g., text/plain), or the message may not be MIME encoded (e.g., in case of SMS). In these cases, the recipient terminal may still understand from the specifics of the content if contact information is included in the message. For example, the vCard format always begins and ends with BEGIN and END type with VCARD as the value.
Referring now to
The address book update system 200 of
Thus, in accordance with the embodiment of
In accordance with the embodiment of
Thus, the Contact Share Function receives a notification of the pending or new Contact Share request. The notification includes the content of the Contact Share request. Once the Contact Share Function receives the notification, the information flow may be similar to that described above with reference to
For exemplification, the system 10 shown in
The example communication devices of the system 10 may include, but are not limited to, an electronic device 12 in the form of a mobile telephone, a combination personal digital assistant (PDA) and mobile telephone 14, a PDA 16, an integrated messaging device (IMD) 18, a desktop computer 20, a notebook computer 22, etc. The communication devices may be stationary or mobile as when carried by an individual who is moving. The communication devices may also be located in a mode of transportation including, but not limited to, an automobile, a truck, a taxi, a bus, a train, a boat, an airplane, a bicycle, a motorcycle, etc. Some or all of the communication devices may send and receive calls and messages and communicate with service providers through a wireless connection 25 to a base station 24. The base station 24 may be connected to a network server 26 that allows communication between the mobile telephone network 11 and the Internet 28. The system 10 may include additional communication devices and communication devices of different types.
The communication devices may communicate using various transmission technologies including, but not limited to, Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Transmission Control Protocol/Internet Protocol (TCP/IP), Short Messaging Service (SMS), Multimedia Messaging Service (MMS), e-mail, Instant Messaging Service (IMS), Bluetooth, IEEE 802.11, etc. A communication device involved in implementing various embodiments of the present invention may communicate using various media including, but not limited to, radio, infrared, laser, cable connection, and the like.
Various embodiments described herein are described in the general context of method steps or processes, which may be implemented in one embodiment by a computer program product, embodied in a computer-readable medium, including computer-executable instructions, such as program code, executed by computers in networked environments. A computer-readable medium may include removable and non-removable storage devices including, but not limited to, Read Only Memory (ROM), Random Access Memory (RAM), compact discs (CDs), digital versatile discs (DVD), etc. Generally, program modules may include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of program code for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps or processes.
Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside, for example, on a chipset, a mobile device, a desktop, a laptop or a server. Software and web implementations of various embodiments can be accomplished with standard programming techniques with rule-based logic and other logic to accomplish various database searching steps or processes, correlation steps or processes, comparison steps or processes and decision steps or processes. Various embodiments may also be fully or partially implemented within network elements or modules. It should be noted that the words “component” and “module,” as used herein and in the following claims, is intended to encompass implementations using one or more lines of software code, and/or hardware implementations, and/or equipment for receiving manual inputs.
The foregoing description of embodiments has been presented for purposes of illustration and description. The foregoing description is not intended to be exhaustive or to limit embodiments of the present invention to the precise form disclosed, and modifications and variations are possible in light of the above teachings or may be acquired from practice of various embodiments. The embodiments discussed herein were chosen and described in order to explain the principles and the nature of various embodiments and its practical application to enable one skilled in the art to utilize the present invention in various embodiments and with various modifications as are suited to the particular use contemplated. The features of the embodiments described herein may be combined in all possible combinations of methods, apparatus, modules, systems, and computer program products.
This application claims priority from U.S. Provisional Application Ser. No. 61/101,618, filed Sep. 30, 2008, and U.S. Provisional Application Ser. No. 61/105,741, filed Oct. 15, 2008, each of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61105741 | Oct 2008 | US | |
61101618 | Sep 2008 | US |