Abstract:
Systems, methods and computer program products for providing geographically diverse Internet protocol multimedia subsystem (IMS) instances. A geographically diverse IMS network element is disclosed herein including an active instance of a first IMS function, being located in a first geographic location, and a standby instance of the first IMS function, being located in a second geographic location different from the first geographic location.

Description:
RELATED APPLICATIONS 
       [0001]    This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/830,418 filed Jul. 12, 2006; the disclosure of which is incorporated herein by reference in its entirety. 
     
     TECHNICAL FIELD 
       [0002]    The subject matter described herein relates to methods, systems and computer program products for use in an Internet protocol (IP) multimedia subsystem (IMS). More particularly, the subject matter described herein relates to methods, systems, and computer program products for providing geographically diverse IMS instances. 
       BACKGROUND ART 
       [0003]    IMS is defined by the Third Generation Partnership Project (3GPP) as a new mobile network infrastructure that enables the convergence of data, speech, and mobile network technology over an IP-based infrastructure. IMS bridges the gap between the existing traditional telecommunications technology and Internet technology, allowing network operators to offer a standardized, reusable platform that can be used to provide services for both mobile networks and landline networks at the same time, providing unique mixtures of services with transparency to the end-user. 
         [0004]    The main function of IMS is to set up media communication sessions between users and between users and applications. IMS uses the session initiation protocol (SIP) for initiating, modifying, and terminating an interactive user session that involves multimedia elements, such as video, voice, instant messaging, online games, and virtual reality, and provides the service creator the ability to combine services in the same session and dynamically modify sessions “on the fly” (e.g., adding a video component to an existing voice session). As a result, new and innovative user-to-user and multi-user services become available, such as enhanced voice services, video telephony, chat, push-to-talk, and multimedia conferencing, all of which are based on the concept of a multimedia session. 
         [0005]    As used herein, the term “IMS network” refers to a collection of connected entities performing IMS functions. An IMS network may be controlled by an operator, which is typically a business entity such as a telephone company. The set of IMS entities within a particular operator&#39;s control may be referred to as an operator&#39;s network. The operator may control the operator&#39;s network from a network operator&#39;s console (NOC). 
         [0006]    As used herein, the term “subscriber” refers to an operator&#39;s customer who uses the operator&#39;s network. Typically, all of an operator&#39;s subscribers are assigned to the operator&#39;s network. A subset of subscribers in an operator&#39;s network may be referred to as a point of presence (POP). 
         [0007]    As used herein, the term “IMS network element” (NE) refers to a logical grouping of entities that perform a specific assigned IMS function or group of functions within an IMS network. IMS functions include the call session control function (CSCF), the home subscriber server (HSS) function, the authentication, authorization, and accounting (AAA) function, and application server (AS) functions. 
         [0008]    The CSCF is used to process SIP signaling packets in the IMS. It aids in the setup and management of sessions and forwards messages between IMS networks. There are three distinct CSCF functions: proxy CSCF (P-CSCF), interrogation CSCF (I-CSCF), and serving CSCF (S-CSCF). The P-CSCF is the first point of contact for a subscriber connecting to the network; it is the gateway into the IMS network. The P-CSCF implements compression and security. A P-CSCF may be configured to forward requests to a specific I-CSCF, which is the next function in the IMS signaling path. The I-CSCF provides a subscriber location function (SLF), which maps a subscriber to a specific S-CSCF, thus enabling the I-CSCF to route requests to the correct S-CSCF. The I-CSCF also provides a network interconnect function (NIF). The NIF knows how to route requests to other interconnecting networks (via their I-CSCFs). The S-CSCF is the core of the network. The S-CSCF maintains a database for all of the subscribers assigned to a POP. The S-CSCF provides services for the users, such as setting up media communication sessions between users and applications. 
         [0009]    The HSS holds key subscriber information and enables users (or servers) to find and communicate with other end users. The AAA authenticates the user, gives access only to valid users, grants the user authority to use certain functions or features available on the IMS network, and tracks user activity for accounting and billing purposes. 
         [0010]    Additional IMS functions may also include functions, collectively referred to as application server functions (AS), such as caller ID, call waiting, call holding, push to talk, call forwarding, call transfer, call blocking, malicious caller identification, lawful interception, announcement services, conference call services, voicemail, text to speech and speech to text, location-based services, messaging services and instant messaging, presence information, enumeration (ENUM), and 2-G gateway services. 
         [0011]    To increase the reliability of an IMS network, servers in the IMS network may be configured in an active/standby configuration, in which a server operates in active mode while a redundant server operates in standby mode, ready to assume the functions of the active server in the event that the active server should fail or otherwise be deactivated. 
         [0012]      FIG. 1  is a block diagram illustrating an example conventional IMS system. In conventional IMS networks, each network element may perform a single IMS function. 
         [0013]    In  FIG. 1 , network elements NE 1   100 A and NE 1 ′  100 B are a redundant pair, where NE 1   100 A includes an active instance of an operation, administration, management, and provisioning (OAM&amp;P) node  102 A, and NE 1 ′  100 B includes a standby instance of the OAM&amp;P node  102 B. As used herein, the term “node” refers to the portion of a network element on which an active or standby instance of an IMS function resides. Network elements NE 1   100 A and NE 1 ′  100 B are co-located in a single geographic location. Switch  104  connects IMS network  106  either to NE 1   100 A or to NE 1 ′  100 B. 
         [0014]    Network elements NE 2   108 A and NE 2 ′  108 B are a redundant pair, where NE 2   108 A includes three active S-CSCF instances  110 A,  112 A, and  114 A, and NE 2 ′  108 B includes three standby S-CSCF instances  110 B,  112 B, and  114 B. Network elements NE 2   108 A and NE 2 ′  108 B are co-located in geographic location  2 . Switch  116  connects IMS network  106  either to NE 2   108 A or to NE 2 ′  108 B. 
         [0015]    Network elements NE 3   118 A and NE 3 ′  118 B are a redundant pair, where NE 3   118 A includes an active P-CSCF instance  120 A, and NE 3 ′  118 B includes a standby P-CSCF instance  120 B. Network elements NE 3   118 A and NE 3 ′  118 B are co-located in geographic location  3 . Switch  122  connects IMS network  106  either to NE 3   118 A or NE 3 ′  118 B. 
         [0016]    If any IMS functional component in the active network element fails or is otherwise deactivated, the active network element will transition to standby mode and the standby network element will become active. In the IMS system illustrated in  FIG. 1 , the entire network element and included IMS functions are either all in active mode or all in standby mode. For example, if active S-CSCF 1   110 A fails, network element NE 2   108 A will transition from active to standby mode, network element NE 2 ′  108 B will transition from standby to active mode, and switch  116  will connect NE 2 ′  108 B, rather than NE 2   108 A, to IMS network  106 . 
         [0017]    There are several problems associated with IMS systems that are configured and operate as illustrated in  FIG. 1 , where the network element and all of its included IMS functions are either all in active mode or all in standby mode. One problem is that when only one IMS function or instance of a function fails, the other IMS functions or instances residing on that network element will be taken out of service by the transition of the entire network element from active to standby mode, even though the other IMS functions or instances were operating correctly. This transition may trigger database update, replication, or other maintenance for each standby IMS function or instance on the network element that becomes active—additional processing that is potentially superfluous. Another problem is that in the event of planned maintenance, testing, or software or hardware upgrades, the entire network element must be deactivated. Thus, even if only one IMS function or instance is upgraded, all IMS functions or instances must be taken offline, causing unnecessary disruption to all functions performed by the network element. 
         [0018]    Another problem associated with IMS systems as illustrated in  FIG. 1 , where the network element and its redundant mate are located in the same geographical location, is that the network element and its redundant mate are both subject to any local site failures such as a loss of power, or damage to the facility where the network element and its redundant mate are located. Under such circumstances, the standby network element cannot fulfill its intended purpose of providing a redundant function to take over when and if the active function fails, since the standby network element also fails for the same reason that the active network element failed. 
         [0019]    Accordingly, in light of these difficulties associated with IMS networks, there exists a need for systems, methods, and computer program products for providing network elements with enhanced fault tolerance due to geographic isolation of the active and standby instances of an IMS function, and enhanced flexibility due to switchover at the IMS function level rather than the network element level. 
       SUMMARY 
       [0020]    According to one aspect, the subject matter described herein includes a geographically diverse Internet protocol multimedia subsystem (IMS) network element (NE). The network element includes an active instance of an IMS function located in one geographic location. The network element also includes a standby instance of the IMS function located in another geographic location. 
         [0021]    According to another aspect, the subject matter described herein includes an Internet protocol multimedia system (IMS). The system includes a first network element in a first geographic location, and a second network element in a second geographic location. The first network element includes an active instance of an IMS function, and the second network element includes a standby instance of the IMS function. 
         [0022]    According to yet another aspect, the subject matter described herein includes a method of providing a fault-tolerant Internet protocol multimedia subsystem (IMS) network element (NE) by providing an active instance of an IMS function in a first geographic location and providing a standby instance of the IMS function in a second geographic location. 
         [0023]    The subject matter described herein for providing an IMS system architecture with flexible, geographically diverse redundancy may be implemented in hardware, software, firmware, or any combination thereof. As such, the terms “function” or “module” as used herein refer to hardware, software, and/or firmware for implementing the feature being described. In one exemplary implementation, the subject matter described herein may be implemented using a computer program product comprising computer executable instructions embodied in a computer readable medium. Exemplary computer readable media suitable for implementing the subject matter described herein include disk memory devices, chip memory devices, programmable logic devices, application specific integrated circuits, and downloadable electrical signals. In addition, a computer program product that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms. 
     
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0024]    Preferred embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings of which: 
           [0025]      FIG. 1  is a block diagram illustrating a conventional IMS network configured so that each network element implements a single IMS function; 
           [0026]      FIG. 2  is a block diagram illustrating an exemplary flexible, geographically diverse IMS network element according to an embodiment of the subject matter described herein; 
           [0027]      FIG. 3  is a block diagram illustrating an exemplary IMS network element in 1-active/N-standby configuration according to an embodiment of the subject matter described herein; 
           [0028]      FIG. 4  is a block diagram illustrating an exemplary IMS system according to an embodiment of the subject matter described herein; and 
           [0029]      FIG. 5  is a flow chart illustrating a method of providing a fault-tolerant IMS network element according to an embodiment of the subject matter described herein. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0030]    In order to avoid the difficulties associated with providing redundancy only at the network element level and with locating redundant system elements in the same geographic location, the subject matter described herein includes an IMS network element including a set of IMS functions, wherein each IMS function is implemented as a set of instances in an active/standby operational relationship to each other. A set of instances associated with one IMS function may operate independently of another set of instances associated with another IMS function. In one embodiment, the active and standby instances associated with each IMS function are geographically diverse from each other. 
         [0031]      FIG. 2  is a block diagram of an exemplary flexible, geographically diverse IMS network element in accordance with an embodiment of the subject matter described herein. In  FIG. 2 , network element  200  includes an active instance of the IMS operations, administration, management, and provisioning (OAM&amp;P) function  202 , a standby instance of the OAM&amp;P function  204 , an active instance of a first IMS serving call session control function (S-CSCF)  206 , a standby instance of the first S-CSCF  208 , an active instance of a second S-CSCF  210 , a standby instance of the second S-CSCF  212 , a standby instance of a third S-CSCF  214 , an active instance of the third S-CSCF  216 , a standby instance of an IMS proxy call session control function (P-CSCF)  218 , an active instance of the P-CSCF  220 , an active instance of an IMS interrogating call session control function (I-CSCF)  222 , and a standby instance of the I-CSCF  224 . Although the example illustrated in  FIG. 2  includes an OAM&amp;P, three instances of an S-CSCF, an I-CSCF, and a P-CSCF implemented in an IMS network element, the subject matter described herein is not limited to implementing this particular combination and number of IMS functions in an IMS network element. Implementing any one or more IMS functions, and implementing one or more instances of any particular IMS function in an IMS network element is intended to be within the scope of the subject matter described herein. 
         [0032]    Each IMS function instance may be configured with its own unique IP address internal to network element  200 . As illustrated in  FIG. 2 , each active/standby pair may be associated with a selection mechanism  226 ,  228 ,  230 ,  232 ,  234 , or  236 . In one embodiment, each selection mechanism may utilize a virtual IP address (VIP) to represent both the active instance and the standby instance. Entities on IMS network  106  seeking to communicate with an IMS function within network element  200  may direct such communication to a virtual IP address, and the currently active instance of the IMS function requested may respond to communication directed to that virtual IP address. Thus, switching between active and standby instances may occur at the functional level—for each IMS function instance individually—rather than at the network element level. For example, in  FIG. 2 , IMS function S-CSCF 2   210  is in the active mode (i.e., it responds to the virtual IP address), while its redundant function S-CSCF 2   212  is in standby mode (i.e., it ignores commands and requests made to the virtual IP address). Should instance  210  fail or otherwise be deactivated for maintenance, testing, or upgrade, instance  212  becomes active and only instance  212  will respond to communication directed to virtual IP address  230 . Similarly, if IMS function P-CSCF 1   220  fails, instance  218  becomes active and only instance  218  will respond to communication directed to virtual IP address  234 . Regardless of which instance an IMS function request ultimately communicates with, the virtual IP address presented to IMS network  106  does not change. In this way, the switch between active and standby instances within network element  200  would occur invisibly to a user on IMS network  106 . An exemplary selection mechanism using virtual IP addresses is linux high availability (linux-HA). The use of other selection mechanisms is intended to be within the scope of the subject matter herein, including other high availability mechanisms, selection using virtual IP addresses, and selection using domain name system, for example. 
         [0033]    Each IMS function instance in network element  200  may also have its own unique IP address, separate from the virtual IP address, for administrative or other purposes. In addition, each instance may physically reside in a geographic location which is separate from its corresponding redundant instance. For example, in  FIG. 2 , instance  202  is in physical location  1  while its redundant instance  204  is in physical location  2 . This geographic diversity provides the important benefit that a local failure at location  1 , such as a power outage, will not affect the operation of the redundant instances in location  2 . Furthermore, each geographic location may contain a mix of active and standby instances, as illustrated in  FIG. 2 , where physical location  1  includes active instances  202 ,  206 ,  210 , and  222 , and standby instances  214  and  218 . Thus, for example, it is possible to deactivate instance  222  for a software upgrade without having to also deactivate currently active instances  202 ,  206 , or  210 . 
         [0034]      FIG. 3  is a block diagram of an exemplary IMS system in accordance with another embodiment of the subject matter described herein.  FIG. 3  illustrates the principle that geographic redundancy is not limited to a single redundancy (1 active/1 standby) scheme, but may be applied to multiple redundancy (1 active/N standby) schemes. In  FIG. 3 , network element  300  performs three functions, IMS Function  1 , IMS Function  2 , and IMS Function  3 . Network element  300  includes an active instance of IMS Function  1   302 A, a first standby instance of IMS Function  1   302 B, and a second standby instance of IMS Function  1   302 C. Network element  300  also includes an active instance of IMS Function  2   304 B, two standby instances of IMS Function  2   304 A and  304 C, an active instance of IMS Function  3   306 C, and two standby instances of IMS Function  3   306 A and  306 B. As illustrated in  FIG. 3 , instances  302 A,  304 A, and  306 A exist in geographic location  1 , instances  302 B,  304 B, and  306 B exist in geographic location  2 , and instances  302 C,  304 C, and  306 C exist in geographic location  3 . Selection mechanisms  308 ,  310 , and  312  determine which IMS Function instance will actively communicate with the IMS network  106 . 
         [0035]    When an active instance fails or is otherwise deactivated, one of the standby instances will become the new active instance through a selection process. This selection process may be a negotiation between the standby instances, for example, or it may be a decision made at some other functional level or by some other functional entity. For example, if the active instance of IMS function  1   302 A fails, standby instance  302 B may negotiate directly with standby instance  302 C to determine which one will become the new active instance. Alternatively, instances  302 A,  302 B, and  302 C may have been pre-programmed with values that indicate each instance&#39;s relative priority, in which case, the standby instance with the higher or highest priority would automatically become the new active mode. 
         [0036]      FIG. 4  is a block diagram of an exemplary IMS system in accordance with another embodiment of the subject matter described herein. IMS system  400  includes a first network element (NE 1 )  402  in one geographic location, and a second network element (NE 2 )  404  in another geographic location. As illustrated in  FIG. 4 , NE 1   402  and NE 2   404  together include mated pairs of IMS function instances— 202  mated with  204 ,  206  mated with  208 ,  210  mated with  212 ,  214  mated with  216 ,  218  mated with  220 , and  222  mated with  224 —with an active instance of an IMS function residing on one network element and the standby instance of the IMS function residing on the other network element. For example, NE 1   402  includes an active instance of an OAM&amp;P function  202 , and NE 2   404  includes a standby instance of the OAM&amp;P function  204 . NE 2   404  includes an active instance of a P-CSCF function  220  and NE 1   402  includes the standby instance of the P-CSCF function  218 . 
         [0037]    As illustrated in  FIG. 4 , each active/standby pair is associated with selection mechanism  226 ,  228 ,  230 ,  232 ,  234 , or  236 . In one embodiment, each selection mechanism utilizes a virtual IP address (VIP) to represent both the active instance and the standby instance. Entities on IMS network  106  seeking to communicate with an IMS function within the IMS system  400  may direct such communication to a virtual IP address, and the currently active instance of an IMS function will respond to communication directed to that virtual IP address. The standby instances of the IMS function will not respond to communication directed to that virtual IP address. In  FIG. 4 , IMS function P-CSCF  220  is in active mode, while its redundant function P-CSCF  218  is in standby mode. A user on IMS network  106  seeking to initiate a session (i.e. to place a call) will first contact the P-CSCF function within the IMS system  400  at virtual IP address  234 . Currently active P-CSCF instance  220  will respond to communication directed to virtual IP address  234 . Should instance  220  fail or otherwise be deactivated for maintenance, testing, or upgrade, instance  218  would become active and only instance  218  will respond to communication directed to virtual IP address  234 . The next user seeking to initiate a session via P-CSCF at virtual address  234  will communicate with instance  218 . 
         [0038]      FIG. 5  is a flow chart illustrating exemplary steps for providing a fault-tolerant IMS network element according to an embodiment of the subject matter described herein. Referring to  FIG. 5 , in step  500 , an active instance of an IMS function is provided at a first geographic location, site X. For example, the active instance can be a general purpose processor located at site X, executing a software program to perform P-CSCF functions. 
         [0039]    In step  502 , a standby instance of the IMS function is provided at a second geographic location, site Y. The standby instance in this example can be a printed circuit board that performs P-CSCF functions in hardware and which is plugged into the backbone of a telecommunication equipment frame located at site Y. 
         [0040]    In step  504 , a signaling protocol is set up which allows the active and standby instances of the IMS function to monitor each other&#39;s operational state. An exemplary signaling protocol is the Linux high-availability (Linux-HA) protocol, wherein each node in an HA cluster sends a periodic “heartbeat” message to every other node. If a standby node fails to receive a heartbeat message from the active node within the allowable period, the standby node assumes that the active node has failed, and the standby node transitions from standby mode to active mode. Extensions to the HA heartbeat protocol may provide for negotiation between available standby nodes to determine which node will become the new active node, provide for signaling that allows for finer control of behavior during failover, such as activation or deactivation of individual IMS functional instances within a node, and provide for remote management and control that allows a management entity to remotely activate or deactivate functional instances. 
         [0041]    In step  506 , it is determined if additional IMS functions are to be added to the network element. If so, an instance of an additional IMS function is provided at site X (step  508 ), another instance of the additional IMS function is provided at site Y (step  510 ), an instance of the additional IMS function at one site is configured as the active instance and the instance of the additional IMS function at the other site is configured as the standby instance (step  512 ), and the active and standby instances of the additional function are configured to communicate with each other through the signaling protocol (step  514 ). Steps  506  through  514  are repeated as necessary until all IMS functions for the network element have been instantiated and configured as sets of instances in active/standby relationship. 
         [0042]    It will be understood that various details of the invention may be changed without departing from the scope of the invention. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.