EP2137935B1 - Computer telephony system with identification of duplicate messages - Google Patents

Computer telephony system with identification of duplicate messages Download PDF

Info

Publication number
EP2137935B1
EP2137935B1 EP08709548.5A EP08709548A EP2137935B1 EP 2137935 B1 EP2137935 B1 EP 2137935B1 EP 08709548 A EP08709548 A EP 08709548A EP 2137935 B1 EP2137935 B1 EP 2137935B1
Authority
EP
European Patent Office
Prior art keywords
servers
client
call
message
call status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
EP08709548.5A
Other languages
German (de)
French (fr)
Other versions
EP2137935A2 (en
Inventor
Laurence Jon Booton
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of EP2137935A2 publication Critical patent/EP2137935A2/en
Application granted granted Critical
Publication of EP2137935B1 publication Critical patent/EP2137935B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42314Systems providing special services or facilities to subscribers in private branch exchanges
    • H04M3/42323PBX's with CTI arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0012Details of application programming interfaces [API] for telephone networks; Arrangements which combine a telephonic communication equipment and a computer, i.e. computer telephony integration [CPI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Definitions

  • the invention relates to a computer telephony system and, in particular, to a computer telephony system with a client served by more than one server.
  • servers are duplicated so that the failure of a server no longer results in a complete loss of service but where service can be continued using a duplicate component.
  • the duplicated servers may comprise two or more servers operated in parallel so as to provide improved resilience.
  • the underlying operating system of two separate servers sharing a task communicate with each other to determine which one should be the active server (i.e. executing the task) and which one should be inactive, (i.e. on standby).
  • Applications running on the active server receive the result of this determination and, as a result, execute the task, e.g. attempting to provide a communications service.
  • Applications running on the standby server also receive the result of this determination and, as a result, do not attempt to provide the service.
  • only one sever is running the live service at any one time. If the active server was to crash, the standby server would automatically detect this, and take over as the new active server. Hence the service can continue relatively unaffected by a single failure.
  • One aspect of such resilient systems is the need for both servers to communicate with the client (i.e. a processing device or terminal receiving messages relating to the service on behalf of a user).
  • client i.e. a processing device or terminal receiving messages relating to the service on behalf of a user.
  • Known resilient systems address this need by supporting virtual IP address working.
  • virtual IP address working the active server has a particular IP address allocated to it for the purposes of communicating with the client. If the active server were to fail, the standby server, upon becoming the new active server, "takes over" that IP address.
  • the client has no knowledge of the resilient system underneath it: but automatically connects to whichever server is active using the one IP address.
  • Figure 1 shows an example of virtual IP address working.
  • a problem with this resilient method is determining which server is truly running the best. It is true that the method may determine what hardware and OS is running the best, but another important aspect is the service running on that server. If server A and server B are running perfectly, the resilient system has to arbitrarily decide to make one or other server (for example: server A) the active one. However, the service on server A could be running slowly and the service on server B perfectly, In this example, the resilient system is performing as it is designed to but this is resulting in a sub-standard service.
  • server A and server B are running perfectly, the resilient system has to arbitrarily decide to make one or other server (for example: server A) the active one. However, the service on server A could be running slowly and the service on server B perfectly, In this example, the resilient system is performing as it is designed to but this is resulting in a sub-standard service.
  • the known method is also limited in that the servers sharing the same IP address need to be located in the same network. (i.e. in the same IP address space). This limits the topology of the resilient system.
  • the present invention provides a computer telephony system as set out in the attached claims..
  • the present invention also provides a method for processing calls in a computer telephony system as set out in the attached claims.
  • the invention also provides a computer program or suite of computer programs.
  • the known method involves only one of the servers being active at a time. According to this solution, the servers share a "virtual" IP address that is switched between servers if changeover is required.
  • FIG. 1 shows an example of virtual IP address working.
  • client 30 comprises client application 31 charged with interfacing with a user (not shown) and controlling communications with communications system 60 on behalf of the user.
  • Client application 31 can make calls, answer calls and detect the status (e.g. on/off-hook) of telephones forming part of communication system 60.
  • the connection between client 30 and communications system 60 is made via a pair of servers 40, 50 connected in parallel.
  • the use of two servers connected in parallel increases the resilience of the system in providing for a continued communication path in the event of a single failure on severs 40, 50.
  • Client 30 also comprises applications programming interface (API) 35 charged with handling, on behalf of client application 31, the IP communications links with servers 40, 50.
  • API applications programming interface
  • client machine 30 maintains, via API 35, TCP/IP connections to dual resilient IP servers 40 and 50, although it is only in active communication with one of them at any one time.
  • client 30 is shown in active communication with server 40 (as denoted by the solid line) and not with server 50 which is in standby (as denoted by the broken line), although the situation can change so that server 50 becomes active and server 40 reverts to standby.
  • IP client application 31, comprised in client 30, processes messages received from (and sends messages to) servers 40, 50.
  • Client application 31 is programmed to handle a single instance of each call and API 35 is programmed to communicate with a single IP destination address in relation to each call handled by client application 31. Both limitations are accommodated by the assignment of a single virtual IP address to each call, as represented figuratively in Figure 1 by virtual IP address cloud 25.
  • the resilient servers 40, 50 of Figure 1 exchange "heart-beat" messages over private network 45 that is established between the two servers for this purpose.
  • Software running in each of servers 40 and 50 to support resilient operation is able to monitor the operation of both servers 40, 50 by means of the heart-beat messages and to determine which server should be active and which should be in standby.
  • the selection process is hidden from the client which is not aware of the fact that more than one server may be providing it with messages relating to the call.
  • the resilient software by exchanging "heart-beat" messages with its peer server, has determined that server 40 is active and sever 50 is in standby.
  • Figure 1 shows one IP address shared by two severs, the idea could be applied to more than two servers operating in parallel and sharing a single IP address, e.g. to further increase resilience.
  • the IP address is termed "virtual" to reflect the fact that it is not permanently associated with any particular server but is dynamically allocated to that one of the servers that is selected to be active at any one time.
  • the arrangement of Figure 1 incurs the overhead of private network 45 to link the duplicate servers to allow negotiation as to which is to be active and is to use the virtual IP address and which is to be dormant at any one time.
  • the duplicate servers also need to be specially configured in order to support address-sharing. This arrangement is dependent on a complex system to implement and supervise switching between servers. that is vulnerable to failure.
  • This invention addresses the above problems by enabling the client to receive redundant messages: one from each of two or more duplicate servers. On receipt of these redundant messages; the communications process at the client can malfunction, leading to disruption of the communication and loss of service.
  • the problem of redundant messages is overcome, according to the invention, by arranging for messages to be tagged to allow redundant messages to be identified by the client and dealt with accordingly.
  • the messages are tagged using call identity information. This exploits situations where call identity information is included in the call progress messages (events) generated by the communication system and passed by the servers to the client. Use of call identity information in this way can improve the performance of the client by allowing it to identify and effectively deal with redundant messages.
  • Call identity information is not universally included in call progress messages passed to the client in computer telephony systems.
  • the messages are tagged using message identity information, for example, message count values contributed by the communications system.
  • the client can react to the receipt of redundant messages in two ways.
  • a first mode of operation the client discards messages identified as redundant and continues with processing a single message for each event, as before.
  • the client In a second mode of operation, the client actively checks for redundant copies of messages in order to provide higher confidence in the accuracy of the received messages and/or as a check on the performance of the redundant servers to allow remedial action to be instigated before the situation becomes critical and affects the operation of the system. In either mode, processing of messages proceeds as before.
  • the first mode is inherently resilient. For each event in a call, the first message received from one or other duplicate server is accepted and processed by the client. Any duplicate messages for the same call event as part of the same call are discarded and do not affect the correct operation of the client. If all of the duplicate servers are operating correctly, then the client effectively interacts with whichever is the faster, also leading to an increase in overall processing speed. This applies even if the response speeds of the duplicate servers change in the course of a call so that some messages from each duplicate server are processed over the life of the call. If one of the duplicate servers is out of action or unreachable for any reason, then the client just interacts with the remaining server or servers.
  • the second mode can be arranged to share a similar level of resilience with the first mode. To achieve this, the receipt of the second copy of a duplicated message is not required for correct operation of the client but is merely monitored as an additional health check on the system.
  • the first message received is accepted and processed by the client which also monitors for receipt of the second copy of each message and raises an alarm if the expected copy is not received within a time limit.
  • the time limit may be calculated either from the issue by the client of the original message to the servers provoking the received message or from the receipt of the first copy of the message at the client.
  • the second mode it may be desirable to ensure that both copies of a duplicated message are received by the client before the message is processed. This is achieved, in a variant of the second mode, by API layer 36 waiting for both copies of a message to be received before passing the message to client application 31. Again, an alarm is raised if no copies of messages are received or only one copy is received within an appropriate time limit.
  • the client can send its messages via one or more of the servers.
  • the client could be arranged to send each request via any one of the servers or to the server with the best performance (which may be judged from the speed of return of the response messages)
  • the client could be arranged to send each request via each of the servers. This operation would only be chosen if the communication system is able to accept the duplicate requests that the client sends according to this variant.
  • the request that arrives at the communication system first, will be the one that is processed and will generate a response returned to the client.
  • the second request is identified as a duplicate and is rejected by the communication system and a "reject" message sent to the client.
  • the client is able to recognise the reject message as pertaining to a duplicate request, and therefore proceeds to process the other, successful response.
  • client application 31 issues each message via API layer 36 to only one of servers 40, 50. Normally, a message will be issued to the server that has responded correctly to a previous message in advance of the other server. This will result in a reduction in processing load for the slower server and introduces a form of local load-balancing. According to each of the above embodiments, communications system 60 continues to send a copy of each message to each of servers 40, 50: thereby retaining resilience.
  • client 30 includes single client application 31 connected to both resilient Servers 40, 50.
  • Servers 40, 50 are allocated different IP addresses and may be located in different networks within different IP address spaces.
  • client 30 includes dual APIs 32, 34: one for each resilient server-allocated IP address.
  • client application 31 is a communications application that can make calls, answer calls and detect the status (e.g. on/off-hook) of telephones forming part of communication system 60.
  • client 30 will run on a workstation assigned to a user and provided with a user terminal (screen, keyboard) 15.
  • Client application 31 supports a graphical user interface (GUI) 38 to control the display on user terminal 15.
  • GUI graphical user interface
  • client 30 will also be collocated with a telephone terminal 10 connecting into communications network 60.
  • the service 20 running on resilient servers 40, 50 is a telephony state server and protocol converter, i.e. it might convert between the protocols used in the communication system and a protocol more suited to the server or the client and build up a state model of the calls on the communication system. It would then pass messages to the client application at the appropriate points in the call.
  • Call identity is a unique number or identifier that links all the events belonging to a single call.
  • Call ID is generated by the communication system 60.
  • the duplicate server arrangement of Figure 2 can result in the client 30 receiving two messages relating to the same event: one from each of resilient servers 40, 50 and both bearing the same Call ID.
  • a commonly used format for the call identity information is prescribed by Ecma International as a Computer-Supported Telecommunications Application (CSTA) standard and also in Session Initiation Protocol (SIP).
  • the invention removes the need for arranging for one server to be active, one to be in standby and for managing handover between servers.
  • servers 40, 50 are working independently, there is no need for a private network to resolve priority between the servers.
  • each API 32, 34 is allocated a different IP address so that communication between client 30 and server 40 is independent of communication between client 30 and server 50.
  • the client 30 may not be designed to deal with the duplicate streams of messages that are inherent in the arrangement of Figure 2 and so, a further "API layer" 36 can be added tao isolate the client application 31 from twin APIs 32, 34. It is the job of additional API layer 36 to filter the received messages by discarding duplicates and to forward only a single stream of messages to the client application 31.
  • API layer 36 can be added tao isolate the client application 31 from twin APIs 32, 34. It is the job of additional API layer 36 to filter the received messages by discarding duplicates and to forward only a single stream of messages to the client application 31.
  • Additional API layer 36 performs a corresponding role for messages travelling in the opposite direction, i.e. from client application 31 to servers 40, 50 by duplicating each sent message so as to provide one "copy" of each message to each of APIs 32, 34 and, hence to each of servers 40, 50.
  • the duplicated messages could be allocated to a common IP address or two dedicated IP addresses could be used: one for each copy of the outgoing message to communications system 60.
  • Figure 3 shows a second embodiment, according to which it has been necessary, in order to meet capacity requirements, to split the functions of telephony state service 20 across multiple servers.
  • first-level servers 40, 50 and second-level servers 70, 80.
  • the processor-intensive protocol conversion element 22 of the telephony state service 20 has been split out into the two additional servers (second-level servers 70, 80).
  • first level servers 40, 50 perform the state server function.
  • First-level server 40 is connected to second-level server 70 with which it shares a first instance of telephony state service processing.
  • first-level server 50 is connected to second-level server 80 with which it shares a second instance of telephony state service processing. Sharing the telephony state service processing in this way eases processor loading whilst maintaining the benefits from increased reliability demonstrated by the arrangement of Figure 2 .
  • Figure 4 shows the same functional blocks as Figure 3 but with additional interconnections.
  • first-level servers 40, 50 are now each directly connected to both of second-level servers 70, 80.
  • Each of first-level servers 40, 50 are now clients of the protocol conversion element 22 on each of second-level servers 70, 80.
  • messages are tagged, as described earlier in the description. This tagging now allows redundant messages to be identified by the clients on first-level servers 40, 50 and to be dealt with according to one of the schemes for handling duplicate messages described above in relation to Figure 2 . This arrangement can be employed to offer higher availability at the server level, when compared with the arrangement of Figure 3 . Servers 40, 50 continue to provide duplicate messages to client 30, as before.
  • the present invention is not limited to one level of server, as shown in Figure 2 , or two levels, as shown in Figures 3 and 4 but can be employed on as many levels as required.
  • client application 31 may not be practical or desirable to adapt client application 31 to process duplicate messages on a call, as described above in relation to Figure 2 .
  • virtual IP address working is maintained at client application 31 for connection to first-level servers 40, 50 but handling of duplicate messages according to the invention is applied to the connection between second-level servers 70, 80 and first-level servers 40, 50. Handling of duplicate messages according to the invention may also be applied to connections between any subsequent levels of server (not shown), as appropriate.
  • IP client 30 has TCP/IP connections to both of first-level servers 40, 50: only one of which is active at any one time.
  • server 40 is active and sever 50 is in standby (as shown by the broken line connection to server 50).
  • the connections to both of first-level servers 40, 50 share a common IP address, as represented by virtual IP address cloud 35.
  • client application 31 is shown in Figure 5 as only in active communication with server 40 (as denoted by the solid line) and not with server 50, the situation can chance so that server 50 becomes active and server 40 reverts to standby.
  • first-level servers 40, 50 are each directly connected to both of second-level servers 70, 80.
  • Each of first-level servers 40, 50 act as clients of protocol conversion element 22 on each of second-level servers 70, 80.
  • messages are tagged, to allow duplicate messages to be identified by the clients on first-level servers 40, 50 and to be dealt with accordingly.
  • Client application 31 supports a different state machine for the processing of each call that is active at any one time.
  • the invention provides handling of duplication at the message level by exploiting a message identifier. This is advantageously independent of IP addresses or packet identifiers which do not allow as much flexibility in the implementation of a resilient computer telephony system.
  • the invention provides faster operation without the need to first wait to decide if a server is working or not and, once a decision that a server is at fault is arrived at (or if no response is received), to switch servers.
  • the invention can advantageously provide a form of local load-balancing.
  • each of two or more redundant servers is allocated a different IP addresses so they can be allocated, if required, to different networks.
  • the system is much simpler when compared with former arrangements in that each redundant server can operate as if in isolation and is free to forward all messages relating to the call to the client. This dispenses with the need for arbitration between servers and for the private arbitration network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

  • The invention relates to a computer telephony system and, in particular, to a computer telephony system with a client served by more than one server.
  • To increase the resilience of communications systems and produce so-called high reliability (resilient) systems, servers are duplicated so that the failure of a server no longer results in a complete loss of service but where service can be continued using a duplicate component. The duplicated servers may comprise two or more servers operated in parallel so as to provide improved resilience.
  • In one example of a resilient system, the underlying operating system of two separate servers sharing a task, communicate with each other to determine which one should be the active server (i.e. executing the task) and which one should be inactive, (i.e. on standby). Applications running on the active server receive the result of this determination and, as a result, execute the task, e.g. attempting to provide a communications service. Applications running on the standby server also receive the result of this determination and, as a result, do not attempt to provide the service. Thus only one sever is running the live service at any one time. If the active server was to crash, the standby server would automatically detect this, and take over as the new active server. Hence the service can continue relatively unaffected by a single failure. One aspect of such resilient systems is the need for both servers to communicate with the client (i.e. a processing device or terminal receiving messages relating to the service on behalf of a user). Known resilient systems address this need by supporting virtual IP address working. In virtual IP address working. the active server has a particular IP address allocated to it for the purposes of communicating with the client. If the active server were to fail, the standby server, upon becoming the new active server, "takes over" that IP address. Thus the client has no knowledge of the resilient system underneath it: but automatically connects to whichever server is active using the one IP address. Figure 1, described further, below, shows an example of virtual IP address working.
  • A problem with this resilient method is determining which server is truly running the best. It is true that the method may determine what hardware and OS is running the best, but another important aspect is the service running on that server. If server A and server B are running perfectly, the resilient system has to arbitrarily decide to make one or other server (for example: server A) the active one. However, the service on server A could be running slowly and the service on server B perfectly, In this example, the resilient system is performing as it is designed to but this is resulting in a sub-standard service.
  • The known method is also limited in that the servers sharing the same IP address need to be located in the same network. (i.e. in the same IP address space). This limits the topology of the resilient system.
  • The switching between servers required in the known resilient method calls for a complex system that is vulnerable to failure. The servers must also be capable of supporting such switching. It is these problems that the invention addresses. US 2006/0072523 discloses a SIP user agent with simultaneous multiple registrations.
  • The present invention provides a computer telephony system as set out in the attached claims..
  • The present invention also provides a method for processing calls in a computer telephony system as set out in the attached claims.
  • Additionally, from a further aspect, the invention also provides a computer program or suite of computer programs.
  • The invention will now be described by way of example only with reference to the drawings, in which:
    • Figure 1 shows schematically a known arrangement of a computer telephony system;
    • Figure 2 to 5 show schematically arrangements of a computer telephony system according to embodiments of the invention.
  • As set out above, the known method involves only one of the servers being active at a time. According to this solution, the servers share a "virtual" IP address that is switched between servers if changeover is required.
  • Figure 1 shows an example of virtual IP address working. In Figure 1, client 30 comprises client application 31 charged with interfacing with a user (not shown) and controlling communications with communications system 60 on behalf of the user. Client application 31 can make calls, answer calls and detect the status (e.g. on/off-hook) of telephones forming part of communication system 60. The connection between client 30 and communications system 60 is made via a pair of servers 40, 50 connected in parallel. The use of two servers connected in parallel increases the resilience of the system in providing for a continued communication path in the event of a single failure on severs 40, 50. Client 30 also comprises applications programming interface (API) 35 charged with handling, on behalf of client application 31, the IP communications links with servers 40, 50.
  • In Figure 1, client machine 30 maintains, via API 35, TCP/IP connections to dual resilient IP servers 40 and 50, although it is only in active communication with one of them at any one time. In Figure 1, client 30 is shown in active communication with server 40 (as denoted by the solid line) and not with server 50 which is in standby (as denoted by the broken line), although the situation can change so that server 50 becomes active and server 40 reverts to standby. IP client application 31, comprised in client 30, processes messages received from (and sends messages to) servers 40, 50. Client application 31 is programmed to handle a single instance of each call and API 35 is programmed to communicate with a single IP destination address in relation to each call handled by client application 31. Both limitations are accommodated by the assignment of a single virtual IP address to each call, as represented figuratively in Figure 1 by virtual IP address cloud 25.
  • The resilient servers 40, 50 of Figure 1 exchange "heart-beat" messages over private network 45 that is established between the two servers for this purpose. Software running in each of servers 40 and 50 to support resilient operation is able to monitor the operation of both servers 40, 50 by means of the heart-beat messages and to determine which server should be active and which should be in standby. The selection process is hidden from the client which is not aware of the fact that more than one server may be providing it with messages relating to the call. In Figure 1, the resilient software, by exchanging "heart-beat" messages with its peer server, has determined that server 40 is active and sever 50 is in standby.
  • Although Figure 1 shows one IP address shared by two severs, the idea could be applied to more than two servers operating in parallel and sharing a single IP address, e.g. to further increase resilience. The IP address is termed "virtual" to reflect the fact that it is not permanently associated with any particular server but is dynamically allocated to that one of the servers that is selected to be active at any one time.
  • The arrangement of Figure 1 incurs the overhead of private network 45 to link the duplicate servers to allow negotiation as to which is to be active and is to use the virtual IP address and which is to be dormant at any one time. The duplicate servers also need to be specially configured in order to support address-sharing. This arrangement is dependent on a complex system to implement and supervise switching between servers. that is vulnerable to failure.
  • This invention addresses the above problems by enabling the client to receive redundant messages: one from each of two or more duplicate servers. On receipt of these redundant messages; the communications process at the client can malfunction, leading to disruption of the communication and loss of service. The problem of redundant messages is overcome, according to the invention, by arranging for messages to be tagged to allow redundant messages to be identified by the client and dealt with accordingly.
  • According to a preferred embodiment, the messages are tagged using call identity information. This exploits situations where call identity information is included in the call progress messages (events) generated by the communication system and passed by the servers to the client. Use of call identity information in this way can improve the performance of the client by allowing it to identify and effectively deal with redundant messages.
  • Call identity information is not universally included in call progress messages passed to the client in computer telephony systems. According to an alternative embodiment, the messages are tagged using message identity information, for example, message count values contributed by the communications system.
  • According to the present invention, the client can react to the receipt of redundant messages in two ways. In a first mode of operation, the client discards messages identified as redundant and continues with processing a single message for each event, as before. In a second mode of operation, the client actively checks for redundant copies of messages in order to provide higher confidence in the accuracy of the received messages and/or as a check on the performance of the redundant servers to allow remedial action to be instigated before the situation becomes critical and affects the operation of the system. In either mode, processing of messages proceeds as before.
  • The first mode is inherently resilient. For each event in a call, the first message received from one or other duplicate server is accepted and processed by the client. Any duplicate messages for the same call event as part of the same call are discarded and do not affect the correct operation of the client. If all of the duplicate servers are operating correctly, then the client effectively interacts with whichever is the faster, also leading to an increase in overall processing speed. This applies even if the response speeds of the duplicate servers change in the course of a call so that some messages from each duplicate server are processed over the life of the call. If one of the duplicate servers is out of action or unreachable for any reason, then the client just interacts with the remaining server or servers.
  • The second mode can be arranged to share a similar level of resilience with the first mode. To achieve this, the receipt of the second copy of a duplicated message is not required for correct operation of the client but is merely monitored as an additional health check on the system. As in the first mode, for each event in a call, the first message received is accepted and processed by the client which also monitors for receipt of the second copy of each message and raises an alarm if the expected copy is not received within a time limit. The time limit may be calculated either from the issue by the client of the original message to the servers provoking the received message or from the receipt of the first copy of the message at the client.
  • In an alternative version of the second mode, it may be desirable to ensure that both copies of a duplicated message are received by the client before the message is processed. This is achieved, in a variant of the second mode, by API layer 36 waiting for both copies of a message to be received before passing the message to client application 31. Again, an alarm is raised if no copies of messages are received or only one copy is received within an appropriate time limit.
  • In either mode of operation, the client can send its messages via one or more of the servers. Hence, the client could be arranged to send each request via any one of the servers or to the server with the best performance (which may be judged from the speed of return of the response messages)
  • Alternatively, the client could be arranged to send each request via each of the servers. This operation would only be chosen if the communication system is able to accept the duplicate requests that the client sends according to this variant. The request that arrives at the communication system first, will be the one that is processed and will generate a response returned to the client. The second request is identified as a duplicate and is rejected by the communication system and a "reject" message sent to the client. The client is able to recognise the reject message as pertaining to a duplicate request, and therefore proceeds to process the other, successful response.
  • According to a preferred embodiment, client application 31 issues each message via API layer 36 to only one of servers 40, 50. Normally, a message will be issued to the server that has responded correctly to a previous message in advance of the other server. This will result in a reduction in processing load for the slower server and introduces a form of local load-balancing. According to each of the above embodiments, communications system 60 continues to send a copy of each message to each of servers 40, 50: thereby retaining resilience.
  • As shown in Figure 2, client 30 includes single client application 31 connected to both resilient Servers 40, 50. Servers 40, 50 are allocated different IP addresses and may be located in different networks within different IP address spaces. To handle communications using the two IP addresses, client 30 includes dual APIs 32, 34: one for each resilient server-allocated IP address. As before, client application 31 is a communications application that can make calls, answer calls and detect the status (e.g. on/off-hook) of telephones forming part of communication system 60. Typically, client 30 will run on a workstation assigned to a user and provided with a user terminal (screen, keyboard) 15. Client application 31 supports a graphical user interface (GUI) 38 to control the display on user terminal 15. Typically, client 30 will also be collocated with a telephone terminal 10 connecting into communications network 60. Accordingly, the service 20 running on resilient servers 40, 50 is a telephony state server and protocol converter, i.e. it might convert between the protocols used in the communication system and a protocol more suited to the server or the client and build up a state model of the calls on the communication system. It would then pass messages to the client application at the appropriate points in the call.
  • Included in some telephony event messages is something termed a "call identity" or "Call ID". This is a unique number or identifier that links all the events belonging to a single call. Typically, the Call ID is generated by the communication system 60. The duplicate server arrangement of Figure 2 can result in the client 30 receiving two messages relating to the same event: one from each of resilient servers 40, 50 and both bearing the same Call ID. A commonly used format for the call identity information is prescribed by Ecma International as a Computer-Supported Telecommunications Application (CSTA) standard and also in Session Initiation Protocol (SIP).
  • Advantageously, the invention removes the need for arranging for one server to be active, one to be in standby and for managing handover between servers. As servers 40, 50 are working independently, there is no need for a private network to resolve priority between the servers.
  • As previously indicated: to handle the duplicated messages received at the client, two APIs (32, 34) are provided on client 30: one arranged in communication with each of duplicate servers 40, 50. Each API 32, 34 is allocated a different IP address so that communication between client 30 and server 40 is independent of communication between client 30 and server 50.
  • The client 30 may not be designed to deal with the duplicate streams of messages that are inherent in the arrangement of Figure 2 and so, a further "API layer" 36 can be added tao isolate the client application 31 from twin APIs 32, 34. It is the job of additional API layer 36 to filter the received messages by discarding duplicates and to forward only a single stream of messages to the client application 31.
  • Additional API layer 36 performs a corresponding role for messages travelling in the opposite direction, i.e. from client application 31 to servers 40, 50 by duplicating each sent message so as to provide one "copy" of each message to each of APIs 32, 34 and, hence to each of servers 40, 50. The duplicated messages could be allocated to a common IP address or two dedicated IP addresses could be used: one for each copy of the outgoing message to communications system 60.
  • The processing performance of the servers may be enhanced by increasing their number. Figure 3 shows a second embodiment, according to which it has been necessary, in order to meet capacity requirements, to split the functions of telephony state service 20 across multiple servers. According to Figure 3 we now have two levels of server: first- level servers 40, 50 and second- level servers 70, 80. In Figure 3, the processor-intensive protocol conversion element 22 of the telephony state service 20 has been split out into the two additional servers (second-level servers 70, 80). For example, first level servers 40, 50 perform the state server function. First-level server 40 is connected to second-level server 70 with which it shares a first instance of telephony state service processing. Similarly, first-level server 50 is connected to second-level server 80 with which it shares a second instance of telephony state service processing. Sharing the telephony state service processing in this way eases processor loading whilst maintaining the benefits from increased reliability demonstrated by the arrangement of Figure 2.
  • According to a third embodiment, the reliability in the arrangement of Figure 3 is further enhanced in the arrangement of Figure 4. Figure 4 shows the same functional blocks as Figure 3 but with additional interconnections.
  • As shown in Figure 4, first- level servers 40, 50 are now each directly connected to both of second- level servers 70, 80. Each of first- level servers 40, 50 are now clients of the protocol conversion element 22 on each of second- level servers 70, 80. In the arrangement of Figure 4, messages are tagged, as described earlier in the description. This tagging now allows redundant messages to be identified by the clients on first- level servers 40, 50 and to be dealt with according to one of the schemes for handling duplicate messages described above in relation to Figure 2. This arrangement can be employed to offer higher availability at the server level, when compared with the arrangement of Figure 3. Servers 40, 50 continue to provide duplicate messages to client 30, as before.
  • The present invention is not limited to one level of server, as shown in Figure 2, or two levels, as shown in Figures 3 and 4 but can be employed on as many levels as required.
  • It may not be practical or desirable to adapt client application 31 to process duplicate messages on a call, as described above in relation to Figure 2. According to a fourth embodiment, virtual IP address working is maintained at client application 31 for connection to first- level servers 40, 50 but handling of duplicate messages according to the invention is applied to the connection between second- level servers 70, 80 and first- level servers 40, 50. Handling of duplicate messages according to the invention may also be applied to connections between any subsequent levels of server (not shown), as appropriate.
  • IP client 30 has TCP/IP connections to both of first-level servers 40, 50: only one of which is active at any one time. In Figure 5, server 40 is active and sever 50 is in standby (as shown by the broken line connection to server 50).The connections to both of first- level servers 40, 50 share a common IP address, as represented by virtual IP address cloud 35. Although client application 31 is shown in Figure 5 as only in active communication with server 40 (as denoted by the solid line) and not with server 50, the situation can chance so that server 50 becomes active and server 40 reverts to standby.
  • As with the arrangement of Figure 4, in Figure 5, first- level servers 40, 50 are each directly connected to both of second- level servers 70, 80. Each of first- level servers 40, 50 act as clients of protocol conversion element 22 on each of second- level servers 70, 80. As with the arrangement of Figure 4, in the arrangement of Figure 5, messages are tagged, to allow duplicate messages to be identified by the clients on first- level servers 40, 50 and to be dealt with accordingly.
  • Client application 31 supports a different state machine for the processing of each call that is active at any one time.
  • The invention provides handling of duplication at the message level by exploiting a message identifier. This is advantageously independent of IP addresses or packet identifiers which do not allow as much flexibility in the implementation of a resilient computer telephony system.
  • The invention provides faster operation without the need to first wait to decide if a server is working or not and, once a decision that a server is at fault is arrived at (or if no response is received), to switch servers. The invention can advantageously provide a form of local load-balancing.
  • According to the invention, each of two or more redundant servers is allocated a different IP addresses so they can be allocated, if required, to different networks. The system is much simpler when compared with former arrangements in that each redundant server can operate as if in isolation and is free to forward all messages relating to the call to the client. This dispenses with the need for arbitration between servers and for the private arbitration network.
  • Those skilled in the art will appreciate that the above embodiments of the invention are simplified. Those skilled in the art will moreover recognise that several equivalents to the features described in each embodiment exist, and that it is possible to incorporate features of one embodiment into other embodiments. Where known equivalents exist to the functional elements of the embodiments, these are considered to be implicitly disclosed herein, unless specifically disclaimed. Accordingly, the scope of the invention is not to be confined to the specific elements recited in the description but instead is to be determined by the scope of the claims, when construed in the context of the description, bearing in mind the common general knowledge of those skilled in the art.

Claims (11)

  1. A computer telephony system comprising a client (30) for processing calls in a communications system;
    in which the system also comprises a set of servers (40, 50) for providing call status messages to the client;
    in which each call status message comprises an identifier associated with the call to which the message relates;
    characterized in that the client comprises receiving means for receiving from a first one (40) the servers a copy of a call status message relating to a call and for receiving from a second one (50) of the servers a copy of the call status message received from the first one of the servers and in which the client comprises identification means for identifying duplicate copies of call status messages with reference to the identifier;
    the client is arranged to send a request message to the communications system via one of the servers in which the client comprises means for determining the relative performance of the servers and for sending the request message to the server determined to have a higher relative performance; and
    the relative performance of the servers is indicated by the time of receipt at the client of one or more call status messages.
  2. A computer telephony system comprising a client (30) for processing calls in a communications system;
    in which the system also comprises a set of servers (40, 50) for providing call status messages to the client;
    in which each call status message comprises an identifier associated with the call to which the message relates;
    characterized in that the client comprises receiving means for receiving from a first one (40) of the servers a copy of a call status message relating to a call and for receiving from a second one (50) of the servers a copy of the call status message received from the first one of the servers and in which the client comprises identification means for identifying duplicate copies of call status messages with reference to the identifier, and
    the client is arranged to send duplicate copies of a request message to the communications system via each of the servers.
  3. A computer telephony system, as claimed in claim 2 in which all copies of a duplicated request message are allocated to a common IP address.
  4. A computer telephony system, as claimed in claim 2 in which each copy of a duplicated request message is allocated to a unique IP address.
  5. A computer telephony system, as claimed in any above claim, in which the client is configured to interface directly with a user of the system.
  6. A computer telephony system, as claimed in any above claim, in which the client is configured to form part of a server (70. 80) for servicing a further client.
  7. A computer telephony system, as claimed in any above claim, in which each call is allocated a call identity and in which the identifier comprises the call identity.
  8. A computer telephony system, as claimed in any above claim, in which each message is allocated a message identity and in which the identifier comprises the message identity.
  9. A method for processing calls in a computer telephony system comprising a communications system connected to a client (30) via a plurality of servers (40, 50), the method characterized by
    the client receiving from a first one (40) of the servers a copy of a call status message relating to a call and receiving from a second one (50) of the servers a copy of the call status message received from the first one of the servers; reading in each copy of the call status message an identifier associated with the call to which the message relates; and identifying duplicate messages with reference to the identifier;
    determining the relative performance of the servers; and sending a request message from the client to the communications system via one of the servers determined to have a higher relative performance; and
    determining the relative performance of the servers by the time of receipt at the client of one or more call status messages.
  10. A method for processing calls in a computer telephony system comprising a communications system connected to a client (30) via a plurality of servers (40, 50), the method characterized by
    the client receiving from a first one (40) of the servers a copy of a call status message relating to a call and receiving from a second one (50) of the servers a copy of the call status message received from the first one of the servers; reading in each copy of the call status message an identifier assodated with the call to which the message relates; and identifying duplicate messages with reference to the identifier; and
    the client sending duplicate copies of a request message to the communications system via each of the servers.
  11. A computer program or suite of computer programs for use with one or more computers to perform the method steps as set out in claim 9 or 10.
EP08709548.5A 2007-04-03 2008-02-28 Computer telephony system with identification of duplicate messages Active EP2137935B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB0706494.2A GB0706494D0 (en) 2007-04-03 2007-04-03 Computer telephony system
PCT/GB2008/000673 WO2008119926A2 (en) 2007-04-03 2008-02-28 Computer telephony system with identification of duplicate messages

Publications (2)

Publication Number Publication Date
EP2137935A2 EP2137935A2 (en) 2009-12-30
EP2137935B1 true EP2137935B1 (en) 2013-06-26

Family

ID=38050769

Family Applications (1)

Application Number Title Priority Date Filing Date
EP08709548.5A Active EP2137935B1 (en) 2007-04-03 2008-02-28 Computer telephony system with identification of duplicate messages

Country Status (4)

Country Link
US (1) US8209421B2 (en)
EP (1) EP2137935B1 (en)
GB (1) GB0706494D0 (en)
WO (1) WO2008119926A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120284638A1 (en) * 2011-05-06 2012-11-08 Kibits Corp. System and method for social interaction, sharing and collaboration
EP2810493B1 (en) * 2012-02-03 2016-08-17 LG Electronics Inc. Method for transmitting and receiving frame performed by station operating in power save mode in wireless local area network system and apparatus for the same
US9596621B2 (en) * 2012-08-10 2017-03-14 Ibasis, Inc. Signaling traffic reduction in mobile communication systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0865707B1 (en) * 1995-11-07 2003-03-12 Motorola, Inc. Improved message processing in two-way data devices
US7526533B1 (en) * 1999-11-30 2009-04-28 Cisco Technology, Inc. Active call context reconstruction for primary/backup resource manager servers
US7227927B1 (en) * 2000-09-08 2007-06-05 Tekelec Scalable call processing node
US7079481B2 (en) * 2002-01-04 2006-07-18 Avaya Technology Corp. Redundant network controller management system
US6766009B2 (en) 2002-03-07 2004-07-20 Newstep Networks Inc. Method and system for correlating telephone calls with information delivery
US8213299B2 (en) 2002-09-20 2012-07-03 Genband Us Llc Methods and systems for locating redundant telephony call processing hosts in geographically separate locations
US7307945B2 (en) 2002-11-27 2007-12-11 Lucent Technologies Inc. Methods for providing a reliable server architecture using a multicast topology in a communications network
US7483369B2 (en) * 2003-09-30 2009-01-27 Avaya Inc. Method and apparatus for migrating to an alternate call controller
US7805517B2 (en) * 2004-09-15 2010-09-28 Cisco Technology, Inc. System and method for load balancing a communications network
US8055778B2 (en) * 2004-09-30 2011-11-08 Siemens Enterprise Communications, Inc. SIP user agent with simultaneous multiple registrations
EP1884106A2 (en) * 2005-05-26 2008-02-06 Pactolus Communications Software Corporation Systems and methods for a fault tolerant voice-over-internet protocol (voip) architecture
US7725764B2 (en) * 2006-08-04 2010-05-25 Tsx Inc. Failover system and method

Also Published As

Publication number Publication date
EP2137935A2 (en) 2009-12-30
WO2008119926A3 (en) 2009-12-30
US8209421B2 (en) 2012-06-26
WO2008119926A2 (en) 2008-10-09
US20100121933A1 (en) 2010-05-13
GB0706494D0 (en) 2007-05-09

Similar Documents

Publication Publication Date Title
US9037719B2 (en) Hypervisor level distributed load-balancing
CA2419808C (en) Distributed multimedia software-based call center
CN112671882B (en) Same-city double-activity system and method based on micro-service
JP3934543B2 (en) Computer phone integration using the functions of an automatic call distribution system.
US6430622B1 (en) Methods, systems and computer program products for automated movement of IP addresses within a cluster
EP1906681B1 (en) Changeover-to-backup technique in a computer system
WO2018097920A1 (en) Micro-services in a telecommunications network
US8315165B2 (en) Survivable and resilient real time communication architecture
US8051189B2 (en) Methods, systems, and computer program products for session initiation protocol (SIP) fast switchover
JP2004519024A (en) System and method for managing a cluster containing multiple nodes
US20100011111A1 (en) Method for offering a call center service in a peer-to-peer network
KR20050012130A (en) Cluster data port services for clustered computer sytem
US8285905B2 (en) Redundancy configuration and replacement method in a system including a master main unit and slave main units
CN109542659A (en) Using more activating methods, equipment, data center's cluster and readable storage medium storing program for executing
CN111698158A (en) Method and device for electing master equipment and machine-readable storage medium
CN114900526B (en) Load balancing method and system, computer storage medium and electronic equipment
EP2137935B1 (en) Computer telephony system with identification of duplicate messages
CN115883668A (en) Traffic scheduling platform
US7079481B2 (en) Redundant network controller management system
JP4123440B2 (en) Object-oriented network distributed computing system, load balancing apparatus and server thereof
GB2458553A (en) Internet telephony PBX with monitoring of SIP server availability and failover to PSTN in event of server failure
CN117176624A (en) Method for detecting service availability in NLB environment of Windows Server system
CN118093155A (en) Cluster system control method, cluster system and storage medium
CN118075276A (en) Method and system for implementing request forwarding gateway based on multiple ceph clusters
KR100645520B1 (en) Apparatus and method for linking of computer telephony integration

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20091012

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

R17D Deferred search report published (corrected)

Effective date: 20091230

17Q First examination report despatched

Effective date: 20100916

DAX Request for extension of the european patent (deleted)
GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 619109

Country of ref document: AT

Kind code of ref document: T

Effective date: 20130715

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 602008025563

Country of ref document: DE

Effective date: 20130822

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130927

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: NO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130926

REG Reference to a national code

Ref country code: AT

Ref legal event code: MK05

Ref document number: 619109

Country of ref document: AT

Kind code of ref document: T

Effective date: 20130626

REG Reference to a national code

Ref country code: LT

Ref legal event code: MG4D

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130926

Ref country code: HR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

REG Reference to a national code

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LV

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130814

Ref country code: IS

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20131026

Ref country code: AT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20131028

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: PL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20131007

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

26N No opposition filed

Effective date: 20140327

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 602008025563

Country of ref document: DE

Effective date: 20140327

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

Ref country code: LU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20140228

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20140228

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20140228

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20140228

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 9

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20080228

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20130626

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 10

REG Reference to a national code

Ref country code: FR

Ref legal event code: PLFP

Year of fee payment: 11

REG Reference to a national code

Ref country code: DE

Ref legal event code: R079

Ref document number: 602008025563

Country of ref document: DE

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

P01 Opt-out of the competence of the unified patent court (upc) registered

Effective date: 20230623

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20240123

Year of fee payment: 17

Ref country code: GB

Payment date: 20240123

Year of fee payment: 17

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 20240123

Year of fee payment: 17