Abstract:
An improved system for managing synchronous messages between messaging parties is disclosed herein. According to one embodiment, a centralized synchronous message management system is provided as a subscription service to various clients without the need for installation of additional equipment at the client&#39;s location. The synchronous message management system is connected to the various client networks, messaging service servers, and third party messagers through a public network, such as the Internet. According to one embodiment, all incoming and outgoing synchronous messages for a client are directed through the synchronous message management system. By doing this, the messages can be processed in real time by the synchronous message management system. Various policies and filtering algorithms can be applied to these messages by the synchronous message management system. According to another embodiment, the synchronous message management system can store policy information on behalf of a enterprise messaging system that resides entirely within a client network. According to yet another embodiment, the synchronous message management system can act as a clearinghouse for the transmission of synchronous messages between various enterprise messaging systems that are located within client networks.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority to U.S. provisional patent application No. 60/821,957, filed Aug. 9, 2006, and U.S. provisional patent application No. 60/871,074, filed Dec. 20, 2006, both of which are commonly assigned with the present application and are hereby incorporated by reference into the present application in their entirety. This application also claims priority to U.S. utility application Ser. No. 11/277,017, filed Mar. 20, 2006, which is commonly assigned with the present application and is hereby incorporated by reference into the present application in its entirety. 
         [0002]    In addition to the above applications, the following co-pending and commonly assigned U.S. patent application has been filed on the same date as the present application. The following application is accordingly also a related application, and is hereby incorporated herein by reference in its entirety: U.S. application Ser. No. 11/______, Attorney Docket No. PST-014, by Adam S. Dawes et al., and entitled “Unified Management Policy for Multiple Format Electronic Communications.” 
     
    
     TECHNICAL FIELD 
       [0003]    Disclosed embodiments herein relate generally to systems for monitoring and managing electronic communications, and more particularly to systems and methods for a managing synchronous messages sent between client users and other messaging parties. 
       BACKGROUND 
       [0004]    Synchronous message management is commonly handled by synchronous message service providers (Yahoo!, AOL, MSN, and Google) that have users/subscribers and by companies that deploy synchronous message services within enterprise networks. When synchronous message management is performed by the message service provider, or by a client at the company server location, valuable communications bandwidth and computing resources are expended on routing, analyzing, and other handling of synchronous message traffic. Present synchronous message systems are further characterized by a lack of real-time monitoring, feedback, and updating of rules, usage or other policies regarding such traffic. A need therefore exists for an improved system for managing synchronous messages. 
       SUMMARY 
       [0005]    An improved system for managing synchronous messages between messaging parties is disclosed herein. According to certain described embodiments, a centralized synchronous message management system is provided as a subscription service to various clients without the need for installation of additional equipment at the client&#39;s location. The synchronous message management system is connected to the various client networks, messaging service servers, and third party messagers through a public network, such as, for example, the Internet. According to this embodiment, all incoming and outgoing synchronous messages are directed through the synchronous message management system. By doing this, the messages can be processed in real time by the synchronous message management system. 
         [0006]    This real-time processing can include the application of various policies to the users and clients that subscribe to the synchronous message management services. These policies can regulate the level of synchronous messaging activity permitted by various users and clients of the system. The real-time processing can also examine the metadata and the actual content associated with the synchronous message to determine if the message should be blocked as unsolicited or undesirable (“spim”). Because a large number of clients networks can be connected to the synchronous message management system, the system is operable to collect a large amount of empirical data on synchronous messaging traffic on the Internet. According to described embodiments, the collected traffic data can be used to generate scoring algorithms that assign a particular reputation score to a message based upon the likelihood that the synchronous message is unsolicited or undesirable. These reputation scores can be used to filter synchronous messages received by the synchronous message management system in real time. 
         [0007]    According to embodiments described herein, the synchronous message management system can store policy information on behalf of a enterprise messaging system that resides entirely within a client network. In these embodiments, synchronous messages may be sent within a particular client network without passing through the synchronous message management system. To apply policies to these messages, the enterprise messaging system retrieves policies from the synchronous message management system and applies those policies to the messaging activities in real time. The synchronous message management system thereby allows policies to be applied to an existing enterprise messaging system without the installation of any new appliances or hardware at the client location. 
         [0008]    As described herein, the synchronous message management system can act as a clearinghouse for the transmission of synchronous messages between various enterprise messaging systems that are located within client networks. These various synchronous messaging systems can therefore be federated together for inter-client messaging. The synchronous message management system can apply various federation policies, which may permit various levels of inter-client messaging. 
         [0009]    The foregoing has outlined and summarized various disclosed embodiments. Additional features and embodiments are described hereinafter and may be set forth specifically in one or more of the claims included below. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same or related purposes as those of the disclosed embodiments. Those skilled in the art should also realize that equivalent constructions do not depart from the spirit and scope of the present invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    Embodiments are illustrated by way of example in the accompanying figures, in which like reference numbers indicate similar parts, and in which: 
           [0011]      FIG. 1  is a block diagram of an exemplary system for managing synchronous messages between client users and other messaging parties suitable for use with one or more of the disclosed embodiments; 
           [0012]      FIG. 2  is a block diagram depicting a database associated with a message processing system suitable for use with one or more of the disclosed embodiments; 
           [0013]      FIG. 3  is a process flow diagram depicting a representative process for registering a new user with a message processing system according to one embodiment; 
           [0014]      FIG. 4  is a process flow diagram depicting a representative process for activating a client terminal for synchronous messaging according to one embodiment; 
           [0015]      FIG. 4A  is a process flow diagram depicting a representative process for activating a client terminal in an enterprise messaging system network for synchronous messaging according to one embodiment; 
           [0016]      FIG. 5  is a process flow diagram depicting a representative process for applying policies to a synchronous messaging event according to one embodiment; 
           [0017]      FIG. 5A  is a process flow diagram depicting a representative process for screening the content of a synchronous messaging event according to one embodiment; 
           [0018]      FIG. 6  is a process flow diagram depicting a representative process for activating a third-party user for synchronous messaging according to one embodiment; 
           [0019]      FIG. 7  is a process flow diagram depicting a representative process for providing outgoing synchronous messages from a client terminal according to one embodiment; 
           [0020]      FIG. 7A  is a process flow diagram depicting a representative process for providing outgoing synchronous messages from a terminal in an enterprise messaging system according to one embodiment; 
           [0021]      FIG. 8  is a process flow diagram depicting a representative process for receiving incoming synchronous messages from a third-party user according to one embodiment; 
           [0022]      FIG. 8A  is a process flow diagram depicting a representative process for receiving incoming synchronous messages from third-party user in an enterprise messaging system according to one embodiment; and 
           [0023]      FIG. 9  is a process flow diagram depicting a representative process for providing synchronous messages between federated enterprise messaging systems according to one embodiment. 
       
    
    
     DETAILED DESCRIPTION 
       [0024]    Disclosed in the present application are specific embodiments of a synchronous message processing system  135 , and methods operating on and with the message processing system  135 , designed to process synchronous messages, such as instant messages, VOIP, or file sharing applications. A block diagram depicting the layout of a representative system for managing synchronous messaging is depicted in  FIG. 1 . Depicted in  FIG. 1  is a message processing system  135  that is similar in concept to the Postini® Electronic Message Management System that is described in U.S. Pat. No. 6,941,348. The message processing system can be connected to one or more clients  105 ,  110  through the Internet  115 . Each client is connected to the Internet  115  through an Internet server  120  and a firewall  125 . A plurality of terminals  130  can be connected to each Internet server  120  for communication with the Internet  115 . The message processing system  135  is also connected to a database  140  in which a variety of data corresponding to the clients  105 ,  110  and users are stored. Also stored in the database  140  are metadata corresponding to messaging traffic passing through the message processing system  135 . According to one embodiment, the message processing system  135  monitors messaging data for a large number of clients. As a result, the message processing system  135  collects large amounts of empirical data regarding messaging traffic. This data can include the source IP address for a message, its destination IP address, the source screen name, the destination screen name, embedded hyperlinks, and attachment information. The message processing system  135  can utilize this information, along with other collected information, to generate reputation scores corresponding to a particular message. The process for generating reputation scores is described in more detail in U.S. Pat. No. 6,941,348, which is hereby incorporated by reference into this application. These reputation scores can then be used to withhold, quarantine, or delete a particular message, or take other disposition actions related to the message, depending upon the particular parameters assigned to a client or user. The process for evaluating synchronous messages with reputation scores is described in more detail below with reference to  FIG. 5A . 
         [0025]    As shown in  FIG. 1 , the message processing system  135  is also connected to third-party terminals  145 , an encryption certificate authority  150 , and at least one messaging server  155  through the Internet  115 . The messaging server  155  is the central server on which a particular messaging protocol (e.g., Yahoo, Microsoft Network (MSN), AOL, Google Chat) is executed. Or, as an alternative, the messaging server  155  can manage voice communications (e.g., using a VOIP protocol), video content, or file-sharing applications. The messaging server  155  maintains a list of subscribers  160  that subscribe to the messaging service. Each subscriber is assigned a list of parameters  165  that are stored in the messaging server  155 , including the current IP address of the subscriber, a list of contacts (e.g., a “buddy” or “contact” list) who also subscribe to the service, and “on-line” notification parameters. 
         [0026]    A more detailed view of the tables, fields, and data stored in the message processing system database  140  is depicted in  FIG. 2 . The message processing system database  140  maintains, among other things, a list of clients  205  that subscribe to message management services. This list of clients preferably refers to a list of organizations or groups, rather than individuals, that subscribe to message management services. Each client is assigned various parameters  245 , including client-level permissions  211 , the general category of the client  212 , screening parameters  213  that identify what should be done with problem messages, recording parameters  214  that describe whether and how messages should be recorded, IP addresses  215  that describe the address, address range, or domain names associated with the client, and other contact information  216  for the client. A list of user identifiers  210  can also be associated with each client in the client list  205 . Each of these user identifiers  210  uniquely identifies the user, regardless of which messaging protocol is utilized by the user. A list of federation properties  217  can also be associated with each client. The federation properties  217  are used when a client implements a enterprise messaging system, rather than a public messaging protocol. The federation properties identify which clients and users outside of the client network can communicate with users inside the enterprise messaging system. 
         [0027]    Each user in the user identifier list  210  is also assigned a variety of user-level parameters  215 . These user parameters include the screen names  220  associated with the various messaging protocols (e.g., Yahoo, MSN, AOL, Google, etc.), a list of federation properties  222  corresponding to a particular user, a list of user-level permissions  225 , the general category or grouping of the user  230 , screening parameters  235  that identify what should be done with problem messages, recording parameters  240  that describe whether and how messages should be recorded, IP addresses  245  that describe the address, address range, or domain names associated with the user, and other contact information  250  for the user. 
         [0028]    The client-level permissions  211  and the user-level permissions  225  both include permissions related to the sending and receiving of text messages, the messaging protocol used, the messaging service used, whether internal and/or external messages are permitted, attachments to the messages, audio (e.g., VOIP), video, hyperlinks, and other files. The client-level parameters  245  also include a variety of categories  212 , such as whether the client is a government entity, military entity, commercial entity, or non-profit entity. The user-level parameters also include various groups found within a particular client, including, for example, management, marketing, engineering, human resources, and IT. These categories and groups can be associated with the various permissions to further customize the permissions associated with a client/user. A variety of screening parameters  213 ,  235  are also associated with each client/user. These screening parameters define what to do with messages that are identified as being in violation of a policy or otherwise problematic. Possible options for dealing with the problem message include blocking the message from delivery, delivering the message, but flagging it as a potential violation, warning the user about a policy violation, notifying an IS administrator of the violation, and quarantining the message until it can be evaluated by an appropriate individual. Recording parameters  214 ,  240  are also available for each client/user. These parameters indicate whether messages should be journaled, archived, or logged. Journaled messages are recorded in text form and then sent to the communicating parties by e-mail. Archived messages are recorded in their native format, but are stored in a repository at the message processing system  135  or other appropriate location. Logging of messages means that data corresponding to messaging activity (date stamps, who sent, who received, etc.) is recorded and stored in a repository at the message processing system  135  or other appropriate location. These features can allow clients to comply with various data retention policies set by the client. In a voice or VOIP application, the user-level parameters can include a telephone number corresponding to an individual user. Further, these voice applications can be journaled or archived in their respective native formats. The client and user parameters can also include IP address information  215 ,  245 , such as the precise IP address of the client/user, a range of acceptable IP addresses, or the domain name of the client/user. Contact information  216 ,  250 , such as the name, address, telephone number, and e-mail address of a client/user can also be stored in the client/user parameters. Lastly, the screen names ( 220 ) associated with a particular user can be stored in the user parameters  215 . Each user may have a variety of screen names, depending upon the different services and protocols to which the user subscribes. 
         [0029]    Prior to using a synchronous messaging system, new users may establish an account with the message processing system  135 . This can be done automatically by an IS department for all users in an organization or group, or on an ad-hoc basis as various users utilize the messaging service. A flowchart demonstrating a representative registration process for new users on a message processing system  135  is depicted in  FIG. 3 . The process starts ( 305 ) when the message processing system  135  receives an initiation event ( 307 ). This initiation event can be any of a variety of events such as, receiving a presence notifier at the message processing system  135 , receiving an inbound or outbound message at the message processing system  135 , receiving a direct request from a user to activate the registration process, or receiving a direct registration request from an IS administrator for a particular client. Upon receiving an initiation event, a registration process (e.g., a registration bot) is initiated at the message processing system  135  ( 310 ). This registration bot can be a software application executed on the message processing system  135  that communicates directly with the user at the user&#39;s terminal. The registration bot asks the user for identification and an e-mail address corresponding to that user ( 315 ). This information is provided directly from the user to the message processing system  135 . Next the registration bot binds the e-mail address to the user&#39;s IP address and stores this information in the database of the message processing system  135  ( 320 ). 
         [0030]    The message processing system  135  uses the identification and e-mail address to establish a user&#39;s profile ( 322 ). The user may be also prompted to adjust the various client and user parameters in the message processing system  135  corresponding to that client. Of course, in other applications, a default set of parameters may be assigned to all new users of the system. According to another embodiment, only certain users will have the ability to modify their parameters and permissions. After the appropriate client and user parameters have been assigned to the new user, an activation key is sent to the user&#39;s e-mail address ( 325 ). Other methods for providing the activation key can be used, such as text messaging, telephone calls, and regular mail. Upon receiving this activation key, the user provides it back to the message processing system  135  through a message session ( 330 ). Other techniques can also be used to verify the identity of the user, such as a secure website. At this point, the user may be approved for messaging by the message processing system  135  ( 332 ). After these steps, the registration process for a new user is complete ( 335 ). 
         [0031]    After registration, a user may activate a synchronous messaging application at a client terminal  130  in order to engage in messaging activities. A flowchart corresponding to a representative client terminal activation process is depicted in  FIG. 4 . The process starts ( 405 ) when a user activates a messaging application at a client terminal ( 410 ). Upon activation, the messaging application sends a presence notifier to the instant messaging server  155  from the client terminal  130  ( 415 ). This presence notifier first arrives at the client&#39;s Internet server  120  where it is redirected to the message processing system  135  ( 420 ). The message processing system  135  receives the presence notifier and retrieves the corresponding client/user parameters from the database  140  ( 425 ). The message processing system  135  then applies the policies to the user/client to determine the level of messaging activity that is permitted for that client/user ( 430 ). These policies can include any of the permissions, recording, and federation parameters previously identified in  FIG. 2 . The application of policies to a messaging event, such as a receipt of a presence notifier by the message processing system  135 , is further described below with reference to  FIG. 5 . If it is determined that the client/user has sufficient permission to utilize the messaging application, the message processing system  135  replaces the client terminal IP address with a new destination address in the presence notifier ( 435 ). According to one embodiment, the client terminal IP address is replaced with the IP address of the message processing system  135  so that all synchronous messages sent to or from the user will pass through the message processing system  135 . After replacing this IP address, the message processing system  135  forwards the presence notifier to the appropriate messaging server  155  ( 440 ) through the Internet  115 . Upon receiving the presence notifier, the messaging server  155  first changes the subscriber&#39;s status to “online” ( 445 ). The messaging server  155  next retrieves the list of the user&#39;s contacts from the subscriber parameters  165  in the messaging server  155  ( 450 ). After this, the messaging server  155  provides a presence notifier to each of the user&#39;s contacts ( 375 ) through the Internet  115 . This presence notifier includes the new destination address that points to the message processing system  135  rather than the client terminal  130  so that all synchronous messages for the user will be routed through the message processing system  135 . Further, for each contact in the user&#39;s list that is also “online”, the messaging server  155  also provides a presence notifier back to the user at the client terminal via the message processing system  135  ( 460 ). At this point, the user is ready for synchronous messaging with one of the contacts that is also “online” ( 465 ). The client terminal activation process is therefore complete ( 470 ). 
         [0032]    As mentioned previously with reference to  FIG. 1 , the synchronous message processing system can be implemented to work with a client that utilizes an enterprise messaging system  112 . In such an arrangement, intra-client synchronous messages stay within the confines of the client firewall  125  and do not pass through the message processing system  135 . Although intra-client messages are not sent outside of the client network, messaging activities can still be completed with third-party messagers through the messaging server  155 . 
         [0033]    A representative process by which a client terminal can be activated for use with an enterprise messaging system is depicted in  FIG. 4A . The process starts ( 405 A) when a user activates a messaging application at a client terminal  130  within a client network that utilizes an enterprise messaging system  112  ( 410 A). A presence notifier is first sent to the enterprise messaging system  112  within the client&#39;s firewall  125  ( 415 A). The enterprise messaging system  112  retrieves the client and user parameters corresponding to the user at the client terminal  130  from the message processing system  135  ( 420 A). According to one embodiment, the client and user parameters may also be stored in a database associated with the enterprise messaging system  112 . Next, the enterprise messaging system  112  applies the policies to the user/client to determine the permitted level of messaging activity ( 425 A). A representative process for applying policies is depicted in  FIG. 5 . If the policies permit messaging activity, then the enterprise messaging system  112  changes the user&#39;s status to “on-line” ( 430 A) and retrieves the list of the user&#39;s contacts contained within the enterprise messaging system ( 435 A). If the policies do not permit synchronous messaging by the user, then the activation process is terminated. The enterprise messaging system  112  next provides a presence notifier to each of the contacts retrieved from the database in the enterprise messaging system  112  ( 440 A). As this list of users was retrieved from the enterprise messaging system  112  in the client network, the presence notfiers will generally be sent to users within the client network. In addition, for each contact in the user&#39;s list that is also on-line, the enterprise messaging system provides a corresponding presence notifier back to the user at the client terminal ( 445 A). Once the presence notifier has been provided from the enterprise messaging system  112 , the user is ready for synchronous messaging within the client&#39;s firewall ( 450 A). 
         [0034]    As further shown in  FIG. 4A , if the client/user parameters permit messaging with users/clients outside of the client firewall  125 , then additional steps are used to activate external messaging. If, however, messaging with clients/users outside the firewall is not permitted ( 455 A), then the client terminal activation process is terminated ( 460 A). To activate external messaging for the client, then the user&#39;s presence notifier is provided by the enterprise messaging system  112  to the message processing system  135  outside the client&#39;s firewall  125  ( 470 A). The message processing system  135  replaces the client terminal IP address with a new destination address, preferably the address of the message processing system  135  itself ( 472 A). In this manner, synchronous messages to and from the user at the client terminal  130  will be routed through the message processing system  135 . After replacing the address, the message processing system  135  forwards the presence notifier to an external messaging server  155  ( 474 A). 
         [0035]    Still referring to  FIG. 4A , upon receipt of the presence notifier, the external messaging server  155  changes the user status to “on-line” ( 476 A). Next, the external messaging server  155  retrieves a list of the user&#39;s contacts from its internal database  165  ( 478 A). The external messaging server  155  then provides presence notifiers to each of the contacts in the user&#39;s list ( 480 A). In addition, for each contact in the user&#39;s list that is also indicated as “on-line” in the external messaging server  155 , the external messaging server also provides a presence notifier back to the user at the client terminal  130  via the message processing system  135  ( 482 A). At this point, the user at the client terminal is ready for external messaging with a third party user located outside of the client&#39;s firewall ( 484 A). This completes the client terminal activation process for an enterprise messaging system ( 460 A). 
         [0036]    As mentioned previously, policies can be applied to a variety of messaging events, including, for example, the receipt of an outbound presence notifier, the receipt of an inbound presence notifier, the receipt of an incoming synchronous message, or the receipt of an outbound synchronous message. Accordingly, a flowchart illustrating a representative process in which policies are applied to a particular messaging event is depicted in  FIG. 5 . The process starts ( 505 ) when an inbound or outbound messaging event is received by the message processing system ( 510 ). Although  FIG. 5  and the following description makes reference to the receipt and processing of messaging events by the message processing system  135 , the event can also be received and processed by an enterprise messaging system  112 . Upon receiving an inbound or outbound messaging event, the message processing system  135  retrieves the client/user parameters corresponding to the source and/or destination of the messaging events ( 515 ). After this, the message processing system  135  tests the messaging event against the client-level permissions ( 520 ). If the event is not permitted by the client-level permissions ( 525 ) then the event may be terminated by the message processing system  135  ( 530 ). If the client-level permissions permit the messaging event, then the message processing system next tests the event against the user-level permissions ( 535 ). If the messaging event is not permitted by the user-level permissions ( 540 ), then the event is terminated by the message processing system  135  ( 530 ). If the event is permitted by the user-level permissions, then the message processing system  135  next applies the recording parameters to the event ( 545 ). As mentioned previously, these recording parameters can include journaling, archiving or logging of the messaging event. Next, the message processing system applies content screening to the event ( 550 ). The process of screening a message for content is described in more below with reference to  FIG. 5A  If the content is not acceptable ( 555 ), then one of the screening parameters is applied to the message ( 560 ). These screening parameters include notifying an administrator of the message ( 560 A), blocking the messaging event ( 560 B), redacting the event ( 560 C), queuing the event ( 560 D), warning the user ( 560 E), and quarantining the messaging event ( 560 F). If the content screening process determines that the message content is acceptable, then the message will be forwarded to the desired recipient ( 565 ). At this point, the process of applying policies to a messaging event is complete ( 570 ). It should be noted that the process of testing permissions, applying recording parameters, and applying content screening can be performed in any order, not just the order depicted in  FIG. 5 . 
         [0037]    A representative process for screening the content of a messaging event is depicted in  FIG. 5A , and is described below. The content screening process starts ( 505 A) by determining if the messaging event is inbound from outside the client network ( 507 A). If the messaging event is inbound, then the following reputation scoring steps may be performed. First, metadata is scraped from the incoming message ( 510 A). This metadata may include an IP address corresponding to the source or destination of the message and screen names corresponding to the sender or receiver of the message. This metadata is processed with certain scoring algorithms to determine the reputation score for the message event ( 515 A). The processing of the metadata can be performed by either a message processing system  135  or by an enterprise messaging system  112 , depending upon the particular configuration of the synchronous messaging system. After a reputation score has been calculated, a client/user reputation policies are applied to the incoming messaging event based upon the reputation score ( 520 A). If the messaging event violates the reputation policies ( 525 A), then appropriate screening parameters will be applied to the messaging event ( 530 A) as described in step  560  in  FIG. 5 . If the messaging event does not violate reputation policies, the actual message content is next evaluated for policy violations ( 535 A). 
         [0038]    Still referring to  FIG. 5A , testing the actual message content comprises evaluating the text of a particular text message, evaluating the hyperlinks contained within an actual text message, or applying other qualitative tests to the message content to determine if it violates a particular policy. If the message content does violate a policy ( 540 A), then appropriate screening parameters will be applied to the messaging event ( 545 A) as indicated in step  560  of  FIG. 5 . If the message content does not violate the policy, then the attachments are evaluated for other policy violations such as virus, Spyware, inappropriate hyperlinks, or other Malware ( 550 A). If the attachments violate the policy ( 555 A), then appropriate screening parameters will be applied to the message ( 560 A) as indicated in step  560  in  FIG. 5 . If the attachments do not violate policy, then the messaging event does not violate any of the content policies and may be forwarded to the destination user ( 565 A). At this point, the content screening process is complete ( 570 A). 
         [0039]    A flowchart corresponding to the process by which a third-party can activate a terminal for synchronous messaging is depicted in  FIG. 6 . The process starts ( 605 ) when a third-party user activates a messaging application at a third-party terminal  145  ( 610 ). Upon activation of the messaging application at the third-party terminal  145 , a presence notifier is sent to the messaging server  155  through the Internet  115  ( 615 ). The messaging server  155  changes the third-party user status to “online” ( 620 ). The messaging server  155  then retrieves the designated contacts for that third-party user from the messaging server database ( 625 ). These contacts can include users from within a client network. After this, the messaging server  155  provides a presence notifier to each of the third-party user&#39;s contacts ( 630 ). If no users from a client network are part of the third-party user&#39;s contacts ( 635 ), then no activity will be required by the message processing system  135  ( 640 ). On the other hand, if a user from a client network is part of the third-party user&#39;s contacts, the messaging server  155  provides the presence notifier to the destination address corresponding to the message processing system  135  ( 645 ). Upon receiving the presence notifier, the message processing system  135  retrieves the client/user properties corresponding to the destination user in the client network ( 650 ). Next, the message processing system  135  applies policies to determine the level of permitted messaging activity by the user ( 655 ). A representative process for applying policies to messaging events is depicted in  FIG. 5 . If messaging is permitted ( 660 ), then the message processing system  135  retrieves the actual IP address corresponding to the destination user in the client network ( 665 ). After this, the message processing system  135  provides the third-party user&#39;s presence notifier to the user at the client terminal ( 670 ). At this point, the user at the client terminal  130  is ready to engage in synchronous messaging with a third-party user ( 675 ). If, however, external messaging is not permitted by the client/user policies, then the inbound presence notifier is stopped by the message processing system  135  ( 680 ). 
         [0040]    A representative process for sending an outgoing message in a client network is depicted in  FIG. 7 . The process starts ( 705 ) when a user in a client network sends a synchronous message to another user from a client terminal  130  ( 710 ). The outgoing message is first sent to the client&#39;s Internet server  120  which redirects the outgoing message to the message processing system  135  ( 715 ). Upon receiving the outgoing message, the message processing system  135  retrieves the client and user parameters corresponding to the sending user ( 720 ). If the destination user is also a subscriber to the message processing system  135 , then the destination user&#39;s parameters may also be retrieved. Next, the message processing system  135  applies the policies to determine the level of permitted messaging activity by the client user ( 725 ). This step may include some or all of the policy testing and content screening processes described in  FIGS. 5 and 5A . If the source user or destination user does not have permission for the synchronous message ( 730 ), then the message is stopped by the message processing system  135  ( 735 ). On the other hand, if the users have sufficient permission for outbound messaging, then the message processing system forwards the outgoing message to the destination user ( 740 ). At this point, the outgoing message process is complete ( 745 ). 
         [0041]    A flowchart corresponding to a representative process in which an outgoing message is sent from a user of an enterprise messaging system is depicted in  FIG. 7A . The process starts ( 705 A) when a user located within a client network sends a message to a destination user from a client terminal ( 710 A). The message is first sent to the enterprise messaging system  112  within the client&#39;s firewall  125  ( 715 A). Upon receiving the message, the enterprise messaging system  112  retrieves the client and user parameters corresponding to the client/user ( 720 A). This may be done from the message processing system  135 , or from a database in the enterprise messaging system  112 . The enterprise messaging system  112  next applies policies to the user to determine the level of permitted messaging activity ( 725 A). This step may include some or all of the policy testing and content screening processes described in  FIGS. 5 and 5A . If the user does not have permission for outbound messaging ( 730 A), then the outbound message is stopped by the enterprise messaging system ( 735 A). If, however, the user does have permission for outbound messaging and the message does not violate any policies, then the enterprise messaging system  112  forwards the outgoing message to the destination user ( 740 A). At this point, the outgoing message process for a client/user within an enterprise messaging system is complete ( 745 A). 
         [0042]    A representative process for processing an incoming message according to another embodiment is depicted in  FIG. 8 . The process starts ( 805 ) when a third-party user sends a synchronous message to a client user at a client terminal  130  ( 810 ). Since the destination address of the client user was replaced with an address corresponding to the message processing system  135 , the message will be delivered to the message processing system  135  rather than directly to the client user. Upon receiving the incoming message ( 815 ), the message processing system  135  retrieves the client and user parameters corresponding to the client user ( 820 ). Next, the message processing system  135  applies the policies to the message to determine the level of permitted messaging activity ( 825 ). This step may include some or all of the policy testing and content screening processes described in  FIGS. 5 and 5A . If the client user does not have sufficient permission to receive an incoming message, or if the inbound message violates the content policy ( 830 ), the incoming synchronous message is stopped by the message processing system  135  ( 835 ). On the other hand, if the incoming message is approved, then the message processing system will forward the incoming message to the IP address corresponding to the user&#39;s client terminal  130  ( 840 ). At this point, the incoming message process is complete ( 845 ). 
         [0043]    A flowchart corresponding to a representative process by which incoming messages are processed by an enterprise messaging system  112  is depicted in  FIG. 8A . The process starts ( 805 A) when the enterprise messaging system  112  receives an incoming message for a client/user within the enterprise messaging network ( 810 A). The enterprise messaging system  112  first retrieves the client and user parameters corresponding to the destination user from the message processing system  135  ( 815 A). As mentioned previously, these parameters may be stored in the message processing system  135 , or in a database in the enterprise messaging system  112 . Next, the enterprise messaging system  112  applies policies to the destination client/user to determine the level of permitted messaging activity ( 820 A). This step may include some or all of the policy testing and content screening processes described in  FIGS. 5 and 5A . If the client/user does not have sufficient permission for inbound messaging, or if the inbound message violates the content policies ( 825 A), the incoming message is stopped by the enterprise messaging system  112  ( 830 A). If, however, the client/user does have permission for inbound messaging and the incoming message does not violate the content policies, then the enterprise messaging system  112  will forward the incoming message to the user at the client terminal  130  ( 835 A). At this point, the incoming message process for an enterprise messaging system  112  is complete ( 840 A). 
         [0044]    A flowchart corresponding to a representative process by which messages can be passed between federated enterprise messaging system  112  is depicted in  FIG. 9 . As mentioned previously, with reference to  FIG. 1 , client A  105  and client B  110  each may have an enterprise messaging system  112  located within the client&#39;s respective networks. The message processing system  135  can facilitate the sharing of messages between these enterprise messaging systems  112  by collecting and federating information about the respective enterprise messaging systems  112 . Such information is stored in the database  140  of the message processing system  135 . The process for sharing messages between these federated enterprise messaging systems  112  starts ( 905 ) with a source user within the client A  105  attempting to send a message to a destination user within client B  110  from a client terminal ( 910 ). A message is first sent to the enterprise messaging system  112  within the source client&#39;s firewall  125  ( 915 ). That enterprise messaging system  112  will retrieve the client and user parameters corresponding to the source user from either the message processing system  135  or from an internal database, depending upon the particular embodiment ( 920 ). The enterprise messaging system  112  then applies the policies to the source user to determine the level of permitted messaging activity ( 925 ). This step may include some or all of the policy testing and content screening processes described in  FIGS. 5 and 5A . 
         [0045]    If the source user does not sufficient permission for outbound messaging, or if the message violates the content policies ( 930 ), then the message is stopped by the enterprise messaging system  112  in the source user&#39;s network ( 935 ). If, however, the source user does have sufficient permission for outbound messaging and the message does not violate the content policies, then the enterprise messaging system  112  within the source user&#39;s network forwards the outgoing message to the message processing system  135  ( 940 ). The message processing system  135  then retrieves the federation policies corresponding to the source and destination users ( 945 ). Those federation policies are then applied to the outgoing message by the message processing system  135  ( 950 ). If the federation properties permit inter-client messaging, the message processing system  135  replaces the source IP address in the message with an address for the message processing system  135  ( 955 ). The message processing system  135  then forwards the message to the destination enterprise messaging system  112  ( 960 ). The destination enterprise messaging system  112  may then apply its policies and forward the message to the appropriate destination user ( 965 ). At this point, the process for forwarding a message from one federated enterprise messaging system  112  to another is complete ( 970 ). Return messages can be sent using the same method in reverse. 
         [0046]    While various embodiments in accordance with the principles disclosed herein have been described above, it should be understood that they have been presented by way of example only, and are not limiting. Thus, the breadth and scope of the invention(s) should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the claims and their equivalents issuing from this disclosure. Furthermore, the above advantages and features are provided in described embodiments, but shall not limit the application of such issued claims to processes and structures accomplishing any or all of the above advantages. 
         [0047]    Additionally, the section headings herein are provided for consistency with the suggestions under 37 CFR 1.77 or otherwise to provide organizational cues. These headings shall not limit or characterize the invention(s) set out in any claims that may issue from this disclosure. Specifically and by way of example, although the headings refer to a “Technical Field,” such claims should not be limited by the language chosen under this heading to describe the so-called technical field. Further, a description of a technology in the “Background” is not to be construed as an admission that technology is prior art to any invention(s) in this disclosure. Neither is the “Summary” to be considered as a characterization of the invention(s) set forth in issued claims. Furthermore, any reference in this disclosure to “invention” in the singular should not be used to argue that there is only a single point of novelty in this disclosure. Multiple inventions may be set forth according to the limitations of the multiple claims issuing from this disclosure, and such claims accordingly define the invention(s), and their equivalents, that are protected thereby. In all instances, the scope of such claims shall be considered on their own merits in light of this disclosure, but should not be constrained by the headings set forth herein.