Data processing method and system

A method of managing an IP call between a calling party and a called party, the method comprising receiving, at a gateway, a request to set up the call from the calling party; determining, from the request, a requirement to route the call through an interceptor; forwarding the request from the gateway to the interceptor; setting up an IP call between the interceptor and the called party; setting up an IP call between the interceptor and the calling party; and operating the interceptor as a back-to-back user agent (B2BUA) between the calling party and the called party.

RELATED APPLICATIONS

This application claims priority to Great Britain Patent Application Serial No. 0801480.5, filed Jan. 28, 2008, and entitled “DATA PROCESSING METHOD AND SYSTEM,” which is commonly assigned.

BACKGROUND

Traditional circuit switched telephone networks offer the ability for two parties to engage in a voice conversation. Service providers of such telephone networks may have a legal requirement to provide the ability to intercept calls (i.e. voice conversations). For example, intercepting a call involves recording the voice conversation of a call in a manner that is transparent or barely noticeable to the parties involved in the conversation.

The growth of internet-protocol (IP) based networks has led to the development of Voice over IP (VoIP). VoIP is a technology that is used for voice conversations between parties over IP networks.

It is an object of embodiments of the invention to at least mitigate one or more of the problems of the prior art.

DETAILED DESCRIPTION

Embodiments of the invention enable an IP call to be intercepted and recorded, even when the calling party, called party and the party managing the network are located within different IP networks.

An IP call is a call that is conducted over an IP network. The IP call may comprise, for example, a Voice over IP (VoIP) call, or may alternatively comprise any other call over an IP network, such as, for example, a video over IP call. The calling party is the party that initiates the call, that is, the party that sends an invite intended to be delivered to the called party. The calling party and/or called party are seen as user agents (UAs) within the IP network.

FIG. 1shows an example of an IP network100. The IP network100allows a first party A102and a second party B104to engage in IP calls with each other. For example, the first party A102may be the calling party and call the second party B104, which is the called party. Alternatively, the second party B104may be the calling party and call the first party A102, which is the called party. The IP network100may comprise one or more IP-based networks, that is, networks that are capable of transmitting IP-based traffic. Thus, for example, the IP network may comprise one or more physical layers (LAN, WLAN, cellular/mobile and the like) that are capable of transmitting IP-based traffic. The IP network100may comprise or include the internet.

FIG. 2shows an example200of managing an IP call session using a proxy.FIG. 2shows messages that are exchanged between a calling party A202and a called party B204. The calling party A202sends a Session Initiation Protocol (SIP) INVITE message206to a proxy server208within the IP network200. The INVITE message206contains information that identifies the called party B204and indicates that the calling party A202wishes to participate in an IP call (such as a VoIP call) with the called party B204. The SIP protocol is defined in RFC 3261 (originally in RFC 2543, now obsolete), which is incorporated herein by reference for all purposes. In other embodiments of the invention, other protocols to initiate an IP call session between the calling and called parties may be additionally or alternatively be used.

The IP address of the proxy server208may be known in advance. If not known, the IP address may be obtained, for example, using a DNS (domain name system) request to a DNS server (not shown) according to known methods.

The SIP INVITE message206may identify the called party B204using a SIP address of the called party B204. For example, the called party B204may have a SIP address of “sip:colin@toadwillows.uk”. However, the calling party A202may not know the current IP address of the called party B204, especially if the called party B204has a dynamic IP address that changes over time. Therefore, one of the roles of the proxy server208is to look up the IP address associated with a SIP address, and forward the SIP INVITE message206to the called party B204. Therefore, the proxy server208looks up the IP address of the called party B204(for example, by requesting the IP address from a location server, not shown, or using any other method) and forwards the INVITE message206as an INVITE message210to the called party B204.

The called party B204returns a SIP 180 RINGING message212to the proxy server208. The message212indicates that the called party B204has received the INVITE message210, and is signaling to a user associated with the called party B204that an INVITE message has been received. For example, the called party B204may comprise a mobile telephone, and the user may be the owner of the mobile telephone. Alternatively, for example, the called party B204may be a software program that the user has logged into. The proxy server208forwards the 180 RINGING message212to the calling party A202as a 180 RINGING message214.

If the called party204accepts the invitation to an IP call session, then the called party204sends a SIP 200 OK message216to the proxy server208, which forwards the message to the calling party202as a 200 OK message218. At this point, the calling party202and called party206each know each other's IP address, and the proxy server is no longer used for communications between the calling party202and called party204relating to the IP call session.

Therefore, the calling party202can send an ACK message220directly to the called party204, without using the proxy server208. The IP call session then proceeds between the calling party202and the called party204by the parties exchanging information222directly with each other, without using the proxy server208. In embodiments of the invention, two parties exchanging messages and information directly with each other involves the parties exchanging information via the IP network100without explicitly using network elements such as the proxy server108. However, it will be evident to one skilled in the art that exchange of messages and/or information between two parties using one or more IP networks as described herein, including “direct” exchanges, may include one or more proxy servers, gateways and/or other network elements in addition to those described according to the nature of the IP networks used.

The IP call session ends by one party sending a SIP BYE message to the other party, for example if one of the parties hangs up. As an example,FIG. 2shows the calling party202sending a BYE message224directly to the called party204. The called party204responds by sending a 200 OK message226to the calling party202. The IP call session has now ended.

In the above example, it may be difficult to intercept the IP call session between the calling and called parties. For example, the proxy server108cannot be used to enable interception of the IP call as the proxy server208is not used once the call is set up using SIP messages. Therefore, the proxy server208cannot be used to intercept the information222exchanged during the IP call session.

FIG. 3shows an example300of managing an IP call session between a calling party A302and a called party B304, where interception of the IP call session is enabled. Interception is enabled using an interceptor306that comprises, for example, a back-to-back user agent (B2BUA). The interceptor sets up two IP call sessions, one between the calling party and the interceptor, and the other between the interceptor and the called party. The interceptor receives all of the information sent by the calling party and the called party during the IP call session and enables exchange of this information between the parties by passing the information from one IP call session to the other. This situation is set up as follows.

The calling party A302first sends a SIP INVITE message308to a first proxy server310. The first proxy server310identifies the IP address of the interceptor306as the destination for the INVITE message308. Thus, the first proxy server308forwards the message as an INVITE message312to the interceptor306.

The interceptor306terminates the INVITE message312, i.e. does not forward it to the called party304. Instead, the interceptor306generates a SIP INVITE message314for inviting the called party304to participate in an IP call session between the interceptor306and the called party304, such that the interceptor306acts as the calling party in the IP call session. The INVITE message314is sent by the interceptor306to a second proxy server316, which looks up the IP address of the called party304from the SIP address in the INVITE message314. The second proxy server316forwards the INVITE message to the called party as INVITE message318.

The called party304responds by sending a 180 RINGING message320to the second proxy server316, which forwards the message to the interceptor306as a 180 RINGING message322. The interceptor306then generates a 180 RINGING message324in response to the INVITE message312sent by the calling party302to the interceptor306via the first proxy server308. The interceptor306sends the 180 RINGING message324to the first proxy server310, which forwards the message to the calling party302as 180 RINGING message326. Therefore, the calling party302knows that the called party has received the invitation to participate in an IP call session. However, the interceptor is acting as the called party from the point of view of the calling party302.

When the called party304accepts the IP call session invitation, the called party304sends a SIP 200 OK message330to the second proxy server316, which forwards the message as 200 OK message332to the interceptor306. An IP call session has now been set up between the interceptor306and the called party304, with the interceptor acting as a calling party306in this IP call session. The interceptor then generates a200OK message334and sends this message334to the first proxy server310, which forwards the message as 200 OK message336. An IP call session has now been set up between the calling party302and the interceptor306, with the interceptor306acting as called party. The calling party302sends an ACK message338directly to the interceptor306, and the interceptor306then sends an ACK message340directly to the called party304.

The interceptor306then enables the calling party302and the called party to communicate as if they were participating in an IP call session directly with each other without the interceptor306. Therefore, for example, where the calling party302sends IP call information350to the interceptor306, the interceptor306forwards the information to the called party304as information352. Similarly, for example, where the called party304sends IP call information352to the interceptor306, the interceptor306forwards the information to the calling party302as information350. As the IP call session information passes through the interceptor306, the interceptor can record the IP call information if required. There will be a set of instructions for the interceptor to use for recording IP calls. As soon as the SIP INVITE arrives at the interceptor, the recording of the SIP communications begins, and then as soon as the IP call session packets begin they are recorded. The interceptor then saves copies of the communications and packets. They can be examined to reconstruct the information that is exchanged between the calling and called parties (for example, the speech that was exchanged). The interceptor may decide to record an IP call based on the set of instructions.

The IP call sessions end when one of the calling and called parties sends a SIP BYE message to the interceptor306. The interceptor then generates another BYE message and sends it to the other party. For example, as shown inFIG. 3, the calling party sends a BYE message360to the interceptor306. The interceptor306then generates a BYE message362and sends it to the called party304. The called party responds by sending a 200 OK message364to the interceptor306, which in turn generates another 200 OK message366to the calling party302.

The interceptor, such as a B2BUA, may be a session border controller. A session border controller controls signaling and possibly media flows between IP networks—for example, between networks of different countries, between networks of different national operators, between operator and enterprise networks, and so on. A session border controller therefore enables communication between IP networks.

The above approach works where each party is in the same network as the proxy server with which it communicates. However, this approach for IP call intercept and recording is not suitable or practical in a scenario where the calling party, called party and proxy server are all on different networks.FIG. 4shows such a scenario400. As shown inFIG. 4, a calling party402connects, using a first network404named “Yankee”, to a proxy server406in a second network408named “Victor”. The called party410connects, using a third network412named “Mariner”, to the proxy server410in the third network412named “Victor”. This scenario may arise, for example, due to partnership agreements between the networks Victor408and Yankee404, and between Victor408and Mariner412. Thus, for example, the Victor network408may have a partnership agreement with the Yankee network404to connect a user (in this case, the calling party402) to the Victor network408through the Yankee network404. Similarly, the Victor network408may have a partnership agreement with the Mariner network412to connect a user (in this case, the called party410) to the Victor network408through the Mariner network412.

Communications206-226are shown inFIG. 4for setting up and conducting an IP call session in a manner similar to that described above with reference toFIG. 2. Thus, for example, a SIP INVITE message206is sent by the calling party402in the Yankee network404to the proxy server406in the Victor network408. There may be other proxy servers (not shown) used in the Mariner and Yankee networks.

The above described approach for IP call intercept and recording is not guaranteed to be suitable for the situation400shown inFIG. 4. This is because once the proxy server406in the Victor network408has served its purpose in setting up the IP call session set-up/establishment between the calling party402and the called party410, subsequent exchange of information between the parties uses the networks Yankee404and Mariner412connected directly. For example, the information exchanged in the IP call session222shown inFIG. 4is exchanged using the networks Yankee404and Mariner412. Therefore, any information exchanged does not use the Victor network408. However, as one or both of the parties may be associated with the Victor network408(for example, as a subscriber to services provided or enabled by the Victor network408), the Victor network408may be required to allow or enable interception of IP calls. This is not possible in the situation400shown inFIG. 4, as the conversation information222to be recorded does not pass through the Victor network408.

As shown inFIG. 4, there are no proxy servers between the networks Yankee404and Victor408, or between the networks Mariner412and Victor408. However, there may be proxy servers (not shown) within the networks Yankee404and Victor412that serve purposes similar to those of the proxy servers shown inFIGS. 2 and 3.

FIG. 5shows an example of a system500for managing an IP call according to embodiments of the invention. The system500includes a Yankee network502, Victor network504and Mariner network506. A first party A508connects to the Victor network504through the Yankee network502. A second party B510connects to the Victor network504though the Mariner network506.

The Victor network504comprises a first gateway512and a second gateway514. The gateways act as nodes through which communications between networks may pass. For example, communications between the networks Yankee502and Victor504pass through the first gateway512, and communications between the networks Mariner506and Victor504pass through the second gateway514. Communications (such as IP call information, and other types of information and communications) from the Yankee network502to the Mariner network506, or vice versa, may pass through both gateways512and514without passing through other network elements in the Victor network504if the communications are not to be intercepted. For example, if a communication from the Yankee network502intended for the Mariner network506is not to be intercepted, the first gateway512forwards the communication to the second gateway514, which then forwards the communication to the Mariner network506. It may alternatively be possible for the first gateway512to forward communications directly to the Mariner network506without using the second gateway514.

If a communication is to be intercepted, a gateway in the Victor network504forwards the communication to an interceptor516instead of the other gateway. For example, a communication from the Yankee network to be intercepted is forwarded by the first gateway512to the interceptor516instead of the second gateway514. The interceptor516may then act as a back-to-back user agent (B2BUA) between parties in the networks Yankee502and Mariner506via the appropriate gateways512and514.

The Victor network504may optionally employ IP address translation518within the network. The IP address translation518ensures that when the interceptor516is acting as a B2BUA between two parties, the IP address of the B2BUA may be IP addresses that are expected by the parties. For example, from the point of view of a calling party, the IP address translation518ensures that the IP address of the called party, in this case the B2BUA, is an IP address that is reasonably expected by the calling party. Similarly, from the point of view of a called party, the IP address translation518ensures that the IP address of the calling party, in this case the B2BUA, is an IP address that is reasonably expected by the called party. In certain embodiments of the invention, the IP address translation518may be arranged such that the IP address of the interceptor516from the point of view of each of the parties is the current IP address of the other party. Thus, for example, from the point of view of the called party, the IP address of the interceptor516is the IP address of the calling party. Optionally, a proxy may be placed between the address translator and the interceptor to minimize the traffic on the interceptor and to further shield against its discovery.

The system500may be configured to intercept and record an IP call that meets certain criteria. The configuration is done by, for example, the owner of the network to be configured (for example, by the Victor network504). A third party, for example a government agency, may request the Victor network504to, for example, intercept and a record an IP call meeting the criteria that a certain SIP address is the calling or called party. The Victor network is thus reconfigured to enable intercepting of the appropriate IP calls. To do this, the gateways512and514are reconfigured to direct appropriate traffic to the interceptor516instead of the other gateway. Furthermore, the routing table of the gateways may be copied from the gateways to the interceptor516so that the interceptor can route communications it generates appropriately when it receives communications from the calling or called party.

One or both of the gateways512and514may be configured to redirect appropriate communications accordingly.

FIG. 6shows an example600of managing an IP call between a calling party602and a called party604according to embodiments of the invention. Services are provided or enabled for the calling party602and/or the called party604by the Victor network504. The calling party602connects to the Victor network504through the Yankee network502. Similarly, the called party604connects to the Victor network504through the Mariner network506. The second gateway514and the IP address translation518of the system500shown inFIG. 5are not shown for clarity. The second gateway514simply forwards communications between the networks Victor504and Mariner506.

To set up an IP call session between the calling party602and the called party604, the calling party602sends a SIP INVITE message606to a proxy server608in the Yankee network502. The proxy server608determines an IP address of the first gateway512in the Victor network504(for example, from a lookup server, not shown) and forwards the INVITE message606to the gateway as an INVITE message610.

When the gateway receives the INVITE message610, it determines whether the IP call that the INVITE message610relates to should be intercepted. For example, the IP call is intercepted if the calling or called party has a certain SIP address. If the IP call should not be intercepted, then the gateway forwards the INVITE message to the called party604in the Mariner network506(possibly via the second gateway514, not shown inFIG. 5). However, if the IP call should be intercepted, the gateway512will already have been configured to cause all traffic related to the IP call (for example, SIP traffic to set up or end the IP call session, and information exchanged during the IP call session) to be redirected to the interceptor516. The first gateway512then forwards the SIP INVITE message610to the interceptor516as INVITE message612.

The interceptor516then configures itself as a B2BUA between the calling party602and the called party604as follows. The interceptor516terminates the INVITE message612, that is, the interceptor516does not forward the INVITE message612to the called party604. Instead, the interceptor516creates an INVITE message614and sends the message614to a proxy server616in the Mariner network506, such that the interceptor516invites the called party604to an IP call session where the interceptor516acts as the calling party. The proxy server616determines the IP address of the called party604(for example, using a lookup server, not shown) and forwards the INVITE message614to the called party604as an INVITE message618.

In response, the called party604sends a 180 RINGING SIP message620to the proxy server616, which forwards the message620to the interceptor516as a 180 RINGING message622. When the interceptor516has received the message622, the interceptor creates a 180 RINGING message624and sends it to the first gateway512. The first gateway forwards the message624to the proxy server608in the Yankee network502as 180 RINGING message626, and the proxy server608forwards the message626to the calling party602as 180 RINGING message628. Thus, the interceptor516responds to the calling party602in such a manner that when the interceptor516accepts the INVITE message612with a 200 OK message, the interceptor516will act as called party in an IP call session with the calling party602.

The called party604responds to the INVITE message618with a 200 OK message630sent to the proxy server616, which forwards the message630to the interceptor516as a 200 OK message632. The interceptor516is now in an IP call session with the called party604, with the interceptor516acting as the calling party. The interceptor516then accepts the INVITE message612by sending a 200 OK message634to the gateway512, which forwards the message634to the proxy server608in the Yankee network502as a 200 OK message636. The proxy server608then forwards the message636to the calling party602as 200 OK message638. The interceptor516is now in an IP call session with the calling party602, with the interceptor516acting as calling party.

The calling party602sends an ACK message640to the interceptor516, which sends an ACK message642to the called party604. Subsequently, information is exchanged between the calling party602and the called party604with the interceptor516as a back-to-back user agent (B2BUA) between the parties. Thus, for example, the calling party602may send information to the interceptor516in IP call session650, and the interceptor516forwards this information to the called party604in IP call session652. Additionally or alternatively, the called party604may send information to the interceptor516in IP call session652, and the interceptor516forwards this information to the calling party602in IP call session650.

Thus, the information exchanged between the calling party602and the called party604passes through the interceptor516. The Victor network (for example, the gateway512within the Victor network) provides IP call management such that the IP calls to intercept can be determined, and the intercept of such calls is enabled.

In certain embodiments of the invention, the interceptor516operates as a B2BUA in a manner that is transparent or barely noticeable to the parties. This may be achieved in one or more of a number of ways. For example, the IP address translation518shown inFIG. 5may be used to present an expected IP address to one or both of the calling party602and the called party604. Additionally or alternatively, the interceptor516may be provisioned with sufficient hardware and/or software capability such that the delay to, or latency of, communications between the calling party602and the called party604is minimized, barely noticeable, negligible and/or sufficiently small to be comparable to normal delays or latencies within IP networks.

To terminate the call, the calling party602or the called party604hangs up. For example, as shown inFIG. 6, the calling party602hangs up by sending a SIP BYE message660to the interceptor516. The interceptor516then sends a BYE message to the called party604. The called party604responds by sending a 200 OK message664to the interceptor516, which sends a 200 OK message666to the called party602. The two IP call sessions650,652in which the interceptor516was participating as B2BUA are thus ended.

As the information and messages exchanged between the calling party602and the called party604passes through the interceptor516, the interceptor516may, for example, record the messages and/or information, and/or may alter the information as desired. For example, the interceptor may provide other services where the information is altered to allow, for example, music injection, on-demand recording, multi-party IP call sessions (i.e. call sessions involving three or more parties), and other services.

The interceptor516is shown inFIG. 5to be within the Victor network504. However, in alternative embodiments of the invention, the interceptor516may be located outside of the Victor network504. For example, the interceptor516may be located in a specific country and therefore the interceptor will fall in the legal jurisdiction of the country that is requesting interception of an IP call.

The calling party and the called party in an IP call may use security to prevent eavesdropping by third parties. For example, the information exchanged between the calling party and a called party, where a B2BUA is not involved, may be encrypted so that a third party that has access to the encrypted information cannot decrypt the information. Where a B2BUA is involved, such as inFIGS. 5 and 6, the calling party would expect to set up a secure connection with the called party when setting up an IP call. However, instead the calling party is misled to set up a secure connection with the interceptor, as the interceptor accepts the secure session request and responds to the calling party as appropriate. The interceptor may then also set up a secure session with the called party. Thus, for example, the IP call sessions650and652shown inFIG. 6are secure sessions, and it appears to both the calling party and the called party that they are communicating with each other over a secure connection. Examples of security that may be used between two parties or a party and the interceptor516include, for example, IPsec.

In some circumstances, security between the calling and called parties may be such that the above approach of setting up two secure sessions may not be suitable. For example, security may be pre-arranged between the parties. In such cases, the interceptor may forward the secure information and/or messages between the parties, but would not be able to decrypt the messages and/or information. However, the interceptor may nevertheless record such information and/or messages, for example for later analysis. In alternative embodiments, the interceptor or the Victor network may be configured so as to disallow IP calls where the security is pre-arranged between the parties.

In embodiments of the invention, the interceptor may be implemented as, for example, a HP OpenCall Media Platform. Alternatively, the interceptor may be implemented, for example, using OpenSER, which is open-source SIP server software that includes a software module “siptrace” that allows SIP traffic to be recorded when passing through the server. A software product such as HP OpenView Service Manager may be used to configure a network according to embodiments of the invention using a pre-programmed model of a typical intercepted IP call. For example, HP OpenView Service Manager may be used to configure one or more gateways to ensure certain IP calls are intercepted.