1. Field of the Invention
This invention relates generally to a method and system for managing voice and multimedia sessions over a network. More specifically, this invention relates to a method and system for managing voice and multimedia sessions using Session Initiation Protocol (SIP) and performing tests on the SIP proxies of a system to select an appropriate SIP proxy based on the results of the tests.
2. Discussion of the Background
Session initiation protocol (SIP) is the Internet Engineering Task Force's (IETF's) standard for multimedia conferencing over a network that can be used to establish, maintain, and terminate calls between two or more endpoints. Like other Voice over Internet Protocol (VoIP), such as H.323, SIP is designed to address the functions of signaling and session management within a packet telephony network. SIP is a flexible protocol designed to be a genera purpose way to set up real time multimedia sessions between groups of users. For example, SIP can be used for telephone calls, video and audio multicast meetings, and instant messaging conferences.
SIP is a peer-to-peer protocol, wherein the end users are referred to as user agents. Although user agents using two SIP devices can communicate directly with each other, communication is normally completed using an intermediary system that acts as a SIP proxy. A SIP proxy is an intermediary device that receives SIP requests from a user agent and then forwards the request. SIP proxies provide functions such as authentication, authorization, network access control, routing, reliable request retransmission, and security. The SIP proxies only participate in the SIP messages, meaning that once a communication link is established the communicated multimedia data will generally go directly from one user agent to another user agent.
Managing SIP services on behalf of multiple carriers and enterprises entails establishing media paths by signaling remote SIP proxies. However, a SIP-services management company has little or no control over the remote SIP proxies. Therefore, the company has no control over the server characteristics, i.e., platform brands, features, software versions, Operations and Maintenance (O&M) applications, etc. of the remote SIP proxies. The SIP proxies are likely to meet the SIP standards defined in IETF RFC 3261, which are herein incorporated by reference. However, the standards do not specify the characteristics mentioned above. Therefore, SIP-services management applications such as Simple Network Management Protocot the vendors of the applications, the features, and the version numbers are likely heterogeneous across the customer base of a SIP-services management company.
SIP-services management companies sell the service of monitoring and managing a carrier's or enterprise's SIP communication environment. Therefore, in order to be competitive with other SIP-services management companies, a management company does not want to force a prospective customer (carriers and enterprises) into standardizing their SIP infrastructures to improve manageability since such a standardization would entail significant capital investment, and therefore would likely not be welcomed by prospective customers. The attempt to standardize SIP proxy O&M software within and across carriers and enterprises results in a significant marketing problem. Prospective customers view the standardization of their communication environment as expensive and as presenting a barrier to swapping SIP-services management companies in the future.
The current methods of managing voice and multimedia sessions using the SIP standard do not address reliability issues stemming from non-uniformities within the components of the communication environment, i.e., O&M applications, their vendors, features, and version numbers that are likely heterogeneous across the communication environment. Therefore, current methods of managing voice and multimedia session are unable to recognize compatibility issues that arise due to the non-uniformities of the components of a system resulting in connection, routing, and reliability problems.
The present invention obtains as much SIP-proxy status information as possible by performing tests on the SIP proxies of a communication environment using standard SIP messages. The present invention also enables the routing of session related signaling around malfunctioning or overloaded remote SIP proxies. Further, the present invention enables reestablishing session related signaling through previously malfunctioning SIP proxies when the malfunctioning SIP proxies begin responding normally.
These and other objects and purposes of the invention may be achieved using a method for managing voice and multimedia sessions over a network that includes initializing a SIP maintenance unit, performing tests on SIP proxies, adjusting a value of a counter based on the results of the tests, and managing the voice and multimedia sessions based on the results of the tests. The method may be implemented using a system for managing voice and multimedia session over a network that includes SIP proxies, a SIP session initiator for selecting an appropriate SIP proxy to establish a media path from a list of available proxies, error counters, and a SIP maintenance unit for communicating between the components of the system and testing the SIP proxies.
It is to be understood that both the foregoing general description of the invention and the following detailed description are exemplary, but are not restrictive, of the invention.
A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views,
The SIP session initiator 8 is used to establish a media path between two SIP proxies. The SIP session initiator 8 is configured to receive a call-initiation request from a user via a SIP proxy and select an appropriate SIP proxy to use to establish a media path with the desired end user, thereby enabling data communication between the two users. Each SIP proxy includes a plurality of spans controlled by the SIP proxy through which the actual data is transmitted during a multimedia session Each span represents a connection for establishing a media path that is under the control of a specific SIP proxy. The spans are used for the media communications, whereas the SIP proxies only communicate via signaling messages as shown by the dashed lines in
In
The SIP maintenance unit 9 is initialized based on the configuration data 11 (e.g., in the format of a file or database entries), thereby configuring the SIP maintenance unit 9 to operate within a communication environment such as the communication environment illustrated in
As illustrated in the exemplary embodiment of the system of the present invention in
The controller 19 of the SIP maintenance unit 9 is configured to identify attributes of the SIP proxies of the system, generate a list of available SIP proxies, obtain error counter information, and control the tests performed by the SIP maintenance unit 9 based on the configuration data 11. The attributes identified for each SIP proxy, SIP proxy 1, SIP proxy 2, and SIP proxy 3 include, but are not limited to, the nature of the SIP proxies, information on the spans controlled by each SIP proxy, the number of spans controlled by each SIP proxy and the status of the spans. The identified SIP proxy attributes are then used to generate an initial list of available proxies. A non-limiting example of a partial list of available proxies is illustrated under the “Span & Proxy Status” heading in the route manager 12 of
The route manager 12 may be used to store a list of available proxies and their corresponding spans. The partial list of route manager 12 illustrates that Span1@proxy1 is. OK, Span2@Proxy1 is OUT, and Proxy2@Proxy2 is OK. Therefore, according to this partial list, the SIP maintenance unit 9 may instruct the SIP session initiator 8 to use either Span1@proxy1 of SIP Proxy 1 or a span on SIP Proxy 2, which are all available as indicated by the OK located beside Proxy2@Proxy2. Further, the route manager 12 includes a route optimization algorithm that may be modified by the SIP maintenance unit 9 to further instruct how the SIP session initiator 8 selects an appropriate SIP proxy for a media path from the list of available proxies. The Route Optimization algorithm in
As shown by line 22 in
The controller 19 of the SIP maintenance unit 9 is further configured to obtain information for the error counters used in the system. In an exemplary embodiment of the present invention, there is an error counter for each span of the plurality of spans included in each SIP proxy. Further, there is an error counter for each type of error recorded for both signaling information received from the SIP session initiator 8 and errors related to the tests performed by the SIP maintenance unit 9. For example, error counters may be provided for recording signaling information including, but not limited to, hardware outages, ring no answers, busy signals, and network malfunctions. Likewise, counters related to the tests completed by the SIP maintenance unit 9 include, but are not limited to, error counters for recording each SIP proxy's “SIP-proxy status test” failures and “Ping Test” failures described later with respect to
The type of error counters used in the present invention may vary. For example, time-smoothed error counters may be used to limit the effects of quick variations in the results of tests that may result in false alarms. In an exemplary embodiment of the present invention, time-smoothed error counters are implemented in conjunction with the use of hysteresis bands used to promote stable system behavior. Hysteresis bands represent a difference between the failure threshold used to activate an alarm or set a flag and the recovery threshold used to deactivate an alarm or reset a flag. Using the time-smoothed error counters in combination with the hysteresis bands prevents the taking of proxies and spans in and out of service when there is only a small fluctuation of an error counter around a threshold value. Further, the error counters used in the present invention are incremented and decremented by the SIP maintenance unit 9 based on test results and/or signaling information provided by the SIP session initiator. The SIP maintenance unit 9 may be configured to increment and decrement the error counters using the same or different increment value. Further, the SIP maintenance unit may be configured to increment or decrement the value of a counter a specified time intervals.
The controller 19 is further configured to instruct the generating unit 17 to begin the tests conducted by the SIP maintenance unit 9. The generating unit 17 of the SIP maintenance unit 9 is configured to generate a test signal that will be transmitted to an SIP proxy via the communication unit 16. The test signal includes unique identification information for identifying the SIP proxy and corresponding span being tested and a test message that prompts a response from the SIP proxy. For example, the test signal may include an OPTION; BYE, or INVITE test message along with the unique identification information for the SIP proxy being tested. The test messages as well as the interactions between all components of the system of the present invention follow the SIP standards as defined in IETC RFC 3261. The communication circuit 16 of the SIP maintenance unit 9 is configured to transmit the test signal provided by the generating circuit 17 to a SIP proxy and receive a response from the SIP proxy. The determining unit 18 is configured to analyze a response received from the SIP proxy and determine if the test is passed or failed.
The “Take Action” step is used by the SIP maintenance unit 9 to manage voice and multimedia sessions over a network based on previous tests performed by the SIP maintenance unit 9 and/or signaling information received from the SIP session initiator 8. A non-limiting example of a Take Action step is illustrated in
Flags are set and reset during the testing procedures in order to direct the next test on the same SIP proxy to proceed without conducting unnecessary steps on the same SIP proxy (e.g., step S117 of
Whereas flags are used to direct the testing procedure, alarms are used for notification. For example, an alarm may indicate that a SIP proxy has been taken off the list or that a SIP proxy is not operating efficiently but has not been taken off the list because the SIP proxy is still functional. Further, the activation of an alarm may trigger the transmission of an alarm email message to users who register to receive alarms. Users can register to receive email alarm notifications by placing their email address and the alarms they wish to receive in the configuration data 11 that is used to initialize the SIP maintenance unit 9.
Conversely, if the controller 19 determines that an OOSi flag is not newly set in step S103, then the Take Action procedure proceeds to step S107, wherein the controller 19 determines if a SIP proxy or span of a SIP proxy should be added to the list of available proxies, an OOSi flag should be reset, or a NOC alarm should be reset. In step S107, the controller 19 is configured to compare the value of a counter with a threshold value CiRT assigned to the counter.
As an illustrative, non-limiting example, if a threshold value CiRT is zero and the controller 19 determines the value of the counter is zero, then the Take Action procedure proceeds to step S109, wherein the controller 19 resets flags, deactivates alarms, and updates the list of available proxies to indicate that the SIP proxy is available to the SIP session initiator 8 for establishing a media path Further, if the controller 19 in step S107 determines the value of the counter greater than zero, then the Take Action procedure is exited without resetting flags, deactivating alarms, and updating the list of available proxies. After the Take Action procedure is exited the test illustrated in
In an alternative embodiment of the present invention, a counter may be configured to have more than one threshold value that is compared to the value of a counter, thereby enabling different actions to be taken. For example, a comparison of the value of a counter with a first threshold may trigger the transmission of an alarm indicating a SIP proxy is not operating efficiently but has not been taken off the list, and a comparison of the value of a counter with a second threshold may trigger an alarm indicating a SIP proxy has been removed from the list of available proxies.
Step S111 of
In step S117, the controller 19 determines if an OOS2 flag was set during the previous test of the SIP proxy. If an OOS2 flag is set, this SIP proxy failed the previous Ping Test because of a network malfunction, and the SIP maintenance unit 9 should skip the SIP-proxy status test step and proceed with the Ping Test step to confirm the ability to contact the SIP proxy over the previously malfunctioning network. However, if an OOS2 flag is not set in step S117, the test proceeds to the SIP-proxy status test.
However, if the determining unit 18 determines in step S121 that a proper response was not received from the SIP proxy in response to the test signal, the SIP-proxy status test proceeds to step S125. Step S125 indicates that the SIP-proxy status test in the exemplary embodiment illustrated in
In step S127, the controller 19 is configured to determine if an OOS1 flag is set for the SIP proxy indicating the SIP proxy failed the previous SIP-proxy status test. If an OOS1 flag is set, the SIP-proxy status test proceeds directly to the Ping Test step explained in detail with respect to
In the exemplary embodiment of the present invention described above, the SIP maintenance unit 9 is configured to collect signaling information from the SIP session initiator 8, perform tests on the SIP proxies SIP proxy 1, SIP proxy 2 and SIP proxy 3, and manage the voice and multimedia sessions based on the tests of the SIP proxies. The tests performed by the SIP maintenance unit 9 and Take Action procedure conducted by the SIP maintenance unit 9 increase the reliability of call completion by enabling the SIP session initiator 8 to select an appropriate SIP proxy for communicating with an end user from a list of available proxies generated and modified by the SIP maintenance unit 9. Therefore, the present invention obtains as much SIP-proxy status information as possible by performing tests on the SIP proxies of a communication environment and enables the routing of session-related signaling around malfunctioning or overloaded remote SIP proxies. Further, the exemplary embodiment of the present invention described above enables reestablishing session-related signaling through previously malfunctioning SIP proxies when the malfunctioning SIP proxies begin responding normally to the test conducted by the SIP maintenance unit 9.
This invention may be implemented using a conventional general purpose computer or micro-processor programmed according to the teachings of the present invention, as will be apparent to those skilled in the computer art. Appropriate software can readily be prepared by programmers of ordinary skill based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.
A non-limiting example of a computer 100 as shown in
As stated above, the system includes at least one computer readable medium. Examples of computer readable media are compact discs 119, hard disks 112, floppy disks, tape, magneto-optical disks, PROMs (e.g., EPROM, EEPROM, Flash EPROM), DRAM, SRAM, SDRAM, etc. Stored on any one or on a combination of computer readable media, the present invention includes software for controlling both the hardware of the computer 100 and for enabling the computer to interact with a human user. Such software may include, but is not limited to, device drivers, operating systems and user applications, such as development tools. Such computer readable media further includes the computer program product of the present invention for performing the inventive method herein disclosed. The computer code devices of the present invention can be any interpreted or executable code mechanism, including but not limited to, scripts, interpreters, dynamic link libraries, Java classes, and complete executable programs. Moreover, parts of the processing of the present invention may be distributed for better performance, reliability, and/or cost.
The invention may also be implemented by the preparation of application specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein.