There will now be described an embodiment of the present invention with reference to the accompanying drawings.
The host device 10 is a computer on which five SIP (Session Initiation Protocol) servers are implemented as virtual hosts. It is well known that the computer contains storage 10a, a CPU (Central Processing Unit) 10b, a DRAM (Dynamic Random Access Memory) 10c, a communication adapter 10d, and the like. The storage 10a is a memory device that stores various kinds of programs and data. The CPU 10b is a control device that executes various kinds of processes according to the programs stored in the storage 10a. The DRAM 10c is a memory device on which a workspace is developed when the CPU 10b executes various kinds of processes. The communication adapter 10d is a communication device that exchanges data with computers or relay devices on a network.
The storage 10a of the host device 10 stores basic software that provides many pieces of application software (not shown) with basic functions such as a data input/output management by the communication adapter 10d and a memory are a management in the storage 10a and the DRAM 10c. Further, the storage 10a stores a software group to implement five SIP servers 11 through 15. Further, the storage 10a stores a software group to implement an interface engine 16 described below. Still further, the storage 10a stores a software group to implement a host distinguishment module 17 concerning the present invention, and a distinguishment table 18 used by the host distinguishment module 17.
Each of the SIP servers 11 through 15 contains at least a proxy server, a redirection server, and a register server (not shown) to implement a function as an SIP server. Among these, the proxy server has a function that specifies a location of a session partner's user agent as a substitute of a user agent (an SIP client), and calls a session partner's user agent server. The redirection server has a function that acquires an address of the session partner from a location server (not shown) to notify the address to the user agent that requests the session. The register server has a function that makes a location server (not shown) register, change, and delete information about the user agent based on the request from the user agent (SIP client). Since the proxy server, the redirection server and the register server are well known, details thereof are not described here. Each of the SIP servers 11 through 15 performs signaling between the user agents by exchanging SIP messages with the user agents (the SIP clients) according to the SIP and manages inputting and cutting of sessions between the user agents.
The interface engine 16 receives SIP messages from the SIP server or the user agents on the network, and sends SIP messages to the SIP server or the user agent on the network. Receiving an SIP message from the SIP server or the user agent on the network or from any of the SIP servers 11 through 15, the interface engine 16 generates a process of the host distinguishment module 17 described below in order to judge whether the SIP message is directed to one of the SIP servers 11 through 15. And this interface engine 16 transmits the SIP message to the SIP server or the user agent on the network according to the SIP, when the process judged that the SIP message is not directed to any of the SIP servers 11 through 15. On the contrary, when the process judged that the SIP message is directed to one of the SIP servers 11 through 15, the interface engine 16 makes a thread that has a function to deliver the SIP message to the SIP server of destination and makes the thread deliver the SIP massage concerned to the SIP server.
Therefore, the interface engine 16 corresponds to the receiving function mentioned above.
The host distinguishment module 17 has a function to distinguish the destination of the SIP message that is received by the interface engine 16 in response to an instruction from the interface engine 16. The contents of the process of the host distinguishment module 17 (the CPU 10b that executes this module) will be mentioned below.
The distinguishment table 18 is used when the host distinguishment module 17 distinguishes the destination of the SIP message.
As described below, if a URI defined in the “first condition” field is included in a “Route” header field (see
Therefore, the host device 10 that stores this distinguishment table 18 in the storage 10a has the above-mentioned storing function.
Next, contents of a process executed by the host distinguishment module 17 in the host device 10 will be described.
As mentioned above, the host distinguishment module 17 starts when the interface engine 16 receives the SIP message from either an SIP server or a user agent on the network, or one of the SIP servers 11 through 15.
In a first step S101 of the host distinguishment process, the host distinguishment module 17 (the CPU 10b that executes this module) receives the SIP message that is received by the interface engine 16 from the interface engine 16.
In the next step S102, the host distinguishment module 17 reads the distinguishment table 18 shown in
In the next step S103, the host distinguishment module 17 reads the URI from the “Route” header field of the SIP message received from interface engine 16 in step S101, and searches the distinguishment table 18 of
In the next step S104, the host distinguishment module 17 judges whether a record whose “first condition” field contains the URI in the “Route” header field of the SIP message has been detected. Then, the host distinguishment module 17 branches the process from step S104 to step S112, when the record concerned has been detected. On the other hand, when the record concerned has not been detected, the module advances the process to step S105.
In step S105, the host distinguishment module 17 reads the URI from the starting line of the SIP message received from the interface engine 16 in step S101, and searches the distinguishment table 18 of
At the next step S106, the host distinguishment module 17 judges whether a record whose “second condition” field contains the URI in the starting line of the SIP message has been detected. Then, the host distinguishment module 17 branches the process from step S106 to step S112, when the record concerned has been detected. On the other hand, when the record concerned has not been detected, the module advances the process to step S107.
At the next step S107, the host distinguishment module 17 reads the URI from the “To” header field of the SIP message received from the interface engine 16 in step S101, and searches the distinguishment table 18 of
At the next step S108, the host distinguishment module 17 judges whether a record whose “third condition” field contains the URI in the “To” header field of the SIP message has been detected. Then, the host distinguishment module 17 branches the process from step S108 to step S112, when the record concerned has been detected. On the other hand, when the record concerned has not been detected, the module advances the process to step S109.
In the next step S109, the host distinguishment module 17 URI reads the URI from the “From” header field of the SIP message received from the interface engine 16 in step S101, and searches the distinguishment table 18 of
In the next step S110, the host distinguishment module 17 judges whether the record whose “fourth condition” field contains the URI in the “From” header field has been detected. Then, the host distinguishment module 17 branches the process from step S110 to step S112, when the record concerned has been detected. On the other hand, when the record concerned has not been detected, the module advances the process to step S111.
In step S111, since the record that contains the virtual host identification information could not be detected in the distinguishment table 18 of
On the other hand, in step S112, since the record that contains the virtual host identification information could be detected in the distinguishment table 18 of
Therefore, the CPU 10b that executes step S103, S105, S107, and S109 corresponds to the search function mentioned above, and the CPU 10b that executes steps S111 and S112 corresponds to the delivery function mentioned above.
Receiving information showing that the virtual host identification information is not detected from the host distinguishment module 17, the interface engine 16 returns the SIP message with no destination information to the transmitter according to the SIP message. Further, receiving the virtual host identification information from the host distinguishment module 17, the interface engine 16 makes a thread of the module that delivers the SIP message to the virtual host (SIP server), and delivers the virtual host identification information and the SIP message to the thread. The thread delivers the SIP message to the virtual host (SIP server) that is specified by the virtual host identification information received from the interface engine 16.
Next, the operations and effects of the host device 10 of the embodiment will be described.
For example, assuming that the interface engine 16 of the host device 10 of this embodiment receives an SIP message as shown in
Receiving such an SIP message, the interface engine 16 generates the process of the host distinguishment module 17. The host distinguishment module 17 searches the respective entities in the SIP message using the URI in the “Route” header field as a search key for a record of which “first condition” field includes the same URI (step S103). Since a record of the SIP server 11 is detected as a result of the search, the host distinguishment module 17 delivers the virtual host identification information (0001) of the SIP server 11 to the interface engine 16 (step S104; YES, sep S112).
At the time, although the starting line of the SIP message includes the same URI (sip:shingo@fujitsu.com) as the value of the “second condition” field of the record of the SIP server 12 in the distinguishment table 18 of
Further, according to the host device 10 of the embodiment, even when any of the SIP servers 11 through 15 as the virtual hosts sends an SIP message, the interface engine 16 generates a process of the host distinguishment module 17 with respect to the SIP message in order to execute the host distinguishment process of
As a result, when an SIP message is transmitted inside the host device 10, that is, when the SIP message is sent from one of the SIP servers 11 through 15 to another of the SIP servers 11 through 15, since the interface engine 16 is notified of virtual host identification information that shows an appropriate destination of the SIP message from the host distinguishment module 17, the SIP message is transmitted to the SIP server other than the transmitter by folding back inside the computer, which can avoid a leak of a message to the network through the communication device.
| Number | Date | Country | Kind |
|---|---|---|---|
| 2006-205297 | Jul 2006 | JP | national |