Apparatus, system, and method of controlling connection among terminals and recording medium storing connection control program

When a request for participating in a session being performed by a plurality of participating terminals is received from a terminal that is not participated in the session, a system extracts identification information of one or more candidate terminals that are associated with the participating terminal for each one of the plurality of participating terminals, and determines whether identification information of the terminal that sends the request is included in the extracted candidate terminal identification information to generate a determination result. The determination result is used to determine whether to allow the terminal that sends the request to connect with the plurality of participating terminals to participate in the session.

BACKGROUND

The present invention generally relates to controlling connection among a plurality of transmission terminals.

With the need for reducing costs or times associated with business trips, more companies are moving towards videoconference systems to have teleconference or videoconference among remotely located offices via a communication network such as the Internet. The videoconference systems allow transmission of contents data such as image data and/or sound data among a plurality of transmission terminals that are remotely located from one another through the communication network to facilitate communication among the plurality of transmission terminals.

To have a videoconference among the plurality of transmission terminals, a user is required to previously register information regarding participants, who will be participating in the videoconference before the videoconference starts. In case a user who is not previously registered decides to participate in that videoconference after the videoconference starts, the unregistered user is not allowed to participate unless the unregistered user is registered through the registration process. The registration process usually requires additional time such that it has been inconvenient for the unregistered user to participate in the videoconference after the videoconference starts.

Japanese Patent Application Publication No. H08-256145 describes a conference manager, which manages a permitted user list that registers identification of a user who is allowed to participate in a conference without the registration process, for each of conferences. When a request for participating in a specific conference is received from a user, the conference manager determines whether identification of the user is registered in the permitted user list prepared for the specific conference, and allows the user to participate in the specific conference if the user is registered in the permitted user list.

SUMMARY

While Japanese Patent Application Publication No. H08-256145 allows some users to participate in the conference without the registration process, the inventors of the present invention have realized that the conference manager still needs to manage a permitted user list in association with each of the conferences. In view of the above, one aspect of the present invention is to provide a system for controlling connections among a plurality of terminals through a network, which allows a user who is not registered as a participant of a specific session to participate in that session, without requiring the system to manage additional data.

DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Referring now toFIG. 1, a transmission system1is explained according to an example embodiment of the present invention.

In one example, the transmission system1functions as a data providing system that transmits contents data from one transmission terminal to another transmission terminal in one direction through a transmission management system50. In another example, the transmission system1functions as a two-way communication system that exchanges various information including image data and/or sound data that is used to convey human's feelings between or among two or more of a plurality of transmission terminals10each of which functioning as a communication terminal, through the transmission management system50that functions as a communication management system. When functioning as the communication system, the transmission system1may be implemented as a videoconference system, video teleconference system, voice conference system, voice teleconference system, or personal computer screen sharing system.

In the following examples, it is assumed that the transmission system1ofFIG. 1is implemented as the videoconference system, which is one example structure of the communication system. Based on this assumption, the transmission management system50is implemented as the videoconference communication management system, which is one example structure of the communication management system. Further, the transmission terminal10is implemented as the videoconference communication terminal, which is one example structure of the communication terminal. However, the use of transmission system1is not limited to the following examples such that the transmission system1may be implemented as the transmission system or the communication system as described above.

The transmission system1ofFIG. 1includes a plurality of transmission terminals10aa,10ab,10ac,10ba,10bb,10bc,10ca,10cb,10cc,10da,10db,10dc, etc., a plurality of displays120aa,120ab,120ac,120ba,120bb,120bc,120ca,120cb,120cc,120da,120db,120dc, etc., a plurality of relay terminals30a,30b,30c,30d, and30e, the transmission management system50, a program providing system90, and a maintenance system100.

For the descriptive purposes, in this example, any number of the plurality of terminals10aato10dc, etc., may be collectively or each referred to as the terminal10. Any number of the plurality of displays120aato120dc, etc., may be collectively or each referred to as the display120. Any one of the plurality of relay terminals30a,30b,30c,30d, and30emay be collectively or each referred to as the relay terminal30. The transmission management system50may be referred to as the “management system”50. For the descriptive purposes, in the following examples, the request terminal10A includes any terminal10that sends request information to another terminal10to start communication with the terminal10through the transmission management system50. The counterpart terminal10B includes any terminal10that receives request information from the request terminal10A through the transmission management system50to accept or reject the request for starting communication with the request terminal10A. In alternative to the request for starting communication, any terminal10may send any other type of request information to the transmission management system50, for example, a request for relaying contents data, a request for participating in videoconference, a request for leaving from videoconference, etc.

The transmission terminal10transmits or receives contents data to or from another transmission terminal10. Examples of contents data include, but not limited to, image data and/or sound data to be transmitted or received through a session established between or among the terminals10for communication. In this example, it is assumed that a moving image is transmitted as the image data. Alternatively, a still image, or both of the still image and the moving image, may be transmitted as the image data. The relay terminal30relays image data and/or sound data between or among the plurality of terminals10. The transmission management system50centrally manages the transmission terminal10and the relay terminal30.

The plurality of routers70a,70b,70c,70d,70aband70cd, which may be collectively or each referred to as the router70, selects a route that is most suitable for transmitting contents data such as image data and sound data.

The program providing system90includes a hard disk device (HD)204(FIG. 3), which stores a terminal control program that causes the terminal10to perform various functions or operations. For example, the program providing system90sends the terminal control program to the terminal10through the Internet2ito cause the terminal10to install the terminal control program. Further, the HD204of the program providing system90may store a relay control program that causes the relay terminal30to perform various functions or operations. For example, the program providing system90sends the relay control program to the relay terminal30through the Internet2ito cause the relay terminal30to install the relay control program. Further, the HD204of the program providing system90may store a transmission management program that causes the management system50to perform various functions or operations. For example, the program providing system90sends the transmission management program to the management system50to cause the management system50to install the transmission management program.

The maintenance system100is implemented as a computer capable of maintaining, managing, fixing, or upgrading at least one of the terminal10, relay terminal30, management system50, and program providing system90. Assuming that the maintenance system100is provided within a country, and the terminal10, the relay terminal30, the management system50, and the program providing system90are each installed outside the country, the maintenance system100maintains, manages, fixes, or upgrades at least one of the terminal10, relay terminal30, management system50, and program providing system90, remotely through the communication network2. The maintenance system100may manage maintenance of at least one of the terminal10, relay terminal30, management system50, and program providing system90without using the communication network2. For example, a machine type number, a manufacturing number, customer information, maintenance and repair information, and failure log information may be maintained at the maintenance system100without using the communication network2.

Still referring toFIG. 1, the terminals10aato10ac, the relay terminal30a, and the router70aare connected to a local area network (LAN)2a. The terminals10bato10bc, the relay terminal30b, and the router70bare connected to a LAN2b. The LAN2aand the LAN2bare connected to a leased line2abin which the router70abis provided. It is assumed that these devices including the terminals10aato10bcare located in an area A. For example, assuming that the area A is any area in Japan, the LAN2acould be located within an office in a city such as Tokyo, and the LAN2bcould be located within an office in another city such as Osaka.

The terminals10cato10cc, the relay terminal30c, and the router70care connected to a LAN2c. The terminals10dato10dc, the relay terminal30d, and the router70dare connected to a LAN2d. The LAN2cand the LAN2dare connected to a leased line2cdin which the router70cdis provided. It is assumed that these devices including the terminals10cato10dcare located in an area B apart from the area A. For example, assuming that the area is any area in the United States, the LAN2ccould be located within an office in a city such as New York, and the LAN2dcould be located within an office in another city such as Washington, D.C. The area A and the area B are connected through the Internet2i, via the routers70aband70cd.

The management system50, the program providing system90, and the maintenance system100are connected through the Internet2ito the terminal10and the relay terminal30. Any one of the management system50, the program providing system90and the maintenance system100may be located at any location within or outside any one of the area A and the area B.

The relay terminal30eis connected to the terminal10through the communication network2to be communicable with each other. The relay terminal30eis provided in an area other than a local area such as the area A or the area B. This causes the relay terminal30eto be free from the influences by communication that takes place in the local area. In this example, the relay terminal30eis always turned on to operate. In case the request terminal10A in the area A or the area B is communicating with a counterpart terminal10B that is provided in an area other than the local area A or B, the relay terminal30eis selected as a relay terminal that relays contents data between the terminals10A and10B. In case the request terminal10A in the area A or the area B is communicating with a counterpart terminal10B that is provided within the local area A or the area B, the relay terminal30eis selected as a relay terminal that relays contents data between the terminals10A and10B, if none of the relay terminals30ato30doperates.

In this example, the communication network2includes the LAN2a, LAN2b, leased line2ab, Internet2i, leased line2cd, LAN2c, and LAN2d. Any one or any portion of these lines or any other lines that may be included in the communication network2may be implemented as wired network or wireless network such as Wireless Fidelity (WiFi) network or Bluetooth network.

As shown inFIG. 1, the terminal10, the relay terminal30, the management system50, the router70, the program providing system90, and the maintenance system100are each provided with four digit numbers. These four digit numbers separated by dots are the simple expressions of IP addresses respectively assigned to any one of the devices shown inFIG. 1, each of which has a function of communication device. For example, the IP address of the terminal10aais “1.2.1.3”. For simplicity, it is assumed that the IP address is expressed in IPv4. Alternatively, the IP address may be expressed in IPv6.

<Hardware Structure of Transmission System>

Next, a hardware structure of the transmission system1is explained according to an example embodiment of the present invention.FIG. 4is a perspective view illustrating the outer appearance of the terminal10of the transmission system1. InFIG. 4, the longitudinal direction of the terminal10is referred to as X direction. The direction orthogonal to the X direction, which is the horizontal direction of the terminal10, is referred to as the Y direction. The direction orthogonal to the X direction and the Y direction is referred to as the Z direction.

As illustrated inFIG. 4, the terminal10includes a body1100, an arm1200, and a camera housing1300. The body1100includes a front side wall1110having a plurality of air intake holes that are formed over the nearly entire surface of the intake surface of the front side wall1100. The body1100further includes a back side wall1120provided with an exhaust surface1121having a plurality of exhaust holes over the nearly entire surface of the exhaust surface1121. When a cooling fan that is provided within the body1100is driven, air flows in through the intake holes of the intake surface and out through the exhaust holes of the exhaust surface1121. The body1100further includes a right side wall1130formed with a sound pickup hole1131. Through the sound pickup hole1131, a microphone114(FIG. 2) of the terminal10is able to catch sounds such as human voice or any sound including noise.

The body1100has an operation panel1150, which is provided at a side toward the right side wall1130. The operation panel1150includes a plurality of operation buttons108ato108e(“the operation button108”), a power switch109, an alarm lamp119, and a plurality of sound output holes1151. Through the sound output holes1151, a speaker115(FIG. 2) of the terminal10is able to output sounds such as sounds generated based on sounds such as human voice. The body1100further includes a holder1160, which is provided at a side toward the left side wall1140. The holder1160, which has a concave shape, accommodates therein the arm1200and the camera housing1300. The right side wall1130of the body1100further includes a plurality of ports1132ato1132c(the ports1132) each of which allows electric connections between an outside device connection interface (I/F)118(FIG. 2) and an outside device through a cable. The left side wall1140of the body1100is provided with a connection port for electrical connection between the outside device connection I/F118(FIG. 2) and a cable120cfor the display120.

The arm1200is fixed to the body1100via a torque hinge1210. With the torque hinge1210, the arm1200can be rotated in directions of up and down with respect to the body1100, while making a tilt angle θ1of up to 135 degrees.FIG. 4illustrates the case where the tilt angle θ1is 90 degrees.

The camera housing1300incorporates therein a camera112(FIG. 2) that takes an image of an object. The object may be a part of a user, document, or a room where the terminal10is located. The camera housing1300is fixed to the arm1200through a torque hinge1310. With the torque hinge1310, the camera housing1300can be rotated with respect to the arm1200, while making a pan angle θ2from about −180 degrees to +180 degrees and a tilt angle θ3that ranges from about −45 degrees to +45 degrees in the direction of up, down, right, and left. InFIG. 4, the pan angle θ2and the tilt angle θ3are each 0 degree.

The relay terminal30, management system50, program providing system90and maintenance system100are each implemented by a general-purpose computer such as a personal computer or a server computer. For simplicity, explanation of the outer appearance of the computer is omitted.

FIG. 2illustrates a hardware structure of the terminal10according to an example embodiment of the present invention. The terminal10includes a central processing unit (CPU)101, a read only memory (ROM)102, a random access memory (RAM)103, a flash memory104, a solid state drive (SSD)105, a medium drive107, the operation button108, the power switch109, a network interface (I/F)111, the camera112, an imaging element interface (I/F)113, the microphone114, the speaker115, a sound input/output interface (I/O I/F)116, a display interface (I/F)117, the outside device connection interface (I/F)118, and an alarm lamp119, which are electrically connected through a bus110such as an address bus or data bus.

The CPU101controls entire operation of the terminal10. The ROM102stores therein a control program for execution by the CPU101, such as an initial program loader (IPL). The RAM103functions as a work area of the CPU101. The flash memory104stores therein various data such as the terminal control program, image data, or voice data. The SSD105controls reading or writing of various data with respect to the flash memory104under control of the CPU101. The medium drive107controls reading or writing of various data with respect to a removable recording medium106such as a flash memory. The operation button108allows the user to input a user instruction, for example, by allowing the user to select a communication destination such as the counterpart terminal10B. The power switch109allows the user to switch on or off the power of the terminal10. The network I/F111allows the terminal10to transmit data through the communication network2.

The camera112takes an image of an object to obtain image data under control of the CPU101. The imaging element I/F113controls operation of the camera112. The microphone114catches sounds such as voice. The speaker115outputs sounds such as sounds generated based on voice. The sound I/O I/F116controls input or output of sound signals such as voice signals with respect to the microphone114and the speaker115under control of the CPU101. The display I/F117transmits image data to the display120under control of the CPU101. The outside device connection I/F118controls connection of the terminal10to various types of outside device such as the connection port described above referring toFIG. 4. The alarm lamp119notifies the user when a trouble is detected in the terminal10.

The display120may be implemented by a liquid crystal display (LCD) or an organic light emitting display, which displays various data such as an image of an object or an operation icon. As illustrated inFIGS. 2 and 4, the display120is connected to the display I/F117through the cable120c. The cable120cmay be implemented by an analog RCB (VGA) signal cable, a component video cable, a high-definition multimedia interface (HDMI) signal cable, or a digital video interactive (DVI) signal cable.

The camera112includes a plurality of devices such as a lens system, and a solid-state image sensing device that photo-electrically converts a light to generate an image of an object. For example, the solid-state image sensing device includes a complementary metal oxide semiconductor (CMOS) or a charge coupled device (CCD).

The outside device connection I/F118may be connected to an outside device such as a camera, microphone, or speaker through a universal serial bus (USB) cable, which is connected to the connection port1132of the body1100. When the outside camera is connected to the terminal10, the CPU101causes the terminal10to capture an image using the outside camera, rather than the camera112that is incorporated in the terminal10. When the outside microphone or the outside speaker is connected to the terminal10, the CPU101causes the terminal10to use the outside microphone or the outside speaker in replace of the incorporated microphone114or the incorporated speaker115. Alternatively, the CPU101may allow the user at the terminal10to use selected one of the outside device and the internal device.

The recording medium106, which can be freely attached to or detached from the terminal10, includes any desired type of recording medium. In alternative to the flash memory104, any nonvolatile memory that is readable and writable under control of the CUP101may be used such as Electrically Erasable and Programmable ROM (EEPROM).

The terminal control program may be written onto a recording medium that is readable by a general-purpose computer such as the recording medium106in any format that is installable or executable by a general-purpose computer. Once the terminal control program is written onto the recording medium, the recording medium may be distributed. Further, the terminal control program may be stored in any desired memory other than the flash memory104, such as the ROM102.

FIG. 3illustrates a hardware structure of the management system50ofFIG. 1. The management system50includes a CPU201, a ROM202, a RAM203, the HD204, a hard disk drive (HDD)205, a medium drive207, a display208, a network interface (I/F)209, a keyboard211, a mouse212, and a CD-ROM drive214, which are electrically connected through a bus210such as an address bus or a data bus.

The CPU201controls entire operation of the management system50. The ROM202stores a control program for execution by the CPU201, such as a transmission management program. The RAM203functions as a work area of the CPU201. The HD204stores therein various data such as the transmission management program. The HDD205controls reading or writing of various data with respect to the HD204under control of the CPU201. The medium drive207controls reading or writing of various data with respect to a removable recording medium206such as a flash memory. The display208displays various data such as a cursor, menu, window, character, or image. The network I/F209allows the management system50to transmit data through the communication network2. The keyboard211includes a plurality of keys, each of which is used for inputting a user instruction through a character, a numeral, or a symbol. The mouse212allows the user to input a user instruction including, for example, selection or execution of a specific instruction, selection of an area to be processed, and instruction of cursor movement. The CD-ROM drive214controls reading or writing of various data with respect to a CD-ROM213. In alternative to the CD-ROM213, any removable recording medium may be used.

The transmission management program may be written onto a recording medium that is readable by a general-purpose computer such as the recording medium206or the CD-ROM213in any format that is installable or executable by the general-purpose computer. Once the transmission management program is written onto the recording medium, the recording medium may be distributed. Further, the transmission management program may be stored in any desired memory other than the HD204, such as the ROM202.

The relay terminal30is substantially similar in hardware structure to the management system50ofFIG. 3, except for replacement of the transmission management program with a relay terminal control program that is used for controlling the relay terminal30. The relay terminal control program may be written onto a recording medium that is readable by a general-purpose computer such as the recording medium206or the CD-ROM213in any format that is installable or executable by the general-purpose computer. Once the relay terminal control program is written onto the recording medium, the recording medium may be distributed. Further, the relay terminal control program may be stored in any desired memory other than the HD204, such as the ROM202.

The program providing system90is substantially similar in hardware structure to the management system50ofFIG. 3, except for replacement of the transmission management program with a program providing program that is used for controlling the program providing system90. The program providing program may be written onto a recording medium that is readable by a general-purpose computer such as the recording medium206or the CD-ROM213in any format that is installable or executable by the general-purpose computer. Once the program providing program is written onto the recording medium, the recording medium may be distributed. Further, the program providing program may be stored in any desired memory other than the HD204, such as the ROM202.

The maintenance system100is substantially similar in hardware structure to the management system50ofFIG. 3, except for replacement of the transmission management program with a maintenance program that is used for controlling the maintenance system100. The maintenance program may be written onto a recording medium that is readable by a general-purpose computer such as the recording medium206or the CD-ROM213in any format that is installable or executable by the general-purpose computer. Once the maintenance program is written onto the recording medium, the recording medium may be distributed. Further, the maintenance program may be stored in any desired memory other than the HD204, such as the ROM202.

Other examples of removable recording medium, which may be used in replace of the CD-ROM213, include, but not limited to, compact disc recordable (CD-R), digital versatile disk (DVD), and blue ray disc.

Referring now toFIG. 5, a functional structure of the transmission system1ofFIG. 1is explained according to an example embodiment of the present invention. More specifically,FIG. 5illustrates a functional structure of the transmission terminal10, the relay terminal30, and the transmission management system50. As illustrated inFIG. 1, the terminal10, the relay terminal30, and the management system50exchange data with one another through the communication network2. InFIG. 5, the program providing system90and the maintenance system100ofFIG. 1are omitted.

<Functional Structure of Terminal>

The terminal10includes a data transmit/receive11, an operation input12, a login request13, an imaging unit14, a sound input15a, a sound output15b, a display control16, a delay detector18, a memory control19, and a candidate list generator20. These units shown inFIG. 5correspond to a plurality of functions or functional modules, which are executed according to an instruction of the CPU101(FIG. 2) that is generated according to the terminal control program being loaded from the ROM102onto the RAM103. The terminal10further includes a volatile memory1100that may be implemented by the RAM103(FIG. 2), and a nonvolatile memory1100that may be implemented by the flash memory104(FIG. 2).

The data transmit/receive11, which may be implemented by the network I/F111(FIG. 2), transmits or receives various data or information to or from another terminal, device, or system, through the communication network2. In this example, the data transmit/receive11starts receiving state information that indicates the operation state of each candidate counterpart terminal10from the management system50, before starting communication with any counterpart terminal10B.

The state information of the terminal10indicates whether the terminal10is online or offline. If the terminal10is online, the state information of the terminal10further indicates whether the terminal10is communicating with another terminal10, waiting for call from another terminal10, or requesting another terminal10to have communication, etc. Further, the state information of the terminal10may further indicate whether the terminal10is in error state or trouble state, for example, due to disconnection of a cable that connects the terminal10with the communication network2. Further, the state information of the terminal10may further indicate whether the terminal10is in mute state in which output of sounds or output of images is refrained. In the following examples, the state information of the terminal10includes information regarding the operation state of the terminal10(“operation state information”), and information regarding the communication state of the terminal10(“communication state information”).

The operations or functions of the operation input12of the terminal10ofFIG. 5are performed by the operation button108and the power switch109(FIG. 2) according to an instruction received from the CPU101. The operation input12receives a user instruction input by the user through the operation button108or the power switch109. For example, when the user selects “ON” using the power switch109, the operation input12receives a user instruction for turning the power on, and causes the terminal10to turn on the power.

The operations or functions of the login request13are performed according to an instruction received from the CPU101. When the power of the terminal10is turned on, the login request13automatically causes the data transmit/receive11to send login request information that requests the login process, and a current IP address of the terminal10, to the management system50through the communication network2. When the power of the terminal10is turned off according to a user instruction received from the user through the power switch109, the login request13causes the data transmit/receive11to send current state information of the terminal10to the management system50, which indicates that the power of the terminal10is turned off. After the state information is sent, the operation input12turns off the power of the terminal10. As the state information of the terminal10is sent every time the power is turned off, the management system50is able to know that the terminal10is off-line in realtime.

The operations or functions of the imaging unit14of the terminal10ofFIG. 5are performed by the camera112and the imaging element I/F113according to an instruction received from the CPU101. The imaging unit14takes an image of an object to output image data of the object.

The operations or functions of the sound input15aof the terminal10ofFIG. 5are performed by the microphone114and the sound input/output I/F116according to an instruction received from the CPU101. After the microphone114converts voice of the user at the terminal10to a voice signal, the sound input15ainputs the voice signal in the form of voice data. The operations or functions of the sound output15bof the terminal10ofFIG. 5are performed by the speaker115and the sound input/output I/F116according to an instruction received from the CPU101. The sound output15boutputs a voice signal of voice data that is received from another terminal10through the speaker115.

The display control16may be implemented by the display I/F117(FIG. 2), and sends various data to the display120for display. More specifically, the display control16causes the display120that is provided for the request terminal10A to display a candidate list before the request terminal10A starts videoconference with a desired counterpart terminal10B. The candidate list is generated based on the state information of the candidate terminal10that is received by the data transmit/receive11after the request terminal10A establishes communication with the management system50.

For example, the display control16may display a candidate list frame1100-1as illustrated inFIG. 22. Within the candidate list frame1100-1, the display120further displays a terminal name1100-2of each candidate terminal10, which may be any type of identification information for identifying each candidate terminal10. For example, the terminal name1100-2for the terminal10abofFIG. 1may be expressed as “JAPAN TOKYO OFFICE AB TERMINAL”. For each candidate terminal10, an icon that reflects the current state of each candidate terminal10is displayed side by side with the terminal name1100-2. In this example shown inFIG. 22, four types of icons1100-3a,1100-3b,1100-3c, and1100-3dare displayed depending on the current state of the candidate terminal10that can be specified by the operation state and the communication state of the candidate terminal10. For example, the icon1100-3aindicates that the candidate terminal10is online, not communicating with any terminal, and available for communication, based on the operation state “ONLINE” and the communication state “None”. The icon1100-3bindicates that the candidate terminal10is offline and not available for communication, based on the operation state “OFFLINE”. The icon1100-3cindicates that the candidate terminal10is online, communicating with another terminal, and available for communication, based on the operation state “ONLINE” and the communication state “Busy”. The icon1100-3dindicates that the candidate terminal10is online, and requesting another terminal to have communication or is being requested by another terminal to have communication such that the candidate terminal10is not available for communication, based on the operation state “ONLINE” and the communication state “Calling” or “Ringing”. Alternatively, the icon1100-3dindicates that the candidate terminal10is online, and about to start communication with another terminal as a request for starting communication is accepted such that it is not available for communication, based on the operation state “ONLINE” and the communication state “Accepted”. For the descriptive purposes, any one of the icons1100-3ato1100-3dis referred to as the icon1100-3.

Within the candidate list frame1100-1, the display120further displays a scroll bar1100-4at the right side. According to selection of one of the arrows made by the user at the terminal10, the display120scrolls up or down to show a complete list of terminal names1100-2of candidate terminals10and icons1100-3each of which reflects the state of each candidate terminal10.

The delay detector18detects a delay time ms indicating a time period in which contents data such as image data or sound data sent through the relay terminal30from another terminal10is delayed, according to an instruction received from the CPU101(FIG. 2).

The memory control19is implemented by the SSD105(FIG. 2) according to an instruction received from the CPU101. The memory control19stores various data in the nonvolatile memory1000, or read out various data from the nonvolatile memory1000. The nonvolatile memory1000stores therein various data such as terminal identification (ID) information for identifying the terminal10, a password for authenticating a user at the terminal10, image data, and sound data such as voice data. The memory control19further stores various data in the volatile memory1100, or reads out various data from the volatile memory1100. The volatile memory1100overwrites its memory space to store image data and/or sound data such as voice data every time the terminal10communicates with another terminal10. Before overwriting image data with new image data, the memory control19reads out the image data for display on the display120, and the sound data for output through the speaker115.

The candidate list generator20generates or updates a candidate list, based on the candidate list information and the state information of the candidate terminal10that are respectively received from the management system50. For example, as illustrated inFIG. 22, the candidate list includes the icon11-3that reflects the current state of each candidate terminal10.

In this example, any one of the terminal ID of the terminal10and the relay terminal ID of the relay terminal30includes any type of identification information that can be expressed by any language, character, symbol, mark, or any combination of language, character, symbol, and mark.

(Functional Structure of Relay Terminal)

Still referring toFIG. 5, a functional structure of the relay terminal30is explained. The relay terminal30includes a data transmit/receive31, a state detector32, a data quality checker33, a data quality manager34, a data quality changer35, and a memory control39. Upon execution, the CPU201(FIG. 3) loads the relay terminal control program from the HD204onto the RAM203to cause one or more of the units illustrated inFIG. 3to perform functions or operations shown inFIG. 5. The relay terminal30further includes a nonvolatile memory3000that may be implemented by the HD204(FIG. 3). Various data stored in the nonvolatile memory3000is not deleted even when the power of the relay terminal30is turned off.

The nonvolatile memory3000includes a data quality management database (DB)3001, which stores a data quality management table illustrated inFIG. 8. The data quality management table ofFIG. 8stores an Internet protocol (IP) address of the counterpart terminal10B to which image data is transmitted through the relay terminal30, in association with quality of image data to be transmitted through the relay terminal30to the counterpart terminal10B.

Referring now toFIGS. 9A to 9C, various image data having different resolution levels, which are respectively transmitted by the terminal10of the transmission system1, are explained. Referring toFIG. 9A, the low-level resolution image data, which functions as a base image, has 160 pixels in the horizontal direction and 120 pixels in the vertical direction. Referring toFIG. 9B, the medium-level resolution image data has 320 pixels in the horizontal direction and 240 pixels in the vertical direction. Referring toFIG. 9C, the high-level resolution image data has 640 pixels in the horizontal direction and 480 pixels in the vertical direction. In case of communicating with a narrowband signal line, low-quality image data that is generated based on the low-level resolution image data, which is the base image, is transmitted. In case of communicating with a wideband signal line, medium-quality image data that is generated based on the low-level resolution image data and the medium-level resolution image data is transmitted. In case of communicating with a broadband signal line, high-quality image data that is generated based on the low-level resolution image data, the medium-level resolution image data, and the high-level resolution image data is transmitted. Any one of the above-described types of image data may be transmitted together with sound data such as voice data.

For example, the data quality management table ofFIG. 8indicates that, in case of relaying image data to the counterpart terminal10having the IP address of “1.3.2.4”, the quality of the image data to be relayed is high image quality.

<Functional Structure Of Relay Terminal>

Next, a functional structure of the relay terminal30is explained according to an example embodiment of the present invention. More specifically, in this example, the operations or functions that are performed by the relay terminal30, which include the operations or functions performed by the units shown inFIG. 5, are performed in relation to one or more hardware devices of the relay terminal30that are shown inFIG. 3.

The data transmit/receive31ofFIG. 5is implemented by the network I/F209ofFIG. 3according to an instruction received from the CPU201. The data transmit/receive31transmits or receives various data or information to or from another terminal, device, or system through the communication network2.

The state detector32, which is implemented by the CPU201ofFIG. 3, detects an operation state of the relay terminal30. The operation state includes the on-line state (“ON LINE”), the off-line state (“OFF LINE”), and the error state, etc. The on-line state is a state in which the relay terminal30is turned on and available for data transmission/reception. The off-line state is a state in which the relay terminal30is not available for data transmission/reception, for example, as the power is not turned on. The error state is a state in which the relay terminal30is not available due to an error.

The data quality checker33, which is implemented by the CPU201ofFIG. 3, searches the data quality management DB3001(FIG. 8) using the IP address of the counterpart terminal10B as a search key to extract information regarding the quality of image data suitable to communication with the counterpart terminal10B. Based on the extracted information regarding the quality of image data, the relay terminal30determines the quality of image data to be transmitted to the counterpart terminal10B.

The data quality manager34, which may be implemented by the CPU201ofFIG. 3, changes the contents of the data quality management DB3001based on the quality information that is received from the transmission management system50. For example, assuming that the request terminal10aahaving the terminal ID “01aa” communicates with the counterpart terminal10dbhaving the terminal ID “01db” to transmit or receive high quality image data during videoconference, transmission of image data may delay for various reasons. For example, if a request terminal10bband a counterpart terminal10castart videoconference over the communication network2, transmission of image data from the request terminal10aato the counterpart terminal10dbtends to slow down due to the increase in traffic. In such case, the relay terminal30changes the quality of image data to be transmitted from high image quality to lower image quality. More specifically, the contents in the data quality management DB3001is changed from high-level image quality to medium-level image quality, based on the quality information indicating the use of medium-level image quality.

The data quality changer35, which may be implemented by the CPU201ofFIG. 3, changes the quality of image data received from the request terminal10to the quality of image data according to the contents of the data quality management DB3001. The memory control39is implemented by the HDD205ofFIG. 3according to an instruction received from the CPU201. The memory control39stores various data in the nonvolatile memory3000, or reads out various data from the nonvolatile memory3000.

<Functional Structure of Transmission Management System>

Next, a functional structure of the management system50is explained according to an example embodiment of the present invention. The management system50includes a data transmit/receive51, a terminal authenticator52, a state manager53, a terminal extractor54, a terminal state obtainer55, a relay terminal selector55, a session manager57, a quality determiner58, a memory control59, a delay time manager60, a change request determiner61, a connection determiner62, and a calculator63. Upon execution, the CPU201(FIG. 3) loads the transmission management program from the HD204onto the RAM203to cause the units shown inFIG. 3to perform operations or functions as illustrated inFIG. 5. The management system50further includes a nonvolatile memory5000, which may be implemented by the HD204ofFIG. 3. Various data stored in the nonvolatile memory5000is not deleted after the power of the management system50is turned off. The nonvolatile memory5000stores data regarding the candidate list frame1100-1(FIG. 22). The management system50further includes a volatile memory5100, which may be implemented by the RAM203(FIG. 3).

The nonvolatile memory5000includes a relay terminal management database (DB)5001, which stores therein a relay terminal management table ofFIG. 10. The relay terminal management table ofFIG. 10stores, for each relay terminal ID of the terminal30, the operation state of the relay terminal30, the received date and time at which the management system50receives the state information indicating the operation state of the relay terminal30from the relay terminal30, the IP address of the relay terminal30, and the maximum data transmission speed of the relay terminal30in Mbps. For example, for the relay terminal30ahaving the relay terminal ID “111a”, the relay terminal management table ofFIG. 10indicates that the operation state is “ON LINE”, the received date and time at which the management system50receives the state information is “13:00 PM of Nov. 10, 2009”, the IP address of the relay terminal30ais “1.2.1.2”, and the maximum data transmission speed of the relay terminal30ais 100 Mbps.

The nonvolatile memory5000further includes a terminal authentication management database (DB)5002, which stores a terminal authentication management table ofFIG. 11. The terminal authentication management table ofFIG. 11stores a plurality of terminal IDs respectively assigned to the terminals10that are managed by the management system50, in association with a plurality of passwords that are previously determined for the respective terminals10. For example, referring to the terminal authentication management table ofFIG. 11, the terminal10aahaving the terminal ID “01aa” is assigned with the password “aaaa”.

The nonvolatile memory5000further includes a terminal management database (DB)5003, which stores a terminal management table ofFIG. 12. The terminal management table ofFIG. 12stores, for each one of the terminal IDs assigned to the terminals10, the terminal name to be used for communication with the terminal10, the operation state of the terminal10, the communication state of the terminal10, the received date and time at which the management system50receives the login request information from the terminal10, and the IP address of the terminal10. For example, for the terminal10aahaving the terminal ID “01aa”, the terminal management table ofFIG. 12indicates that the terminal name is “Japan Tokyo Office AA terminal”, the operation state is on-line (“ONLINE”), the communication state is “None” indicating that it is not communicating with another terminal and is available for communication, the received date and time is “13:40 PM, Nov. 10, 2009”, and the IP address of the terminal10aais “1.2.1.3”. Examples of the communication state include the “Calling” state in which the terminal10is requesting another terminal to have communication with, the “Ringing” state in which the terminal10is being requested by another terminal to have communication with, the “Accepted” state in which the terminal10has accepted a call from another terminal or the call from the terminal10is accepted by another terminal, and the “Busy” state in which the terminal10is communicating with another terminal.

The nonvolatile memory5000further includes a candidate list management database (DB)5004, which stores a candidate list management table ofFIG. 13. The candidate list management table ofFIG. 13stores, for each one of a plurality of request terminals10A capable of requesting for videoconference communication, the terminal ID of the request terminal10A, and one or more terminal IDs that are respectively assigned to candidate terminals10that are previously registered for the request terminal10A. In this example, for the request terminal10A, one or more terminals10of the transmission system1ofFIG. 1are previously registered as the candidate terminal10. For example, the candidate list management table ofFIG. 13indicates that the request terminal10aahaving the terminal ID “01aa” is most likely to request for videoconference with respect to the terminal10abhaving the terminal ID “01ab”, the terminal10bahaving the terminal ID “01ba”, and the terminal10dbhaving the terminal ID “01db”. The management system50manages the candidate list management table ofFIG. 13, for example, according to a user instruction received from any one of the terminals10. For example, in response to a user instruction received from the terminal10aa, the management system50may add or delete the contents of the candidate list management table.

The nonvolatile memory5000further includes a session management database (DB)5005, which stores a session management table ofFIG. 14. The session management table ofFIG. 14stores information regarding each of the sessions that are carried out by at least two terminals10of the transmission system1. More specifically, for each session ID that uniquely identifies each session, the session management table ofFIG. 14stores a relay terminal ID of the relay terminal30to be used for transmitting or receiving contents data such as image data and sound data, a terminal ID of the request terminal10A, a terminal ID of the counterpart terminal10B, a delay time ms indicating a time period required for receiving contents data at the counterpart terminal10B, the date and time information indicating the time at which the management system50receives delay information from the counterpart terminal10B. For example, referring to the session management table ofFIG. 14, for the session having the session ID “se1”, the relay terminal30ehaving the relay terminal ID “111e” is selected to relay contents data between the request terminal10aahaving the terminal ID “01aa” and the counterpart terminal10dbhaving the terminal ID “01db”. Further, the management system50receives the delay information from the counterpart terminal10dbat 14:00 PM, Nov. 10, 2009. Based on this date and time information, the delay time ms of 200 milliseconds (ms) is obtained. In case of having videoconference between only two terminals10, the delay time may be determined based on the time when the management system50receives the delay information transmitted from the request terminal10A rather than based on the time when the management system50receives the delay information transmitted from the counterpart terminal10B. In case of having videoconference with more than two terminals10, the delay information transmitted from the counterpart terminal10B that receives the contents data is used to manage the date and time at which the delay information is received.

The nonvolatile memory5000further includes a quality management database (DB)5007, which stores a quality management table ofFIG. 15. The quality management table ofFIG. 15stores the delay time ms of image data in association with the quality of image data. More specifically, the quality management table ofFIG. 15indicates that the quality of image data to be processed by the relay terminal30is lowered, as the delay time ms of the image data at the request terminal10A or the counterpart terminal10B increases. For example, when the delay time ms is equal to or greater than 0 milliseconds (ms), but less than 100 ms, the image data quality is high. When the delay time ms is equal to or greater than 100 ms but less than 300 ms, the image data quality is medium. When the delay time ms is equal to or greater than 300 but less than 500 ms, the image data quality is low. When the delay time ms is equal to or greater than 500 ms, the management system50interrupts operation of transmitting data.

(Relay Terminal Selection Management Table)

The nonvolatile memory5000further stores a relay terminal selection management database (DB)5008, which stores a relay terminal selection management table ofFIG. 16. The relay terminal selection management table ofFIG. 16stores, for each of the terminal IDs of the terminals10that are managed by the management system50, the relay terminal ID of the relay terminal30that is used for relaying contents data.

The nonvolatile memory5000further stores a state change management DB5009, which stores a specific rule used for managing the communication state of the terminal10, for example, in the form of a state change management table ofFIG. 17and a state change management table ofFIG. 18. The state change management table ofFIG. 17stores change request data indicating a request for changing the communication state of the terminal10, previous state data indicating the communication state before being changed by a state changer53cof the state manager53, and changed state data indicating the communication state after being changed by the state changer53cof the state manager53, in association with one another. The state change management table ofFIG. 18stores change request data, terminal data for identifying the request terminal10A and the counterpart terminal10B, previous state data of the request terminal10A and the counterpart terminal10B, and changed state data of the request terminal10A and the counterpart terminal10B, in association with one another.

Examples of the change request data include, but not limited to, the “Invite” indicating that a request for starting communication with a counterpart terminal10A is requested by a request terminal10A, the “Accept” indicating that the request for starting communication with the request terminal10A is accepted by the counterpart terminal10B, the “Call” indicating that a request for participating in a session that is already established by participating terminals10is requested by a participation requesting terminal10, the “Join” indicating that a request for establishing a contents data session through the relay terminal30is requested by a request terminal10A to start relaying of contents data, and the “Leave” indicating that a request for disconnecting the contents data session with the relay terminal30is requested by a request terminal10A to end relaying of contents data. In alternative to or in addition to the above-listed change request data, any desired type of change request data may be managed including, for example, the “Reject” indicating that the request is rejected or the “Cancel” indicating that the request is canceled.

Further, in this example, the state change management table ofFIG. 17stores previous state data and changed state data of the terminal10, for the change request data “Call”, “Join”, and “Leave”, as these types of change request data cause any one of the request terminal10A and the counterpart terminal10B to change its communication state in the same manner. The state change management table ofFIG. 18stores previous state data and changed state data, respectively for the request terminal10A and the counterpart terminal10B, for the change request data “Invite” and “Accept”, as these types of change request data cause the request terminal10A and the counterpart terminal10B to change its communication state in a different manner.

When the change request data is detected, the management system50determines whether to change the communication state of the request terminal10A or the counterpart terminal10B using the state change management table. When the communication state is to be changed, the management system50changes the communication state of the request terminal10A or the counterpart terminal10B using the state change management table.

For example, referring to the state change management table ofFIG. 18, when the change request data “Invite” that requests the counterpart terminal10B to start communication is received from the request terminal10A, the state manager53of the management system50changes the communication state of the request terminal10A from the previous communication state “None” to the changed communication state “Calling”. The state manager53further changes the communication state of the counterpart terminal10B from the previous communication state “None” to the changed communication state “Ringing”.

Now, the functional structure of the management system50is explained. The data transmit/receive51, which may be implemented by the network I/F209(FIG. 3) according to an instruction received from the CPU201, transmits or receives various data or information to or from another terminal, device, or system through the communication network2.

Under control of the CPU201(FIG. 3), the terminal authenticator52obtains a terminal ID and a password from the login request information that is received from the data transmit/receive51. Using the terminal ID and the password as a search key, the terminal authenticator52searches the terminal authentication management DB5002(FIG. 11) to determine whether the obtained set of terminal ID and password is registered. Based on the search result, the terminal authenticator52determines whether the user at the terminal10or the terminal10is allowed for access.

The state manager53, which operates according to an instruction received from the CPU201(FIG. 3), includes a state set53a, a state obtainer53b, and the state changer53cas illustrated inFIG. 6. The state set53amanages information stored in the terminal management table ofFIG. 12by changing from the operation state “OFFLINE” to the operation state “ONLINE” when the operation state information indicating that the power is turned on is received from the terminal10as the power switch109of the terminal10is turned on by the user. The state set53afurther manages information stored in the terminal management table ofFIG. 12by changing the operation state “ONLINE” to the operation state “OFFLINE” when the operation state information indicating that the power is turned off is received from the terminal10as the power switch109of the terminal10is turned off by the user.

When the change request data is received at the data transmit/receive51from the request terminal10A or the counterpart terminal10B, the state obtainer53bobtains the state information of the request terminal10A or the counterpart terminal10B from the terminal management table ofFIG. 12.

The state changer53cchanges the state information of the request terminal10A or the counterpart terminal10B that is managed by the terminal management table ofFIG. 12, based on the change request data received at the data transmit/receive51.

The terminal extractor54, which operates according to an instruction received from the CPU201(FIG. 3), searches the candidate list management DB5004(FIG. 13) using the terminal ID of the request terminal10A as a key to obtain a list of terminal IDs each being assigned to a plurality of candidate terminals10. Additionally, the terminal extractor54searches the candidate list management DB5004(FIG. 13) using the terminal ID of the request terminal10A as a key to obtain a terminal ID of another request terminal10A that registers the request terminal10A as a candidate terminal for another request terminal10A.

The terminal state obtainer55, which operates under control of the CPU201(FIG. 3), searches the terminal management DB5003(FIG. 12) using the terminal ID of each candidate terminal10that is extracted by the terminal extractor54as a key to obtain the state information of each candidate terminal10. The terminal state obtainer55obtains the state information of each of the candidate terminal10that is previously determined for the request terminal10A that sends the login request information. Further, the terminal state obtainer55searches the terminal management DB5003using the terminal ID extracted by the terminal extractor54as a key to obtain the state information of the request terminal10A that sends the login request information.

The relay terminal selector56, which operates according to an instruction received from the CPU201(FIG. 3), selects one relay terminal30from the plurality of relay terminals30. As illustrated inFIG. 7, the relay terminal selector56includes a session ID generator56a, a relay terminal extractor56b, and a selector56c.

The session ID generator56aof the relay terminal selector56generates a session ID for identifying a session in which contents data is transmitted or received between or among the terminals10. The relay terminal extractor56bextracts the terminal ID of the request terminal10A and the terminal ID of the counterpart terminal10B respectively from the request information received from the request terminal10A, and searches the terminal management DB5003(FIG. 12) to obtain the relay terminal ID that is associated with the request terminal10A and the relay terminal ID that is associated with the counterpart terminal10B. The selector56cselects one or more relay terminals30having the online state from the relay terminal management DB5001(FIG. 10) to obtain the relay terminal ID of the selected relay terminal30.

Referring back toFIG. 5, the session manager57, which operates according to an instruction received from the CPU201, stores the session ID generated by the session ID generator56a, the terminal ID of the request terminal10A, and the terminal ID of the counterpart terminal10B, in a corresponding manner, in the session management DB5005(FIG. 14) of the nonvolatile memory5000. The session manager57further stores the relay terminal ID of the relay terminal30that is finally selected by the selector56cfor each session ID, in the session management DB5005(FIG. 14). For example, when participation request information is received, the session manager57searches the session management table ofFIG. 14using the session ID included in the participation request information as a search key to obtain the terminal ID of the request terminal10A and the terminal ID of the counterpart terminal10B that are stored with respect to the session ID.

The quality determiner58, which operates according to an instruction received from the CPU201(FIG. 3), searches the quality management DB5007(FIG. 15) using the delay time ms obtained for the selected relay terminal30to obtain the image data quality that is desirable for communication using the relay terminal30.

The memory control59, which is implemented by the HDD205(FIG. 3), stores various data in the nonvolatile memory5000or reads out various data from the nonvolatile memory5000. The memory control59further stores various data in the volatile memory5100or reads out various data from the volatile memory5100.

The delay time manager60searches the terminal management DB5003(FIG. 12) using the IP address of the counterpart terminal10B to obtain the terminal ID of the counterpart terminal10B. The delay time manager60further manages the session management table ofFIG. 14stored in the session management DB5005so as to keep updated the value stored in the “delay time” field for the obtained terminal ID of the counterpart terminal10B.

The connection determiner62determines whether the terminal10that sends a request for participating in the contents data session “sed” that is established between or among the terminals10(“the participation requesting terminal10”) should be allowed to participate in the contents data session. For example, the connection determiner62obtains the terminal ID of the participation requesting terminal10that sends a request for participating, when such request is received at the data transmit/receive51. The connection determiner62further causes the terminal extractor54to extract the terminal IDs of the request terminal10A and the counterpart terminal10B that are participating in the contents data session “sed” (“the participating terminal10”), and obtains a list of terminal IDs of candidate counterpart terminals10that are registered for the participating terminal10. The connection determiner62determines whether the terminal ID of the participation requesting terminal10that sends the request for participating is included in a list of terminal IDs of the candidate counterpart terminals10obtained for the participating terminal10. When the terminal ID of the participation requesting terminal10that sends the request for participating is included in the list, the connection determiner62allows the participation requesting terminal10that sends the request to participate in the contents data session “sed” that is established between or among the participating terminals10.

The calculator63calculates the value of a distance of the shortest path between the participation requesting terminal10that sends the request for participating in the session, and the participating terminal10that is participating in the session, for each set of the participation requesting terminal10and the participating terminal10. In calculation, each terminal10is treated as a node such that the distance of the shortest path between the nodes, or the terminals, indicates closeness between the terminals that reflect closeness between the users of the terminals. The calculator63obtains the largest value of distance of the shortest path between the participation requesting terminal10and the participating terminal10, from the calculated distance values. In calculation, the calculator63defines a distance between the request terminal10A and the candidate counterpart terminal10to be a predetermined value. The candidate counterpart terminal10is any terminal that is stored in the candidate list management table (FIG. 13) in association with the request terminal10A. The distance of the shortest path between the participation requesting terminal10and the participating terminal10is expressed using the predetermined value.

<Operations of Transmission System>

Referring now toFIGS. 19 to 35, operation performed by the transmission system1is explained according to an example embodiment of the present invention.FIG. 19is a data sequence diagram illustrating operation of managing state information indicating the operation state of the relay terminal30, which is sent from the relay terminal30to the management system50, according to an example embodiment of the present invention.FIG. 20is an illustration of transmitting or receiving image data, sound data, or management data, performed by the transmission system ofFIG. 1.FIGS. 21A and 21Bare a data sequence diagram illustrating operation of establishing communication among two or more terminals10of the transmission system ofFIG. 1.FIG. 22is an example screen of a candidate list.FIG. 23is a data sequence diagram illustrating operation of managing a request for starting communication.FIG. 24is a flowchart illustrating operation of changing a communication state of a terminal.FIG. 25is a data sequence diagram illustrating operation of managing a response to the request for starting communication.FIG. 26is a data sequence diagram illustrating operation of managing a request for starting relaying of contents data.FIG. 27is a flowchart illustrating operation of changing a communication state of a terminal.FIG. 28is a data sequence diagram illustrating transmitting or receiving contents data such as image data and sound data, performed by two or more terminals.FIG. 29is a data sequence diagram illustrating operation of managing a request for participating in a contents data session.FIG. 30is a flowchart illustrating operation of determining whether to allow a participation requesting terminal to participate in a contents data session, using the candidate terminal list.FIG. 31is an illustration of a distance of the shortest path between the participation requesting terminal and the participating terminal.FIG. 32is a flowchart illustrating operation of changing a communication state of a terminal.FIG. 33is a data sequence diagram illustrating operation of managing a request for leaving from the contents data session.FIG. 34is an illustration of a candidate list according to another example embodiment of the present invention.FIG. 35is an illustration for explaining the transition of a communication state of a terminal.

Referring now toFIG. 19, operation of managing state information of the terminal30, which is sent from each terminal30to the transmission management system50, performed by the transmission system1is explained according to an example embodiment of the present invention. In this example, operation ofFIG. 19is performed by each one of the relay terminals30a,30b,30c, and30dthat are provided in the local area of the transmission system1. The relay terminal30e, which is always turned on, does not perform operation ofFIG. 19as the relay terminal30eis assumed to have the operation state “ONLINE”.

At S1-1, S1-2, S1-3, and S1-4, the relay terminals30a,30b,30c, and30deach periodically monitors the operation state of the relay terminal30. This monitoring is performed by the state detector32(FIG. 5) of the relay terminal30.

At S2-1, S2-2, S2-3, and S2-4, the data transmit/receive31of the relay terminal30periodically transmits state information of the relay terminal30to the management system50through the communication network2. With the state information of the relay terminal30that is periodically received, the management system50is able to manage the operation state of the relay terminal30in realtime. The state information of the relay terminal30includes an operation state of the relay terminal30that is detected by the state detector32of the relay terminal30, which is sent together with a relay terminal ID that uniquely identifies each relay terminal30. For the descriptive purposes, in this example, it is assumed that the relay terminals30a,30b, and30deach have the on-line state, and the relay terminal30chas the off-line state due to the failure in relay control program of the relay terminal30c.

At S3-1, S3-2, S3-3, and S3-4, the management system50receives the state information from the relay terminal30at the data transmit/receive51, and stores the received state information of the relay terminal30in the nonvolatile memory5000through the memory control59. More specifically, the memory control59stores the state information of each relay terminal30in association with the relay terminal ID of the corresponding relay terminal30in the relay terminal management DB5001(FIG. 10). For example, referring toFIG. 10, the management system50stores the state information of the relay terminal30indicating whether the relay terminal30is on-line, off-line, or in trouble, etc., in association with the relay terminal ID of the relay terminal30. Additionally, the management system50stores the date and time information indicating the time when the management system50receives the state information of the relay terminal30in association with the relay terminal ID of the relay terminal30. When the management system50does not receive any state information from the relay terminal30, the relay terminal management table ofFIG. 10has an empty value for the “operation state” field and the “date and time” field for the subjected relay terminal30. Alternatively, the value of the “operation state” field and the value of the “date and time” field may reflect the state information that is previously sent by the subjected relay terminal30to the management system50such that the relay terminal management table ofFIG. 10retains such value.

Referring now toFIG. 20, transmission or reception of various data such as contents data and management data among three terminals10in the transmission system1is explained according to an example embodiment of the present invention. As illustrated inFIG. 20, in the transmission system1, the request terminal10A, the counterpart terminal10B1, and the counterpart terminal10B2, first establish a management data session “sei” with the management system50to start transmission and reception of various types of management data through the management system50. Further, in this example, the request terminal10A, the counterpart terminal10B1, and the counterpart terminal10B2establish four contents data sessions “sed” to transmit or receive contents data through the relay terminal30. The four contents data sessions, which may be referred to as image and/or sound data sessions, include a session “HL” to transmit high-level resolution image data HL, a session “ML” to transmit medium-level resolution image data ML, a session “LL” to transmit low-level resolution image data LL, and a session “V” to transmit sound data V such as voice data.

Referring now toFIGS. 21A and 21B, operation of transmitting and receiving various management data before starting videoconference by the request terminal10aais explained, according to an example embodiment of the present invention. InFIGS. 21A and 21B, management data is transmitted or received through the management data session “sei”.

For example, at S21, when the user selects “ON” using the power switch109, the operation input12receives a user instruction for turning the power on, and causes the terminal10aato turn on the power. At S22, as the power of the request terminal10aais turned on, the login request13of the request terminal10aaautomatically causes the data transmit/receive11to send the login request information that requests the login process to the management system50through the communication network2. The login request information includes a terminal ID that identifies the request terminal10aa, and a password assigned to the request terminal10aa. The terminal ID and the password may be obtained by the memory control19from the nonvolatile memory1000, and sent to the data transmit/receive11. At the time of sending the login request information from the request terminal10aato the management system50, the request terminal10aasends an IP address of the request terminal10aasuch that the management system50knows the IP address of the request terminal10aa.

At S23, the terminal authenticator52of the management system50searches the terminal authentication management DB5002(FIG. 11) stored in the nonvolatile memory5000using the terminal ID and the password of the login request information received through the data transmit/receive51. When it is determined that the terminal ID and the password of the login request information is stored in the terminal authentication management DB5002, the terminal authenticator52determines that the terminal10aais authenticated.

At S24-1, when the terminal authenticator52authenticates that the login request information is received from the authenticated terminal10, the state manager53of the management system50stores the date and time at which the login request information is received, and the IP address of the terminal10aa, with respect to the terminal ID “01aa” of the terminal10aain the terminal management DB5003(FIG. 12).

At S24-2, the state set53aof the state manager53stores the operation state “ONLINE” and the communication state “None” of the terminal10aain the terminal management DB5003(FIG. 12) in association with other information of the terminal10aafor the record that is specified by the terminal ID and the terminal name of the terminal10aa. Using the terminal management table ofFIG. 12, which stores the operation state of “ONLINE”, the communication state of “None”, the date and time of “13:40, Nov. 10, 2009”, and the terminal IP address of “1.2.1.3” in association with the terminal ID “01aa”, various information regarding the terminal10aacan be managed.

At S25, the data transmit/receive51of the management system50sends the authentication result obtained by the terminal authenticator52to the request terminal10aathat has sent the login request information through the communication network2. As described above, in this example, it is assumed that the terminal authenticator52determines that the terminal10aais an authenticated terminal.

When the request terminal10aareceives the authentication result indicating that the terminal10aais authenticated, at S26, the data transmit/receive11sends the candidate list request information that requests for a candidate list to the management system50through the communication network2. The data transmit/receive51of the management system50receives the candidate list request information.

At S27, the terminal extractor54of the management system50searches the candidate list management DB5004(FIG. 13) using the terminal ID “01aa” of the request terminal10aathat has sent the login request information and the candidate list request information to extract a terminal ID and a terminal name for each of candidate terminals10that are previously registered for the request terminal10aa. More specifically, referring toFIGS. 12 and 13, the extractor54extracts terminal IDs including “01ab”, “01ba”, and “01db”. of terminals10ab,10ba, and10db, and terminal names including “Japan Tokyo Office AB Terminal”, “Japan Osaka Office BA Terminal”, and “U.S. Washington, D.C. Office, DB Terminal” to obtain information regarding candidate terminals for the request terminal10aa.

At S28, the data transmit/receive51of the management system50reads out the candidate list frame data such as the candidate list frame1100-1ofFIG. 22from the nonvolatile memory5000. At S29, the data transmit/receive51of the management system50sends the candidate list information including the candidate list frame data obtained at S28, and the terminal ID and the terminal name of the candidate terminal obtained at S27, to the request terminal10aa. At S30, the request terminal10aareceives the candidate list information at the data transmit/receive11, and stores the candidate list information in the volatile memory1100through the memory control19.

As described above, in this example, in alternative to managing the candidate list information by each terminal10, the management system50centrally manages the candidate list information for all terminals10. As the candidate list information is centrally managed at the management system50, any change in the transmission system1can be easily reflected in a timely manner without requiring the user at the terminal10to change any settings. For example, the management system50is able to update the candidate list information to reflect when a new terminal10is added to the transmission system1, when a new type of terminal10is introduced to the transmission system1, or when the design for the candidate list frame is changed.

At S31, the terminal state obtainer55of the management system50searches the terminal management DB5003(FIG. 12) using the terminal ID (“01ab”, “01ba”, and “01db”) of the candidate terminal extracted by the terminal extractor54as a key to obtain the state information, i.e., the operation state and the communication state, for each one of the candidate terminals10ab,10ba, and10db.

At S32, the data transmit/receive51of the management system50sends the state information for each one of the candidate terminals10ab,10ba, and10dbto the request terminal10aathrough the communication network2. More specifically, the data transmit/receive51of the management system50sends the state information of the candidate terminal10abtogether with the terminal ID “01ab” of the candidate terminal10abas the terminal state information. In this example, the terminal ID “01ab” of the candidate terminal10abhas been extracted by the terminal extractor54. Using the terminal ID “01ab” as a search key, the operation state of the candidate terminal10ab, which is the “OFFLINE” state, is obtained from the terminal management table (FIG. 12). Similarly, the data transmit/receive51of the management system50sends the terminal state information of the candidate terminal10ba, which includes the terminal ID “01ba” used as a search key at S27, and the operation state “ONLINE” and the communication state “Calling” of the candidate terminal10ba. This process of sending the terminal state information is repeated until the terminal state information is sent for all of the candidate terminals10.

At S33, the memory control19of the request terminal10aastores the state information that is received from the management system50in the volatile memory1100. As described above, with the state information of each candidate terminal, the request terminal10aais able to know the current state information, such as the current operation state and the current communication state, of the candidate terminal10that is previously registered for the request terminal10aa.

At S34, the candidate list generator20of the request terminal10aagenerates a candidate list that reflects the operation state and the communication state of the candidate terminal10, based on the candidate list information and the state information of the candidate terminal10that are stored in the volatile memory1100. The display control16of the request terminal10aacauses the display120to display a candidate list at a predetermined time.

More specifically, as illustrated inFIG. 22, the request terminal10aacauses the display120aato display a candidate list that displays the candidate terminal name1100-2and the icon1100-3that reflects the operation state and the communication state of the candidate terminal10, within the candidate list frame1100-1.

Referring back toFIG. 21B, at S35, the terminal extractor54of the management system50searches the candidate list management DB5004(FIG. 13) using the terminal ID “01aa” of the request terminal10aathat has sent the login request information to extract the terminal ID of one or more terminals10each of which registers the request terminal10aaas one of its candidate terminals10. The candidate list management table ofFIG. 13indicates that the terminal ID of the terminal10having the request terminal10aaas a candidate terminal is “01ab”, “01ba”, and “01db”.

At S36ofFIG. 21B, the terminal state manager55of the management system50searches the terminal management DB5003(FIG. 12) using the terminal ID “01aa” of the request terminal that has sent the login request information as a search key to obtain the operation state and the communication state of the request terminal10aa. In this example, the operation state “ONLINE” and the communication state “None” are extracted for the request terminal10aa.

At S37-1and S37-2, the data transmit/receive51of the management system50sends the terminal ID “01aa” and the state information of the request terminal10aa, which are respectively obtained at S36, to the terminals10ab,10ba, and10dbeach having the request terminal10aaas a candidate terminal that is obtained at S35. In this example, the management system50sends the terminal state information of the request terminal10aato only the terminals10baand10dbeach having the “ONLINE” state as shown inFIG. 12. More specifically, in this example, the data transmit/receive51refers to the terminal management table ofFIG. 12to obtain the IP address of each of the terminals10baand10db. Using the obtained IP addresses, the management system50is able to send the terminal state information of the request terminal10aato the terminals10baand10dbeach of which lists the request terminal10aaas a candidate terminal and having the online state.

The above-described operation of S22to S38is performed by any desired terminal10as the power of the terminal10is turned on through the power switch109(FIG. 2).

Referring now toFIGS. 23 and 24, operation of managing a request for starting communication with a counterpart terminal10B that is generated by a request terminal10A, performed by the transmission system1, is explained according to an example embodiment of the present invention. In operation, various data is transmitted or received through the management data session “sei” before starting communication, as management data. Further, it is assumed that the request terminal10A is able to start communication with any number of terminals having the operation state “ONLINE” and the communication state “None”, which are obtainable from the candidate list being displayed through the display120. In this example illustrated inFIG. 23, the request terminal10aarequests the candidate counterpart terminal10dbto start communication with the request terminal10aa.

At S41, as the user at the request terminal10aapresses the operation button108(FIG. 2) to select the counterpart terminal10db, the operation input12(FIG. 5) receives a user instruction for starting communication with the counterpart terminal10db.

At S42, the data transmit/receive11of the request terminal10aasends communication start request information to the management system50. The communication start request information includes the terminal ID “01aa” of the request terminal10aa, the terminal ID “01db” of the counterpart terminal10db, and the change request data “Invite” that requests communication to be started. With this information, the data transmit/receive51of the management system50receives the IP address “1.2.1.3” of the request terminal10aa.

At S43, the state manager53of the management system50specifies records in the terminal management table (FIG. 12) stored in the terminal management DB5003, which respectively correspond to the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10dbto manage the specified records.

Referring now toFIG. 24, operation performed at S43ofFIG. 23is explained according to an example embodiment of the present invention. In this example, the state manager53changes the communication states of the request terminal10A and the counterpart terminal10B according to a communication state change rule that is previously defined.

For example, referring toFIG. 35, assuming that the current communication state of the terminal10is “Ringing” or “Calling”, when the change request data “Accept” is received, the state manager35changes the communication state of the terminal10from the state “Ringing” or “Calling” to the state “Accepted”. When the current communication state of the terminal10is “Accepted”, the communication state of the terminal10remains the same even when the change request data “Accept” is received. In the following examples, the state manager53manages the communication state of the terminal10, using the state change management table ofFIGS. 17 and 18. However, the state manager53may manage the communications state of the terminal10in various other ways, as long as the state manager53changes the communication state according to a specific rule such as the communication state change rule ofFIG. 35.

Referring toFIG. 24, at S43-1, the state obtainer53bof the state manager53(FIG. 6) obtains a current communication state of each of the request terminal10aaand the counterpart terminal10db, from the terminal management table (FIG. 12) stored in the terminal management DB5003. The change request data determiner61determines whether the change request data “Invite”, which is received at the data transmit/receive51, is specific change request data that is previously defined. In this example, the specific change request data is defined to be either the “Invite” or the “Accept”, which is managed by the state change management table ofFIG. 18. Since the change request data “Invite” is the specific change request data, the change request data determiner61determines that the state change management table ofFIG. 18is used. Based on this determination, the state obtainer53bobtains the current communication state of the counterpart terminal10dband the current communication state of the request terminal10aa. More specifically, the state obtainer53bsearches the terminal management table (FIG. 12) stored in the terminal management DB5003using the terminal ID “01aa” of the request terminal10aaas a search key to obtain the communication state “None” of the request terminal10aathat has sent the request. In a substantially similar manner, the state obtainer53bobtains the communication state “None” of the counterpart terminal10dbusing the terminal ID “01db” of the counterpart terminal10db.

At S43-2, the state changer53cof the state manager53obtains previous state data of the request terminal10aaand previous state data of the counterpart terminal10dbthat correspond to the change request data “Invite”. For example, referring toFIG. 18, the state changer53csearches the state change management table ofFIG. 18using the change request data “Invite” and the terminal data “REQUEST” as a search key to obtain the previous state data “None” of the request terminal10aa. Similarly, the state changer53csearches the state change management table ofFIG. 18using the change request data “Invite” and the terminal data “COUNTERPART” as a search key to obtain the previous state data “None” of the counterpart terminal10db.

At S43-3, the state changer53ccompares the communication state of the terminal10that is obtained by the state obtainer53bat S43-1, with the previous state data of the terminal10that is obtained by the state changer53cat S43-2, to generate a comparison result. More specifically, the state changer53ccompares the communication state “None” of the request terminal10aawith the previous state data “None” of the request terminal10aato generate a comparison result. The state changer53cfurther compares the communication state “None” of the counterpart terminal10dbwith the previous state data “None” of the counterpart terminal10dbto generate a comparison result.

When the comparison result generated at S43-3indicates that the communication state and the previous state data match for the request terminal10aaand the counterpart terminal10db(“YES” at S43-3), the operation proceeds to S43-4. At S43-4, the state changer53cobtains the changed state data of the request terminal10aaand the changed state data of the counterpart terminal10dbthat correspond to the change request data “Invite”. More specifically, the state changer53csearches the state change management table (FIG. 18) using the change request data “Invite” and the terminal data “REQUEST” as a search key to obtain the changed state data “Calling” of the request terminal10aa. Similarly, the state changer53csearches the state change management table (FIG. 18) using the change request data “Invite” and the terminal data “COUNTERPART” as a search key to obtain the changed state data “Ringing” of the counterpart terminal10db.

At S43-5, the state changer53csearches the terminal management table (FIG. 12) for the records corresponding to the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10dbto change the communication state fields for the request terminal10aaand the counterpart terminal10db. More specifically, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01aa”, which is stored in the terminal management table, to the communication state “Calling” based on the changed state data of the request terminal10aa. Similarly, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01db”, which is stored in the terminal management table, to the communication state “Ringing” based on the changed state data of the counterpart terminal10db.

At S43-3, when the comparison result generated by the state changer53cindicates that the communication state is not the same as the previous state data either for the request terminal10aaor the counterpart terminal10db(“NO” at S43-3″), the state changer53cdoes not change the communication state fields stored in the terminal management table (FIG. 12) for the record of the terminal ID “01aa” and the record of the terminal ID “01db”. When the comparison result indicates that the communication state is not the same as the previous state data for the request terminal10aaor the counterpart terminal10db, the state changer53cdetermines that the request terminal10aaor the counterpart terminal10dbis not in the communication state in which communication can be started. In such case, the operation proceeds to S43-6to cause the data transmit/receive51to send an error message to the request terminal10aa, and the operation ends.

More specifically, when the error message is sent from the management system50, S44to S48ofFIG. 23are not performed. Instead, the request terminal10aa, which receives the error message, causes the display120aato display an error message to the user.

In this example, it is assumed that the communication states of the request terminal10aaand the counterpart terminal10dbare respectively changed at S43-5. In such case, referring back toFIG. 23, S44to S48are performed as follows.

At S44, the session ID generator56agenerates a session ID “se1” for identifying the contents data session “sed” through which the contents data will be exchanged between the request terminal10aaand the counterpart terminal10db. The session manager57stores the session ID “se1” in the volatile memory5100.

At S45, the relay terminal selector56of the management system50selects one of the relay terminals30, which will be used to relay contents data through the contents data session to be established between the request terminal10aaand the counterpart terminal10db. More specifically, the relay terminal extractor56bof the relay terminal selector56searches the relay terminal selection management table (FIG. 16) using the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10db, which are respectively extracted from the communication start request information transmitted from the request terminal10aa, to obtain the relay terminal IDs “111a” and “111d” that correspond to the terminals10aaand10db.

When the relay terminal IDs that are extracted for the request terminal10aaand the counterpart terminal10dbmatch, the selector56crefers to the operation state of the relay terminal30having the extracted relay terminal ID, which is stored in the relay terminal management table (FIG. 10). When the operation state of the relay terminal30is in the online state, the selector56cselects the relay terminal that is extracted as a relay terminal that relays contents data between the request terminal10aaand the counterpart terminal10db.

When the relay terminal IDs that are extracted for the request terminal10aaand the counterpart terminal10dbdo not match, or when the operation state of the relay terminal30is in the offline state, the selector56cselects the relay terminal30ehaving the terminal ID “111e” as a relay terminal that relays contents data between the request terminal10A and the counterpart terminal10B. In this example, since the extracted terminal IDs differ for the request terminal10aaand the counterpart terminal10db, the selector56cselects the relay terminal30e.

When selection of the relay terminal30is completed, at S46, the session manager57manages a record that corresponds to the session ID “se1”, which is stored in the session management table (FIG. 14) stored in the session management DB5005in the nonvolatile memory5000, for example, by inputting the relay terminal ID “111e” of the selected terminal in the “RELAY TERMINAL ID” field, the terminal ID “01aa” of the request terminal10aain the “REQUEST TERMINAL ID” field, and the terminal ID “01db” of the counterpart terminal10dbin the “COUNTERPART TERMINAL ID” field.

At S47, the data transmit/receive51(FIG. 5) sends the session ID that is generated by the session ID generator56a, and the relay terminal connection information to be used for connecting to the relay terminal30ethat is selected by the selector56c, to the request terminal10aathrough the communication network2. In this example, the relay terminal connection information includes the IP address “1.1.1.3”, authentication information, and a port number of the relay terminal30e. The request terminal10aais able to obtain the relay terminal connection information to be used for connecting to the relay terminal30ethat relays contents data to carry out a session with the session ID “se1”.

At S48, the data transmit/receive51sends the communication start request information including the terminal ID “01aa” of the request terminal10aa, the change request data “Invite” that requests the counterpart terminal10dbto start communication, and the session ID “se1”, the relay terminal connection information to be used for connecting to the relay terminal30e, and the IP address of the management system50. With the communication start request information, the data transmit/receive51of the counterpart terminal10dbobtains the relay terminal connection information to be used for connecting the relay terminal30ethat relays contents data, and the IP address “1.1.1.2” of the management system50.

Referring now toFIGS. 24 and 25, operation of managing a response to the request for starting communication, performed by the transmission system1, is explained according to an example embodiment of the present invention. The operation ofFIG. 25is performed after operation ofFIG. 23.

At S49, the counterpart terminal10dbthat receives communication start request information from the request terminal10aavia the management system50at S48ofFIG. 23, receives a user instruction for accepting the request for starting communication. For example, when the operation button108(FIG. 2) is pressed by the user, the counterpart terminal10dbdetermines that the communication start request for starting communication with the request terminal10aais accepted.

At S50, the data transmit/receive11of the counterpart terminal10dbsends communication start respond information to the management system50, which includes the terminal ID “01db” of the counterpart terminal10db, the terminal ID “01aa” of the request terminal10aa, the change request data “Accept” indicating that the communication start request is accepted, and the session ID “se1”.

When the data transmit/receive51of the management system50receives the communication start respond information, at S51, the state manager53searches the terminal management table (FIG. 12) using the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10dbto obtain records for the request terminal10aaand the counterpart terminal10db. The state manager53further changes the communication state filed for each of the obtained records.

Referring now toFIG. 24, operation of managing state information of the request terminal10aaand the counterpart terminal10db, performed at S51, is explained. The following steps S51-1to S51-6are performed in a substantially similar manner as described above referring to S43-1to S43-6.

At S51-1, when the data transmit/receive51of the management system50receives the communication start respond information, the state obtainer53bof the state manager53(FIG. 6) refers to the terminal management table (FIG. 12) to obtain the communication state of the terminal in a substantially similar manner as described above referring to S43-1. The change request data determiner61determines that the change request data “Accept” that is received at the data transmit/receive51is the specific change request data that is previously determined. Based on this determination, the state obtainer53bobtains the communication state “Ringing” of the counterpart terminal10db, and the communication state “Calling” of the request terminal10aa.

AT S51-2, the state changer53cof the state manager53searches the state change management table ofFIG. 18using the change request data “Accept” and the terminal data “REQUEST” as a search key to obtain the previous state data “Calling” and “Accepted” of the request terminal10aa. Similarly, the state changer53csearches the state change management table ofFIG. 18using the change request data “Accept” and the terminal data “COUNTERPART” as a search key to obtain the previous state data “Ringing” of the counterpart terminal10db.

At S51-3, the state changer53ccompares the communication state of the terminal10that is obtained by the state obtainer53bat S51-1, with the previous state data of the terminal10that is obtained by the state changer53cat S51-2, to generate a comparison result. More specifically, the state changer53ccompares the communication state “Calling” of the request terminal10aawith the previous state data “Calling” or “Accepted” of the request terminal10aato generate a comparison result. The state changer53cfurther compares the communication state “Ringing” of the counterpart terminal10dbwith the previous state data “Ringing” of the counterpart terminal10dbto generate a comparison result.

When the comparison result generated at S51-3indicates that the communication state and the previous state data match for the request terminal10aaand the counterpart terminal10db(“YES” at S51-3), the operation proceeds to S51-4. At S51-4, the state changer53cobtains the changed state data of the request terminal10aaand the changed state data of the counterpart terminal10dbthat correspond to the change request data “Accept”. More specifically, the state changer53csearches the state change management table (FIG. 18) using the change request data “Accept” and the terminal data “REQUEST” as a search key to obtain the changed state data “Accepted” of the request terminal10aa. Similarly, the state changer53csearches the state change management table (FIG. 18) using the change request data “Accept” and the terminal data “COUNTERPART” as a search key to obtain the changed state data “Accepted” of the counterpart terminal10db.

AT S51-5, the state changer53csearches the terminal management table (FIG. 12) for the records corresponding to the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10dbto change the communication state fields for the request terminal10aaand the counterpart terminal10db. More specifically, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01aa”, which is stored in the terminal management table, to the communication state “Accepted” based on the changed state data of the request terminal10aa. Similarly, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01db”, which is stored in the terminal management table, to the communication state “Accepted” based on the changed state data of the counterpart terminal10db.

At S51-3, when the comparison result generated by the state changer53cindicates that the communication state is not the same as the previous state data either for the request terminal10aaor the counterpart terminal10db(“NO” at S51-3″), the state changer53cdoes not change the communication state fields stored in the terminal management table (FIG. 12) for the record of the terminal ID “01aa” and the record of the terminal ID “01db”. In such case, the operation proceeds to S51-6to cause the data transmit/receive51to send an error message to the counterpart terminal10db, and the operation ends.

More specifically, when the error message is sent from the management system50, S52to S54ofFIG. 25are not performed. Instead, the counterpart terminal10db, which receives the error message, causes the display120db to display an error message to the user.

In this example, it is assumed that the communication states of the request terminal10aaand the counterpart terminal10dbare respectively changed at S51-5. In such case, referring back toFIG. 25, S52to S54are performed as follows.

At S52, the data transmit/receive51of the management system50transmits the communication start respond information to the request terminal10aathrough the communication network2. The communication start respond information includes the terminal ID “01db” of the counterpart terminal10db, the change request data “Accept” indicating that the request for starting communication with the counterpart terminal10dbis accepted, and the session ID “se1”.

When the communication start respond information is received, at S53, the data transmit/receive11of the request terminal10aatransmits the session ID “se1” and the relay terminal connection information obtained at S47(FIG. 23) to the relay terminal30eto establish connection with the relay terminal30e. At S54, the data transmit/receive11of the counterpart terminal10dbtransmits the session ID “se1” and the relay terminal connection information obtained at S48(FIG. 23) to the relay terminal30eto establish connection with the relay terminal30e.

Referring now toFIG. 26, operation of managing a request for starting relay of contents data between the request terminal10aaand the counterpart terminal10dbthrough the relay terminal30e, performed by the transmission system1, is explained according to an example embodiment of the present invention. In this example, various data is transmitted or received through the management data session “sei”. The operation ofFIG. 26is performed at a predetermined time after the request terminal10aaand the counterpart terminal10dbeach establish connection with the relay terminal30eat S53and S54ofFIG. 25.

At S71-1, the data transmit/receive11of the request terminal10aasends relay request information to the management system50, which includes the terminal ID “01aa” of the request terminal10aa, the session ID “se1”, and the change request data “Join” that requests relay of contents data.

When the data transmit/receive51of the management system50receives the relay request information, at S72-1, the state manager53searches the terminal management table ofFIG. 12using the terminal ID “01 aa” of the request terminal10aaobtained from the relay request information to specify a record that corresponds to the terminal ID “01aa”, and changes a filed of the communication state of the specified record.

Referring now toFIG. 27, operation of managing state information performed at S72-1is explained. At S72-1-1, the state obtainer53bof the state manager53(FIG. 6) obtains the communication state of the terminal10that is managed by the terminal management DB5003(FIG. 12). The change request data determiner61determines that the change request data “Join” received at the data transmit/receive51is not the specific change request data previously determined. More specifically, it is determined that the change request data “Join” differs from any one of the “Invite” and the “Accept”. Accordingly, the change request data determiner61determines to use the state change management table ofFIG. 17. Based on this determination, the state obtainer53bobtains only the communication state of the request terminal10aa. More specifically, the state obtainer53bsearches the terminal management table (FIG. 12) using the terminal ID “01aa” of the request terminal10aaas a search key to obtain the communication state “Accepted” of the request terminal10aathat sends the relay start request information.

At S72-1-2, the state changer53cof the state manager53obtains the previous state data that corresponds to the change request data “Join”. More specifically, the state changer53csearches the state change management table ofFIG. 17using the change request data “Join” to obtain the previous change data “Accepted”.

At S72-1-3, the state changer53cdetermines whether the communication state obtained by the state obtainer53bat S72-1-1, and the previous state data obtained by the state changer53cat S72-1-2match. More specifically, in this example, the state changer53ccompares the communication state “Accepted” of the request terminal10aaobtained by the state obtainer53bwith the previous state data “Accepted” obtained by the state changer53cto generate a comparison result.

When the comparison result indicates that the communication state and the previous state data match (“YES” at S72-1-3), the operation proceeds to S72-1-4. At S72-1-4, the state changer53cobtains the changed state data that corresponds to the change request data “Join”. In such case, the state changer53csearches the state change management table (FIG. 17) using the change request data “Join” as a search key to obtain the changed state data “Busy”.

At S72-1-5, the state changer53crefers to the terminal management table (FIG. 12) to specify a record for the terminal ID “01aa” of the request terminal10aa, and changes the communication state field of the specified record. More specifically, in this example, the state changer53cchanges the communication state field of the terminal ID“01aa” of the request terminal10aato the communication state “Busy” based on the obtained changed state data.

When the comparison result indicates that the communication state and the previous state data for the request terminal10aado not match (“NO” at S72-1-3), the state changer53cdoes not change the communication state field of the record that corresponds to the terminal ID “01aa”, which is stored in the terminal management table (FIG. 12). In such case, the operation proceeds to S72-1-6to cause the data transmit/receive51to transmit an error message to the request terminal10aa, and the operation ends.

More specifically, when the error message is sent from the management system50, S73-1to S76-1are not performed. Instead, the request terminal10aa, which receives the error message, causes the display120aato display an error message to the user.

In this example, it is assumed that the communication state of the request terminal10aais changed at S72-1-5. In such case, referring back toFIG. 26, S73-1to S76-1are performed as follows.

At S73-1, the management system50sends the relay start request information to the relay terminal30e, which includes the terminal ID “01aa” of the request terminal10aa, and the session ID “se1”. When the relay start request information is received, at S74-1, the relay terminal30etransmits relay start respond information including a message indicating a permission to start relay “OK” to the management system50. In addition to the “OK”, the relay start respond information includes the terminal ID of the request terminal10aaand the session ID.

When the relay start respond information is received, at S75-1, the data transmit/receive51of the management system50sends the relay start respond information to the request terminal10aa. The relay start respond information includes the terminal ID of the request terminal10aa, the change request data “Join”, the session ID, and the message “OK”. At S76-1, the contents data session “sed” is established between the request terminal10aaand the relay terminal30e.

The management system50performs the above-described operation for each one of the terminals10that will be starting videoconference. More specifically, the management system50performs S71-2to S76-2to establish the contents data session between the relay terminal30eand the counterpart terminal10db.

At a predetermined after the counterpart terminal10dbestablishes connection with the relay terminal30eat S54(FIG. 25), at S71-2, the data transmit/receive11of the counterpart terminal10dbtransmits relay request information to the management system50, which includes the terminal ID “01db” of the counterpart terminal10db, the session ID “se1”, and the change request data “Join” that requests relay of contents data.

The management system50and the relay terminal30eperform S72-2, S73-2, S74-2, and S75-2, in a substantially similar manner as described above referring to S72-1, S73-1, S74-1, and S75-1to establish the contents data session “sed” between the relay terminal30eand the counterpart terminal10db. In managing the state information of the counterpart terminal10db, the management system50obtains the communication state of the counterpart terminal10db, and changes the communication state of the counterpart terminal10dbin a substantially similar manner as described above referring toFIG. 27.

When the contents data session between the request terminal10aaand the relay terminal30e, and the contents data session between the counterpart terminal10dband the relay terminal30eare each established, the relay terminal30erelays contents data such as image data and/or sound data between the request terminal10aaand the counterpart terminal10db. Accordingly, videoconference is carried out between the terminals10aaand10db. The image data may include any one of the low-level resolution image data, the medium-level resolution image data, and the high-level resolution image data.

Referring now toFIGS. 5 and 28, transmission or reception of contents data between the request terminal10aaand the counterpart terminal10dbto carry out videoconference, performed by the transmission system ofFIG. 1, is explained according to an example embodiment of the present invention. In this example, the contents data such as the image data and the sound data flows in a direction from the request terminal10aato the counterpart terminal10db, or in another direction from the counterpart terminal10dbto the request terminal10aa. Since operation such as transmission and reception of the contents data or detection of delay time is the same for both of the directions, the following example focuses on communication in which data flows from the request terminal10aato the counterpart terminal10db.

Referring toFIG. 28, at S81, the data transmit/receive11of the request terminal10aasends the contents data to the relay terminal30ethrough the communication network2in the contents data session “sed”. The contents data includes image data such as image data of an object captured by the imaging unit14and sound data that is input through the sound input15a. In this example, as illustrated inFIG. 20, it is assumed that the high-quality image data based on the low-level resolution image data, the medium-level resolution image data, and the high-level resolution image data, and the sound data, are transmitted. Accordingly, the data transmit/receive31of the relay terminal30ereceives the image data of three different resolution levels, and the sound data.

At S82, the data quality checker33searches the data quality management DB3001(FIG. 8) using the IP address “1.3.2.4” of the counterpart terminal10dbas a key to obtain the quality of the image data to be transmitted to the relay terminal30e. In this example, the quality of image data to be transmitted to the relay terminal30eis the high-quality image data. Since the image data that is received at the data transmit/receive31has the quality that is the same as the quality of the image data obtained from the data quality management DB3001, at S83, the relay terminal30esends the high-quality image data and the sound data to the counterpart terminal10dbin the contents data session “sed”, without applying further image processing.

The counterpart terminal10dbreceives the high quality image data that is generated based on the low-level resolution image data, medium-level resolution image data, and high-level resolution image data, and the sound data, at the data transmit/receive11. The display control16combines the image data of three different resolution levels into the high quality image data for display onto the display120. Further, the sound output15boutputs the sound such as voices, based on the sound data.

At S84, the delay detector18of the counterpart terminal10dbperiodically detects a delay time indicating the time at which the image data is received at the data transmit/receive11, for example, every one second. In this example, it is assumed that the delay time of 200 ms is obtained.

At S85, the data transmit/receive11of the counterpart terminal10dbsends the delay time information indicating the delay time of 200 ms to the management system50through the communication network2, during the management data session “sei”. With the delay time information, the management system50is notified of the delay time, and the IP address “1.3.2.4” of the counterpart terminal10dbthat has sent the delay time information.

At S86, the delay time manager60of the management system50searches the terminal management DB5003(FIG. 12) using the IP address “1.3.2.4” of the counterpart terminal10dbas a search key to extract the terminal ID “01db” of the counterpart terminal10db. The delay time manager60stores the delay time of 200 ms obtained from the delay time information in a “delay time” field of the record of the terminal ID “01db” of the session management table stored in the session management DB5005(FIG. 14).

At S87, the quality determiner58searches the quality management DB5007(FIG. 15) using the delay time of 200 ms to extract the image data quality of “MEDIUM”. Based on the extracted image data quality, the quality determiner58determines that the quality of image data suitable for the delay time of 200 ms is medium.

At S88, the data transmit/receive51searches the relay terminal management DB5001(FIG. 10) using the relay terminal ID “111e”, which is stored in the session management DB (FIG. 14) in association with the counterpart terminal ID “01db”, to extract the IP address “1.1.1.3” of the relay terminal30e.

At S89, the data transmit/receive51sends the quality information indicating that the image data quality that has been determined at S87is medium-level, to the relay terminal30ethrough the communication network2during the management data session “sei”. The image quality information is transmitted with the IP address “1.3.2.4” of the counterpart terminal10db, which was used as a search key at S86.

At S90, the change quality manager34of the relay terminal30estores the IP address “1.3.2.4” of the counterpart terminal10dbin association with the “medium-level” quality image data to be relayed by the counterpart terminal10db, in the data quality management DB3001(FIG. 8).

At S91, the request terminal10aatransmits the high quality image data including the low-level resolution image data, the medium-level resolution image data, and the high-level resolution image data, and the sound data, to the relay terminal30eduring the contents data session “sed”, in a substantially similar manner as described above referring to S81.

At S92, the data quality checker33of the relay terminal30esearches the data quality management DB3001(FIG. 8) using the IP address “1.3.2.4” of the counterpart terminal10dbas a search key to extract the quality of the image data suitable for the counterpart terminal10db, in a substantially similar manner as described above referring to S82.

At S93, since the image data quality that is stored for the counterpart terminal10dbis the medium-level, which is lower than the quality of the image data that is received at the data transmit/receive31, the data quality changer35changes the quality of the image data from the high-level to the medium level. In this example, the quality of the sound data remains the same.

At S94, the data transmit/receive31of the relay terminal30esends the image data having the quality that is lowered to the medium-level, and the sound data, to the counterpart terminal10dbthrough the communication network2, during the contents data session “sed”. The data transmit/receive11of the counterpart terminal10dbreceives the medium-quality image data that is generated based on the low-level resolution image data and the medium-level resolution image data, and the sound data. The display control16of the counterpart terminal10dbcombines the image data of two different resolution levels to generate the medium-level image data for display on the display120. Further, the sound output15boutputs sounds such as voices generated based on the sound data.

As described above, when any delay in receiving the image data at the counterpart terminal10dbis observed, the relay terminal30echanges the quality of image data by lowering the quality of image data. Accordingly, the users participating the videoconference are able to carry out communication more smoothly.

Referring toFIG. 29, operation of managing a request for participating in the contents data session that has been established between the request terminal10aaand the counterpart terminal10db, which is generated by a participation request terminal10cb, performed by the transmission system1, is explained according to an example embodiment of the present invention. More specifically, in this example, it is assumed that the user at the request terminal10aainvites the user at the terminal10cbto join the videoconference after the contents data session starts. Further, in this example, it is assumed that the user at the terminal10cb, or the terminal10cb, is not registered as a participant of the contents data session. InFIG. 29, management data is transmitted or received through the management data session “sei”.

At S101, as the user at the request terminal10aapresses the operation button108(FIG. 2), the terminal10aareceives a user instruction for inviting the counterpart terminal10cbto participate in the contents data session “sed”.

At S102, the data transmit/receive11of the request terminal10aatransmits session ID notice request information to the management system50through the communication network2. The session ID notice request information includes the terminal ID “01aa” of the request terminal10aa, the terminal ID “01cb” of the counterpart terminal10cb, and the session ID “se1” of the contents data session being carried out by the terminals10aaand10db.

When the session ID notice request information is received, at S103, the data transmit/receive51of the management system50transmits the session ID notice information to the counterpart terminal10cb, which includes the terminal ID “01aa” of the request terminal10aa, and the session ID “se1”.

When the session ID notice information is received, at S104, the counterpart terminal10cbaccepts the invitation for participating in the contents data session “sed” with the session ID “se1”. In this example, when the user at the counterpart terminal10cbpresses the operation button108(FIG. 2), the counterpart terminal10cbreceives a request for participating in the contents data session. At S105, the data transmit/receive11of the counterpart terminal10cb, which requests for participating in that session, sends session participation request information to the management system50. The session participation request information includes the terminal ID “01cb” of the counterpart terminal10cb(“the request participating terminal10cb”), the change request data “Call” indicating a request for participating the contents data session, and the session ID “se1” of the contents data session.

When the session participation request information is received, at S106, the management system50determines whether to allow the counterpart terminal10cb(“the participation requesting terminal10cb”) to connect with the participating terminals10aaand10dbthat are participating in the contents data session “sed”, using information obtainable from the candidate list management table ofFIG. 13.

Referring now toFIG. 30, operation of determining whether to allow connection of the terminal10cbthat requests for participating, with the participating terminals10aaand10db, performed at S106ofFIG. 29, is explained according to an example embodiment of the present invention.

At S106-1, the session manager57searches the session management table (FIG. 14) using the session ID “se1” as a search key, which is extracted from the participation request information, to obtain the terminal ID “01aa” of the request terminal10aaand the terminal ID “01db” of the counterpart terminal10dbthat are participating in the contents data session with the session ID “se1”.

At S106-2, the terminal extractor54searches the candidate list management table (FIG. 13) using the terminal ID “01aa” and “01db” of the participating terminals10that are extracted by the session manager57as a search key to obtain terminal IDs of candidate terminals that are registered for the participating terminals10. In this example, the terminal extractor54extracts the terminal IDs “01ab”, “01ba”, and “01db” of the candidate terminals registered for the participating terminal10aa, and the terminal IDs “01aa”, “01cb”, and “01da” of the candidate terminals registered for the participating terminal10db.

At S106-3, the connection determiner62determines whether the terminal ID of the participation requesting terminal10is included in a list of the terminal IDs of the candidate terminals that are extracted for the participating terminals10by the terminal extractor54at S106-2. More specifically, in this example, the connection determiner62determines that the terminal ID of the participation requesting terminal10is included, when the terminal ID “01cb” of the participation requesting terminal10cbis included in the list of terminal IDs “01ab”, “01ba”, “01db” “01aa”, “01cb”, and “01da” of the candidate terminals for the participating terminals10aaand10db(“YES” at S106-3). In such case, the operation proceeds to S106-5.

When it is determined that the terminal ID of the participation requesting terminal10is not included in the list of terminal IDs of the candidate terminals for the participating terminals10(“NO” at S106-3), the operation proceeds to S106-4to cause the connection determiner62to generate an error message, and send the error message to the participation requesting terminal10that requests for participating. In such case, the management system50does not perform further processing of S107to S113ofFIG. 29.

Assuming that the terminal ID of the participation requesting terminal10cbis included (“YES” at S106-3), at S106-5, the calculator63calculates a distance of the shortest path between the participation requesting terminal10cband the participating terminal10for each set of a plurality of sets of the participation requesting terminal10cband the participating terminal10. The calculator63specifies a set of the participation requesting terminal10and the participating terminal10having the largest value of distance of the shortest path between the nodes. In calculation, the calculator63defines a distance of the shortest path between the request terminal10and the candidate terminal10that is registered in the candidate list management table (FIG. 13) for the request terminal10to be a predetermined value. The distance of the shortest path between the participation requesting terminal10and each of the participating terminals10is calculated based on this predetermined value.

Referring now toFIG. 31, operation of calculating a distance of the shortest path between the terminals10is explained according to an example embodiment of the present invention.

In this example, it is assumed that the participation requesting terminal10cbis stored in the candidate list management table (FIG. 13) as a candidate terminal for the participating terminal10. As illustrated inFIG. 31, the distance of the shortest path between the participation requesting terminal10cband the participating terminal10is defined to be “1”. More specifically, referring to the candidate list management table (FIG. 13), the terminal ID “01cb” of the participation requesting terminal10cbis registered as a terminal ID of a candidate terminal that is associated with the terminal ID “01db” of the participating terminal10db. The distance of the shortest path between the participation requesting terminal10cband the participating terminal10dbis defined to be “1”.

Still referring to the candidate list management table (FIG. 13), the terminal ID “01cb” of the participation requesting terminal10cbis not registered as a terminal ID of a candidate terminal that is associated with the participating terminal10aawith the terminal ID “01aa”. The distance of the shortest path between the participation requesting terminal10cband the participating terminal10aais determined to be greater than “1”.

In case the distance of the shortest path between the participation requesting terminal10and the participating terminal10is greater than “1”, the value of such distance is calculated as follows. Referring to the candidate list management table (FIG. 13), the participating terminal10dbhaving the distance “1” with the participation requesting terminal10cbis managed as a candidate terminal of another participating terminal10aa. In such case, the distance of the shortest path between the participation requesting terminal10cband another participating terminal10aais defined to be “2” as illustrated inFIG. 31(a). More specifically, the terminal ID “01db” of the terminal10dbhaving the distance “1” with the participation requesting terminal10cbis registered as a terminal ID of a candidate terminal that is associated with another participating terminal10aawith the terminal ID “01aa”. The distance of the shortest path between the participation request terminal10cband the participating terminal10aais thus defined to be “2”.

The calculator63calculates a distance of the shortest path between the participation request terminal10cband one of the participating terminals10aaand10dbthat has a greater value of distance with respect to the participation request terminal10cb. In this example, the calculator63obtains the distance “2” of the shortest path between the participation request terminal10cband the participating terminal10aa. The calculator63performs this calculation, for example, according to a graph search algorithm that solves the single-source shortest path problem, which is known as the Dijkstra's algorithm. For example, the CPU201may perform calculation using the Dijkstra's algorithm, which may be stored in the form of computer-executable instructions.

Referring back toFIG. 30, at S106-6, the connection determiner62determines whether the distance obtained by the calculator63at S106-5is less than a predetermined value, i.e., threshold. In this example, the threshold is set to “3”. The value of threshold is previously stored in a predetermined memory area of a memory such as the nonvolatile memory5000, and read out via the memory control59. When it is determined that the obtained distance is less than the threshold (“YES” at S106-6), the operation proceeds to S106-7. At S106-7, the memory control59stores the terminal ID “01cb” of the participation requesting terminal10cb, the session ID “se1” of the contents data session that the participation requesting terminal10cbrequests to participate, and the distance “2” of the participation requesting terminal10cbwith respect to the participating terminal10aa, in a predetermined memory area of the nonvolatile memory5000. The operation further proceeds to S107ofFIG. 29to cause the management system50to perform further processing, which causes the participation requesting terminal10cbto connect with the participating terminals10aaand10db.

When it is determined that the distance obtained at S106-5is equal to or greater than the threshold (“NO” at S106-6), the operation proceeds to S106-8. At S106-8, the data transmit/receive51of the management system50generates an error message, and sends the error message to the participation requesting terminal10cb. In such case, S107to S113ofFIG. 29are not performed.

In this example, it is assumed that further processing of S107to S113ofFIG. 29is performed to cause the participation requesting terminal10cband the participating terminals10aaand10dbto be connected. At S107, the state manager53of the management system50searches the terminal management table (FIG. 12) using the terminal ID “01cb” of the participation requesting terminal10cbthat is extracted from the session participation request information, to obtain a record that corresponds to the terminal ID “01cb”, and changes the communication state field of the obtained record.

Referring now toFIG. 32, managing the state information of the participation requesting terminal10cb, performed at S107, is explained according to an example embodiment of the present invention.

At S107-1, the state obtainer53bof the state manager53(FIG. 6) obtains the communication state of the terminal10that is managed by the terminal management DB5003. In this example, the change request data determiner61determines that the change request data “Call” that is received at the data transmit/receive51is not the specific change request data that is previously determined. More specifically, the change request data determiner61determines that the change request data “Call” is not the “Invite” or the “Accept”, and further determines to use the state change management table ofFIG. 17. Based on this determination, the state obtainer53bobtains the communication state of the participation requesting terminal10cb. More specifically, the state obtainer53bsearches the terminal management table (FIG. 12) using the terminal ID “01cb” of the participation requesting terminal10cbas a search key to obtain the communication state “None” of the participation requesting terminal10cb.

At S107-2, the state changer53cof the state manager53obtains the previous state data of the terminal that corresponds to the change request data “Call”. More specifically, the state changer53csearches the state change management table (FIG. 17) using the change request data “Call” as a search key to obtain the previous state data “None” of the participation requesting terminal10cb.

At S107-3, the state changer53ccompares the communication state obtained by the state obtainer53bat S107-1, with the previous state data obtained by the state changer53cat S107-2to obtain a comparison result. More specifically, the state changer53ccompares the communication state “None” of the participation requesting terminal10cbwith the previous state data “None” of the participation requesting terminal10cbto generate a comparison result.

When the comparison result generated at S107-3indicates that the communication state and the previous state data match for the participation requesting terminal10cb(“YES” at S107-3), the operation proceeds to S107-4. At S107-4, the state changer53cobtains the changed state data of the participation requesting terminal10cbthat corresponds to the change request data “Call”. More specifically, the state changer53csearches the state change management table (FIG. 17) using the change request data “Call” as a search key to obtain the changed state data “Accepted”.

At S107-5, the state changer53csearches the terminal management table (FIG. 12) for the record corresponding to the terminal ID “01cb” of the participation requesting terminal10cbto change the communication state field for the participation requesting terminal10cb. More specifically, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01cb”, which is stored in the terminal management table ofFIG. 12, to the communication state “Accepted” based on the changed state data obtained for the participation requesting terminal10cb.

At S107-3, when the comparison result generated by the state changer53cindicates that the communication state is not the same as the previous state data (“NO” at S107-3), the state changer53cdoes not change the communication state field stored in the terminal management table (FIG. 12) for the record of the terminal ID “01cb” of the participation requesting terminal10cb. In such case, the operation proceeds to S107-6to cause the data transmit/receive51to send an error message to the participation requesting terminal10cb, and the operation ends.

More specifically, when the error message is sent from the management system50, S108to S113ofFIG. 29are not performed. Instead, the participation requesting terminal10cb, which receives the error message, causes the display120cbto display an error message to the user.

In this example, it is assumed that the communication state of the participation requesting terminal10cbis changed at S107-5. In such case, S108to S113ofFIG. 29are performed as follows.

At S108, the session manager57searches the session management table (FIG. 14) stored in the nonvolatile memory5000to specify a record that corresponds to the session ID “se1”, and adds the terminal ID “01cb” of the participation requesting terminal10cbin the counterpart terminal field.

At S109, the data transmit/receive51of the management system50transmits the participation permission notice information to the participation requesting terminal10cbto notify the participation requesting terminal10cbthat participation in the contents data session “sed” is allowed. The participation permission notice information includes the session ID “se1” and the relay terminal connection information to be used for connecting to the relay terminal30e. In addition to the participation permission notice information, the data transmit/receive51may send information regarding the distance of the participation requesting terminal10cbwith respect to the participating terminal10aa, which is stored at S106-7. With the distance information, the user at the participation requesting terminal10cbis able to know the degree of risk in participating in the contents data session.

For example, when the distance information indicates relatively a high value, the user at the terminal10cbmay cancel the request for participating in that session even though the user accepts the request from the terminal10aaprobably because the user at the terminal10cbknows the user at the terminal10aa. The distance information may be displayed in various formats other than the number.

When the participation permission notice information is received, at S110, the data transmit/receive11of the participation requesting terminal10cbsends the session ID “se1” and the relay terminal connection information, which is included in the participation permission notice information, to the relay terminal30e. Using this information, the participation requesting terminal10cbis connected to the relay terminal30e.

At a predetermined time after connection with the relay terminal30eis established, the data transmit/receive11of the participation requesting terminal10cbsends the relay request information to the management system50, which includes the terminal ID “01cb” of the terminal10cb, the session ID “se1”, and the change request data “Join”. When the relay request information is received, the management system50and the relay terminal30eperform S72-1, S73-1, S74-1, and S75-1(FIG. 26) to establish the contents data session “sed” between the terminal10cband the relay terminal30e. When the contents data session “sed” is established, the relay terminal30erelays contents data such as image data and/or sound data among the terminals10aa,10cb, and10dbto carry out videoconference among the terminals10aa,10cb, and10db.

Referring to S29, at S111-1and S111-2, the data transmit/receive51of the management system50sends the participation notice information including the terminal ID “01cb” of the participation requesting terminal10cb, and the session ID “se1”, to the participating terminals10aaand10db, respectively. With this participation notice information, the participating terminals10aaand10dbare able to know that the participation requesting terminal10cbis participating in the contents data session.

At S112, the terminal extractor54of the management system50searches the candidate list management table (FIG. 13) using the terminal ID “01cb” of the participation requesting terminal10cbas a search key, which is extracted from the session participation request information, to obtain a terminal ID of each of candidate terminals that are registered for the participation requesting terminal10cb. In this example, the terminal IDs “01aa”, “01bb”, and “01db” are extracted.

At S113, the data transmit/receive51of the management system50sends participation notice information to the candidate terminals10aa,10bb, and10dbeach having the terminal ID extracted at S112. In this example, the participation notice information includes the terminal ID “01cb” of the participation requesting terminal10cb. S113is performed for any of the candidate terminals10that are associated with the participation requesting terminal10cb, only if transmission of the participation notice information has not been performed at S111-1or S111-2. In this example, since the candidate terminals10aaand10db, which are the participating terminals10, already received such participation notice information, the management system50sends the participation notice information to the candidate terminal10bb. With this participation notice information, the candidate terminal10bbis able to know that the participation requesting terminal10cbis participating in the contents data session.

For example, the candidate terminal10bbcauses the display120bbto display a candidate list with the icon indicating that the participation requesting terminal10cbis in the online state, and having videoconference with the other terminals10.

Operation ofFIG. 29may be performed in various other ways. For example, at102, when the management system50receives the request for notifying a counterpart terminal10of the session being performed by the request terminal10, the management system50may determine whether to send such information regarding the session being performed to the counterpart terminal10.

More specifically, in this example, the request terminal10aasends the request for notifying the counterpart terminal10cbof the session with the session ID “se1”. When such request is received, the management system50extracts terminal IDs of the candidate terminals that are associated with the request terminal10aa, and determines whether the terminal IDs of the candidate terminals that are associated with the request terminal10aainclude the terminal ID “01cb” of the counterpart terminal10cb. The management system50sends information regarding the session such as the session ID “se1” to the counterpart terminal10cb, when the terminal ID “01cb” of the counterpart terminal10cbis included in the list of terminal IDs of the candidate terminals that are associated with the request terminal10aa.

Referring now toFIG. 33, operation of managing a request for leaving from the contents data session that is generated by the request terminal10aa, is explained according to an example embodiment of the present invention. It is assumed that operation ofFIG. 33is performed after the contents data session “sed” is established among the terminals10aa,10cb, and10db. InFIG. 26, management data is transmitted or received through the management data session “sei”.

At S121, as the user at the request terminal10aapresses the operation button108(FIG. 2), the request terminal10aareceives a request for leaving from the contents data session.

At S122, the data transmit/receive11of the request terminal10aasends session leave request information to the management system50, which includes the terminal ID “01aa” of the request terminal10aa, the change request data “Leave” that requests for leaving from the contents data session, and the session ID “se1” for identifying the contents data session.

When the session leave request information is received, at S123, the state manager53of the management system50searches the terminal management table (FIG. 12) using the terminal ID “01aa” of the request terminal10aa, which is extracted from the session leave request information, to specify a record that corresponds to the terminal ID “01aa”, and changes the communication state field of the specified record.

Referring now toFIG. 27, operation of managing the state information of the request terminal10aa, performed at S123, is explained according to an example embodiment of the present invention.

At S123-1, the state obtainer53bof the state manager53obtains the communication state of the terminal using the terminal management DB5003(FIG. 12). In this example, the change request data determiner61determines that the change request data “Leave”, which is received at the data transmit/receive51, is not the specific change request data that is previously determined. More specifically, it is determined that the change request data “Leave” differs from any one of the “Invite” and the “Accept”. Accordingly, the change request data determiner61determines to use the state change management table ofFIG. 17. Based on this determination, the change obtainer53bobtains only the communication state of the request terminal10aa. More specifically, the state obtainer53bsearches the terminal management table (FIG. 12) using the terminal ID “01aa” of the terminal10aaas a search key to obtain the communication state “Busy” of the request terminal10aathat sends the leave request information.

At S123-2, the state changer53cof the state manager53obtains the previous state data that corresponds to the change request data “Leave”. More specifically, the state changer53csearches the state change request table (FIG. 17) using the change request data “Leave” as a search key to obtain the previous state data “Busy”.

At S123-3, the state changer53ccompares the communication state obtained by the state obtainer53bat S123-1with the previous state data obtained by the state changer53cat S123-2to generate a comparison result. More specifically, the state changer53ccompares the communication state “Busy” of the request terminal10aathat is obtained by the state obtainer53c, with the previous state data “Busy” obtained by the state changer53cto generate a comparison result.

When the comparison result generated at S123-3indicates that the communication state and the previous state data match (“YES” at S123-3), the operation proceeds to S123-4. At S123-4, the state changer53cobtains the changed state data of the request terminal10aathat corresponds to the change request data “Leave”. More specifically, the state changer53csearches the state change management table (FIG. 17) using the change request data “Leave” to obtain the changed state data “None” of the request terminal10aa.

At S123-5, the state changer53csearches the terminal management table (FIG.12) for the record that corresponds to the terminal ID “01aa” of the request terminal10aato change the communication state field for the request terminal10aa. More specifically, the state changer53cchanges the communication state field in the record that corresponds to the terminal ID “01aa”, which is stored in the terminal management table (FIG. 12), to the communication state “None” based on the changed state data of the request terminal10aa.

At S123-3, when the comparison result generated by the state changer53cindicates that the communication state is not the same as the previous state data (“NO” at S123-3), the state changer53cdoes not change the communication state field stored in the terminal management table (FIG. 12) for the record of the terminal ID “01aa”. In such case, the operation proceeds to S123-6to cause the data transmit/receive51to send an error message to the request terminal10aa, and the operation ends.

More specifically, when the error message is sent from the management system50, S124to S132ofFIG. 33are not performed. Instead, the request terminal10aa, which receives the error message, causes the display120aato display an error message to the user.

In this example, it is assumed that the communication state of the request terminal10aais changed at S123-5. In such case, referring toFIG. 33, S124to S132are performed as follows.

At S124, the session manager57searches the session management table (FIG. 14) stored in the nonvolatile memory5000to specify a record that corresponds to the session ID “se1”, and delete the terminal ID “01aa” of the request terminal10aafrom the request terminal field.

At S125, the management system50sends session leave request information to the relay terminal30e, which includes the terminal ID “01aa” of the request terminal10aa, and the session ID “se1”. When the session leave request information is received, the relay terminal30estops relaying of contents data through the contents data session to the request terminal10aa, and disconnects connection with the terminal10aa. At S126, the relay terminal30esends session leave response information to the management system50to notify the management system50that the request for leaving from the contents data session is accepted. The session leave response information includes the terminal ID “01aa” of the request terminal10aa, and the session ID “se1”.

When the session leave response information is received, at S127, the data transmit/receive51of the management system50sends session leave response information to the request terminal10aato notify the request terminal10aathat the request for leaving from the contents data session is accepted. The session leave response information includes the terminal ID “01aa” of the request terminal10aa, the change request data “Leave”, the session ID “se1”, and the response “OK” indicating that the request for leaving is accepted.

When the session leave response information is received, the user at the terminal10aamay turn off the power switch109of the terminal10aa. In such case, at S128, the terminal10aareceives a user instruction for turning off the power of the terminal10aa.

At S129, the data transmit/receive11of the terminal10aasends power off request information to the management system50to notify that the power is turned off at the terminal10aa. The power off request information includes the terminal ID “01aa” of the request terminal10aa.

When the power off request information is received at the data transmit/receive51, at S130, the state manager53of the management system50searches the terminal management table (FIG. 12) using the terminal ID “01aa” of the request terminal10aa, which is extracted from the power off request information, to specify a record of the terminal ID “01aa”, and changes the operation state field and the communication state field of the specified record. More specifically, the operation state field is changed to “OFFLINE”, and data in the communication state field is deleted.

At S131, the data transmit/receive51sends power off respond information to the request terminal10aato notify the request terminal10aathat the power off request is accepted. Further, the management system50disconnects the management data session, which is established with the request terminal10aa.

When the power off respond information is received, at S132, the request terminal10aaturns off the power of the terminal10aa, and the operation ends.

Any one of the other participating terminals10cband10dbmay perform S121to S132to leave from the contents data session “sed”, and turned off the power of the terminal.

In the examples illustrated above, when a contents data session is established between a first terminal and a second terminal, the data transmit/receive51of the management system50may receive a request for participating in the contents data session from a third terminal. When such request for participating is received, the terminal extractor54extracts terminal IDs of one or more candidate terminals that are associated with the first terminal, and terminal IDs of one or more candidate terminals that are associated with the second terminal, from a candidate list management table (FIG. 13). The connection determiner62determines whether a terminal ID of the third terminal is included in the terminal IDs of the candidate terminals that are extracted to generate a determination result. Based on the determination result, the management system50controls connections of the third terminal with the first terminal and the second terminal. With this connection control performed by the management system50, even when the third terminal is not previously registered as a terminal that may participate in the contents data session, the third terminal is allowed to participate in the contents data session as long as the determination result indicates that the terminal ID of the third terminal is included in the list of candidate terminal IDs obtained for the participating terminals.

When the third terminal starts participating in the contents data session, the terminal extractor54extracts a terminal ID of each one of candidate terminals that are associated with the terminal ID of the third terminal, from the candidate list management table (FIG. 13). The data transmit/receive51sends notification to the candidate terminal having the extracted terminal ID, which indicates that the third terminal is participating in the contents data session.

When the first terminal and the second terminal are having the contents data session, the data transmit/receive51of the management system50receives information regarding the session ID of the contents data session, from the first terminal, with a request for sending the information regarding the session ID to the third terminal. The terminal extractor54extracts a terminal ID of each one of candidate terminals that are associated with the terminal ID of the first terminal, from the candidate list management table (FIG. 13). When the management system50determines that the terminal IDs of the candidate terminals, which are extracted by the terminal extractor54, include a terminal ID of the third terminal to which the information regarding the session ID is to be transmitted, the data transmit/receive51sends the information regarding the session ID to the third terminal. With this information regarding the session ID sent from the first terminal, the third terminal may send a request for participating in the contents data session specified by the session ID.

The calculator63of the management system50calculates a distance of the shortest path between the third terminal and the participating terminal that is participating in the contents data session, for each one of the participating terminals (the first terminal and the second terminal). The calculator63specifies one of the participating terminals having the largest distance of the shortest path with respect to the third terminal, and obtains the value of the largest distance of the shortest path between the third terminal and the specified participating terminal. In calculation, the calculator63defines a distance of the shortest path between a terminal10and a candidate terminal that is associated with the terminal10to be a predetermined value. The distance of the shortest path between the third terminal and the participating terminal is obtained based on the predetermined value.

The connection determiner62determines whether the largest distance of the shortest path between the third terminal and the participating terminal, which is obtained by the calculator63, is less than a threshold to generate a determination result. Based on the determination result, the management system50determines whether to allow the third terminal to connect with the participating terminal.

The data transmit/receive51of the management system50sends information regarding the distance of the shortest path between the third terminal and one of the participating terminals having the largest distance, to the third terminal. With the information regarding the distance, the user at the third terminal knows the degree of risk in participating in the session.

The management system50controls connection among the first terminal, the second terminal, and the third terminal. The data transmit/receive51sends relay terminal connection information to be used for connecting with the relay terminal30that relays contents data between the first terminal and the second terminal, to the third terminal. Using the relay terminal connection information, the third terminal is able to connect with the relay terminal30.

In the above-described examples, as illustrated inFIG. 31(a), at S106-5(FIG. 30), the distance of the shortest path between the participation requesting terminal10cband the participating terminal10dbis defined to be “1”, when the participation requesting terminal10cbis managed as a candidate terminal that is associated with the participating terminal10db. Since the participating terminal10aais managed as a candidate terminal of the participating terminal10db, the distance of the shortest path between the participation requesting terminal10cband the participating terminal10aais calculated as “2”.

In another example, as illustrated inFIG. 31(b), assuming that the participating terminal10cbis managed as a candidate terminal that is associated with each of the participation requesting terminals10aaand10dbin the candidate list management table (FIG. 13), the distance of the shortest path between the participation requesting terminal10cband each of the participating terminals10aaand10dbis defined as “1”. In such case, the largest value of distance of the shortest path between the participation requesting terminal and the participating terminal is “1”.

In another example, as illustrated inFIG. 31(c), assuming that the participation requesting terminal10cbis managed as a candidate terminal that is associated with the participating terminal10dbin the candidate list management table (FIG. 13), and the participating terminal10dbis managed as a candidate terminal that is associated with the participation requesting terminal10cbin the candidate list management table (FIG. 13), the distance of the shortest path between the participation requesting terminal10cband the participating terminal10dbis defined to be “1”.

The relay terminal30, the management system50, the program providing system90, and the maintenance system100may be each implemented by a single computer. Alternatively, any number of parts, functions, or modules of the relay terminal30, the management system50, the program providing system90, and the maintenance system100may be classified into a desired number of groups to be carried out by a plurality of computers. In case the program providing system90is implemented by the single computer, the program to be provided by the program providing system90may be transmitted, one module by one module, after dividing into a plurality of modules, or may be transmitted at once. In case the program providing system90is implemented as a plurality of computers, each computer may transmit each module that is stored in its memory, after the program is divided into a plurality of modules.

A recording medium storing any one of the terminal control program, relay control program, and transmission management program, or a storage device such as the HDD204that stores any one of the terminal control program, relay control program, and transmission management program, or the program providing system90provided with the HD204storing any one of the terminal control program, relay control program, and transmission management program, may be distributed within the country or to another country as a computer program product.

In the above-described examples, the quality of image data to be processed by the relay terminal30, which is determined based on information obtainable from any one of the data quality management table ofFIG. 8and the quality management table ofFIG. 15is analyzed in terms of image resolution. Alternatively, any other criteria may be used to analyze quality of image data including, for example, depth of image, sampling frequency in case of voice data, and bit length in case of voice data.

Further, the date and time information stored in the relay terminal management table ofFIG. 10or the terminal management table ofFIG. 12, or the delay time information stored in the session management table ofFIG. 14, is expressed in terms of date and time. Alternatively, the date and time information or the delay time information may be expressed only in terms of time such as the time at which information is received.

Further, in the above-described examples, the relay terminal IP address of the relay terminal30and the terminal IP address of the terminal10are respectively managed using the relay terminal management table ofFIG. 10and the terminal management table ofFIG. 12. Alternatively, the relay terminal30and the terminal10may each be managed using any other identification information or using any other tables. For example, when the relay terminal30or the terminal10needs to be identified on the communication network2, the relay terminal30or the terminal10may be managed using Fully Qualified Domain Name (FQDN). In such case, the transmission system10is provided with a domain name system (DNS) server that obtains the IP address that corresponds to the FQDN of the relay terminal30or the terminal10. In view of this, identification information for identifying the relay terminal30on the communication network2may not only include the identification information that identifies the relay terminal30on the communication network2, but also identification information that identifies a node on the communication network2to which the relay terminal30is connected, or identification information that identifies a node on the communication network2from which the relay terminal30is connected. Similarly, identification information for identifying the terminal10on the communication network2may not only include the identification information that identifies the terminal10on the communication network2, but also identification information that identifies a node on the communication network2to which the terminal10is connected, or identification information that identifies a node on the communication network2from which the terminal10is connected.

In the above-described examples, the transmission system1ofFIG. 1is treated as a videoconference system. Alternatively, the transmission system1ofFIG. 1may be implemented as a teleconference system such as the IP teleconference system or the Internet teleconference system. Alternatively, the transmission system1ofFIG. 1may be implemented as a car navigation system. For example, the request terminal10may be implemented as a car navigation system that is installed onto an automobile. The counterpart terminal10may be implemented as a management terminal or server at a management center that manages the car navigation system or a car navigation system that is installed onto another automobile. Alternatively, the transmission system1may be any one of teleconference system or a personal computer image sharing system.

In another example, the transmission system1ofFIG. 1may be implemented as a communication system having a portable phone. In such case, the terminal10is implemented as a portable phone as illustrated inFIG. 34. The terminal10, or the portable phone10, includes a body1110-1, a menu screen display button1110-2, a display section1110-3, a microphone1110-4provided at a lower portion of the body, and a speaker1110-5provided at an upper portion of the body. When selected, the menu screen display button1110-2causes the display section1110-3to display a menu screen in which various icons each indicating a specific application program are displayed. In this example, the display section1110-3displays a candidate list that lists a plurality of terminal names together with a plurality of icons each reflecting the state information of each candidate terminal. Since the terminal10in this example is implemented as a portable phone, the name of a user who owns the specific terminal, or a nickname of the user, is displayed as the terminal name. The display section1110-3is a touch panel screen, which allows the user to select one of the plurality of terminal names, i.e., the user names, being displayed by the display section1110-3. When a specific terminal name, or a user name, is selected, the portable phone10starts communication with the specific terminal that is selected in a substantially similar manner as described above.

In the above-described examples, the contents data is assumed to include image data and voice data. Alternatively, the contents data may include any other type of data that affects human senses of sight in alternative to image data, or any other type of data that affects human senses of hearing in alternative to voice data. Alternatively, the contents data may include any other type of data that affects human senses of sight, smell, taste, touch, and hearing. In case the contents data that affects human senses of touch, the terminal10may convey the contents data that reflects senses of touch that is felt by a user at the terminal10to another terminal10through the communication network2. In case the contents data that affects human senses of smell, the terminal10may convey the contents data that affects senses of smell felt by a user at the terminal10to another terminal10through the communication network2. In case the contents data that affects human senses of taste, the terminal10may convey the contents data that affects senses of taste felt by a user at the terminal10to another terminal10through the communication network2.

Further, the contents data may only include one type of contents data selected from sight data such as image data, hearing data such as voice data, touch data, smell data, and taste data.

Numerous additional modifications and variations are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the disclosure of the present invention may be practiced otherwise than as specifically described herein.

Alternatively, any one of the above-described and other methods of the present invention may be implemented by ASIC, prepared by interconnecting an appropriate network of conventional component circuits or by a combination thereof with one or more conventional general purpose microprocessors and/or signal processors programmed accordingly.

In one example, the present invention may reside in a connection control system that controls connections among a plurality of terminals through a network. The system includes: candidate terminal managing means for managing terminal identification information for identifying a terminal, and candidate terminal identification information for identifying one or more candidate terminals that are associated with the terminal for each one of the plurality of terminals; receiving means for receiving a request for participating in a session being performed by at least a first terminal and a second terminal from a third terminal, when the session is being performed by at least the first terminal and the second terminal to exchange contents data; candidate terminal extracting means for extracting candidate terminal identification information for identifying at least one candidate terminal that is associated with each one of the first terminal and the second terminal using the candidate terminal manager; and a determiner that determines whether identification information for identifying the third terminal is included in the extracted candidate terminal identification information to generate a first determination result, and determines whether to allow the third terminal to connect with the first and second terminals through the network to participate in the session based on the first determination result.

In one example, the candidate terminal managing means corresponds to the candidate list management DB5004. The receiving means corresponds to the data transmit/receive51. The candidate terminal extracting means corresponds to the terminal extractor54. The determiner corresponds to the connection determiner62.

As described above, the connection control system extracts identification information of one or more candidate terminals that are associated with the first terminal and identification information of one or more candidate terminals that are associated with the second terminal. The connection control system further determines whether identification information of the third terminal is included in the extracted identification information of the candidate terminals to generate the first determination result. Based on the first determination result, the connection control system controls connections of the third terminal with the first terminal and the second terminal. With this control, the third terminal, which is not previously registered as a participating terminal of the session, is allowed to participate in the session being performed by the participating terminals.

The connection control system further includes a calculator that calculates a distance of the shortest path between the third terminal and each of the second terminal and the third terminal, and specifies one of the second terminal and the third terminal having the largest value of distance with respect to the third terminal to obtain the largest value of distance of the shortest path between the third terminal and the specified one of the first terminal and the second terminal. The determiner determines whether the obtained largest value of distance is less than a predetermined value to generate a second determination result, and determines whether to allow the third terminal to connect with the first and second terminals based on the second determination result in addition to the first determination result. In one example, the calculator corresponds to the calculator63.

In calculation, the calculator defines a value of a distance of the shortest path between the terminal, and the candidate terminal that is associated with the terminal, which are managed by the candidate terminal manager, to be a predetermined value. The distance of the shortest path between the third terminal and each of the second terminal and the third terminal is obtained based on the predetermined value.

The connection control system further includes distance information transmit means for transmitting distance information indicating the largest value of distance that is obtained by the calculator, to the third terminal. In one example, the distance information transmit means corresponds to the data transmit/receive51.

In the connection control system, the candidate terminal extracting means further extracts candidate terminal identification information for identifying one or more candidate terminals that are associated with the third terminal. The system further includes participation information transmit means for transmitting information indicating that the third terminal is participating in the session, to the candidate terminals having the extracted candidate terminal identification information. In one example, the participation information transmit means corresponds to the data transmit/receive51.

In the connection control system, when the receiving means receives a request for notifying a predetermined terminal of the session being performed, from the first terminal, the candidate terminal extracting means further extracts candidate terminal identification information for identifying one or more candidate terminals that are associated with identification information of the first terminal. When the extracted candidate terminal identification information of the candidate terminals that are associated with the first terminal includes identification information for identifying the predetermined terminal, the system causes session information transmit means to transmit information regarding the session to the predetermined terminal. In one example, the session information transmit means corresponds to the data transmit/receive51.

In one example, the present invention may reside in a transmission system, which includes the above-described connection control system and a relay terminal that relays contents data through the session.

The connection control system further includes a connection information transmit means for transmitting relay terminal connection information to be used for connecting with the relay terminal, to the third terminal, when the determiner determines that the third terminal is allowed to connect with the first and second terminals. In one example, the connection information transmit means corresponds to the data transmit/receive51.

In one example, the present invention may reside in a method of controlling connections among a plurality of terminals through a network in a transmission system. The transmission system includes candidate terminal managing means for managing terminal identification information for identifying a terminal, and candidate terminal identification information for identifying a candidate terminal that is associated with the terminal for each one of the plurality of terminals. The method includes: receiving a request for participating in a session being performed by at least a first terminal and a second terminal from a third terminal, when the session is being performed by at least the first terminal and the second terminal to exchange contents data; extracting candidate terminal identification information for identifying one or more candidate terminals that are associated with each one of the first terminal and the second terminal using the candidate terminal manager; determining whether identification information for identifying the third terminal is included in the extracted candidate terminal identification information to generate a determination result; and determining whether to allow the third terminal to connect with the first and second terminals to participate in the session based on the determination result.

In one example, the present invention may reside in a recording medium storing a plurality of instructions, which cause a processor to perform any one of the above-described connection control methods.

For example, the present invention may reside in a recording medium storing a plurality of instructions, which cause a processor to perform a connection control method of controlling connections among a plurality of terminals through a network. The connection control method includes: managing identification information for identifying a terminal, and identification information for identifying one or more candidate terminals that are associated with the terminal, for each one of the plurality of terminals; receiving a request for participating in a session being performed by a plurality of participating terminals, from a participation requesting terminal that is not participating in the session; extracting identification information for identifying at least one candidate terminal that is associated with the participating terminal for each one of the plurality of participating terminals to obtain extracted candidate terminal identification information of the participating terminals; determining whether the extracted candidate terminal identification information of the participating terminals includes identification information for identifying the participation requesting terminal to generate a first determination result; and determining whether to allow the participation requesting terminal to connect with the plurality of participating terminals through the network to participate in the session, based on the first determination result.

In one example, the present invention may reside in a transmission terminal including: a network interface to send a request for participating in a session being performed by a plurality of participating terminals after the session starts; and causing a connection control system to perform the above-described connection control method to obtain, from the connection control system, information indicating whether the participation requesting terminal is allowed to connect with the plurality of participating terminals. The obtained information is output through an output device such as a display.