Hereinafter, the present invention will be described with reference to drawings.
First, the concept of “SIP using P2P” according to the present invention will be explained with reference to
As shown in
In process of registration, invitation and subsequent communication, the messages that Bob's host and Alice's host use to communicate are all standard SIP messages. These messages are converted to P2P messages that supported by the underlying P2P network in nodes of the network, in order to access services supplied by the P2P network.
Accordingly, the underlying P2P network can be implemented by using any algorithm. The algorithm used to implement the network is transparent to Alice's host and Bob's host. The two hosts communicate each other as if they were communicating through a SIP network.
This implementation is similar to one that a SIP layer is placed above a P2P network layer. Therefore, the network in accordance with the present invention is referred to a P2P SIP enabled network.
Next, the architecture of the P2P SIP enabled network based on “SIP using P2P” in accordance with an embodiment of the present invention will be described with reference to
Unlike a traditional SIP architecture, the network based on “SIP using P2P” in accordance with the present invention requires no central servers. As shown in
The APs participating in this overlay act as traditional SIP outbound proxy servers for user terminals and allow user terminals to place and receive calls, but, when viewed collectively with the other peers, perform the roles of registrar, redirection server and location server in traditional SIP networks. Accordingly, when viewed as a whole, they form a P2P SIP enabled network.
User terminals only act as SIP user agents. A Multimedia session, such as audio, video and instant message session, through the P2P SIP enabled network can be established among two or more user terminals.
Below, detailed description of above two entities and relations between them will be given with reference to
As shown in
DHT module in an AP is connected to other DHT modules in other APs, forming a P2P network. A DHT module also maintains a hash area. Hash areas in DHT modules of APs in the P2P network form a hash space of the P2P network together. These hash areas are implemented as distributed hash tables. For redundancy, registration information of an access user terminal is stored in a plurality of hash areas, which also avoids the “single point failure” problem. Moreover, a session among two or more user terminals can be established using registration information obtained by looking up in the hash space.
In this embodiment, the P2P network is a DHT P2P overlay network, which provides accessible DHT services using Bamboo algorithm. A DHT module provides two functions interface, which provides the services. Put( ) function is responsible to save user registration information to P2P network and Get( ) is responsible to retrieve user information from P2P network.
APs also act as SIP proxy for user terminals and perform certain SIP server functions, such as registration, location and redirect functions, These functions are performed by PSadapter module in the AP. So actually, the PSadapter module is an adapter, which implements the transition between SIP protocol and P2P protocol. The PSadapter module converts SIP messages from user terminals to P2P messages, and then sends them to P2P network through DHT module. Similarly, the PSadapter module also converts P2P messages from P2P network through the DHT module to SIP messages and sends them to external user terminals. Accordingly, when viewed as a whole, APs connected each other form a P2P SIP enabled network providing SIP services.
In this embodiment, the implementation of PSadpter module is based on well-known OSIP open source SIP stack.
What's more, a SIP AAA module is placed between the PSadapter module and the SIP interface. It performs the authentication, authorization and accounting functions for the access terminals. The SIP AAA module is easy to implement for there are many mature solutions in existing SIP. Therefore, the detained description of the SIP AAA module is omitted.
An AP also provides a SIP interface for exchanging SIP messages with user terminals. In this embodiment, the SIP interface is a standard SIP interface.
Standard input SIP request messages from a user terminal are inputted through the SIP interface. After the SIP AAA module performs authentication, authorization and accounting functions, these message are further sent to the PSadapter module. The PSadapter module converts them to corresponding P2P message for accessing P2P services.
Similarly, P2P messages from P2P network through the DHT module are converted to SIP messages and then sent to the SIP AAA module for corresponding processes by the PSadapter module. These messages then are sent to user terminal through the SIP interface as return SIP response messages.
Actually, a user terminal is a standard SIP user agent, which mainly comprises a SIP UA module. For a user terminal, the above P2P SIP enabled network is the same as a normal SIP network. A user terminal registers with the P2P SIP enabled network using a standard SIP message. The message is converted by an access AP of the user terminal. The user terminal is then registered with the P2P network using the converted message.
Hereafter, the user terminal can establish a session with any user terminals that have registered with the network and perform communication with them using standard SIP messages.
The underlying P2P network is transparent to user terminals. They do not care operations of the P2P network. SIP UAs between a session communicate each other as if they were communicating directly using standard SIP messages.
Below, processes for constructing the “SIP using P2P” network and for communication through the network in accordance with the present invention are described particularly.
APs are organized using a Distributed Hash Table (DHT) P2P structure as nodes. In such a system, every user has a User-ID, which is obtained by hashing user name, such as alice@(nec.com. Users'registration information can be thought of as being stored in the distributed hash table at the entry corresponding to their User-ID. The APs that make up the P2P network are also assigned an ID, called a Node-ID, which is obtained by hashing the IP address of APs and maps to the same hash space as the User-IDs. An AP that has a Node-ID near a particular User-ID will be responsible for storing the registration information about that user. The hash space is divided up so that all of the hash space is the responsibility of some particular node, although as APs enter and leave the system, the hash area that any particular node is responsible for may shrink or grow. Messages are exchanged between the nodes in the DHT as the APs enter and leave. Additionally, redundancy is implemented to protect against an AP failing.
Each AP keeps information about how to contact other APs in the P2P network. In terms of the P2P network, these are the neighbors of the node. When locating user info with a particular User-ID, the node will send the request to the neighbor with the Node-ID closest in the hash space to the desired User-ID. Since the node receiving the request has many neighbors with similar Node-IDs, it will presumably know of a node with a Node-ID closer to the User-ID. The request is then forwarded to this closer node. The process is repeated until the node responsible for the User-ID is located and the requested information is obtained.
When a node wishes to join the P2P network, it will send a JOIN REQUEST message to a bootstrap node already in the P2P network, requesting to join. In response, some messages are exchanged to allow the bootstrap node to obtain the information about user information the joining node will be responsible for maintaining. Other messages will be exchanged later to maintain the P2P network as other nodes enter and leave, but once the initial set messages are exchanged, a node has joined the overlay.
As an example, we illustrate the P2P network construction process as shown in
Once a node (AP) has joined the P2P network, the user (in user terminal) that node is responsible for must be registered with the P2P network. This registration is analogous to the traditional SIP registration, in which a message is sent to the registrar creating a mapping between a SIP URI and a user's contact. The only difference is that since there is no central registrar, some node in the DHT will maintain the registration on the user's behalf.
The user terminal will hash the user name, such as alice@(nec.com resulting in a User-ID corresponding to that user name. A SIP REGISTER message containing contact information for the user is constructed and sends to related access AP. The access node (AP) will look up the node it is aware of with a Node-ID nearest the User-ID calculated from the user's name, and forward the message to this node. The process is repeated until the LOOKUP message reaches the node responsible for the portion of the hash space that includes the hashed User-ID. Then the access AP sends related messages to store the registration for that user in the responsible AP. For redundancy, the user should also store the registration at some other nodes immediately following the responsible node.
As an example, we illustrate the shared data management process (user terminal registration process) as shown in
P2P SIP Enabled V2oIP Call Management (Session Establishment)
After registering with the P2P network, a user terminal can establish a session with other HMs. Establishing a session works very much like user registration information storage process. The caller's user terminal constructs an SIP INVITE message, and hashes the name of the called. The caller's access AP sends the LOOKUP message to the AP (node) nearest the hashed name that it is aware of. When lookup result returning, the access AP sends back a 302 to the caller's user terminal where the contact is the actual address of the called's user terminal. When the caller resends the message to that user terminal, the call is completed in the conventional SIP format.
As an example, we illustrate the P2P SIP enabled V2oIP call process as shown in
Although the present invention has been described with respect to specific embodiments thereof, various changes and modifications may be suggested to one skilled in the art. It is intended such changes and modifications fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
200610150677.9 | Oct 2006 | CN | national |