The IP multimedia subsystem (IMS) was developed to provide a common standardized architecture and standardized interfaces for providing IP services in a mobile networking environment. The IMS network is not dependent on the access technology and will interoperate with virtually any cellular network. IMS uses the session initiation protocol (SIP) as the service control protocol, which allows operators to offer multiple applications simultaneously. The IMS standard is expected to speed the adoption of IP services on mobile terminals, allowing users to communicate via voice, video, or text using a single client on the mobile terminal.
Although IMS promises a richer experience to mobile subscribers, network operators are hesitant to invest in equipment to implement IMS until there are a sufficient number of subscribers with IMS capability to make the investment worthwhile. Most cellular telephones currently in use do not have a SIP client and lack IMS capabilities, so the pool of potential subscribers for IMS services is relatively small. Extending IMS capabilities to legacy mobile terminals that lack inherent IMS capabilities would provide a much broader market for network operators and encourage investment in IMS technology and equipment.
The present invention relates to a SIP client that provides SIP and/or IMS capabilities to users of communication devices. In one exemplary embodiment, the SIP client includes a user agent that provides a high-level application interface to user applications to insulate a user application from the details of the underlying network protocols, and a signaling agent under the control of the user agent that performs signaling tasks necessary for establishing, modifying, and terminating communication sessions for media transfers. The user agent translates user commands from a user application into corresponding signaling operations. The user agent may be shared by a plurality of different users. The signaling agent generates the signaling messages to perform those signaling operations. The SIP client can reside in a server in a fixed communication network. In this case, the user application in a communication device can send commands over a communication network to the SIP client.
The high-level application interface provides inherent bandwidth compression as compared to the signaling messages generated by the signaling agent. This property can be used to reduce signaling overhead over low bandwidth, low speed, long latency, and/or high cost connections. For example, in a cellular network, the air interface has limited bandwidth. By locating the SIP client in the fixed network, an application residing in a mobile terminal needs to send only user commands to the SIP client. The SIP client then generates the signaling messages, which do not need to traverse the air interface. The SIP client does not need to be located in the cellular network, but could reside in any network that can be accessed from the cellular network. Thus, the SIP client can be located in a network that offers the lowest cost.
SIP client 200 comprises three main components—a user agent (UA) 202, a signaling agent (SA) 204, and a media agent (MA 206) 206. UA 202 communicates with user application 150 and translates application commands into appropriate signaling and media operations. SA 204 and MA 206 operate under the control and direction of UA 202. The UA 202 has overall control over connection management, and delegates signaling and media management tasks to the SA 204 and MA 206, respectively. In the illustrated embodiment, SA 204 implements SIP and SDP protocols to handle signaling tasks. The SA 204 uses UDP over IP for transport of messages, but other session control protocols, such as H.323, could also be used. The signaling tasks include the set up, modification, and tear down of communication sessions, session parameters negotiations, remote device interrogations to determine capabilities, and presence detection. The MA 206 implements the Message Sessions Relay Protocol (MSRP) and the Real-Time Transport Protocol (RTP), and includes one or more media players to process and output media to media rendering devices. MA 206 manages media connections, routes media according to media type and user settings, and invokes media players to process media as required. The MA 206 uses TCP and/or UDP over IP for transport of RTP and MSRP messages.
In some realizations, a monolithic approach may be taken, which integrates the UA 202, SA 204, and MA 206 together in a single application. In the embodiment shown in
The distributed approach has several advantages over the monolithic approach. The SIP client 200 may be located in a network server in the IMS 30 or other IP network and remotely accessed by an NCD 100 using, for example, telnet to open a socket connection. Thus, IP services can be provided to an NCD 100, such as a mobile terminal in a cellular network, that does not have inherent SIP capabilities. The separation of the UA 202, SA 204, and MA 206 allow these elements to be distributed within the network 10 so that the UA 202, SA 204, and MA 206 can reside in different locations within network 10. By locating the SIP client 200 in a network with low bandwidth or high latency, improved performance may be realized because the high level API for SIP client 200 reduces the amount of signaling over the air interface.
The SIP client 200 is implemented as a process running on a host device, such as a PC or mobile terminal. The host device includes memory in which to store code for implementing the present invention, one or more microprocessors to execute the code, and a communications interface to provide network access. UA 202, SA 204, and MA 206 may reside in different host devices. After it boots up, the SIP client 200 opens a server socket on a designated port, e.g., port 3500 for communications between the UA 202 and the user application 150. Any user application 150 wishing to communicate with the SIP client 200 can open a client socket on the same port. The port for communications between the UA 202 and the user application 150 may be specified in a configuration file. Different ports may be opened for communications between the UA 202 and the SA 204, or between the UA 202 and the MA 206. U.S. patent application Ser. No. 11/114,427 and U.S. patent application Ser. No. 11/114,430, both filed on Apr. 26, 2005, describe application interfaces for a UA 202. These applications are incorporated herein by reference.
In the simple example above, it can be seen that the amount of signaling between user application 150 and SIP client 200 is small compared to the signaling between SIP clients 200 needed to establish the communication session. Further, the messages sent by user application 150 will be small in size compared to typical SIP messages. Commands from the user application 150 to the SIP client 200 may comprise only a few bytes, whereas the SIP messages typically comprise hundreds of bytes. Because SIP client 200 creates a high-level application interface (i.e., the UA interface 208), there is a potential for significant reduction in bandwidth requirements, latency, and/or costs by locating the SIP client 200, or various components such as the UA 202 and SA 206, in a network.
When the SIP clients 200 are embedded applications in the end devices, the SIP signaling must traverse the communication networks between the end devices. In the example shown in
Further reduction in costs can be realized if UAs 202 for the called party and calling party are hosted on the same host device 120. Referring again to
The above examples illustrate how the inherent compression property of the application interface 208 for the UA 202 can be used to optimize network performance and reduce costs. In general, a network can be characterized in terms of metrics such as costs, bandwidth, and latency. Location of the UA 202, MA 204, and SA 206 affects each of these metrics in a known way. Based on a weighting of these metrics, service providers can design a network topology that optimizes system performance.
In the embodiments shown above, there is one instance of the SIP client 200 with one user agent for each IMS user. Each SIP client 200 has a separate IP address (or host port). In large networks with many IMS users, depletion of IP address space may be a concern. Further, a priori knowledge of the IP address of users, or some discovery process to determine IP addresses, is needed. Also, this embodiment does not scale easily, and the maintenance and upgrade of a large number of user agents is problematic.
The use of a shared UA 202 has a number of advantages over distinct UAs 202 for each user. Users sharing the same UA 202 and network address can communicate without the need for SIP registration services. Also, the shared implementation of the user agent 202 scales readily to accommodate large networks and reduces maintenance and upgrade costs.
In one embodiment, the shared UA 202 maintains a table or user database 210 containing the user identity and state information for each connected user. The UA 202 may allocate a dedicated TCP socket connection for each user. The user identity is associated with the TCP socket connection and state information in the user database 210 or table. If the host device 120 uses a multi-threading operating system, the UA 202 may, alternatively, create separate threads in the UA process for each user. Using multi-threading techniques, the UA 202 is relieved of the need to maintain state information for each user.
The present invention may, of course, be carried out in other specific ways than those herein set forth without departing from the spirit and essential characteristics of the invention. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.
This application is a continuation-in-part of U.S. patent application Ser. No. 11/114,427 filed Apr. 26, 2005 and U.S. patent application Ser. No. 11/114,430 filed Apr. 26, 2005, which are incorporated herein by reference. This application claims the benefit of U.S. Provisional Patent Application 60/754,925 filed on Dec. 29, 2005, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60754925 | Dec 2005 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11114427 | Apr 2005 | US |
Child | 11370151 | Mar 2006 | US |
Parent | 11114430 | Apr 2005 | US |
Child | 11370151 | Mar 2006 | US |