Abstract:
A communication system includes a plurality of desktop controller agents receiving goal commands and invoking a process to achieve the goals. A plurality of resource agents each in communication with an associate device receives and stores goals from a desktop controller agent and operates the associated device in response to goals received from the desktop controller agent. A network interconnects all of the agents and carries goals between the agents. Communications folders for the user agents are maintained and include a log of communications made using devices associated with a respective desktop controller agent. Attachments can be selected to accompany communications made using the devices.

Description:
This application claims the benefit of provisional application No. 60/084,734 filed May 8, 1998. 
    
    
     FIELD OF THE INVENTION 
     The present invention relates to communications systems and in particular to a communications system and method which treats different types of communications in a similar manner and provide a uniform presentation for different types of communications. The present invention also relates to a communications system and method which provides local switching control of telephone interface circuits to network channels to avoid glare situations. 
     BACKGROUND OF THE INVENTION 
     Communications systems in the past have treated different types of communications differently. Specifically, telephone calls, electronic mail (e-mail), voice mail, facsimile messages and video calls have all been handled by these communications systems using separate applications. These separate applications typically have different functions and all work slightly different making applications integration difficult. 
     Communications systems having “universal in-boxes” to handle e-mail, voice mail and facsimile messages have also been considered. These communications systems are based on a client-server architecture with the server acting as the central processor and controlling data flow in the communications system. Telephone call control is also handled by the server. Although this type of communications system provides a “universal in-box”, the different types of communications are still handled differently. Also, the centralized server to control communications can become a bottleneck in the communications system. In addition, in these communications systems, when one party wishes to place another party on hold, that party must signal the server to connect the other party&#39;s channel to silence and connect their channel to dial tone. If the party placed on hold is manipulating their channels, glare situations can arise. As should be appreciated by those of skill in the art, these communications systems constrain users to communicate in ways fixed by the communications system. Thus, users are required to adapt to the constraints of the communications system, rather than the communications system adapting to the needs of the users. 
     It is therefore an object of the present invention to provide a novel communications system and method which obviates and mitigates at least one of the above-described disadvantages. 
     SUMMARY OF THE INVENTION 
     According to one aspect of the present invention there is provided a method of operating a communications system comprising the steps of: 
     providing a plurality of desktop controller agents for receiving goal commands (goals) from agents and for invoking processes to achieve said goals; 
     providing a plurality of resource agents, each in communication with an associated device for receiving and storing goals from a desktop controller agent and for operating said associated device in response thereto; 
     interconnecting all of said agents and carrying goals between said agents; 
     maintaining communications folders for said agents, each said communications folder including a log of communications made using devices associated with a respective desktop controller agent; and 
     selectively including attachments to accompany communications made using said devices. 
     Preferably, at least one communications folder is maintained for each agent representing a person or people with different roles. It is also preferred that the different types of communications includes voice calls, video calls, appointments, shared data calls, e-mails, voice mails and facsimile messages. 
     Preferably, each desktop controller agent is created by a user agent and has jurisdiction over a plurality of resource agents. Each of the resource agents receives and stores goals and operates an associated device to permit the different types of communications to occur between agents who have jurisdiction over desktop controller agents. 
     Preferably, each role agent stores the at least one communications folder for an associated user agent and creates entries for the logs as communications are made and received. It is also preferred that each role agent executes a script to create each log entry. It is also preferred that the logs can be sorted and configured to display entries in basically any convenient and desired manner. Preferably the desktop controller agents create operating system monitor agents to monitor the operating systems of computers so that the role agents can create logs of created files to allow files to be linked to entries in the communications logs. 
     According to another aspect of the present invention there is provided a communications system comprising: 
     a plurality of desktop controller agents for receiving goal commands (goals) and for invoking a process to achieve said goals; 
     a plurality of resource agents, each in communication with an associated device for receiving and storing goals from a desktop controller agent and for operating said associated device in response to receiving said goals from a desktop controller agent; 
     a network interconnecting all of said agents and carrying goals between said agents; 
     communications folders for said agents, each said communications folder including a log of communications made using devices associated with a respective desktop controller agent; and 
     attachments to accompany selectively communications made using said devices. 
     According to still yet another aspect of the present invention there is provided a communications system comprising: 
     a plurality of process agents for receiving goal commands (goals) in the form of signals defining tasks to be performed to establish telephone calls; 
     a plurality of connection agents, each in communication with an associated telephone interface circuit for receiving and storing goals from a process agent and for operating said associated telephone interface circuit in response to receiving said goals from a process agent to establish a telephone call from one telephone interface circuit to another; and 
     a network interconnecting all of said agents and carrying goals between said agents thereby, said connection agents locally controlling connection of said telephone interface circuits to channels of said network. 
     In still yet another aspect of the present invention there is provided a method of operating a communications system comprising the steps of: 
     providing a plurality of process agents for receiving goal commands (goals) in the form of signals defining tasks to be performed to establish telephone calls; 
     providing a plurality of connection agents, each in communication with an associated telephone interface circuit for receiving and storing goals from a process agent and for operating said associated telephone interface circuit in response to receiving said goals from a process agent to establish a telephone call from one telephone interface circuit to another; 
     interconnecting all of said agents and carrying goals between said agents; and 
     locally controlling connection of said telephone interface circuits to channels of said network via said connection agents. 
     According to still yet another aspect of the present invention there is provided a communications system comprising: 
     a network having a plurality of channels; 
     a plurality of telephone devices connectable to one or more channels of said network to establish telephone connections between telephone devices; and 
     switch means acting between each of said telephone devices and said network, each said switch means being locally controlled to connect said assciated telephone device to selected channels of said network. 
     According to still yet another aspect of the present invention there is provided a method of operating a communications system comprising the steps of: 
     providing a plurality of desktop controller agents for receiving goal commands (goals) from agents and for invoking processes to achieve said goals; 
     providing a plurality of resource agents, each in communication with an associated device for receiving and storing goals from a desktop controller agent and for operating said associated device in response thereto; 
     interconnecting all of said agents and carrying goals between said agents; 
     maintaining communications folders for said agents, each said communications folder including a log of communications made using devices associated with a respective desktop controller agent; and 
     selectively executing routines to sort entries in said log thereby to generate reports. 
     According to still yet another aspect of the present invention there is provided a communications system comprising: 
     a plurality of desktop controller agents for receiving goal commands (goals) and for invoking a process to achieve said goals; 
     a plurality of resource agents, each in communication with an associated device for receiving and storing goals from a desktop controller agent and for operating said associated device in response to receiving said goals from a desktop controller agent; 
     a network interconnecting all of said agents and carrying goals between said agents; 
     communications folders for said agents, each said communications folder including a log of communications made using devices associated with a respective desktop controller agent; and 
     selectable executable routines to sort entries in said log thereby to generate reports. 
     The present invention provides advantages in that since different types of communications are treated the same, similar services and features can be applied to different types of communications thereby facilitating applications integration. Also, by treating different types of communications the same, a uniform presentation can be used for all types of communications. In addition, since the communications system breaks the client-server mold and relies on peer to peer communications, connection control between parties is handled locally avoiding glare situations from occurring. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     An embodiment of the present invention will now be described more fully with reference to the accompanying drawings in which: 
     FIG. 1 is a schematic diagram of a communications system in accordance with the present invention; 
     FIGS. 2A,  2 B and  2 C are schematic diagrams illustrating an agent layout for one of the processor systems forming part of the communications system of FIG. 1; 
     FIGS. 3A and 3B are block diagrams illustrating data associated with a role agent; 
     FIG. 4 is a log of communications sent and received by a user agent; 
     FIG. 5 is a schematic diagram illustrating a connection agent and a connection control resource forming part of the processor system of FIGS. 2A and 2B; 
     FIG. 6 is a schematic diagram illustrating connection control between multiple telephones forming part of the communications system of FIG. 1; 
     FIGS. 7A and 7B illustrate message flow during telephone communications over the communications system of FIG. 1 between user agents. 
     FIGS. 8A and 8B are schematic diagrams illustrating the process by which entries are made in the communications log of FIG. 4; and 
     FIG. 9 is pseudo code representing an application to produce a monthly report or summary from the entries in the communications log of FIG.  4 . 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring now to FIG. 1, a communications system  110  in accordance with the present invention is shown and includes a pair of processor systems  112  connected to a network  116 . Network  116  includes a data switch  118  such as an ATM or Ethernet switch and a server  120 . The data switch  118  and the server  120  are connected to a wide area network (WAN) or public switched telephone network (PSTN)  122  via T 1  or ISDN data links  124 . Stand alone telephones  126  are connected to the data switch  118  by way of a data multiplexer  128 . The communications system  110  is based on the architecture described in U.S. Pat. No. 5,638,494 to Pinard et al. issued on Jun. 10, 1997 and in U.S. Pat. No. 5,657,446 to Pinard et al. issued on Aug. 12, 1997 assigned to Mitel Corporation, assignee of the present invention, the contents of which are incorporated herein by reference. 
     The server  120  (better shown in FIG. 2A) includes a configuration agent  130  which contains a computer program for configuring the various agents in the communications system  110  and their goals. A goal is a definition of the purpose of a particular function, for example the connection of a telephone with a virtual channel to allow a call to be established across the network  122 . The configuration agent  130  is responsible for downloading goals stored in memory therein to the various agents at start up and as new agents, devices and goals are added, changed or removed from the communications system  110 . The server  120  also includes a database  132  storing a directory of addresses for the various agents so that when a goal is to be accomplished, the addresses for the various agents may be obtained by the agent requiring the addresses. 
     Group agents and role agents  134  and  136  respectively are also resident in the server  120 . The group and role agents are responsible for functions. The group agents include databases  138  for keeping policies and preferences relating to groups such as for example directories for people, timetables and any other preferences related to a group of people rather than a single role. The group agents  134  use the role agents  136  to perform their functions. FIG. 2C shows an agent which represents a person with different roles, referred to as a user agent  140 . The role agents  136  include databases  139  storing communications information (se FIG. 3A) and the user agents  140  include databases  141  for storing policies and preferences relating to communications preferences such as for example, call screening, call forwarding etc. (see FIG.  3 B). 
     Turning back to FIG. 1, it can be seen that each processor system  112  includes a personal computer (PC)  160  and a telephone  162  connected to the personal computer  160  by way of a universal serial bus (USB)  164 . USB includes a 12 Mbit/s serial interface running over a  4  wire bus with an associated software stack supporting peripheral connectivity to the PC  160 . The PC  160  includes a display or monitor  160   a , a keyboard  160   b  and a mouse pointer  160   c  operating in a well known manner. 
     Within each PC  160  is a desktop controller agent  170  (see FIG. 2B) to handle a desktop related resources for a user agent  140 . The desktop controller agent  170  is created by the user agent when a user logs into the network  116 . The created desktop controller agent  170  selects resources which are necessary for the desktop controller agent to provide the user agent  140  with the communications resources it requires in order for the user agent to fulfill its role. The desktop controller agent  170  includes a call discriminator to discriminate between types of communications such as voice, facsimile or data being received and to invoke an application that can handle the communication if the communication is to be received. In this manner, the user agent  140  does not know or care about the resources available to the processor system  1   12 . 
     As is shown in FIG. 2B, the desktop controller agent  170  has jurisdiction over and is responsible for creating and initializing a dial tone generator agent  172 , a dialing signal (digital multi-frequency (DTMF)) detector agent  174 , a phone agent  176 , a connection agent  178  and a user interface agent  180   
     The dial tone generator agent  172  is responsible for providing the telephone  162  with a dial tone by way of a dial tone generator  182  when an off-hook or “hands-free” dialing condition is detected. The dialing signal detector agent  174  is responsible for storing dialing signals generated by the telephone  162  and translated by a dialing signal translator  184 . The phone agent  176  is connected to a phone driver  186  and executes a program loop for monitoring the telephone line current via the phone driver  186  so that off-hook and “hands-free” dialing conditions of the telephone  162  are detected. The connection agent  178  generates requests to a group agent  134  to establish a connection between the telephone  162  and virtual channels of the network  116 . Connections between the telephone  162  and virtual channels of the network  116  are made by a connection control resource  188  when the request has been accepted. 
     The desktop controller agent  170  also includes an operating system monitor agent  194  to monitor the operating system of the PC  160  and detect when a file is created or executed (i.e. final save). When the operating system monitor agent  194  detects that a file has been created or exited, it sends a message to the desktop controller agent  170  which in turn sends a message to the role agent  136 . The role agent  136  executes a script which logs the file information in a communications log as shown in FIG.  8 B. 
     FIG. 3A illustrates the structure of the communications information stored at the role agent  136 . As can be seen, the role agent  136  keeps a directory  210  in which directory entries are held. The directory entries are business and personal contacts associated with the role of the user logged into the network  116 . Preferences  212  associated with each directory entry are also stored by the role agent  136 . The preferences are for example types of communications preferred by the business and personal contacts. 
     Communications folders  214  for the user such as personal and public communications folders are also stored by the role agent  136 . The personal communications folder includes a log storing incoming and outgoing communications, deleted communications etc. The communications  216  in the logs of each communications folder  214  may be of virtually any type such as for example voice calls  216   a , video calls  216   b , call sharing  216   c , appointments  216   d , e-mail  216   e , voice mail  216   f , facsimiles  216   g  etc. Each communication  216  in each communications folder  214  may be associated with an account code  218  for billing and contract purposes and may also have one or more attachments  220 . 
     Turning to FIG. 3B, the structure of the communications information stored in database  141  at the user agent  140  is better illustrated. As can be seen, the communications information is user specific since a user can only be in one place at one time. Thus, the user agent  140  resolves conflicts between roles. In this example, the communications information includes a calendar, the number of calls before busy regardless of the role receiving the call etc. 
     Referring now to FIG. 4, the incoming and outgoing communications in the log of personal communications folder  214  is better illustrated. As can be seen, the log is in a list format and includes all of the incoming and outgoing communications related to the user. The log indicates the type of communication, the time the communication was sent or received, the date on which the communication was sent or received, the direction of the communication (i.e. whether it is incoming or outgoing), the author of the communication, the receiver of the communication and the duration of the communication. If desired, additional fields can be provided in the log such as for example account codes associated with each communication, the subject of the communication etc. Links can be established between the entries in the log and files created by the user associated with the entries. In this manner, if the entry in the log is selected, the associated file entries that are linked to the selected entry are displayed. Software is provided in the role agent  136  to allow the entries in the log to be sorted by any combination of fields and presented either in the list format as shown or in a calendar format. FIG. 9 shows pseudo code for producing a monthly report or summary from entries in the log. 
     The PC  160  contains a telephone applications program of the type disclosed in U.S. Pat. No. 5,533,110 to Pinard et al., and assigned to Mitel Corporation, assignee of the present application, the content of which is also incorporated herein by reference. The user interface agent  180  executes the telephone applications program to control views, windows or icons  190  appearing on the monitor  160   a  of the personal computer  160  to allow communications to be created, received, read and/or manipulated. 
     The views include a main window presenting a display showing communications information. The views also include a communications folder view, a directory view, a local caller icon, a call setup window and a call window. The communications folder view allows the logs of each communications folder  214  to be displayed. 
     The local caller icon represents the user logged into the network  116  via the PC  160 . The call setup icon is used when the user wishes to send a communication to a called party. In this case, the user drags the local caller icon into the call setup window resulting in the directory  210  being displayed in the directory view. The user can then drag a directory entry from the directory  210  into the call setup window at which time a communications link is initiated to the party to be called. When the communications link is established, the call window is displayed showing the local caller icon and a called party icon. If an attachment is to be sent to the called party, an attachment icon representing the attachment to be sent is dragged into the call window. The above windows and icons and their operation relating to telephone communications are described in U.S. Pat. No. 5,533,110 to Pinard et al. referred to above. 
     Within the server  120  are desktop controller agents  250  for each stand alone telephone  126 . The desktop controller agents  250  have jurisdiction over and are responsible for creating and initializing a dial tone generator agent  252 , a dialing signal detector agent  254 , a phone agent  256 , a connection agent  258  and a user interface agent  260 . The dial tone generator agent  252  is responsible for connecting a dial tone generator  262  to the stand alone telephone  126  when an off-hook or hands-free dialing condition is detected by way of the phone agent  256  and a phone driver  268 . The dialing signal detector agent  254  is responsible for storing dialing signals generated by the stand alone telephone  126  that have been translated by a dialing signal translator  264 . The connection agent  258  is responsible for controlling a connection control resource  266  to interconnect the stand alone telephone  126  and data switch  118  when a telephone call is to be made or received. The user interface agent  260  maintains a communications folder  270  in which all communications activities are stored as described above. If the role of the user using the stand alone telephone  126  requires the user to have access to e-mail, facsimile messages etc., the desktop controller agent  250  has jurisdiction over and is responsible for text-to-voice and voice-to-text converters to allow the user to retrieve and send these types of communications. 
     Referring now to FIG. 5, the connection agent  178  and connection control resource  188  are better illustrated. As can be seen, the connection control resource  188  is responsive to the connection agent  178  and selects virtual channels to interconnect a data switch driver  300  leading to data switch  118  and the phone driver  186  connected to the telephone  162 . The connection control resource  188  also performs mixing between virtual channels to allow for conference calls, call swapping and connects the outgoing virtual channels to silence  302  if a party is to be placed on hold as well as retrieves calls placed on hold. As will be appreciated, the connection control resource  188  handles connection control between the telephone  162  and the data switch  118  locally. As such, the connection control resource  188  is able to change the connection of the telephone to different virtual channels allowing the telephone connection to be moved back and forth between the virtual channels. Since the switching is done locally, the connection control resource  188  does not interfere with another party&#39;s connections and thereby avoids glare situations. 
     For example, FIG. 6 shows three USB telephones  162   a ,  162   b ,  162   c  connected to one another across virtual channels vc 1 , vc 2  and vc 3  respectively. The virtual channels may extend over a public switched telephone network (PSTN), a wide area network (WAN), an internet connection or an intranet connection As can be seen, telephone  162   a  is connected to telephone  162   b  via virtual channel vc 2 . Telephone  162   a  is connected to telephone  162   c  via virtual channel vc 1  while telephone  162   c  is connected to telephone  162   b  via virtual channel vc 3 . Connection control resource  188   a  is responsive to its associated connection agent to move the telephone connection between the virtual channels vc 1  and vc 2  placing one of the telephone calls on hold. Likewise, connection control resource  188   b  is responsive to its associated connection agent to move the telephone connection between the virtual channels vc 1  and vc 3  while connection control resource  188   c  is responsive to its associated connection agent to move the telephone connection between the virtual channels vc 2  and vc 3 . As will be appreciated, the connection control agents  178  control the local connection control resource unlike “centralized switching” type connections which require a party that is to be placed on hold, to be connected to silence by a remote data switch. If the party placed on hold is manipulating the channels to which it is connected, glare situations can occur resulting in the loss of communications across the channels. In the present system, glare situations of this nature are avoided. 
     In general, if a user wishes to make a telephone call and the handset of the telephone  162  is removed from its cradle or if hands-free dialing is selected, the phone agent  176  monitoring the subscriber&#39;s line current detects the increase in line current. The phone agent  176  sends a message to the desktop controller agent  170  which in turn sends a message to the dial tone generator agent  172  causing it to connect the dial tone generator  182  to the telephone  162  and thereby provide the dial tone. Once the dial tone is provided and the user begins dialing digits, the dialing signal translator  184  detects and translates the DTMF dialing signals. As dialing signals are translated, they are stored by the dialing signal detector agent  174 . The stored dialed digits are conveyed by the dialing signal detector agent  174  to the desktop controller agent  170  which in turn conditions the user interface agent  180  to open a window. The dialed party is displayed in the window. 
     Of course, the user can also make a telephone call by selecting the local caller icon and dragging it into the call setup window to display the directory  210 . Once the directory is displayed, the desired directory entry can be selected and dragged into the call setup window thereby to display the call window showing the local caller icon and the called party icon. 
     Once a telephone call has been initiated in one of the above-described manners, the desktop controller agent  170  sends a message to the user agent  140  which in turn sends it to the role agent  136 . The message contains the virtual channel that the connection agent  178  selected for the call. The desktop controller agent  170  in turn sends a message to the connection agent  178  causing the connection agent to condition the connection control resource  188  to connect the phone driver  186  to the appropriate virtual channel so that the telephone call can be made. 
     When the role agent receives a request to call another party, the role agent looks up the “address” of the role agent assigned to the party to be called and sends a message offering the call to that role agent  136 . The role agent receiving the message in turn sends the message to the called party&#39;s user agent  140  which sends it to the desktop controller agent  170 . The desktop controller agent then uses the connection agent  178  to get a virtual channel which will map to the calling party. The desktop controller agent  170  also notifies the phone and user interface agents that the call is being offered. This causes the phone to ring and the call offered to be displayed on the personal computer  160 . If the called party answers the call either by going off-hook, “clicking” on the personal computer or “dragging” the appropriate icon, then the desktop controller agent  170  is informed. The desktop controller agent  170  in turn notifies the connection agent  178  which connects the handset and also notifies the user agent  140  which passes the message through to the role agent  136 . The role agent  136  in turn sends the message to the role agent assigned to the calling party allowing a connection between the parties to be made. The communications path is thus established. 
     If the user selects an attachment such as an e-mail message, a facsimile message etc. to accompany the telephone communication, the desktop controller agent  170  invokes an appropriate agent to transmit the attachment to the called party. The attachment is of course transmitted in a suitable form to allow the called party to discern it from voice call signaling. The telephone applications software executed by the user interface agent  180  includes a protocol to identify a communication as an attachment to another communication and the applications software links them within the system. If an attachment cannot be received by the called party, it is discarded. The protocol in turn generates an error message for display to the caller. 
     FIGS. 7A and 7B show the message trace between two callers establishing a hands-free telephone communications link with the calling user selecting an attachment (in this example e-mail) to accompany the telephone communication. As can be seen, the caller opens a window showing the directory including the party to whom the telephone call is to be made. The caller then selects the party to be called and selects the attachment to accompany the telephone call (i.e. the e-mail). Once the party and attachment have been selected, the user drags the party and attachment into the call setup window. 
     When this occurs the user interface agent  180  sends a message to the desktop controller agent  170  which in turn causes the dial tone generator agent  172  to connect the dial tone generator  182  to the telephone to supply the dial tone as described previously. Once the dial tone is provided, the selected party is dialed. The dialed digits are translated by the dialing signal translator  184  and stored by the dialing signal detector agent  174 . The desktop controller agent  170  sends a message to the connection agent  178  so that the connection agent conditions the connection control resource  188  to connect the telephone to the appropriate virtual channel of the network  116 . 
     Once the connection has been made, the desktop controller agent  170  sends a message to the role agent  136  through the user agent  140  including the communication and attachment. When the role agent receives the communication and the attachment, it stores the communications and attachment and then executes a script to create an entry for the communications log with the appropriate fields of the entry filled in (see FIG.  8 A). Once the entry has been completed the role agent  136  stores it in the log of the appropriate communications folder  214 . Following this, the role agent  136  offers the communication to the called party over the network  116 . 
     The role agent at the called party firstly determines whether the call is to be blocked or forwarded pursuant to the preferences stored in the role agent database  139 . If the call is to be blocked a busy message is sent to the role agent of the caller. If the call is to be passed through to the called party, the role agent associated with the called party receives the communication and attachment from the caller and then offers the communication and attachment to the desktop controller agent  170  through the user agent  140 . When the role agent of the called party receives the communication and the attachment, the role agent also executes a script which creates an entry for the log of the appropriate communications folder with all of the appropriate fields filled in. Once the entry has been completed, the role agent  136  stores the entry in the log. 
     Upon being offered the communication and attachment, the desktop controller agent  170  sends a message to the user interface agent causing the user interface agent  180  to open a window to display the caller&#39;s identification and the attachment. Since the offered communication is in the form of a telephone call, the desktop controller agent  170  also sends a message to the phone agent  176  which in turn causes the phone driver  186  to ring the telephone. When the called party accepts the communication from the window, it is detected by the user interface agent  180  which in turn sends a message to the desktop controller agent  170 . The desktop controller agent in turn sends a message to the phone agent  176  causing the phone driver  186  to stop ringing the telephone. At the same time, the desktop controller agent  170  sends a message to the connection agent  178  which in turn causes the connection control resource  188  to connect the telephone to the appropriate virtual channel of the network  116 . 
     Once the communications link has been established, the desktop controller agent  170  sends a message to the user interface agent  180  causing it to open a call window showing the local caller icon and a calling party icon signifying that the communication has been accepted. The open window also shows the attachment. When the user selects the attachment, it is detected by the user interface agent  180  which in turn sends a message to the desktop controller agent  170  causing the desktop controller agent to send a message to the appropriate resource to launch the attachment. 
     As will be appreciated, the present communication system allows attachments to be sent with virtually any form of communications. A log of all communications made and received from each user is kept allowing detailed activity reports to be generated. Since links can be made between communication entries in the log and created files, files can be located and retrieved using the communications log entries. In addition, since the connections between telephones and the network are locally controlled glare situations are avoided. 
     Although the agent architecture has been described as being based on the architecture described in U.S. Pat. No. 5,638,494, those of skill in the art will appreciate that alternative agent architectures can be used. For example, the agents may be constituted by programs which when executed perform the tasks described previously. The agents may also represent objects in terms of object-oriented languages such as for example C ++ , Java, SmallTalk and the like. 
     Although a particular embodiment of the present invention has been described, those of skill in the art will appreciate that other variations and modifications may be made without departing from the spirit and scope thereof as defined by the appended claims.