INTELLIGENT PROFILE MANAGEMENT SYSTEMS, COMPUTER PROGRAM PRODUCTS, AND RELATED METHODS

Abstract: Intelligent profile management systems, computer program products, and related methods are disclosed in which a profile manager controls one or more profiles with each profile including a virtual filing card, and, optionally, a virtual business card. The virtual business card may originate from the entity with which the virtual business card is associated. A virtual filing card, on the other hand, may originate from any entity that wishes to record information about some other entity. A virtual business card and virtual filing card associated with the same entity are thus paired together to comprise a profile for that entity. A communication device may receive a request for a referral (i.e., information) for another entity (i.e., an entity not associated with the communication device). In response to the request, the communication device may send a virtual filing card associated with the requested entity to the requesting communication device. Accordingly, virtual filing cards may facilitate the sharing of information among entities, including subjective information accumulated by one entity that pertains to another entity.

Description: INTELLIGENT PROFILE MANAGEMENT SYSTEMS, COMPUTER PROGRAM PRODUCTS, AND RELATED METHODS FIELD OF THE INVENTION The present invention relates generally to the field of telephony, and, more particularly, to sharing information about entities in a network of communication devices. BACKGROUND OF THE INVENTION Wireless communicators are being used in ever increasing numbers for voice calls, data calls, facsimile transfer, Internet access, paging, and other personal organization features such as calendar management or even travel directions via the Global Positioning System (GPS). As used herein, the term "wireless communicator" may include a cellular radiotelephone with a multi-line display, a Personal Communications System (PCS) terminal that may combine a cellular radiotelephone with data processing, facsimile and data communications capabilities, a Personal Digital Assistant (PDA) that can include a radiotelephone, pager, Internet/intranet access, Web browser, organizer, calendar and/or a GPS receiver, and conventional laptop and/or palmtop receivers that include radiotelephone transceivers. Wireless communicators also may be referred to as "pervasive computing" devices. Such communication devices may support powerful interaction among users for such specialized applications as virtual communities or electronic commerce. These advanced capabilities may result, however, in a user having less control over communications with other users. It may be desirable, therefore, to enable communication devices, such as wireless communicators, to assist a user in finding and contacting people and/or service providers and to protect the user from being contacted by people and/or service providers with whom they do not wish to interact. One approach to providing a user with greater control over their communication environment is based on the use of "virtual business cards." A virtual business card, as used in a communication device, such as a wireless communicator, may be a data structure providing contact information and a description of services offered by a person or business. Unfortunately, virtual business cards are used to represent information that an entity (e.g., a user, a business, an organization, etc.) advertises about itself and, generally, are not used to share information accumulated by one entity about another entity. Consequently, there exists a need for communication devices that may provide a user with improved control over communications with other entities and may facilitate the sharing of information among entities. SUMMARY OF THE INVENTION Certain objects, advantages, and features of the invention may be set forth in the description that follows and may become apparent to those skilled in the art upon examination of the following or may be learned with the practice of the invention. These and other objects, advantages, and features of the present invention may be provided by intelligent profile management systems, computer program products, and related methods in which a profile manager controls one or more profiles with each profile including a virtual filing card, and, optionally, a virtual business card. The virtual business card may originate from the entity with which the virtual business card is associated. A virtual filing card, on the other hand, may originate from any entity that wishes to record information about some other entity. A virtual business card and virtual filing card associated with the same entity are, thus, paired together to comprise a profile for that entity. In accordance with an aspect of the invention, the virtual filing card includes a plurality of fields that contain information about the entity with which the virtual filing card is associated. These fields may include, but are not limited to, the following: a referent field that identifies the entity; one or more address fields that provide contact information for the entity; an address map field that correlates the address fields with situations in which the contact information is valid; a contact success field that indicates the probability that an attempt to contact the entity in a given situation will be successful; one or more service fields that identify service(s) provided by the entity; a service map field that correlates the service fields with situations in which a given service is provided; a quality field that associates quality ratings with the services preferably based on situations; and an owner field that identifies the entity associated with the communication device upon which the virtual filing card originates. In accordance with another aspect of the invention, the entity associated with the virtual filing card may be a plurality of entities comprising an entity group. In accordance with yet another aspect of the invention the profile manager comprises an incoming call agent and an outgoing call agent that may communicate with complementary agents on communication devices associated with other entities to establish a communication session. Advantageously, bandwidth usage and communication latency may be reduced as the appropriate agents on a pair of communication devices may initiate and then negotiate the establishment of a call or communication session between a pair of entities without direct involvement from the entities. In accordance with another embodiment of the present invention, a first communication device may send a virtual filing card associated with another entity (i.e., second communication device) to a third communication device. Accordingly, virtual filing cards may facilitate the sharing of information among entities, including subjective information accumulated by one entity that pertains to another entity. The value of such subjective information may differ depending on the source. For example, subjective information obtained from a friend or an expert about another entity may be more valuable than subjective information obtained from a stranger. In accordance with another embodiment of the present invention, a virtual filing card associated with a communication device is probed before initiating a call to the communication device. Information from the virtual filing card may be analyzed to present a call offer to the communication device. The communication device, in particular the incoming call agent, may choose to accept or deny the call offer. The virtual filing card may then be updated based on the success of the call attempt. For example, the contact success field may be updated based on the success or failure of the call offer. The present invention, therefore, may allow information to be exchanged by entities in a more fully distributed form that is analogous to the way information spreads in traditional human communication. BRIEF DESCRIPTION OF THE DRAWINGS Other features of the present invention will be more readily understood from the following detailed description of specific embodiments thereof when read in conjunction with the accompanying drawings, in which: FIG. 1 is a high-level block diagram of an exemplary wireless communicator that may incorporate intelligent profile management systems, computer program products, and related methods in accordance with the present invention; FIG. 2 is a block diagram that illustrates a processor and memory shown in FIG. 1 in greater detail; FIG. 3 is a block diagram that illustrates a first embodiment of a virtual filing card of FIG. 2; FIGS. 4 - 5 are block diagrams that illustrate an exchange of virtual filing cards of FIG. 2 between entities in accordance with the present invention; FIG. 6 is a block diagram that illustrates a second embodiment of a virtual filing card of FIG 2; FIG. 7 is a block diagram that illustrates a third embodiment of a virtual filing card of FIG. 2; FIG. 8 is a flowchart that illustrates call initiation operations of intelligent profile management systems, computer program products, and related methods in accordance with aspects of the present invention; FIG. 9 is a block diagram of a fourth embodiment of a virtual filing card of FIG. 2; FIG. 10 is a block diagram that illustrates relationships between aspects and entity groups of FIGS. 6, 7, and 9 in accordance with the present invention; FIG. 11 is a flowchart that illustrates virtual filing card update operations of intelligent profile management systems, computer program products, and related methods in accordance with aspects of the present invention; FIG. 12 is a block diagram that illustrates negotiation between call agents of FIG. 2; and FIG. 13 is a flowchart that illustrates call agent negotiation operations of intelligent profile management systems, computer program products, and related methods in accordance with aspects of the present invention. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that there is no intent to limit the invention to the particular forms disclosed, but on the contrary, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the claims. Like reference numbers signify like elements throughout the description of the figures. For purposes of illustration and in no way limited thereto, intelligent profile management systems, computer program products, and related methods in accordance with the present invention will be discussed hereafter as embodied in a wireless communicator. It should be understood, however, that the intelligent profile management systems, computer program products, and related methods of the present invention may be used in other types of telephony systems and devices. The present invention may be embodied as a communication device/system, method, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software (including firmware, resident software, micro-code, etc.) embodiment, or an embodiment containing both software and hardware aspects. Furthermore, the present invention may take the form of a computer program product on a computer-usable or computer- readable storage medium having computer-usable or computer-readable program code means embodied in the medium for use by or in connection with an instruction execution system. In the context of this document, a computer-usable or computer- readable medium may be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a nonexhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, and a portable compact disc read-only memory (CD-ROM). Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. Referring now to FIG. 1, a wireless communicator 30 in accordance with the present invention typically includes a keyboard/keypad 32, a display 34, a speaker 36, a microphone 38, a transceiver 42, a ringer 44, and a memory 46 that communicate with a processor 48. The transceiver 42 receives incoming signals from and transmits outgoing signals to an antenna 52 and is used to establish and maintain communication with another party or destination. These components are included in many conventional wireless communicators or mobile terminals and their functionality is generally known to those skilled in the art. FIG. 2 illustrates the processor 48 and memory 46 in more detail. The processor 48 communicates with the memory 46 via an address/data bus 54. The processor 48 may be any commercially available or custom microprocessor suitable for an embedded application. The memory 46 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the wireless communicator 30. The memory 46 may include, but is not limited to, the following types of devices: cache, ROM, PROM, EPROM, EEPROM, flash, SRAM, and DRAM. As shown in FIG. 2, the memory 46 may hold four major categories of software and data used in the wireless communicator 30: the operating system 56; the input/output (I/O) device drivers 58; the profile manager program module 62 and one or more profiles 64. The operating system 56 should be designed for real time embedded applications and, preferably, is relatively compact to make efficient use of the memory 46. The I/O device drivers 58 typically include software routines accessed through the operating system 56 to communicate with devices such as the keyboard/keypad 32, display 34, speaker 36, microphone 38, and certain memory components. The profile manager program module 62 comprises programs for controlling the maintenance and use of the profiles and preferably includes an outgoing call agent 66 and an incoming call agent 68. The outgoing and incoming call agents 66 and 68 may be used to establish communication sessions with other communication devices having complementary agents executing thereon. The profiles 64 comprise collections of data associated with specific entities. As used herein, an entity may be a person, a business, an organization, or the like. Each profile 64 is associated with a single entity; however, as will be discussed in greater detail hereinafter, an entity may comprise combinations of other entities (e.g., an entity group). As shown in FIG. 2, each profile preferably comprises a virtual business card 72 and a virtual filing card 74. A virtual business card 72 may be a data structure providing contact information and a description of services that an entity has published about itself. Thus, virtual business cards 72 are definitive in that there is a unique latest version of a virtual business card 72 for any entity that has published a virtual business card 72. Similar to a virtual business card 72, a virtual filing card 74 may also comprise a data structure for storing information about the entity with which the virtual filing card 74 is associated. A virtual filing card 74, however, may originate from any entity that wishes to record information about some other entity. Computer program code for carrying out operations of the profile manager program module 62 is preferably written in a high-level programming language, such as C, Java, Smalltalk, or C++. The virtual business cards 72 and virtual filing cards 74 are preferably implemented as declarative specifications using a passive language, such as the hypertext markup language (HTML) or the extensible markup language (XML). Differences between a virtual business card 72 and a virtual filing card 74 may be illustrated by the following examples. A virtual business card 72 for an entity, which is a person in the present example, may indicate that the person should only be called at work on Tuesday af ernoons. Another entity may create a virtual filing card 74 for the person that, based on personal experience, indicates that calls in the early afternoon on Tuesday are never answered. Therefore, an entity having a profile 64 for the person with both the virtual business card 72 and the virtual filing card 74 may benefit by waiting until later afternoon on Tuesdays before attempting to call the person. Similarly, a service provider may publish a virtual business card 72 declaring that it offers graphic art services. Another entity may create a virtual filing card 74 that indicates the service provider is best for technical drawings and not for advertising copy. The additional information provided by the virtual filing card 74 may assist a user in contacting a graphic artist based on the user's needs in a particular situation. Virtual business cards 72 and virtual filing cards 74 are generally maintained differently by the profile manager program module 62. A virtual business card 72 is generally updated only when their originator provides new information (i.e., the entity with which the business card is associated). In contrast, a virtual filing card 74 may be updated locally by an entity holding or storing the virtual filing card 74 without restriction. This capability of selecting what information to store in a virtual filing card 74 and when to update that information may provide greater flexibility in an entity's interactions with other entities. Referring now to FIG. 3, a preferred embodiment for a virtual filing card 74 in accordance with the present invention is illustrated. The virtual filing card 74 may include a plurality of data fields as follows: a referent field that identifies the entity with which the virtual filing card 74 is associated; an owner field that identifies the entity associated with the communication device upon which the virtual filing card 74 originates; one or more address fields that provide contact information for the entity with which the virtual filing card 74 is associated; one or more service fields that identify service(s) provided by the entity with which the virtual filing card 74 is associated; an address map field that correlates the address fields with situations in which the contact information is valid; a service map field that correlates the service fields with situations in which a given service is provided; a contact success field that indicates the probability that an attempt to contact the entity with which the virtual filing card 74 is associated in a given situation will be successful; and a quality field that associates quality ratings with the services preferably based on situations. A situation may refer to time, location, or urgency of the owner of the virtual filing card, or any composite thereof. FIGS. 4 and 5 illustrate how virtual filing cards 74 may be used to disseminate information among a network of entities/communication devices. Referring now to FIG. 4, three entities, A, B, and C are shown with each entity including a virtual filing card 74 and a virtual business card 72 on a communication device associated therewith. Entity A has a virtual filing card 74al (abbreviated FC) and a virtual business card 72al (abbreviated BC) about (i.e., associated with) Entity B. Entity B has a virtual filing card 74b 1 and a virtual business card 72b 1 about Entity A. Entity C has a virtual filing card 74cl and a virtual business card 72c2 about Entity A. Note that in all three entities, the virtual filing cards 74 point to their accompanying virtual business card 72. In a preferred embodiment, a virtual filing card 74 does not repeat information contained in a virtual business card 72, but, instead, points to the virtual business card 72 for the information. Entity C sends a request to Entity A for a referral for Entity B. Referring now to FIG. 5, the profile manager program module 62 for Entity A responds by sending the virtual filing card 74al to Entity C. Entity C accepts the virtual filing card 74al from Entity B and the profile manager program module 62 for Entity C stores the virtual filing card 74c2 about B in its memory 46. As may be seen from the foregoing example, virtual filing cards 74 may form the basis for a network of referrals among entities. This may be particularly beneficial because technology, in general, may lead to more impersonal means of communicating and evaluating services. For example, using conventional technology, a user may obtain a rating or critique of an entity through some standard ratings agency, such as the Better Business Bureau. Many people, however, may prefer ratings based on first-hand experience from their friends or colleagues. Using the virtual filing cards 74 in accordance with the present invention, such ratings may be exchanged electronically among a network of users. These ratings may reflect the users' personal opinions and may be shared, for example, within a network of friends. As the virtual filing cards 74 propagate through the network, they may convey information about a service to their recipient. The recipient may decide how much to modify their own rating about a particular entity, which is then reflected in the recipient's virtual filing card 74 for that particular entity. In this manner, the virtual filing cards may embody a fully distributed form of reputation akin to the spread of reputation information in traditional human communication. The present invention is described hereinafter with reference to flowchart and or block diagram illustrations of intelligent profile management systems, computer program products, and related methods to exemplary embodiments of the invention. It will be understood that each block of the flowchart and/or block diagram illustrations, and combinations of blocks in the flowchart and/or block diagram illustrations, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart and/or block diagram block or blocks. These computer program instructions may also be stored in a computer usable or computer-readable memory that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer usable or computer-readable memory produce an article of manufacture including instruction means that implement the function specified in the flowchart and/or block diagram block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart and/or block diagram block or blocks. As discussed hereinabove, the referent field of a virtual filing card 74 identifies the entity with which the virtual filing card 74 is associated. Moreover, the entity specified in the referent field may comprise combinations of other entities (e.g., an entity group). In this regard, an entity group may assume properties of a "list" or a "role." To distinguish between such properties, an invocation constraint may be associated with an entity group that specifies how the entities in an entity group are to be invoked. For example, FIG. 6 illustrates a virtual filing card in which the referent field includes an entity group comprising three entities: John, Jill, and Joe. Moreover, the entity group includes the invocation constraint "all," which means that all entities will be contacted when a call is initiated to that entity group. Thus, entity groups with an invocation constraint of "all" behave like a calling list. Note that the contact success field applies to all of the entities in the entity group at different times and/or situations. Referring now to FIG. 7, an entity group may be associated with an invocation constraint "exactly one," which means that only one of the entities in the entity group will be contacted when a call is initiated to that entity group. Thus, entity groups with an invocation constraint of "exactly one" behave like a role. For example, the virtual filing card 74 of FIG. 7 may be associated with an entity group called "building liaison" in which three persons— John, Jill, and Joe—may assume that role. An additional field called "time" has been added to the virtual filing card that specifies the times of day that John, Jill, and Joe are on duty as the building liaison. In this case, the contact success applies to the role at different times and situations. Through use of the virtual filing card 74, the building liaison role may be made to transfer routinely among the entities in the entity group. As long as the virtual filing card 74 is kept up to date, a user may rely on their communication device to automatically contact the correct person based on the time of day when a call is initiated to the building liaison. In addition to the "all" and "exactly one" invocation constraints, a third invocation constraint, "at least one," may also be used to select one or more members of an entity group to be contacted when initiating a call. FIG. 8 illustrates how the outgoing call agent 66 may use the group entity information contained in the referent field of a virtual filing card 74 when initiating a call. Operations begin at block 102 where the outgoing call agent 66 examines a virtual filing card M to initiate a call. A determination is made at block 104 whether the referent field contains an entity group having an invocation constraint of "all." If the referent field contains an entity group having an invocation constraint of "all," then the outgoing call agent 66 will call all of the entities in the entity group at block 106. Otherwise, a determination will be made at block 108 whether the referent field contains an entity group having an invocation constraint of "at least one." If the referent field contains an entity group having an invocation constraint of "at least one," then the outgoing call agent 66 will filter the entities in the entity group using some criteria to produce a non-empty set (i.e., one or more of the entities in the entity group should be identified by the filter process) at block 112. The outgoing call agent 66 will then call these entities in the non-empty set at block 114. If, however, the referent field contains an entity group having an invocation constraint of "exactly one," then the outgoing call agent 66 will filter the entities in the entity group using some criteria to select one of the entities in the entity group at block 116. The outgoing call agent 66 will then call this unique entity at block 118. As discussed in the foregoing, the referent field may contain an entity group, which may correspond, for example, to a particular role through the use of the invocation constraint "exactly one." A single entity will typically not have a single role in life, but instead will play several roles. Accordingly, as shown in FIG. 9, the referent field may be expanded to include one or more aspect fields. An aspect is a distinct role for an entity as viewed by the entity itself. For each aspect, an entity may have different services that they offer, different contact addresses, and different availability. For example, a person may serve as a technical manager, a fire drill leader, a CPR-trained emergency helper, and a neighborhood-watch block captain. Another entity might know this person in one or all of these aspects. Nevertheless, the person may have different availabilities depending on the aspect in which they are being contacted. As a technical manager, the person may not wish to be contacted during regularly scheduled meetings, but if another person is calling because of a CPR emergency, then the incoming call agent 68 should accept that call. Other entities may have different ratings or opinions of an entity based on particular aspects of the entity. Referring now to FIG. 10, aspects may correspond to entity groups in which a particular entity is a member. In the FIG. 10 example, three persons (entities)— Mike, Jill, and Joe— each belong to one or more entity groups comprising a building liaison entity group, a neighborhood watch entity group, and an employees entity group. Membership in a group is represented as an aspect for that person. Note that Joe has an aspect that he is a tennis player, which does not correspond to any entity group. When making a call, the outgoing call agent 66 may search the virtual filing cards 74 on a communication device to find those entities that have a particular aspect. Once those virtual filing cards 74 are identified, those entities offering a particular service may be selected. Next, the outgoing call agent 66 may compare ratings for entities that offer the desired service and check the availability of those that meet some minimum rating or quality threshold before finally initiating a call. Because it is envisioned that virtual filing cards 74 may be disseminated widely and exchanged frequently among a number of entities, it may be beneficial to update virtual filing cards 74 in an efficient manner. Preferably, the virtual filing cards 74 should be updated without the direct involvement of the entities unless their involvement is essential. FIG. 11 illustrates operations for automatically updating a virtual filing card 74 in accordance with the present invention. Operations begin at block 202 where an entity R requests a referral from another entity F for a third entity A. Note that alternatively, R could have received an unsolicited profile 64 or virtual filing card 74 from Entity F for Entity A at block 202. The profile manager program module 62 for Entity R makes a determination at block 204 whether Entity R already has a virtual filing card 74 for Entity A. If Entity R does not already have a virtual filing card 74 for Entity A, then the profile manager program module 62 installs the virtual filing card 74 for Entity A that has been received from Entity F at block 206. If, however, Entity R already has a virtual filing card 74 for Entity A, then the profile manager program module 62 determines at block 208 whether the virtual filing card 74 received from Entity F is more current (i.e., has more up-to-date information) than Entity R's existing virtual filing card 74 for Entity A. If the virtual filing card 74 received from Entity F is more current, then the profile manager program module 62 updates Entity R's existing virtual filing card 74 for Entity A with selected, non- subjective information from Entity F's virtual filing card 74 for Entity A at block 212. If, however, Entity R's virtual filing card 74 for Entity A is more current than the virtual filing card 74 for Entity A received from Entity F, then the profile manager program module 62 updates Entity R's virtual filing card 74 for Entity F to reflect any differences in their subjective assessment of Entity A at block 214. That is, although the virtual filing card 74 for Entity A received from Entity F is "old," Entity R may still benefit by updating its subjective assessment of Entity F based on any differences or commonality of opinion Entity R and Entity F have with respect to Entity A. Finally, the profile manager program module 62 may store a ratio of average quality of service ratings of A as given by Entity R and Entity F in Entity R's virtual filing card 74 for Entity A at block 216. While the foregoing example is directed to receiving a new virtual filing card 74, the same principles apply when a virtual business card 72 is received. Recall that the virtual filing cards 74 are declarative specifications that may be used by the profile manager program module 62 on a communication device. The virtual filing cards 74 are preferably implemented as passive, declarative specifications to avoid the security concerns that may exist when procedural code is received over a network. Inasmuch as the declarative code contained in a virtual filing card 74 is interpreted by the profile manager program module 62, the likelihood of untoward effects occurring on the communication device may be reduced. The outgoing call agent 66 and incoming call agent 68 may also communicate with complementary agents on a communication device associated with another entity to establish a communication session. Operations for establishing a call using the outgoing and incoming call agents 66 and 68 are illustrated in FIGS. 12 and 13. Referring now to FIGS. 12 and 13, operations begin at block 302 where Entity A needs to call Entity B. At block 304, Entity A's outgoing call agent 66a probes Entity A's virtual filing card 74a for Entity B. Using information obtained from virtual filing card 74a, Entity A's outgoing call agent 66a presents a call offer to Entity B's incoming call agent 68b at block 306. If Entity B's incoming call agent 68b accepts the call offer as determined at block 308, then the profile manager program module 62 updates the contact success field in the virtual filing card 74a based on the current successful call offer at block 312. If, however, Entity B's incoming call agent 68b rejects the call offer as determined at block 308, then Entity A and Entity B may negotiate directly with each other at block 314 (i.e., Entity B may choose to accept the call even though its incoming call agent 68b has rejected the call). Based on the results of the direct negotiation between Entity A and Entity B, the profile manager program modules 62 for the two entities may update their respective virtual filing cards 74a and 74b for each other to reflect the results the negotiation session at block 316. More specifically, Entity B may learn whether Entity A is a good colleague or whether Entity A calls inappropriately. This learning may be incorporated into Entity B's virtual filing card 74b for Entity A and used by the incoming call agent 68b in determining whether to accept future calls from Entity A. Note that instead of rejecting Entity A's call offer at block 308, Entity B's incoming call agent 68b may further negotiate with Entity A's outgoing call agent 66a to arrange a mutually acceptable time, aspect and contact address for the call. As a result, bandwidth usage and communication latency may be reduced as the appropriate agents on a pair of communication devices may initiate and then negotiate the establishment of a communication session between a pair of entities without direct involvement from the entities. The flowcharts of FIGS. 8, 11, and 13 show the architecture, functionality, and operation of an exemplary implementation of the wireless communicator 30 software. In this regard, each block may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in FIGS. 8, 11, and 13. For example, two blocks shown in succession in FIGS. 8, 11, and 13 may be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. In concluding the detailed description, it should be noted that many variations and modifications can be made to the preferred embodiments without substantially departing from the principles of the present invention. All such variations and modifications are intended to be included herein within the scope of the present invention, as set forth in the following claims.

Claims: CLAIMS We claim: 1. A communication device associated with an entity, comprising: a profile manager; and at least one profile controlled by the profile manager, the at least one profile comprising a virtual filing card, the virtual filing card comprising at least one data field and being associated with another entity and modifiable by the entity associated with the communication device. 2. The communication device of Claim 1 , wherein the at least one profile further comprises a virtual business card. 3. The communication device of Claim 1 , wherein the profile manager comprises: an outgoing call agent; and an incoming call agent. 4. The communication device of Claim 1, wherein the virtual filing card comprises a plurality of data fields, the plurality of data fields comprising: a referent field that identifies the entity associated with the virtual filing card; and at least one address field that provides contact information for the entity associated with the virtual filing card. 5. The communication device of Claim 4, wherein the at least one address field comprises a plurality of address fields, and the plurality of data fields further comprise: an address map field that correlates the plurality of address fields with situations. 6. The communication device of Claim 5, wherein the plurality of data fields further comprise: a contact success field that indicates a probability of succeeding in contacting the entity associated with the virtual filing card based on the situations. 7. The communication device of Claim 6, wherein the entity associated with the virtual filing card is associated with a plurality of entities comprising an entity group. 8. The communication device of Claim 7, wherein the contact success field comprises: a contact success field that indicates a probability of succeeding in contacting the entity group associated with the virtual filing card based on the situations. 9. The communication device of Claim 7, wherein the entity group is associated with an invocation constraint, the invocation group comprising one of all of the plurality of entities, at least one of the plurality of entities, and exactly one of the plurality of entities. 10. The communication device of Claim 9, wherein the entity group is associated with the invocation constraint of exactly one of the plurality of entities, and wherein the contact success field comprises: a contact success field that indicates a probability of succeeding in contacting i one of the plurality of entities in the entity group associated with the virtual filing card based on the situations. 11. The communication device of Claim 4, wherein the plurality of data fields further comprise: at least one service field that identifies at least one service provided by the entity associated with the virtual filing card. 12. The communication device of Claim 11, wherein the at least one service field comprises a plurality of service fields, and the plurality of data fields further comprise: a service map field that correlates the plurality of service fields with situations. 13. The communication device of Claim 12, wherein the plurality of data fields further comprise: a quality field that associates quality ratings with the plurality of service fields based on the situations. 14. The communication device of Claim 4, wherein the referent field comprises at least one aspect field that identifies a role for the entity associated with the virtual filing card. 15. The communication device of Claim 14, wherein the at least one aspect field comprises: an address field that provides contact information for the entity associated with the virtual filing card; a service field that identifies a service provided by the entity associated with the virtual filing card; and an availability field that indicates periods of accessibility for the entity associated with the virtual filing card. 16. The communication device of Claim 4, wherein the plurality of data fields comprise: an owner field that identifies the entity associated with the communication device. 17. A method of exchanging information among a plurality of communication devices, each of the plurality of communication devices being associated with an entity, comprising the step of: sending a virtual filing card that is associated with an entity associated with a first one of the plurality of communication devices from a second one of the plurality of communication devices to a third one of the plurality of communication devices, the virtual filing card comprising at least one data field and being modifiable by entities other than the entity associated with the first one of the plurality of communication devices. 18. The method as recited in Claim 17, wherein the step of sending the virtual filing card comprises the step of: sending a profile that is associated with the entity associated with the first one of the plurality of communication devices from the second one of the plurality of communication devices to the third one of the plurality of communication devices, the profile comprising a virtual business card and the virtual filing card. 19. The method as recited in Claim 17, further comprising the step of: installing the virtual filing card sent from the second one of the plurality of communication devices on the third one of the plurality of communication devices if the third one of the plurality of communication devices does not have a virtual filing card that is associated with the entity associated with the first one of the plurality of communication devices. 20. The method as recited in Claim 17, further comprising the step of: comparing the virtual filing card sent from the second one of the plurality of communication devices with a virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices. 21. The method as recited in Claim 20, wherein each of the virtual filing cards comprise a plurality of data fields, and the method further comprises the step of: selectively updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with information from the virtual filing card sent from the second one of the plurality of communication devices based on results of the comparing step if the virtual filing card sent from the second one of the plurality of communication devices is more current than the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices. 22. The method as recited in Claim 21, wherein the selectively updating step comprises the step of: updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with subjective information based on the virtual filing card sent from the second one of the plurality of communication devices if the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices is more current than the virtual filing card sent from the second one of the plurality of communication devices. 23. The method as recited in Claim 22, wherein the selectively updating step further comprises the step of: updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with quality of service information based on the virtual filing card sent from the second one of the plurality of communication devices. 24. The method as recited in Claim 23, wherein the quality of service information comprises a ratio of a quality of service rating from the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices and a quality of service rating from the virtual filing card sent from the second one of the plurality of communication devices. 25. A method of establishing a call from a first communication device to a second communication device, comprising the steps of: probing a virtual filing card associated with the second communication device on the first communication device, the virtual filing card associated with the second communication device comprising a plurality of data fields; presenting a call offer to the second communication device; and updating a contact success field in the virtual filing card if the call offer is accepted by the second communication device. 26. The method as recited in Claim 25, wherein the second communication device comprises a virtual filing card associated with the first communication device, the virtual filing card associated with the first communication device comprising a plurality of fields, the method further comprising the steps of: establishing a negotiation between a first entity associated with the first communication device and a second entity associated with the second communication device if the call offer is not accepted; and updating at least one field of the virtual filing card associated with the second communication device based on results of the negotiation; and updating at least one field of the virtual filing card associated with the first communication device based on the results of the negotiation. 27. The method as recited in Claim 25, wherein the second entity is associated with a plurality of entities comprising an entity group, the entity group being associated with an invocation constraint selected from the group consisting of all of the plurality of entities, at least one of the plurality of entities, and exactly one of the plurality of entities. 28. The method as recited in Claim 27, wherein the step of probing the virtual filing card associated with the second communication device comprises the step of: determining the invocation constraint associated with the entity group. 29. The method as recited in Claim 28, wherein the step of presenting the call offer comprises the step of: presenting a call offer to communication devices associated with the plurality of entities in the entity group if the invocation constraint is all of the plurality of entities. 30. The method as recited in Claim 28, wherein the step of presenting the call offer comprises the steps of: filtering the plurality of entities in the entity group to produce a non-empty set of the plurality of entities if the invocation constraint is at least one of the plurality of 5 entities; and presenting a call offer to communication devices associated with the plurality of entities in the non-empty set. 31. The method as recited in Claim 28, wherein the step of presenting the call offer comprises the steps of: selecting one the plurality of entities in the entity group if the invocation constraint is exactly one of the plurality of entities; and ) presenting a call offer to a communication device associated with the selected one of plurality of entities. 32. A computer program product for a communication device associated with an entity, comprising: a computer readable storage medium having computer readable program code embodied therein, the computer readable program code comprising: ) a profile manager module; and at least one profile controlled by the profile manager module, the at least one profile comprising a virtual filing card, the virtual filing card comprising at least one data field and being associated with another entity and modifiable by the entity associated with the communication device. 33. The computer program product as recited in Claim 32, wherein the at least one profile further comprises a virtual business card. 34. The computer program product as recited in Claim 32, wherein the profile manager module comprises: an outgoing call agent module; and an incoming call agent module. 35. The computer program product of Claim 32, wherein the virtual filing card comprises a plurality of data fields, the plurality of data fields comprising: a referent field that identifies the entity associated with the virtual filing card; and at least one address field that provides contact information for the entity associated with the virtual filing card. 36. The computer program product of Claim 35, wherein the at least one address field comprises a plurality of address fields, and the plurality of data fields further comprise: an address map field that correlates the plurality of address fields with situations. 37. The computer program product of Claim 36, wherein the plurality of data fields further comprise: a contact success field that indicates a probability of succeeding in contacting the entity associated with the virtual filing card based on the situations. 38. The computer program product of Claim 37, wherein the entity associated with the virtual filing card is associated with a plurality of entities comprising an entity group. 39. The computer program product of Claim 38, wherein the contact success field comprises: a contact success field that indicates a probability of succeeding in contacting the entity group associated with the virtual filing card based on the situations. 40. The computer program product of Claim 38, wherein the entity group is associated with an invocation constraint, the invocation constraint comprising one of all of the plurality of entities, at least one of the plurality of entities, and exactly one of the plurality of entities. 41. The computer program product of Claim 40, wherein the entity group is associated with the invocation constraint of exactly one of the plurality of entities, and wherein the contact success field comprises: a contact success field that indicates a probability of succeeding in contacting one of the plurality of entities in the entity group associated with the virtual filing card based on the situations. 42. The computer program product of Claim 35, wherein the plurality of data fields further comprise: at least one service field that identifies at least one service provided by the entity associated with the virtual filing card. 43. The computer program product of Claim 42, wherein the at least one service field comprises a plurality of service fields, and the plurality of data fields further comprise: a service map field that correlates the plurality of service fields with situations. 44. The computer program product of Claim 43, wherein the plurality of data fields further comprise: a quality field that associates quality ratings with the plurality of service fields based on the situations. 45. The computer program product of Claim 35, wherein the referent field comprises at least one aspect field that identifies a role for the entity associated with the virtual filing card. 46. The computer program product of Claim 45, wherein the at least one aspect field comprises: an address field that provides contact information for the entity associated with the virtual filing card; a service field that identifies a service provided by the entity associated with the virtual filing card; and an availability field that indicates periods of accessibility for the entity associated with the virtual filing card. 47. The computer program product of Claim 35, wherein the plurality of data fields comprise: an owner field that identifies the entity associated with the communication device. 48. A computer program product for exchanging information among a plurality of communication devices, each of the plurality of communication devices being associated with an entity, comprising: a computer readable storage medium having computer readable program code embodied therein, the computer readable program code comprising: computer readable program code for sending a virtual filing card that is associated with an entity associated with a first one of the plurality of communication devices from a second one of the plurality of communication devices to a third one of the plurality of communication devices, the virtual filing card comprising at least one data field and being modifiable by entities other than the entity associated with the first one of the plurality of communication devices. 49. The computer program product as recited in Claim 48, wherein the computer readable program code for sending the virtual filing card comprises: computer readable program code for sending a profile associated with the entity that is associated with the first one of the plurality of communication devices from the second one of the plurality of communication devices to the third one of the plurality of communication devices, the profile comprising a virtual business card and the virtual filing card. 50. The computer program product as recited in Claim 48, further comprising: computer readable program code for installing the virtual filing card sent from the second one of the plurality of communication devices on the third one of the plurality of communication devices if the third one of the plurality of communication devices does not have a virtual filing card that is associated with the entity associated with the first one of the plurality of communication devices. 51. The computer program product as recited in Claim 48, further comprising: computer readable program code for comparing the virtual filing card sent from the second one of the plurality of communication devices with a virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices. 52. The computer program product as recited in Claim 51 , wherein each of the virtual filing cards comprise a plurality of data fields, and the computer program product further comprises: computer readable program code for selectively updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with information from the virtual filing card sent from the second one of the plurality of communication devices based on results of the comparing step if the virtual filing card sent from the second one of the plurality of communication devices is more current than the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices. 53. The computer program product as recited in Claim 52, wherein the computer readable program code for selectively updating comprises: computer readable program code for updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with subjective information based on the virtual filing card sent from the second one of the plurality of communication devices if the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices is more current than the virtual filing card sent from the second one of the plurality of communication devices. 54. The computer program product as recited in Claim 53, wherein the computer readable program code for selectively updating further comprises: computer readable program code for updating at least one of the plurality of data fields of the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices with quality of service information based on the virtual filing card sent from the second one of the plurality of communication devices. 55. The computer program product as recited in Claim 54, wherein the quality of service information comprises a ratio of a quality of service rating from the virtual filing card that is associated with the first one of the plurality of communication devices and that is stored on the third one of the plurality of communication devices and a quality of service rating from the virtual filing card sent from the second one of the plurality of communication devices. 56. A computer program product for establishing a call from a first communication device to a second communication device, comprising: a computer readable storage medium having computer readable program code embodied therein, the computer readable program code comprising: computer readable program code for probing a virtual filing card associated with the second communication device on the first communication device, the virtual filing card associated with the second communication device comprising a plurality of data fields; computer readable program code for presenting a call offer to the second communication device; and computer readable program code for updating a contact success field in the virtual filing card if the call offer is accepted by the second communication device. 57. The computer program product as recited in Claim 55. wherein the second communication device comprises a virtual filing card associated with the first communication device, the virtual filing card associated with the first communication device comprising a plurality of fields, the computer program product further comprising: computer readable program code for establishing a negotiation between a first entity associated with the first communication device and a second entity associated with the second communication device if the call offer is not accepted; and computer readable program code for updating at least one field of the virtual filing card associated with the second communication device based on results of the negotiation; and computer readable program code for updating at least one field of the virtual filing card associated with the first communication device based on the results of the negotiation. 58. The computer program product as recited in Claim 55, wherein the second entity is associated with a plurality of entities comprising an entity group, the entity group being associated with an invocation constraint selected from the group consisting of all of the plurality of entities, at least one of the plurality of entities, and exactly one of the plurality of entities. 59. The computer program product as recited in Claim 58, wherein the computer readable program code for probing the virtual filing card associated with the second communication device comprises: computer readable program code for determining the invocation constraint associated with the entity group. 60. The computer program product as recited in Claim 59, wherein the computer readable program code for presenting the call offer comprises: computer readable program code for presenting a call offer to communication devices associated with the plurality of entities in the entity group if the invocation constraint is all of the plurality of entities. 61. The computer program product as recited in Claim 59, wherein the computer readable program code for presenting the call offer comprises: computer readable program code for filtering the plurality of entities in the entity group to produce a non-empty set of the plurality of entities if the invocation constraint is at least one of the plurality of entities; and computer readable program code for presenting a call offer to communication devices associated with the plurality of entities in the non-empty set. 62. The computer program product as recited in Claim 59, wherein the computer readable program code for presenting the call offer comprises: computer readable program code for selecting one the plurality of entities in the entity group if the invocation constraint is exactly one of the plurality of entities; and computer readable program code for presenting a call offer to a communication device associated with the selected one of plurality of entities.

Inventors: SINGH MONA, SINGH MUNINDAR PAUL, SINGH, MONA, SINGH, MUNINDAR, PAUL
Applicants: ERICSSON INC
Application year: 2000
Main classification: G06F17
IPC codes: H04M1