Abstract:
A technique of carrying out communications between communication terminals on different LANs while realizing reductions in the burden of account control and suppression in load on a server includes first and second relay servers on first and second LANs issuing a registration request to a SIP-server, respectively. A first communication terminal on the first LAN issues a registration request to the first relay server while a second communication terminal on the second LAN issues a registration request to the second relay server. The first and second relay servers exchange account information about the registered communication terminals with each other. When the first communication terminal generates communication data addressed to the second communication terminal, the first relay server selects the second relay server as a relay based on the exchanged account information to relay the communication data. Then, the second relay server relays the communication data to the second communication terminal.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. 119 to Japanese Patent Application No. 2006-246905, filed on Sep. 12, 2006, which application is hereby incorporated by reference in its entirety. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a technique of carrying out communications between communication terminals on different local area networks (LANs), through a wide area network (WAN). 
     2. Description of Related Art 
     Use of a call control protocol such as a SIP (Session Initiation Protocol) or a DDNS (Dynamic Domain Name System) allows communication terminals on different LANs to directly carry out communications with each other through a WAN. Such a technique is referred to as a so-called VPN (Virtual Private Network). According to this technique, different remote LANs can be used as a directly-connected network. 
     Use of the technique allows, for example, connection between a LAN in a head office and a LAN in a branch office, so that terminals on the different LANs can carry out communications with each other through the Internet. 
     There has been known a technique capable of carrying out communications between communication terminals on different LANs, through the Internet. According to this technique, the different communication terminals on the different LANs log in to relay servers connected to the Internet via gateways so as to establish communication paths to the relay servers, respectively. Use of the communication paths allows the communication terminals to carry out communications with each other through the Internet. This technique allows communications between LANs via relay servers on a WAN. 
     In a case of using a SIP, typically, account information of each communication terminal is registered in a SIP-server. More specifically, when each communication terminal issues a REGISTER method to the SIP-server, the account information is registered in the SIP-server. Then, if one communication terminal makes a communication request which designates an account of another communication terminal, the SIP-server relays communications for establishment of a session in accordance with the registered account information. 
     If communications are carried out among plural LANs using the SIP, plural pieces of account information are registered in the SIP-server, leading to an increase in load imposed on the server. In order to carry out communications among plural LANs connected to one another, conventionally, accounts of all the LANs have been registered in a server which collectively controls the LANs. Consequently, a large load has been imposed on the server. 
     Moreover, each of the communication terminals needs to recognize an account of another communication terminal on a separate LAN in order to carry out communications with the other communication terminal. When the respective communication terminals access the server to acquire such account information, the load imposed on the server becomes larger. Further, since the server registers therein the accounts of the communication terminals on the plural LANs, each communication terminal requires a mechanism for readily retrieving the account of a target communication terminal from among the plural accounts. 
     In a case that the server collectively controls the account information, additionally, the account information of the communication terminals on all the LANs must be made unique. In other words, each LAN cannot obtain an account freely. Consequently, a degree of freedom inconveniently becomes small in terms of network control. 
     SUMMARY OF THE INVENTION 
     In order to solve the problems described above, preferred embodiments of the present invention provide a technique capable of carrying out communications between communication terminals on different LANs while realizing reduction in the burden of account control, suppression in load imposed on a server and facilitation of the account control. 
     In order to overcome the problems described above, a preferred embodiment of the present invention provides a relay server which is placed on a local area network and can carry out communications with an external server on a wide area network. The relay server preferably includes a local account information registration section arranged to register therein account information of a communication terminal on the local area network, a registration section arranged to register account information of the relay server in the external server, a construction section arranged to designate another relay server registered in the external server to construct a relaying communication session for direct communications with the another relay server, and an exchange section arranged to exchange the account information stored in the local account information registration section with the another relay server. Upon reception from the communication terminal on the local area network, a communication request designating an account of another communication terminal, the relay server determines a relay server registering therein the designated account from the account information exchanged with the another relay server, and relays communication data between the communication terminals via the relaying communication session with the relevant relay server. 
     According to a preferred embodiment of the present invention, the relay server holds the account information acquired by the exchange with the another relay server while bringing the account information into correspondence with the account information of the another relay server. 
     According to a preferred embodiment of the present invention, the relay server relays the communication data between the communication terminals at an application protocol level higher in order than a TCP/IP (Transmission Control Protocol/Internet Protocol). 
     The relay server according to a preferred embodiment of the present invention is preferably placed on each local area network. The relay server constructs the relaying communication session for direct communications with the another relay server registered in the external server, and exchanges the account information with the another relay server. Upon reception from the communication terminal the communication request designating the account of the another communication terminal, the relay server determines the relay server registering therein the designated account from the account information exchanged with the another relay server, and relays the communication data between the communication terminals via the relaying communication session with the relevant relay server. 
     With this configuration, the relay servers control the accounts of the communication terminals in a distributed manner, which makes it possible to lessen a load imposed on the external server performing account control. Further, each communication terminal accesses the relay server, thereby acquiring account information of another communication terminal on a separate local area network. 
     In addition, the relay server holds the account information acquired by the exchange with the another relay server while bringing the account information into correspondence with the account information of the another relay server. Thus, an account can be freely provided to each local area network. Therefore, collective control of accounts becomes unnecessary in the entire system, so that the account can be readily controlled. 
     Further, the relay server relays the communication data between the communication terminals at the application protocol level higher in order than the TCP/IP. Therefore, relay communications become possible between different networks by an existing network system. 
     Other features, elements, processes, steps, characteristics and advantages of the present invention will become more apparent from the following detailed description of preferred embodiments of the present invention with reference to the attached drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a network configuration of a communication system according to a preferred embodiment of the present invention. 
         FIG. 2  illustrates a relationship between a communication terminal and a relay server and a relationship between the relay server and a SIP-server. 
         FIG. 3  illustrates a functional block diagram of the relay server. 
         FIG. 4  illustrates a functional block diagram of the SIP-server. 
         FIG. 5  illustrates a sequence of communication processing. 
         FIG. 6  illustrates a sequence of the communication processing. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     Hereinafter, description will be provided of preferred embodiments of the present invention with reference to the drawings.  FIG. 1  illustrates a general configuration of a communication system according to a preferred embodiment of the present invention. This communication system preferably includes the Internet  3  and two LANs  1 ,  2  each connected to the Internet  3 , for example. The LANs  1  and  2  correspond to networks constructed at physically separate places, respectively. For example, the LAN  1  corresponds to a local area network constructed in a head-office building and the LAN  2  corresponds to a local area network constructed in a branch-office building. The LANs  1  and  2  are connected to the Internet  3  which is a global network, respectively. 
     As illustrated in  FIG. 1 , communication terminals  11  and  12  are connected to the LAN  1 . Each of the communication terminals  11  and  12  has a private IP address. As described above, typically, a terminal connected to a LAN has a private IP address which is uniquely controlled only in the LAN. In addition, a relay server  13  is connected to the LAN  1 . The relay server  13  is not only connected to the LAN  1 , but is also connected to the Internet  3 . The relay server  13  has a private IP address for a LAN interface and a global IP address for a WAN interface. 
     Communication terminals  21  and  22  each having a private IP address are connected to the LAN  2 . Further, a relay server  23  is connected to the LAN  2 . The relay server  23  is not only connected to the LAN  2 , but is also connected to the Internet  3 . The relay server  23  has a private IP address for a LAN interface and a global IP address for a WAN interface. 
     Further, a SIP-server  4  is connected to the Internet  3 . The SIP-server  4  serves as a proxy server for relaying a SIP method or a response when the relay servers  13  and  23  carry out communications with each other through a SIP (Session Initiation Protocol), and serves as a SIP registrar server for registering therein the accounts of the relay servers  13  and  23 . 
     On the other hand, the relay server  13  connected to the LAN  1  serves as a SIP registrar server for registering therein the accounts of the communication terminals  11  and  12  connected to the LAN  1  through the SIP. 
     More specifically, as illustrated in  FIG. 2 , the relay server  13  serves as a SIP registrar server for registering therein the accounts on the basis of reception of registration requests (REGISTER) from the communication terminals  11  and  12 , in terms of a relationship with the communication terminals  11  and  12 , and serves as a client for sending an account registration request (REGISTER) to the SIP-server  4 , in terms of a relationship with the SIP-server  4 . 
     Likewise, the relay server  23  connected to the LAN  2  serves as a SIP registrar server for registering therein the accounts of the communication terminals  21  and  22  connected to the LAN  2  through the SIP. 
     More specifically, as illustrated in  FIG. 2 , the relay server  23  serves as a SIP registrar server for registering therein the accounts on the basis of reception of registration requests (REGISTER) from the communication terminals  21  and  22 , in terms of a relationship with the communication terminals  21  and  22 , and serves as a client for sending an account registration request (REGISTER) to the SIP-server  4 , in terms of a relationship with the SIP-server  4 . 
       FIG. 3  illustrates a functional block diagram of the relay servers  13  and  23 . The relay servers  13  and  23  are similar in functions to each other; therefore, description thereof will be provided with reference to the single drawing. Each of the relay servers  13  and  23  includes a LAN interface  101 , a WAN interface  102 , a communication controller  103  and a local account information database  104 . 
     The LAN interface  101  uses a private IP address to carry out communications with a communication terminal connected to a LAN. That is, the relay server  13  carries out communications with the communication terminals  11  and  12  through the LAN interface  101 , and the relay server  23  carries out communications with the communication terminals  21  and  22  through the LAN interface  101 . 
     The WAN interface  102  uses a global IP address to carry out communications with the SIP-server  4  connected to the Internet  3  which is a global network as well as other communication servers and communication terminals each connected to the Internet  3 . In this preferred embodiment, the relay server has the WAN interface  102 . However, connection with the WAN may be performed through a router and the relay server may be placed under the router. 
     The communication controller  103  is a processor arranged to control various communications carried out through the LAN interface  101  and the WAN interface  102 . The communication controller  103  controls various types of communication processing according to protocols such as a TCP/IP (Transmission Control Protocol/Internet Protocol), a UDP (User Datagram Protocol) and a SIP. 
     The communication controller  103  has a function of receiving an account registration request (REGISTER) from the communication terminal connected to the LAN, and registering account information of the communication terminal in the local account information database  104 . For example, the relay server  13  receives the account registration request (REGISTER) from the communication terminal  11 , and registers the account information of the communication terminal  11  in the local account information database  104 . 
     Further, the communication controller  103  executes processing for exchanging the account information registered in the local account information database  104  with another relay server. As will be described later, this processing is executed by a MESSAGE method. The exchange of the account information by this MESSAGE method is performed periodically, for example. Alternatively, the exchange of the account information may be performed through an operation by an operator. 
     Further, the communication controller  103  has a function of sending to the SIP-server  4  a registration request (REGISTER) for registering an account of the relay server itself. 
     In addition, the communication controller  103  has a function of maintaining connection of a tunneling session between the relay servers  13  and  23 . That is, transmission of an INVITE method of the SIP from one of the relay servers  13  and  23  can establish the tunneling session between the relay servers  13  and  23 . The communication controllers  103  of the relay servers  13  and  23  maintain the established tunneling session, thereby relaying communication data between the communication terminals connected to the LANs  1  and  2 . 
     That is, the communication terminals connected to the LANs  1  and  2  have private accounts, respectively, as will be described later. Therefore, the communication terminals on the respective LANs  1  and  2  designate the mutual private accounts in order to carry out communications with each other. However, communication data such as a SIP command for designating such a private account is encapsulated while being transmitted through the path between the relay servers  13  and  23  and then is sent to one of the relay servers  13  and  23 . Upon reception of the communication data, the relay server  13  or  23  extracts the SIP command, and then sends the communication data for designating the private account to the relevant communication terminal. 
       FIG. 4  illustrates a functional block diagram of the SIP-server  4 . As illustrated in  FIG. 4 , the SIP-server  4  includes a WAN interface  41 , a communication controller  42  and a relay server account information database  43 . 
     The WAN interface  41  uses a global IP address to carry out communications between the server and the terminal each connected to the Internet  3 . The SIP-server  4  can carry out communications with the relay servers  13  and  23  through the WAN interface  41 . 
     The communication controller  42  is a processor for controlling various communications carried out through the WAN interface  41 . The communication controller  42  controls communication processing according to a protocol such as a TCP/IP, a UDP or a SIP. 
     The communication controller  42  has a function of receiving an account registration request (REGISTER) from the relay server connected to the Internet  3 , and registering the account information of the relay server in the relay server account information database  43 . For example, the SIP-server  4  receives the account registration request (REGISTER) from the relay server  13 , and registers the account information of the relay server  13  in the relay server account information database  43 . 
     In addition, the communication controller  42  has a function of relaying various communication data such as a SIP method and a response from one of the relay servers  13  and  23  to the other relay server. 
     With reference to processing sequence diagrams in  FIGS. 5 and 6 , description will be provided of a flow of the communication processing in the communication system configured as described above.  FIG. 5  illustrates a sequence from step S 1  to step S 7 , and  FIG. 6  illustrates a sequence from step S 8 , which is subsequent to step S 7 , to step S 11 . 
     First, the relay server  13  sends an account registration request (REGISTER) to the SIP-server  4  (step S 1 ). As illustrated in  FIG. 5 , herein, the relay server  13  makes a registration request of an account (SIP:relay server1@sip.srv) thereof. The SIP-server  4  sends back an OK response to the relay server  13 , and registers the account of the relay server  13  in the relay server account information database  43  while bringing the account of the relay server  13  into correspondence with the global IP address of the relay server  13 . If password authentication is used, a password that has been previously registered in the relay server account information database  43  is brought into correspondence with the account of the relay server  13 . In such a case, a user sends the password when the relay server  13  makes the registration request. If the password is successfully authenticated, the account is registered while being brought into correspondence with the IP address. 
     Next, the relay server  23  sends an account registration request (REGISTER) to the SIP-server  4  (step S 2 ). As illustrated in  FIG. 5 , the relay server  23  makes a registration request of an account (SIP:relay server2@sip.srv) thereof. The SIP-server  4  sends back an OK response to the relay server  23 , and registers the account of the relay server  23  in the relay server account information database  43  while bringing the account of the relay server  23  into correspondence with the global IP address of the relay server  23 . Similarly, the password authentication may be performed here. 
     Next, the communication terminal  11  sends an account registration request (REGISTER) to the relay server  13  (step S 3 ). As illustrated in  FIG. 5 , the communication terminal  11  makes a registration request of an account (SIP:0001@privatesip1) thereof. The relay server  13  sends back an OK response to the communication terminal  11 , and registers the account of the communication terminal  11  in the local account information database  104  while bringing the account of the communication terminal  11  into correspondence with the local IP address of the communication terminal  11 . If password authentication is used, a password that has been previously registered in the local account information database  104  is brought into correspondence with the account of the communication terminal. In such a case, a user sends the password when the communication terminal makes the registration request. If the password is successfully authenticated, the account is registered while being brought into correspondence with the IP address. 
     Next, the communication terminal  21  sends an account registration request (REGISTER) to the relay server  23  (step S 4 ). As illustrated in  FIG. 5 , the communication terminal  21  makes a registration request of an account (SIP:0002@privatesip2) thereof. The relay server  23  sends back an OK response to the communication terminal  21 , and registers the account of the communication terminal  21  in the local account information database  104  while bringing the account of the communication terminal  21  into correspondence with the local IP address of the communication terminal  21 . Similarly, password authentication may be performed here. 
     Next, the communication terminal  12  sends an account registration request (REGISTER) to the relay server  13  (step S 5 ). The relay server  13  registers an account (SIP:0003@privatesip1) of the communication terminal  12  in the local account information database  104  while bringing the account of the communication terminal  12  into correspondence with the local IP address of the communication terminal  12 . 
     Thus, the registration of the accounts of the relay servers  13  and  23  in the SIP-server  4  is completed, and the registration of the accounts of the communication terminals  11 ,  12  and  21  in the relay servers  13  and  23  is completed. 
     Next, the relay server  13  sends a connection request command (INVITE method) for the relay server  23  to the SIP-server  4  (step S 6 ). In this INVITE method, the relay server  13  designates the account (SIP:relay server2@sip.srv) of the relay server  23  which receives the connection request. The SIP-server  4  refers to the relay server account information database  43 , thereby acquiring the global IP address of the relay server  23 . Then, the SIP-server  4  relays the INVITE method from the relay server  13  to the relay server  23 . 
     As described above, when the relay server  13  sends the connection request command to the relay server  23 , the relay server  23  sends back an OK response to the relay server  13  via the SIP-server  4 . Thus, a tunneling session is established between the relay servers  13  and  23  by acceptance of the connection request command (step S 7 ). 
     The aforementioned processing from step S 1  to step S 7  is typically performed by an operator during the initial set-up of a network. The operator performs an operation of registering in the SIP-server  4  a relay server on a LAN which is intended to be connected through the Internet  3 . Moreover, the operator performs an operation of registering in the relay server a communication terminal which is intended to carry out communications through the Internet  3 . 
     Next, as shown in  FIG. 6 , the relay server  13  sends local account information LA 1  to the relay server  23  by a MESSAGE method (step S 8 ). The MESSAGE method preferably is directly sent to the relay server  23  via no SIP-server. Alternatively, this communication may be carried out via the SIP-server  4 . 
     The sequence diagram in  FIG. 6  illustrates details of the local account information LA 1  transferred in step S 8 . The local account information LA 1  contains information about a communication terminal which is connected to the LAN  1  having the relay server  13  placed thereon and which performs account registration on the relay server  13 . As described with reference to the sequence in  FIG. 5 , in this state, the communication terminals  11  and  12  perform account registration on the relay server  13 ; therefore, the local account information LA 1  contains the account information of the communication terminals  11  and  12 . 
     Upon reception of the local account information LA 1 , the relay server  23  registers the received information in the local account information database  104  thereof. However, the received account information is registered while being brought into correspondence with the account information of the relay server  13  which sent the account information. In such a case, each of the account (SIP:0001@privatesip1) of the communication terminal  11  and the account (SIP:0003@privatesip1) of the communication terminal  12  is registered while being brought into correspondence with the account (SIP:relay server1@sip.srv) of the relay server  13 . 
     Next, the relay server  23  sends local account information LA 2  to the relay server  13  by the MESSAGE method (step S 9 ). The MESSAGE method preferably is directly sent to the relay server  13  via no SIP-server. Alternatively, this communication maybe carried out via the SIP-server  4 . 
     The sequence diagram in  FIG. 6  illustrates details of the local account information LA 2  transferred in step S 9 . The local account information LA 2  contains information about a communication terminal which is connected to the LAN  2  having the relay server  23  placed thereon and which performs account registration on the relay server  23 . The relay server  13  registers the information in the local account information database  104  thereof. In such a case, the account (SIP:0002@privatesip2) of the communication terminal  21  and the account (SIP:relay server2@sip.srv) of the relay server  23  are registered in the local account information database  104  while being brought into correspondence with each other. 
     Thus, the relay server  13  and the relay server  23  exchange the local account information LA 1  and the local account information LA 2  with each other, and register the acquired information in the local account information databases  104  thereof, respectively. The communication terminals  11  and  12  connected to the LAN  1  access the relay server  13 , thereby referring to the local account information database  104  of the relay server  13 . For example, the users of the communication terminals  11  and  12  can refer to the contents of the local account information database  104  through an operation of referring to an address book. Similarly, the communication terminals  21  and  22  connected to the LAN  2  can refer to the local account information database  104  of the relay server  23 . 
     Next, it is assumed herein that the user of the communication terminal  11  must carry out communications with the communication terminal  21 . The user of the communication terminal  11  accesses the relay server  13  to refer to the address book. Then, the user designates the account (SIP:0002@privatesip2) of the communication terminal  21  to execute the communication processing with the communication terminal  21 . Thus, the communication terminal  11  sends to the relay server  13  a SIP command addressed to the communication terminal  21  (step S 10 ). 
     Upon reception of the SIP command which designates the communication terminal  21  as an address account, the relay server  13  refers to the local account information database  104 , and specifies a relay server in which the relevant address account is registered. In this case, the account of the communication terminal  21  is registered while being brought into correspondence with the relay server  23 ; therefore, the relay server  23  is selected as a relay. 
     Thus, the relay server  13  receives the SIP command from the communication terminal  11 , and then directly transfers the SIP command to the relay server  23  via the tunneling session (step S 10 . 1 ). Further, the relay server  23  receives the SIP command from the relay server  13 , and then transfers the SIP command to the communication terminal  21  (step S 10 . 1 . 1 ). Through the aforementioned procedure, the SIP command sent from the communication terminal  11  is transferred to the communication terminal  21 . 
     Upon reception of the SIP command from the communication terminal  11 , the communication terminal  21  sends back a SIP response to the communication terminal  11 . This response is directly transferred from the relay server  23  to the relay server  13  via the tunneling session again, and further is transferred to the communication terminal  11  via the relay server  13 . 
     When the user of the communication terminal  12  must carry out communications with the communication terminal  21 , the aforementioned processing is performed similarly. When the user of the communication terminal  12  executes communication processing which designates the account (SIP:0002@privatesip2) of the communication terminal  21 , the communication terminal  12  sends to the relay server  13  a SIP command addressed to the communication terminal  21  (step S 11 ). 
     Upon reception of the SIP command which designates the communication terminal  21  as an address account, the relay server  13  refers to the local account information database  104 , and specifies a relay server in which the relevant address account is registered. Also in this case, the account of the communication terminal  21  is registered while being brought into correspondence with the relay server  23 ; therefore, the relay server  23  is selected as a relay. 
     The relay server  13  receives the SIP command from the communication terminal  11 , and then directly transfers the SIP command to the relay server  23  via the tunneling session (step  11 . 1 ). Further, the relay server  23  receives the SIP command from the relay server  13 , and then transfers the SIP command to the communication terminal  21  (step S 11 . 1 . 1 ). In response thereto, the communication terminal  21  sends back a SIP response to the communication terminal  11 . This response is directly transferred from the relay server  23  to the relay server  13  via the tunneling session again, and further is transferred to the communication terminal  11  via the relay server  13 . 
     As described above, the use of the communication system according to this preferred embodiment allows the communication terminal on the LAN  1  to carry out communications with the communication terminal on the LAN  2 , through the Internet  3 . 
     According to this preferred embodiment, the SIP-server  4  connected to the Internet  3  does not necessarily control the accounts of all the communication terminals connected to this communication system in a collective manner. It is sufficient that the SIP-server  4  controls only the accounts of the relay servers. In the aforementioned processing, it is sufficient that the SIP-server  4  controls the account information of the relay servers  13  and  23 . Accordingly, the accounts can be controlled in a distributed manner, which makes it possible to lessen a load imposed on the SIP-server  4 . 
     The account information sent to the respective LANs are not collectively controlled by the SIP-server  4 , but are controlled by the relay servers on the respective LANs. Then, the relay server which controls the account information sent to each LAN carries out communications with another relay server through the SIP-server to exchange the account information held thereby with the another relay server. Thus, the communication terminal on each LAN can acquire the account information of the communication terminal on another LAN via the relay servers on the respective LANs. 
     Further, the communication system according to this preferred embodiment has a feature in that the relay server controls the account information acquired from another relay server while bringing the account information into correspondence with the account information of the relay server which sends the account information. In the processing described with reference to  FIG. 6 , for example, the relay server  13  acquires from the relay server  23  the account information of the communication terminal connected to the LAN  2 . The relay server  13  controls the acquired account information while bringing the account information into correspondence with the account information of the relay server  23 . According to the communication system, therefore, the communication terminal can obtain an account freely in each LAN. 
     That is, when a unique account is provided to a communication terminal in each LAN, there is no possibility that identical accounts are provided to different LANs. This is because the account of the relay server is controlled by the SIP-server  4  so as to be unique. Thus, the accounts of all the communication terminals may not be collectively controlled in the entire communication system, which makes it possible to reduce a burden in account control. In the sequences illustrated in  FIGS. 5 and 6 , different domains are allocated to the communication terminals  11 ,  12  connected to the LAN  1  and the communication terminal  21  connected to the LAN  2 . As described above, alternatively, the account can be freely set for each LAN. Therefore, there arises no necessity of identifying a domain name uniquely. 
     As described above, in addition, the communication system according to this preferred embodiment relays communication data between the communication terminals in an application protocol layer which is higher in order than the TCP/IP. In this preferred embodiment, that is, each of the relay servers  13  and  23  relays communication data between the communication terminals in a SIP layer. This allows communications between different LANs using an existing network system. 
     While the present invention has been described with respect to preferred embodiments thereof, it will be apparent to those skilled in the art that the disclosed invention may be modified in numerous ways and may assume many embodiments other than those specifically set out and described above. Accordingly, it is intended by the appended claims to cover all modifications of the present invention that fall within the true spirit and scope of the present invention.