Patent Publication Number: US-7725548-B2

Title: Computer-readable recording medium recording communication programs, communication method and communication apparatus

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   This application is based upon and claims the benefits of priority from the prior Japanese Patent Application No. 2005-360905, filed Dec. 14, 2005, the entire contents of which are incorporated herein by reference. 
   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The present invention relates to a computer-readable recording medium which records communication programs, a communication method and a communication apparatus. More particularly, the present invention relates to a computer-readable recording medium which records communication programs for performing collaboration between client terminals using a plurality of types of communication units having device type information and user identification information, a communication method, and a communication apparatus. 
   2. Description of the Related Art 
   Recently, it is recognized that collaboration by a plurality of persons using a computer system is effective for the improvement of intellectual productivity. When this collaboration is performed, data sharing using a network is facilitated. Therefore, collaboration in cooperation with network users can be smoothly performed. Consequently, there are developed groupware products such as an address book having a function of supporting communication among users or electronic conference aiding applications for carrying out editing and browsing of files while sharing an application. 
   On the other hand, one user recently has a plurality of terminal devices. Further, also a wide variety of tools capable of performing collaboration are found. Thus, the collaboration method becomes diverse. In parallel with this tendency, communication (multimodal) simultaneously using a plurality of terminal devices or applications is generally performed. For example, the following collaboration styles are established. An application of Personal Computer (PCs) is shared during a phone conversation, or textual information such as a Uniform Resource Locator (URL) or a phone number is communicated through an instant message (hereinafter, referred to as an “IM”) or chat. 
   Accordingly, for example, when receiving a phone call from a partner, unless the condition of the partner is confirmed, a suitable collaboration cannot be performed. This is because an available collaboration method varies depending on the situation where the partner makes a call using a fixed Internet Protocol (IP) phone or using a softphone which operates on the PC. Thus, a procedure in performing collaboration becomes extremely complicated. 
   Further, in a case where a user having a plurality of terminal devices or a plurality of Identifications (IDs) properly uses the terminal devices or the IDs at the right place and the right time, the user must individually examine for himself a PC IP address or an IM or chat ID used or must confirm it with the partner. Further, in a case of sharing an application to perform collaboration, both the users must confirm whether an application with an application sharing function is installed or whether these applications have interconnectibility. Moreover, even after the collaboration method is determined, the user must input access destination information into the PC to start the collaboration. 
   Some softphones which operate on the PC have a mere call function or message function as well as a collaboration function such as a file transfer function, an application sharing function and a shared whiteboard function. Further, some softphones have a user state monitoring function called a buddy list. When previously registering on the buddy list a SIP URI (ID for an application which communicates using a Session Initiation Protocol (SIP) such as an IP phone or an IM) of a specific user, a user can always confirm a softphone state (such as on-line or off-line) of the specific user. Further, when selecting the softphone, a user can easily make a call, transmit a message by an IM, or perform application sharing. However, use of a buddy list is limited to that within one terminal device and therefore, the buddy list is available only in a phone or IM using a softphone. Moreover, the application sharing function is available only in a PC having installed therein the softphone. Further, by orally confirming an application available to a partner or by manually performing a format conversion if unable to perform the application sharing, a user must transmit a file in some way. Therefore, it is difficult for a user to select a suitable collaboration method. Accordingly, when one user uses a plurality of varied terminal devices at the same time, a complicated procedure is required. 
   Therefore, there is known a method for holding phone call session information and specifying, when an access request by another communication method is made, a partner from the session information to thereby establish a connection (see, e.g., Japanese Unexamined Patent Publication No. 2001-94671). According to Japanese Unexamined Patent Publication No. 2001-94671, in the act of making a line response in a call center, a customer and an operator can share a World Wide Web (Web) screen and the customer can make a reservation for a phone from the Web screen. Therefore, without specifying a partner ID, the customer can make a call and share a Web page. 
   However, in Japanese Patent Application Publication Unexamined No. 2001-94671, the following problems occur. That is, the use environment of the collaboration tools is limited to a call center. Further, the collaboration method is limited to a collaboration using a phone and a Web and therefore, is rarely applied to general collaboration using various communication tools or applications. 
   Accordingly, when each of a plurality of users performs collaboration using a plurality of terminal devices, the users cannot easily find that which application is available to themselves and which terminal device and ID are available to make an access. Further, the users cannot easily control their communication media and applications. Therefore, the users cannot fluently perform collaboration. 
   SUMMARY OF THE INVENTION 
   In view of the foregoing, it is an object of the present invention to provide a computer-readable recording medium which records communication programs, communication method and communication apparatus capable of easily performing selection and execution of communication units according to communication units available to communication partners. 
   To accomplish the above objects, according to one aspect of the present invention, there is provided a computer-readable recording medium which records a communication program for performing collaboration between client terminals using a plurality of types of communication units having device type information and user identification information. The program recorded on the computer-readable recording medium allows a computer to serve as: a profile management unit which manages, for each user, specific information including a combination of the device type information and the user identification information in each of the communication units, and a user ID associated with the combined information; an application controller which, when a session using any one of the communication units is established between users, refers to the specific information managed by the profile management unit and associates the user ID with the combination of the device type information and the user identification information in each of the communication units where the session is established; a collection unit which collects presence information where state information indicating whether the communication unit is available is associated with the combination of the device type information and the user identification information in each of the communication units; and a presence management unit which, when the user ID is specified by the application controller, refers to the presence information and reports the presence information to the client terminals of the users where the session is established. 
   According to another aspect of the present invention, there is provided a communication method for performing collaboration between client terminals using a plurality of types of communication units having device type information and user identification information. This communication method comprises the steps of: managing, for each user, specific information including a combination of the device type information and the user identification information in each of the communication units, and a user ID associated with the combined information; referring to, when a session using any one of the communication units is established between users, the specific information and associating the user ID with the combination of the device type information and the user identification information in each of the communication units where the session is established; collecting presence information where state information indicating whether the communication unit is available is associated with the combination of the device type information and the user identification information in each of the communication units; and referring to, when the user ID is specified, the presence information and reports the presence information to the client terminals of the users where the session is established. 
   According to yet another aspect of the present invention, there is provided a communication apparatus for performing collaboration between client terminals using a plurality of types of communication units having device type information and user identification information. This apparatus comprises: a profile management unit which manages, for each user, specific information including a combination of the device type information and the user identification information in each of the communication units, and a user ID associated with the combined information; an application controller which, when a session using any one of the communication units is established between users, refers to the specific information managed by the profile management unit and associates the user ID with the combination of the device type information and the user identification information in each of the communication units where the session is established; a collection unit which collects presence information where state information indicating whether the communication unit is available is associated with the combination of the device type information and the user identification information in each of the communication units; and a presence management unit which, when the user ID is specified by the application controller, refers to the presence information and reports the presence information to the client terminals of the users where the session is established. 
   The above and other objects, features and advantages of the present invention will become apparent from the following description when taken in conjunction with the accompanying drawings which illustrate preferred embodiments of the present invention by way of example. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates a principle of the present invention. 
       FIG. 2  shows a system configuration example according to a first embodiment. 
       FIG. 3  shows a hardware configuration of a server used in the present embodiment. 
       FIG. 4  is a block diagram showing functions of a server and a client. 
       FIG. 5  illustrates an outline of an operation in a communication system. 
       FIG. 6  shows an operation screen of an application control UI according to a first embodiment. 
       FIG. 7  shows a user profile table. 
       FIG. 8  shows a processing sequence in a registration phase of a user profile. 
       FIG. 9  shows a presence table. 
       FIG. 10  shows a processing sequence in a presence collection and reporting phase of communication media (an example of VoIP). 
       FIG. 11  shows a processing sequence in a presence collection and reporting phase of an application. 
       FIG. 12  shows a processing sequence in a collaboration addition phase using an IP phone. 
       FIG. 13  shows a processing sequence in a collaboration addition phase in the case of performing a file transmission. 
       FIG. 14  is a block diagram showing a system according to a second embodiment. 
       FIG. 15  shows a user profile table according to a second embodiment. 
       FIG. 16  shows a preference table. 
       FIG. 17  is a flowchart for illustrating a processing sequence in a collaboration addition phase according to a second embodiment. 
       FIG. 18  is a block diagram showing a system according to a third embodiment. 
       FIG. 19  shows an application data profile table. 
       FIG. 20  is a flowchart for illustrating a processing sequence in a collaboration addition phase according to a third embodiment. 
       FIG. 21  is a flowchart for illustrating a processing sequence in a collaboration addition phase according to a third embodiment. 
       FIG. 22  is a block diagram showing a system according to a fifth embodiment. 
       FIG. 23  shows an operation screen of an application control UI according to a fifth embodiment. 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   Preferred embodiments of the present invention will be described in detail below with reference to the accompanying drawings, wherein like reference numerals refer to like elements throughout. 
   First, an outline of the invention applied to the embodiment will be described and then, a specific content of the embodiment will be described. 
     FIG. 1  illustrates a principle of the present invention. 
   A communication system  40  shown in  FIG. 1  comprises client terminals  1  and  1   a  each having the same functions, and a server  2 . 
   The client terminal  1  ( 1   a ) has an information management unit  7  ( 7   a ) and an application control UI  8  ( 8   a ). 
   The information management unit  7  ( 7   a ) collects, from a communication unit  23  ( 23   a ) within the terminal device, information on application states or on peripheral devices and services, and registers the information on the server  2 . 
   The application control UI  8  ( 8   a ) is a user interface which obtains, from the server  2 , computer environment information of a user himself and collaboration partner and displays the information to perform an operation for collaboration with the client terminal  1   a  ( 1 ) of a communication partner. 
   The server  2  has a profile management unit  3 , an application controller  4 , a collection unit  5  and a presence management unit  6 . 
   The profile management unit  3  manages specific information  3   a  including a combination of device type information and user identification information in each communication unit, and a user ID associated with the combined information. 
   The application controller  4 , when a session using any one of the communication units is established between users, refers to the specific information  3   a  managed by the profile management unit  3  and associates the user ID with the combination of the device type information and user identification information in the communication units where the session is established. 
   Further, the application controller  4  performs control of various types of the communication units. For example, the controller  4  creates a new session, obtains session information from a dedicated server such as an SIP server or an IM server, for example, when the communication unit is a unit using a Voice over Internet Protocol (VoIP) or an IM, and performs a file transmission. 
   The collection unit  5  collects presence information  5   a  where state information indicating whether the communication unit is available is associated with the device type information and user identification information in each communication unit. 
   This presence information  5   a  stores data collected from the information management unit  7  ( 7   a ) or data collected from the communication units  21  and  22  through a dedicated server (not shown). 
   The presence management unit  6 , when the user ID is specified by the application controller  4 , refers to the presence information  5   a  and reports the presence information in the communication unit available to a communication partner to each of the client terminals  1  and  1   a  of users where the session is established. 
   According to such a communication system  40 , information on the communication units  21 ,  22 ,  23  and  23   a  is collected into the presence management unit  6  of the server  2  through the information management units  7  and  7   a . Further, when a session, for example, between the communication units  21  and  22  is established, presence information of a communication partner is reported to each of the application control UIs  8  and  8   a . This information contains information necessary for performing collaboration with a communication partner, for example, an IP address or a user ID. Therefore, by operating the application control UI  8  ( 8   a ), a user can easily realize the collaboration without confirming the IP address or the user ID with a partner or without directly inputting it manually. 
   Embodiments of the present invention will be described in detail below. 
     FIG. 2  shows a system configuration example according to a first embodiment. 
   A communication system  500  shown in  FIG. 2  is a system having a function of automatically adding the collaboration based on existing session information. In the system  500 , a server  100 , clients  200  and  201 , a SIP server  300  and an IM server  400  are connected to each other through a network  10 . 
   Further, a collaboration group  50  composed of the client  200  and communication media  60 , and a collaboration group  51  composed of the client  201  and communication media  65  are formed in the communication system  500 . 
   In each of the clients  200  and  201 , applications for an IM, an e-mail and a file transfer unit are installed. 
   The communication media  60  has a mobile-phone  61 , an IP phone  62  with an IP address for performing a real-time voice call using an Internet and a softphone (software phone)  63  for operating on the application of the client  200 . 
   Each of the mobile-phone  61 , the IP phone  62 , the softphone  63  and the respective applications of the client  200  forms a communication tool for performing the collaboration with the collaboration group  51 . 
   The communication media  65  has a mobile-phone  66 , IP phone  67  and softphone  68  each having the same function as that of each tool of the communication media  60 . 
   Each of the mobile-phone  66 , the IP phone  67 , the softphone  68  and the respective applications of the client  201  forms a communication tool for performing the collaboration with the collaboration group  50 . 
   A user A and a user B perform the collaboration with each other using the communication tools of the collaboration group  50  and the collaboration group  51 , respectively. 
   The server  100  is a computer which collects information from the clients  200  and  201  and manages the information. 
   The SIP server  300  helps as an intermediary processing such as VoIP session establishment, editing or completion which is performed between communication tools. Further, the IM server  400  has a function of managing and referring to user presence information on IM and performing transmission and reception of the IM. That is, the SIP server  300  and the IM server  400  have a function of reporting event or presence information on the VoIP or the IM to the outside. These servers are preferably a server such as Parlay (trademark) having an open interface or a SIP application server for obtaining a SIP signaling program. 
   Next, a hardware configuration of a server used in the present embodiment will be described. 
     FIG. 3  shows a hardware configuration of a server used in the present embodiment. 
   The server  100  as a whole is controlled by a Central Processing Unit (CPU)  101 . To the CPU  101 , a Random Access Memory (RAM)  102 , a Hard Disk Drive (HDD)  103 , a graphics processing unit  104 , an input interface  105  and a communication interface  106  are connected through a bus  107 . 
   The RAM  102  temporarily stores at least a part of an Operating System (OS) program or application program executed by the CPU  101 . The RAM  102  stores various data necessary for processing through the CPU  101 . The HDD  103  stores the OS and application programs. Further, the HDD  103  stores a program file. 
   To the graphics processing unit  104 , a monitor  11  is connected. The graphics processing unit  104  displays an image on a screen of the monitor  11  in accordance with commands from the CPU  101 . To the input interface  105 , a keyboard  12  and a mouse  13  are connected. The input interface  105  transmits to the CPU  101  through the bus  107  a signal transmitted from the keyboard  12  or the mouse  13 . 
   The communication interface  106  is connected to the network  10 . The communication interface  106  transmits and receives data to and from other computers through the network  10 . 
   By the above-described hardware configuration, the processing function of the present embodiment can be realized.  FIG. 3  shows the configuration of the server  100 . Further, also the clients  200  and  201  can be realized by using the same hardware. 
   In order to perform the collaboration in the system with the above-described hardware configuration, the following functions are provided within the server  100  and the clients  200  and  201 . 
     FIG. 4  is a block diagram showing functions of a server and a client. 
   The server  100  has an application controller  110 , a presence management unit  120 , a presence database  130 , a profile management unit  140 , a profile database  150  and an interface unit  160 . 
   The application controller  110  performs control of various types of the applications or the communication media  60  and  65  as follows. That is, the controller  110  creates a new session, obtains session information from the SIP server  300  or the IM server  400 , and performs a file transmission. 
   Further, the application controller  110 , when obtaining presence information from the SIP server  300  or the IM server  400 , converts the information into a format readable by the presence management unit  120 , if necessary, and then transmits the information to the presence management unit  120 . Examples of the presence information transmitted to the unit  120  include: the SIP URI and IP address of a communication tool of the user A; information indicating whether the communication tool is on-line, off-line or busy when the tool is the mobile-phone  61 , the IP phone  62  or the softphone  63 ; and the SIP URI of the mobile-phone  66 , IP phone  67  or softphone  68  of the user B as a communication partner when the tool is busy. 
   The presence management unit  120 , when obtaining presence information from the application controller  110  or the after-mentioned local application information management unit  230 , stores and manages the information in the presence database  130  for each user and reports the information to the clients  200  and  201  depending on circumstances. 
   The profile management unit  140 , when obtaining a user profile in which the respective specific information units including a combination of media type (device type information) and media ID (user identification information) in the communication media  60  or the client  200 , and a user ID of the user A associated with the combined information are associated with each other, stores and manages the user profile in the profile database  150 . The user profile will be described in detail later. 
   The interface unit  160  performs data communication through the network  10  in accordance with Transmission Control Protocol (TCP)/IP. 
   Next, the clients  200  and  201  will be described. 
   The principal units of functions in the clients  200  and  201  are equivalent to each other and therefore, a function of the client  200  will be typically described. 
   The client  200  has an application  210 , an application control UI  220 , a local application information management unit  230 , a profile operation UI  240  and an interface unit  250 . 
   The application  210  is an application installed on the client  200 . 
   The application control UI  220  is a user interface which obtains communication tool environment information of the user A and the user B from the server  100  and displays the information, for example, on the monitor  11  to perform the operation for the collaboration. 
   The local application information management unit  230  refers to, for example, a registry or searches a specific folder to thereby collect a state of the application  210 , such as what the type of the installed application  210  is, or whether the application  210  has an application sharing function, and to register the state on the server  100 . 
   The profile operation UI  240  is a user interface which, when a user performs a profile registration operation by the input using the keyboard  12  or mouse  13 , transmits the registration information to the profile management unit  140 . 
   The interface unit  250  has the same function as that of the interface unit  160 . 
   The functions of the client  201  are hereinafter represented by putting “a” on a foot of each unit of the functions in the client  200 . For example, the application control UI of the client  201  is represented as an application control UI  220   a.    
     FIG. 5  illustrates an outline of an operation in a communication system. 
   In  FIG. 5 , description of the IM server  400  and a part of functions of the server  100  as well as that of a part of functions of the clients  200  and  201  are omitted. 
   When the client  200  starts up, the local application information management unit  230  checks the application  210  installed within the client  200  and reports as presence information of the user A the obtained information to the presence management unit  120 . 
   On the other hand, the presence information of the mobile-phone  61 , the IP phone  62  and the softphone  63  is reported from the SIP server  300  or the IM server  400  to the presence management unit  120  through the application controller  110 . This operation is performed for a communication tool in each user. 
   Herein, as to which presence information is reported from the SIP server  300  and the IM server  400 , when the user A and the user B register their own SIP URI on the profile management unit  140  (in the after-mentioned registration phase of the user profile), the application controller  110  gives instructions to the SIP server  300  and the IM server  400 . 
   The presence management unit  120  classifies and manages for each user the presence information reported from the application controller  110  or the local application information management unit  230 . When the session between a communication tool of the user A and a communication tool of the user B is established (including a case where the session is already established at the time when a client is activated), the presence management unit  120  transmits the presence information of the users A and B to each of the application control UI  220  of the client  200  and the application control UI  220   a  of the client  201 . 
   Herein, for example, when receiving the presence information of the user B, the application control UI  220  makes that effect pop-up on the monitor  11  to display the presence information of the user B, that is, a communication tool available to the user B. The display method is not particularly limited. Examples of the display method include a method for displaying at sight the whole presence information of the client  200  and the client  201  (transmission source and destination) and a method for highlighting only the communication tools mutually available to each other. Consequently, the user A can find the application  210   a  or communication media  65  available to the user B. 
     FIG. 6  shows an operation screen of the application control UI according to the first embodiment. 
   The application control UI  220  displays on an operation screen  11   a  a collaboration confirmation unit  14  such as an icon for confirming a state of the collaboration. Further, the application control UI  220 , when the collaboration with a communication tool used by the user B is established, displays a dialogue balloon  15  to report the presence information to the user A. Further, when the user A clicks the collaboration confirmation unit  14 , the UI  220  displays on the operation screen  11   a  a communication tool environment screen  16  indicating a communication tool currently available to the user B. 
   Further, on the communication tool environment screen  16 , items and icons  16   a  to  16   f  associated with the items are displayed for each communication tool. For example, when a softphone, a fixed IP phone and a mobile IP phone are available as a voice communication tool, these are displayed as each item of the telephone as shown in  FIG. 6 . 
   Thereafter, when the user A double-clicks, for example, the icon  16   a  to select a communication tool displayed on the communication tool environment screen  16 , the application control UI  220  allows the application control UI  220   a  to execute corresponding processing through the server  100 . For example, the application control UI  220  performs file transmission and the application control UI  220   a  makes a reaction corresponding to the file. 
   When selecting the respective items of the communication tool environment screen  16 , the user A can start the collaboration with the user B by using the selected communication tool. 
   In order to perform this collaboration, the communication system  500  executes three phases of the user profile registration phase, the presence collection and reporting phase and the collaboration addition phase. The respective phases will be described below step by step. 
   &lt;Registration Phase of User Profile&gt; 
   The registration phase of user profile is a phase executed when the user A registers on the server  100  a user profile as information on the user ID given to various communication media. 
   The user A operates the profile operation UI  240  to access the profile management unit  140  of the server  100  and to store a user profile in the profile database  150 . 
   On this occasion, when information on the media is updated, an event report request is made to thereby surely report the event information (for example, in the case of an IP phone, information updated when the phone line is made busy or when the phone is logged in) to the SIP server  300 . The event report request will be described in detail below. 
   Next, a user profile stored in the profile database  150  will be described. 
   In the present embodiment, the user profile is tabulated and stored. 
   The user profile may be expressed, for example, by extensible Markup Language (XML). 
     FIG. 7  shows a user profile table. 
   A user profile table  151  has columns (attributes) of the user ID, media type, media ID and explanation. Laterally arranged items in the respective columns are associated with each other to form one user profile. 
   In the column of the user ID, there are set the user ID “foo” as an identifier of the user A and user ID “goo” as an identifier of the user B in the communication system  500 . 
   In the column of the media type, device type information of the communication media  60  and application  210  available to the user A is set in association with the user ID “foo”. Further, device type information of the communication media  65  and application  210   a  available to the user B is set in association with the user ID “goo”. 
   Herein, for example, “voip” of the user ID “foo” means a media type of the mobile-phone  61 , the IP phone  62  and the softphone  63 , “im” means a media type of an instant message, “mail” means a media type of a mail address of the mobile-phone  61 , and “collabo” means a media type allocated to a client program of the client  200 . That is, the “collabo” is a concept containing the application control UI  220 , the local application information management unit  230  and the profile operation UI  240 . 
   In the column of the media ID, IDs for specifying communication media or applications (communication media- or application-specific ID) are set. 
   In the column of the explanation, there is set (described) a concrete explanation that the media ID is given to which media. The explanation which is set in this explanation column is described in each item of the communication tool environment screen  16 . 
   Thus, a communication tool of which the presence information is reported from the local application information management unit  230  and the local application information management unit  230   a  to the presence management unit  120  and a communication tool of which the presence information is reported from the SIP server  300  and the IM server  400  to the presence management unit  120  are set individually. 
   Next, a processing sequence (processing operation) in the registration phase of the user profile will be described by taking as an example the registration phase of the IP phone. 
     FIG. 8  shows a processing sequence in the registration phase of the user profile. 
   First, the profile operation UI  240 , when confirming a log-in request made by the input of the user ID and password by the user A, transmits the log-in information (authentication information) to the profile management unit  140  (step S 11 ). 
   Next, the authentication of the user is performed. When the user is authenticated, the profile operation UI  240  gets the existing user profile from the profile management unit  140  (step S 12 ). 
   Thereafter, when the user A operates the profile operation UI  240  to update (register or delete) the user profile, the profile operation UI  240  transmits to the profile management unit  140  the updated user profile containing information of a media type, a media ID and an explanation (step S 13 ). 
   Further, the profile management unit  140  makes an event report request to the SIP server  300  (step S 14 ). When this event report request is the registration of the SIP URI, the unit  140  makes an information transmission request (subscribe) to the SIP server  300  or the IM server  400  to instruct the server to transmit the event. Further, when the event is the change of the SIP URI, the unit  140  performs deletion (unsubscribe) of an old SIP URI and then makes a transmission request of a new SIP URI. Further, when the event is the deletion of the SIP URI, the unit  140  performs deletion of the corresponding SIP URI. 
   Thereafter, the profile management unit  140  updates the user profile table  151  (step S 15 ). 
   With that, the processing sequence in the registration phase of the user profile is completed. 
   &lt;Presence Collection and Reporting Phase&gt; 
   The presence collection and reporting phase is a phase executed when the server  100  obtains as presence information the present state (online, offline, busy or installed) of the communication media  60  and application  210  used by the user A and the present state of the communication media  65  and application  210   a  used by the user B and thereafter, the server  100  reports the obtained presence information of a communication partner to each of the communicating clients  200  and  201 . This collecting method of the presence information varies depending on the communication tool. 
   For example, the presence information of the communication media  60  and  65  is collected as follows. That is, by causing a call event (event), the SIP server  300  and the IM server  400  report the event to the application controller  110 . The application controller  110 , when receiving the call event, checks a format of the event. If the format must be converted, the controller  110  converts the format into another for writing the event in the presence database  130 . For example, when a file in the XML format is stored in the presence database  130 , the controller  110  executes schema conversion. Further, the application controller  110  refers to the user profile table  151  through the profile management unit  140  and searches for a user ID in the SIP URI of the VoIP or the IM to associate the user ID with the client  200  so as to obtain the presence information for each user. Thereafter, the application controller  110  transmits the presence information to the presence management unit  120 . The presence management unit  120  stores the received presence information in the presence database  130 . 
   On the other hand, the presence information of the application  210  is collected as follows. That is, the local application information management unit  230  refers to a registry of the client  200  or searches a specific folder. Alternatively, users register an application used in the collaboration. Thus, the unit  230  obtains the presence information from the database having recorded therein system or application software configuration data. The unit  230  obtains also the presence information of the application  210   a  in the same manner as in the application  210 . 
   In the presence database  130 , the presence information is, for example, tabulated and stored. 
     FIG. 9  shows a presence table. 
   A presence table  131  has columns of the media ID, media type, present state, state option, contact and time stamp. The laterally arranged items in the respective columns are associated with each other to form one presence information unit. For example, a media ID “foo@pc1”, a media type “collabo”, a present state “open”, a state option “none”, a contact “collabo:10.20.30.40:1010”, and a time stamp “2005-06-08T01:01:47Z” form one presence information unit. 
   In the column of the media ID, IDs for identifying the communication media  60  or the application (Notepad, Acrobat (trademark)) installed in the client  200  are set. For the ID for the communication media  60  and that for the client  200 , the same media ID as that set in the column of the media ID of the user profile table  151  is set. In the column of the media ID of the application, there is set the media ID in which the identification information (; Notepad; Acrobat (trademark); NetMeeting (trademark)) of the application follows the ID for the client  200 , namely, “foo@pc1”. 
   In the column of the media type, types of the communication media and applications are set. Herein, “collabo” means a media type of a client, namely, the client  200  and “application/*” (* shows an extension of an application data file) means an application. 
   In the column of the present state, present states of the communication media and applications are set. The present state of the communication media is set as follows. That is, when the application is available, “open” (online) is set. When the application is not available, “closed” (offline) is set. When the session is established between the application and another application, “connected” is set. For the present state of the application, “installed” is set. 
   In the column of the state option, when a present state of the communication media is “connected”, a media ID for a partner during establishment of the session is set. 
   In the column of the contact, when the media type is “collabo” or “application”, an IP address for the client  200  and a port number for the user interface as the window are set. The IP address and the port number are set when the client  200  logs into the server  100 . 
   In the column of the time stamp, a date for the presence information to be updated is set. 
   According to the presence collection and reporting phase, when the registration of state information of the application is instructed from the application control UI  220  to the local application information management unit  230  at the start-up of the client  200  or by the request from users, the local application information management unit  230  collects a present state of the application  210  within the client  200  and transmits the present state to the presence management unit  120 . The unit  120  receives the present state of the application and then stores it in the presence database  130 . Thus, the contents of the presence database  130  are updated. 
   Further, in updating the presence information, it is previously known that the present state is “connected”. Therefore, after updating the presence database  130 , the unit  120  searches for the present states of the clients  200  and  201  (both the communicating clients) from the SIP URI set in the column of the state option. Then, the unit  120  transmits the presence information of both the communicating clients to the application control UI  220  of the client  200  as well as transmits the presence information of both the communicating clients to the application control UI  220   a  of the client  201 . The application control UI  220  which receives the presence information displays the information on the monitor  11 . 
   Next, a processing sequence in the presence collection and reporting phase of the communication media  60  will be described by taking as an example the presence collection and reporting phase of the IP phone. 
     FIG. 10  shows a processing sequence in the presence collection and reporting phase of the communication media. 
   First, the user A requests the IP phone  67  for voice communication using the IP phone  62  and thereby, call processing (SIP signaling in one-call) is executed for establishing the VoIP session to exchange voices between a user agent (hereinafter, referred to as a UA 1 ) of the IP phone  62  and a user agent (hereinafter, referred to as a UA 2 ) of the IP phone  67  (steps S 21  to S 26 ). Specifically, the UA 1  transmits to the SIP server  300  a connection request (INVITE) to the UA 2  (step S 21 ). 
   Next, the SIP server  300  confirms the IP address of the IP phone  67  and transmits the INVITE to the IP phone  67  (step S 22 ). 
   When confirming the connection of the IP phone  67 , for example, by an offhook of a receiver, the UA 2  returns to the SIP server  300  a success response ( 200  OK) to the INVITE (step S 23 ). 
   Further, the SIP server  300  returns the success response ( 200  OK) to the UA 1  (step S 24 ). 
   Next, the UA 1  transmits an ACK response (acknowledgment of the session establishment) to the SIP server  300  based on the success response from the SIP server  300  (UA 2 ) (step S 25 ). 
   Next, the SIP server  300  transmits the ACK response to the UA 2  (step S 26 ). Thus, a session is established between the IP phones  62  and  67 . Over the established session, voice data is exchanged to make a communication state. 
   Next, the SIP server  300  reports a call event to the application controller  110  (step S 27 ). 
   Further, when receiving the event, the application controller  110  performs schema conversion for writing the event in the presence table  131 , if necessary, and causes the presence management unit  120  to update the presence information (step S 28 ). Thus, the presence states of the IP phones  62  and  67  in the presence table  131  are set from “open” to “connected”. 
   Next, the presence management unit  120  checks the present state in the case where in the presence table  131 , the user ID is “foo” and the media type is “collabo” (step S 29 ). 
   Further, the unit  120  reports the presence information of the user A and the user B to the client  200  (step S 30 ). 
   Next, the unit  120  checks the present state in the case where in the presence table  131 , the user ID is “goo” and the media type is “collabo” (step S 31 ). 
   Further, the unit  120  reports the presence information of the user A and the user B to the client  201  (step S 32 ). 
   Thus, a dialogue balloon  15  shown in  FIG. 6  is displayed. 
   When a telephone call is completed, the SIP server  300  reports a call event to the application controller  110  again and thereby, the present state is updated from “connected” to “open”. 
   Further, in the case of using an IM as the communication media, ordinary IM transmission processing, in place of the call processing in steps S 21  to S 26 , is performed through the IM server  400 . Next, a message transmission event is reported in place of the call event in step S 27 . Thus, the presence state is changed to “connected”. Unlike the VoIP, the IM is incapable of expressly completing the conversation. Therefore, when a certain period of time passes after the transmission of the message, it is considered that the conversation is completed. Then, the presence state is updated from “connected” to “open”. 
   Next, a processing sequence in the presence collection and reporting phase of the application  210  will be described. 
     FIG. 11  shows a processing sequence in the presence collection and reporting phase of the application. 
   First, when the client  200  starts up, the application control UI  220  reads a configuration file such as an address, ID and password of the server  100  (step S 41 ). 
   Next, the application control UI  220  creates an operation screen  11   a  for displaying the presence information on the monitor  11  (step S 42 ). Generally, this screen is displayed, as an icon, in a task tray. 
   Next, the application control UI  220  generates an instance of the local application information management unit  230  (step S 43 ). 
   Next, the application control UI  220  instructs the local application information management unit  230  to register application information (step S 44 ). 
   Next, the local application information management unit  230  checks the application  210  installed within the client  200  and transmits to the presence management unit  120  the authentication information as well as the presence update request (step S 45 ). 
   Next, the presence management unit  120  performs authentication based on the authentication information (step S 46 ). When the user is authenticated, the unit  120  searches based on the user ID for a client having the present state of “open” (step S 47 ). 
   Further, when finding a client having the present state of “open”, the presence management unit  120  reports the presence information to the application control UI  220  (step S 48 ). Thus, the states of the communication media and the application are displayed on the operation screen  11   a.    
   Further, the presence management unit  120  checks a state of the session. When the session is established, the unit  120  specifies a communication partner and continuously searches for a client having the present state of “open” (step S 49 ). 
   Further, the presence management unit  120  reports the presence information to the application control UI  220   a  (step S 50 ). 
   With that, operations in the presence collection and reporting phase of the application are completed. 
   &lt;Collaboration Tool Addition Phase&gt; 
   The collaboration tool addition phase is a phase that is executed when the user A selects a desired tool from the communication tools displayed on the communication tool environment screen  16 . The procedure varies depending on a type of the communication tool. 
   For example, when the communication tool is an IP phone, the procedure is as follows. First, the application control UI  220  executes call processing for giving the application controller  110  information which includes authentication information, a user ID “foo” of the user A (originating side) and a user ID “goo” of the user B (terminating side). Then, the control UI  220  calls an API (Application Program Interface) of the SIP server  300 . As a result, the SIP session is established between the IP phones  62  and  67 . 
   Further, for example, when the communication tool is an IM, the procedure is as follows. First, the application control UI  220  executes IM transmission processing for giving the application controller  110  information which includes authentication information, an originating side user ID and a terminating side user ID. Then, the controller  110  calls up an API of the IM server  400 . As a result, a screen for transmitting a message to the user B is displayed on the monitor connected to the client  201 . 
   Further, for example, when the communication tool is a file transmission, the procedure is as follows. First, the application control UI  220  performs a file transmission for giving the application controller  110  information which includes authentication information, a destination URI, a file name and content. Then, the application controller  110  transmits a specified file to the client  201  shown by the destination URI. Then, the application control UI  220   a  displays the received file on the monitor connected to the client  201 . 
   Further, for example, when the communication tool is an application sharing tool such as a network conference tool, the application control UI  220  shares an application using an API of a shared application within the client  200 . The API may vary by application and therefore, a driver plug-in may be made possible to allow extension and change. 
   Next, a processing sequence in the collaboration tool addition phase will be described by taking as an example a case of adding the IP phone  62 . 
     FIG. 12  shows a processing sequence in the collaboration tool addition phase using the IP phone. 
   First, when the user A selects the IP phone  62  from communication tools displayed on the communication tool environment screen  16 , the application control UI  220  executes call processing to the application controller  110  (step S 51 ). 
   Next, the application controller  110  executes a third-party call request to thereby call up an API of a third-party call request server within the SIP server  300  (step S 52 ). 
   Next, the SIP signaling processing is performed (steps S 53  to S 58 ). Specifically, the SIP server  300  first transmits a connection request (INVITE) to the UA 1  (step S 53 ) and then transmits a connection request (INVITE) to the UA 2  (step S 54 ). 
   The UA 1 , when receiving the INVITE, returns to the SIP server  300  a success response ( 200  OK) to the INVITE (step S 55 ). Further, the UA 2 , when receiving the INVITE, returns to the SIP server  300  a success response ( 200  OK) to the INVITE (step S 56 ). 
   Next, the SIP server  300  transmits an ACK response to each of the UA 1  and the UA 2  based on the success responses from the UA 1  and the UA 2  (steps S 57  and S 58 ). 
   Next, the SIP server  300  reports a call event to the application controller  110  (step S 59 ). 
   Next, the application controller  110  causes the presence management unit  120  to update the presence information. Then, the unit  120  reports the presence information to the UA 1  and the UA 2  (steps S 60  to S 64 ). The operations are the same as those in steps S 28  to S 32  of  FIG. 10 . Therefore, the description is omitted. 
   Next, a processing sequence (processing operation) in the collaboration tool addition phase will be described by taking as an example a case of performing file transmission. 
     FIG. 13  shows a processing sequence in the collaboration tool addition phase in the case of performing the file transmission. 
   First, when the user A selects a file transmission from the communication tools displayed on the communication tool environment screen  16 , the application control UI  220  transmits a file to the application controller  110  (step S 71 ). 
   Next, the application controller  110  performs authentication (step S 72 ). When the user A is authenticated, the controller  110  transmits the file to the application control UI  220   a  of the client  201  (step S 73 ). 
   Next, the application control UI  220   a  transmits an application start command to the application  210   a  (step S 74 ). Thus, the UI  220   a  starts the application  210   a  corresponding to the transmitted file. 
   On the other hand, when the user A adds an option of requesting sharing of files in step S 71 , the application control UI  220  starts the application  210  corresponding to the transmitted file (step S 75 ). 
   As described above, according to the communication system  500 , the presence information on the communication tools used by users is collected into the presence management unit  120  through the local application information management unit  230  of the client, the SIP server  300  and the IM server  400 . Further, when a session using any one of the communication tools is established between the user A and the user B, mutual presence information is transmitted to the application control UI  220  of the client  200  used by the communicating user A and the application control UI  220   a  of the client  200   a  used by the communicating user B. The presence information includes information such as an IP address or a user ID necessary for performing collaboration with a partner. Therefore, when operating the application control UI  220 , the user A can easily and surely perform the collaboration without confirming the IP address or the user ID to a partner as well as without manually inputting directly the IP address or the user ID. As a result, the user A can perform the collaboration smoothly and effectively. 
   In the present embodiment, when using an e-mail as the communication tool, the user A registers the presence information in the user profile table  151 ; however, the present embodiment is not limited thereto. For example, a programmable mail server such as Apache James (Java Apache Mail Enterprise Server) may be used to obtain the presence information using the same mechanism as that in the VoIP or the IM. Alternatively, a plug-in for registering the presence information may be incorporated into a mail application. 
   Further, in the present embodiment, the SIP server  300  and the IM server  400  have a function of externally reporting the event or presence information on the VoIP or IM. However, the present embodiment is not limited thereto. The communication media  60  and  65  (SIP terminal sides) may have a function of reporting the event or presence information. In this case, the SIP server  300  and the IM server  400  are not required to have a function of externally reporting the event or presence information. 
   Next, a second embodiment of the communication system will be described. 
     FIG. 14  is a block diagram showing a system according to the second embodiment. 
   Hereinafter, the communication system  500   a  according to the second embodiment will be described by focusing attention on the difference from the above-described first embodiment, and an explanation of the same matters as in the first embodiment will be omitted. 
   In the collaboration tool addition phase of the first embodiment, a communication tool is selected by a user. However, in the collaboration tool addition phase of the second embodiment, a communication tool to be used is selected based on preference information about position information of the communication tool or terminal type information for finely classifying the media type. In this regard, the collaboration tool addition phase of the second embodiment is different from that of the first embodiment. 
   The communication system  500   a  according to the second embodiment comprises a server  100   a  further including a preference management unit  170  which receives a preference management request and a preference database  180  which stores the management data, a client  200   a  further including a preference operation UI  260  which executes a preference management request, and a client  201   a  further including a preference operation UI  260   a  which executes a preference management request. 
     FIG. 15  shows a user profile table according to the second embodiment. 
   In the user profile table  151   a , columns (attributes) of the terminal type and the position are added as compared with the user profile table  151 . 
   The above-described information is set, for example, using the profile operation UI  240  operated by the user A. 
   In the column of the terminal type, a type of the communication tool is set. For example, “mobile” is set in a case of the mobile-phone  61 , “fixed” is set in a case of the fixed IP phone  62 , and “soft” is set in a case of the softphone  63 . 
   In the column of the position, the position information is set for the communication tool having neither media type “collabo” nor terminal type “voip”. 
   Specifically, for the communication tool having a terminal type of “soft” or “fixed”, the media ID of the client  200  with a closest positional relation is set. Accordingly, for the softphone  63 , the media ID “foo@pc1” of the client  200  having installed therein software of the softphone  63  is set. For the fixed IP phone  62 , the media ID “foo@pc1” of the client  200  is set. For an e-mail of the mobile-phone  61 , the media ID “sip:foo@mobile.***.com” of the mobile-phone is set. 
   Further, when the user A can use a client different from the client  200 , the media ID (foo@pc2 in  FIG. 15 ) of the client can also be set. 
   Further, using the preference operation UI  260 , the user A accesses the preference management unit  170  of the server  100   a  and previously registers on the preference database  180  a priority of the communication tool. The information is, for example, tabulated and stored. 
     FIG. 16  shows a preference table. 
   The preference table  181  has the columns of the user ID and the preference. The laterally arranged items in the respective columns are associated with each other. 
   In the column of the preference for the user ID “foo” in  FIG. 16 , “mobile”, “fixed” and “soft” are set in the order of descending priorities. 
   Further, in the case where the media type “voip” is selected, for example, in the collaboration tool addition phase, the call processing (step S 51 ) in  FIG. 12  is performed as follows. That is, the application controller  110  refers to the profile table  151   a , the presence table  131  and the preference table  181  and searches for the VoIP terminals with the same position as that of the client. Further, from the found VoIP terminals, the controller  110  selects a terminal having the presence state of “open” and having the highest priority to perform a call request. 
   Next, the collaboration tool addition phase according to the second embodiment will be described in detail by taking as an example a case of using the IP phone  62 . 
   In the collaboration tool addition phase according to the second embodiment, the same processing as in the first embodiment is performed for the operations in steps S 52  to S 64  shown in  FIG. 12 . Further, the following operations are performed immediately after step S 51  to determine an appropriate call destination. 
     FIG. 17  is a flowchart for illustrating a processing sequence in the collaboration tool addition phase according to the second embodiment. 
   First, the application controller  110  obtains IM session information where the present state is “connected” (step S 81 ). 
   Next, the application controller  110  obtains the media ID from the IM session information (step S 82 ). 
   Next, the application controller  110  instructs the profile management unit  140  to take out the user profile table  151   a  and determines the acquisition of position information of the media (step S 83 ). 
   When obtaining no position information of the media (step S 83 ; No), the controller  110  performs a predetermined error processing of, for example, reporting the error to the monitor  11  and then completes the determination operation (step S 84 ). On the other hand, when obtaining the position information of the media (step S 83 ; Yes), the controller  110  determines the acquisition of the communication tools with the media type “voip” having the same position information (step S 85 ). When obtaining no communication tool (step S 85 ; No), the controller  110  moves to step S 84  to perform predetermined error processing and then completes the determination operation. On the other hand, when obtaining the communication tools (step S 85 ; Yes), the controller  110  requires a list of the communication tool having the present state of “open” from among the obtained communication tools (step S 86 ). When the communication tool having the present state of “open” is absent (step S 86 ; No), the controller  110  moves to step S 84  to perform predetermined error processing and then completes the operation. On the other hand, when the communication tool having the present state of “open” is present (step S 86 ; Yes), the controller  110  refers to the preference information and determines a communication tool as a call destination (step S 87 ). 
   With that, the processing sequence in the collaboration tool addition phase according to the second embodiment is completed. 
   According to the communication system  500   a  of the second embodiment, the same effect as that in the communication system  500  of the first embodiment is obtained. 
   Further, according to the communication system  500   a  of the second embodiment, when previously setting the priority of the communication tools in the preference table  181 , the user A can perform the collaboration using a desired terminal. Specifically, for example, when a collaboration request from the user B to the user A is made by telephone, the user A allows the request to arrive at a desired terminal of the mobile-phone  61 , the fixed IP phone  62  and the softphone  63 . 
   Next, a third embodiment of the communication system will be described. 
   In the third embodiment, the collaboration is performed by a method capable of making the maximum use of the communications environments relating to both the clients  200  and  201  who perform the collaboration with each other. More specifically, depending on the communications environments relating to each of the clients  200  and  201 , when application sharing is permitted, the application sharing is performed, whereas when application sharing is not permitted, a file transmission is performed as one example of alternatives for the application sharing. Further, in the file transmission, when the client  201  cannot display a file transmitted from the client  200 , a format of the file is converted into that allowing the client  201  to display the file and then the file is transmitted to the client  201 . 
     FIG. 18  is a block diagram showing a system according to a third embodiment. 
   Hereinafter, the communication system  500   b  according to the third embodiment will be described by focusing attention on the difference from the above-described first embodiment, and an explanation of the same matters as in the first embodiment will be omitted. 
   The communication system  500   b  comprises a server  100   b  further including a file format converter  190 , a profile database  150   a  having an application data profile table where a file format conversion rule is tabulated, and a file presentation unit  191 . 
   The file format converter  190  converts a format of a file inputted in response to the instruction of the application controller  110  and transmits the converted file to the application control UI  220 . 
     FIG. 19  shows an application data profile table. 
   The application data profile table  152  has the columns of an application type and a conversion method. Further, the conversion method is split into the respective items of a target type and a program. The laterally arranged items in the respective columns are associated with each other. 
   In the column of the application type, an extension of the file is set. 
   In the column of the target type, an extension of the file into which an extension of an application type is converted is set. 
   In the column of the program, a storage destination of the program for converting the extension into an extension of the target type is set. 
   Returning again to  FIG. 18 , the description will be given. 
   The file presentation unit  191  has a function, when being presented with a file from the application controller  110 , of converting the presented file into that in Hyper Text Markup Language (HTML) format and holding the converted file. Further, the file presentation unit  191  has a function of a Web server. Therefore, the unit  191  reads the presented file using a browser and then transmits to the client  201  a URL for accessing the file. 
   Next, a processing sequence in the collaboration tool addition phase according to the third embodiment will be described. 
   Hereinafter, a case of performing the application sharing when the collaboration is established will be described. 
     FIGS. 20 and 21  are flowcharts for illustrating the processing sequence in the collaboration tool addition phase according to the third embodiment. 
   When the user A selects the application sharing from the client  200 , first, the application controller  110  obtains VoIP session information where the present state is “connected” (step S 91 ). 
   Next, the application controller  110  obtains the media ID from the VoIP session information (step S 92 ). 
   Next, the application controller  110  instructs the profile management unit  140  to take out the user profile table  151   a  and determines the acquisition of position information of the media (step S 93 ). When obtaining no position information of the media (step S 93 ; No), the controller  110  performs predetermined error processing and then completes the determination operation (step S 94 ). On the other hand, when obtaining the position information of the media (step S 93 ; Yes), the controller  110  determines the acquisition of the media IDs of the application  210  having the same position information (step S 95 ). 
   When obtaining no media ID of the application  210  (step S 95 ; No), the controller  110  moves to step S 94  to perform predetermined error processing and then completes the determination operation. 
   On the other hand, when obtaining the media ID of the application  210  (step S 95 ; Yes), the application controller  110  refers to the presence database  130  and confirms whether the application of the data desirable to be shared is available, namely, whether the present state is “installed” (step S 96  in  FIG. 21 ). When the application of the data desirable to be shared is available (step S 96 ; Yes), the controller  110  confirms whether the sharing application (e.g., an application with a messenger function) for sharing the application of the data desirable to be shared is available (step S 97 ). When the sharing application is available (step S 97 ; Yes), the controller  110  performs sharing processing using the sharing application (step S 98 ) and then completes the determination operation. Further, when the sharing application is not available (step S 97 ; No), the controller  110  moves to step S 99 . 
   On the other hand, when the application of the data desirable to be shared is not available (step S 96 ; No), the application controller  110  refers to the application data profile table  152  (step S 99 ). 
   Next, the application controller  110  confirms whether the data desirable to be shared is convertible into that in a data format capable of display in the environment of the client as a partner (step S 100 ). 
   When the data desirable to be shared is convertible (step S 100 ; Yes), the application controller  110  transmits the data to the file format converter  190  and the file format converter  190  performs the file format conversion as well as the transmission processing (step S 101 ). Then, the controller  110  completes the determination operation. Further, when the data desirable to be shared is not convertible (step S 100 ; No), the controller  110  transmits the data to the file presentation unit  191 . Further, the unit  191  subjects the data to HTML conversion and transmits a URL of the data to the client  201  (step S 102 ). 
   Thus, the application control UI  220   a  which receives the URL starts a browser to display a document with the received URL. 
   With that, the collaboration tool addition phase according to the third embodiment is completed. 
   According to the communication system  500   b  of the third embodiment, the same effect as that in the communication system  500  of the first embodiment is obtained. 
   Unless an application having an application sharing function is installed on a personal computer of a user, application sharing cannot be performed. However, according to the communication system  500   b  of the third embodiment, by performing the file transmission, the objective information sharing can be attained. 
   Next, a fourth embodiment of the communication system will be described. 
   In the first to third embodiments, the communication media  60  and the application  210  are targeted as the collaboration tool. However, in the fourth embodiment, other devices or services connected to the network  10  are also used as the collaboration tool. In this regard, the fourth embodiment is different from the first to third embodiments. 
   Hereinafter, the communication system according to the fourth embodiment will be described by focusing attention on the difference from the above-described first embodiment, and an explanation of the same matters as in the first embodiment will be omitted. 
   In the communication system of the fourth embodiment, the local application information management unit  230  has a Universal Plug and Play (UPnP) function. 
   The unit  230  finds a communication tool within the same segment in accordance with the UPnP protocol and stores (registers) in the presence database  130  the obtained information as the presence information. In the storage of the information, setting in the columns of the present information and time stamp of the presence table  131  is performed in the same manner as in the first embodiment. Further, a URL of the UPnP action is set in the column of the media ID, the “upnp/(device type of service)” is set in the column of the media type, a parameter necessary for an action is set in the column of the state option, and a URL of the UPnP action is set in the column of the contact in the same manner as in the media ID. 
   Further, in the same manner as in the first embodiment, the session is established and then the presence information is reported. Thereafter, when the UPnP service is selected as the communication tool, the URL of the UPnP action is called to perform the UPnP service. 
   According to the communication system of the fourth embodiment, the same effect as that in the communication system  500  of the first embodiment is obtained. 
   Further, according to the communication system of the fourth embodiment, the collaboration can be realized by a method capable of further making the maximum use of the computer environments of both the clients  200  and  201 . More specifically, in place of performing the file transmission as an alternative for the application sharing as described in the third embodiment, when a printer corresponding to the UPnP is found, the file is printed to allow the sharing of the information. 
   In the present embodiment, the UPnP function is used as a control point function; however, the present invention is not limited thereto. 
   Next, a fifth embodiment of the communication system will be described. 
   Hereinafter, the communication system  500   c  according to the fifth embodiment will be described by focusing attention on the difference from the above-described first to fourth embodiments, and an explanation of the same matters as in the first to fourth embodiments will be omitted. 
   In the first to fourth embodiments, when the session is established, the server  100  reports the presence information of the user B to the client  200  as well as reports the presence information of the user A to the client  201 . In the fifth embodiment, when the client requests the presence information, the server  100  reports the presence information of the user B to the client  200  as well as reports the presence information of the user A to the client  201 . 
     FIG. 22  is a block diagram showing a system according to the fifth embodiment. 
   The clients  200   b  and  201   b  of the fifth embodiment further comprises user list management databases  270  and  270   a  having registered thereon users who perform the collaboration. 
   In the register on the user list, for example, the user A previously registers the user ID on the user list management database  270 . Herein, the user list may be managed by the server  100 , or a user may manually input the user ID directly. 
   The application control UI  220  displays the user list management database  270  on the operation screen  11   a  as preprocessing for starting the collaboration. When the user A specifies a user who performs the collaboration with the user A, the application control UI  220  requests the presence information from the presence management unit  120 . Alternatively, the control UI  220  may previously read the presence information as in the buddy list (user list). Further, when obtaining the presence information, the application control UI  220  displays on the operation screen  11   a  a communication tool available to the user A and the user B. 
     FIG. 23  shows the communication tool environment screen displayed on the operation screen. 
   The communication tool environment screen  17  displayed on the operation screen  11   a  has a communication tool group  18  of the user A and a communication tool group  19  of the user B. 
   By specifying, for example, using a mouse  13  a communication tool (fixed IP phone in  FIG. 23 ) of the user A and a communication tool (mobile-phone in  FIG. 23 ) of the user B who the user A desires to perform the collaboration with, the user A starts the collaboration. 
   According to the communication system  500   c  of the fifth embodiment, the same effect as that in the communication system  500  of the first embodiment is obtained. 
   Further, according to the communication system  500   c  of the fifth embodiment, the collaboration can be more easily attained. 
   In the above-described respective embodiments, communication examples between the user A and the user B (between the clients  200  and  201 ) are described. However, the present invention is not limited thereto. The collaboration among a plurality of users (among three or more clients) can also be performed. 
   Further, the processing functions of the server  100  and the clients  200  and  201  can be realized by computers (by allowing computers to execute a predetermined communication program). In this case, there is provided a program having described therein the processing contents of the functions to be owned by the server  100  and the clients  200  and  201 . By allowing computers to execute the program, the processing functions can be realized by the computers. The program having described therein the processing contents can be recorded on the computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording system, an optical disk, a magnetooptical medium and a semiconductor memory. Examples of the magnetic recording system include a hard disk drive (HDD), a floppy disk (FD) and a magnetic tape. Examples of the optical disk include a digital versatile disc (DVD), a digital versatile disc-random access memory (DVD-RAM), a compact disc-read only memory (CD-ROM) and a compact disc-recordable/rewritable (CD-R/RW). Examples of the magnetooptical medium include a magneto-optical disk (MO). 
   In the case of distributing programs, portable recording media such as a DVD and CD-ROM having recorded therein the program are sold. Further, the program may be stored in a storage device of a server computer to allow it to be transferred to other computer from the server computer through the network. 
   A computer which executes a communication program stores in its own storage device, for example, a program recorded on a portable recording medium or a program transferred from a server computer. Further, the computer reads a program from its own storage device to execute processing on the basis of the program. Further, the computer can directly read a program from the portable recording medium to execute processing on the basis of the program. Further, the computer, every when a program is transferred from the server computer, can sequentially execute processing on the basis of the received program. 
   According to the present invention, when a session using any one of communication units is established between users, the mutual presence information is reported to the client terminals of the users where the session is established. Therefore, a collaboration using a desired communication unit can be easily and surely realized without confirming IP addresses or user IDs with partners. As a result, efficiency of the collaboration can be attained. 
   The foregoing is considered as illustrative only of the principles of the present invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and applications shown and described, and accordingly, all suitable modifications and equivalents may be regarded as falling within the scope of the invention in the appended claims and their equivalents.