Uninterrupted transmission of internet protocol transmissions during endpoint changes

Information

  • Patent Grant
  • 9154417
  • Patent Number
    9,154,417
  • Date Filed
    Wednesday, November 27, 2013
    11 years ago
  • Date Issued
    Tuesday, October 6, 2015
    9 years ago
Abstract
A method and apparatus providing uninterrupted transmission of IP transmissions, during endpoint changes is disclosed. If a destination identifier in a received IP transmission matches a caller identifier of a record and a source address identifier or source identifier in the transmission do not match a caller address identifier or the caller identifier of the record, and a session identifier in the transmission matches a caller session identifier in the record, the source address identifier and the source identifier in the transmission are set as the caller address identifier and caller identifier respectively of the record. A similar procedure is followed to set the callee address identifier and callee identifier of the record using similar fields associated with the callee.
Description
BACKGROUND

1. Field


This invention relates to Internet protocol (IP) transmissions and, more particularly, to uninterrupted transmission of IP transmissions containing real time transport protocol (RTP) data during endpoint changes.


2. Description of the Related Technology


Internet Protocol (IP) transmission systems are known to use media relays to relay IP transmissions from one endpoint to another. In a telephone system, the media relay relays IP transmissions between a caller and a callee. An IP session is established by a call controller, which interacts with the media relay, the caller and the callee to convey to each of these entities the IP addresses and ports to which they should send IP transmissions and from which they should expect IP transmissions. The media relay is configured to accept packets conveyed by IP transmissions from specified caller and callee IP addresses and ports. In some systems, such as mobile telephone systems, a mobile telephone may be in communication with a first base station while in a certain geographical area and there may be a handoff of the call to another base station when the mobile telephone is moved to a different geographical location. Communications between the base stations and the mobile telephones are conducted on a Global System from Mobile Communication (GSM) network or other cellular network, for example, and the base stations convert messages to and from the GSM network and the IP network and thus, the base stations establish the caller and callee IP addresses and ports. Each base station will have a unique IP address and UDP port number that it associates or assigns to the mobile telephone with which it has established communication in the conventional manner over the cellular network. Thus, a conventional media relay will reject IP streams from the new base station after handoff of the call because such streams are seen as being transmitted by an unauthorized source. This generally prevents voice over IP telephone calls from being made through systems that employ media relays without further call handling.


The Session Initiation Protocol (SIP) RFC 3261 provided by the Internet Engineering Task Force (IETF) specifies a mechanism for an endpoint to notify another endpoint if its IP address changes. This mechanism employs a signaling message that conveys an identification of new media properties for the endpoint whose IP address has changed. The use of SIP messages for this purpose, however, adds extra overhead and delays to the call as signaling messages must be routed through the call controller and the call controller must communicate with the media relay and endpoints to re-configure the media relay to accept IP transmissions from the endpoint having the new IP address and to cause IP transmission to be relayed thereto each time a handoff occurs.


SUMMARY OF CERTAIN EMBODIMENTS

In accordance with one aspect, there is provided a method for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions, during endpoint changes. The method involves, in response to receiving an IP transmission at a caller port or a callee port of a media relay through which IP transmissions of an IP communication session are relayed, locating a session information record having a caller port identifier or callee port identifier matching a destination port identifier in the IP transmission. The caller port identifier identifies the caller port and the callee port identifier identifies the callee port. When the destination port identifier in the IP transmission matches the caller port identifier of the session information record and when a source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record, and when a session identifier in the IP transmission matches a caller session identifier in the session information record, the method involves setting the source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record. When the destination port identifier in the IP transmission matches the callee port identifier of the session information record, and when the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record, and when the session identifier in the IP transmission matches a callee session identifier in the session information record, the method involves setting the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record.


The method may involve maintaining the session information records, each record associating session information, caller information and callee information for a respective IP communication session, and the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively of the media relay through which IP transmissions of the IP communication session are relayed. The caller information may include the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the media relay, and a caller session identifier. The callee information may include the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the media relay, and may further include a callee session identifier.


The method may involve storing the session identifier received in the IP transmission in the caller session identifier field in the session information record, when the pre-determined IP transmission is received from the caller, and storing the session identifier received in the IP transmission in the callee session identifier field in the session information record, when the pre-determined IP transmission is received from the callee.


The method may involve causing the media relay to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record and identifying the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.


The method may involve causing the media relay to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the record and identifying the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.


The session identifier may include synchronization source (SSRC) identifier, the caller session identifier may include a caller SSRC identifier and the callee session identifier may include a callee SSRC identifier.


The IP transmission may contain real time transport protocol (RTP) data, the caller port may be a caller RTP port and the callee port may be a callee RTP port.


In accordance with another aspect, there is provided a media relay apparatus for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes. The apparatus includes connection provisions for providing a connection to an IP network, provisions for defining a logical input/output interface defining caller and callee ports in the connection provisions. The apparatus further includes provisions for relaying IP transmissions of an IP communication session between a caller port and a callee port of the connection provisions. The apparatus further includes provisions for receiving an IP transmission at the caller port or the callee port. The apparatus further includes provisions for locating a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission. The caller port identifier identifies the caller port and the callee port identifier identifies the callee port. The apparatus further includes provisions for setting a source IP address identifier and a source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the caller port identifier of the session information record, and when the source IP address identifier or the source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record, and when a session identifier in the IP transmission matches a caller session identifier in the session information record. The apparatus further includes provisions for setting the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the callee port identifier of the session information record, and when the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record, and when the session identifier in the IP transmission matches a callee session identifier in the session information record.


The apparatus may include provisions for maintaining the session information records, each record associating session information, caller information and callee information for a respective IP communication session. The session information may include the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection provisions through which IP transmissions of the IP communication session are relayed. The caller information may include the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier. The callee information may include the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.


The apparatus may include provisions for storing the session identifier received in the IP transmission in the caller session identifier field in one of the session information records, when the pre-determined IP transmission is received from the caller, and provisions for storing the session identifier received in the IP transmission in the callee session identifier field in one of the session information records, when the pre-determined IP transmission is received from the callee.


The apparatus may include provisions for causing the connection provisions to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier respectively and callee port identifier of the session information record, and provisions for identifying the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.


The apparatus may include provisions for causing the connection provisions to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record, and provisions for identifying the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.


The session identifier may include synchronization source (SSRC) identifier, the caller session identifier may include a caller SSRC identifier and the callee session identifier may include a callee SSRC identifier.


The IP transmission may contain real time transport protocol (RTP) data, the caller port may be a caller RTP port and the callee port may be a callee RTP port.


In accordance with another aspect, there is provided a media relay apparatus for facilitating uninterrupted transmission of Internet protocol (IP) transmissions during endpoint changes. The apparatus includes a processor circuit operably configured to define caller and callee ports on a network and operably configured to relay IP transmissions of an IP communication session between a defined caller port and a defined callee port. The processor circuit is further configured to locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission. The caller port identifier identifies the caller port and the callee port identifier identifies the callee port. The processor circuit is further configured to set a source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the caller port identifier of the session information record, and when the source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record, and when a session identifier in the IP transmission matches a caller session identifier in the session information record. The apparatus further includes setting the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the callee port identifier of the session information record, and when the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record, and when the session identifier in the IP transmission matches a callee session identifier in the session information record.


The processor circuit may be further configured to maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session. The session information may include the caller and callee port identifiers identifying a caller port and a callee port respectively through which IP transmissions of the IP communication session to be relayed. The caller information may include the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier. The callee information may include the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.


The processor circuit may be further configured to store the session identifier received in the IP transmission in the caller session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the caller, and to store the session identifier received in the IP transmission in the callee session identifier field in the session information record, when the pre-determined IP transmission is received from the callee.


The processor circuit may be further configured to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record, and identify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.


The processor circuit may be further configured to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record, and identify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.


The session identifier may include a synchronization source (SSRC) identifier, the caller session identifier may include a caller SSRC identifier and the callee session identifier may include a callee SSRC identifier.


The IP transmission may contain real time transport protocol (RTP) data and the caller port may be a caller RTP port and the callee port may be a callee RTP port.


In accordance with another aspect, there is provided a media relay apparatus for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes. The apparatus includes a network interface providing a connection to a network, and a processor circuit in communication with the network interface, the processor circuit including a processor and a non-transitory computer readable medium in communication with the processor. The non-transitory computer readable medium is encoded with codes for directing the processor to define caller and callee ports on the network, and to relay IP transmissions of an IP communication session between a defined caller port and a defined callee port. The codes further include codes for directing the processor to locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission. The caller port identifier identifies the caller port and the callee port identifier identifies the callee port. The codes further include codes for directing the processor to set the source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the caller port identifier of the session information record, and when a source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record, and when a session identifier in the IP transmission matches a caller session identifier in the session information record. The codes further include codes for directing the processor to set the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the callee port identifier of the session information record, and when the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record, and when the session identifier in the IP transmission matches a callee session identifier in the session information record.


The non-transitory computer readable medium may be further encoded with codes for directing the processor to maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session. The session information may include the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection through which IP transmissions of the IP communication session to be relayed. The caller information may include the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier. The callee information may include the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.


The non-transitory computer readable medium may be further encoded with codes for directing the processor to store the session identifier received in the IP transmission in the caller session identifier field in the session information record, when the pre-determined IP transmission is received from the caller, and to store the session identifier received in the IP transmission in the callee session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the callee.


The non-transitory computer readable medium may be further encoded with codes for directing the processor to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record, and to identify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.


The non-transitory computer readable medium may be further encoded with codes for directing the processor to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record, and to identify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.


The session identifier may include synchronization source (SSRC) identifier, the caller session identifier may include a caller SSRC identifier and the callee session identifier may include a callee SSRC identifier.


The IP transmission may contain real time transport protocol (RTP) data and the caller port may be a caller RTP port and the callee port may be a callee RTP port.


In accordance with another aspect, there is provided a non-transitory computer readable medium encoded with codes for controlling a processor of a media relay apparatus to facilitate uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes. The codes are operable to cause the processor to cause the media relay to act as a network interface providing a connection to a network, define caller and callee ports on the network, and relay IP transmissions of an IP communication session between a defined caller port and a defined callee port. The codes are also operable to cause the processor to locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission. The caller port identifier identifies the caller port and the callee port identifier identifies the callee port. The codes are further operable to cause the processor to further set a source IP address identifier and a source port identifier in the IP transmission as a caller IP address identifier and caller port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the caller port identifier of the session information record, and when a source IP address identifier or a source port identifier in the IP transmission do not match the caller IP address identifier or the caller port identifier respectively of the session information record and when a session identifier in the IP transmission matches a caller session identifier in the session information record. The codes further include codes for directing the processor to set the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when the destination port identifier in the IP transmission matches the callee port identifier of the session information record and when the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record and when the session identifier in the IP transmission matches a callee session identifier in the session information record.


The computer readable medium may be further encoded with codes for directing the processor to maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session. The session information may include the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection through which IP transmissions of the IP communication session are relayed. The caller information may include the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier. The callee information may include the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.


The computer readable medium may be further encoded with codes for directing the processor to store the session identifier received in the IP transmission in the caller session identifier field in the session information record, when the pre-determined IP transmission is received from the caller, and store the session identifier received in the IP transmission in the callee session identifier field in the session information record, when the pre-determined IP transmission is received from the callee.


The computer readable medium may be further encoded with codes for directing the processor to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record, and to identify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.


The computer readable medium may be further encoded with codes for directing the processor to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record, and to identify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.


The session identifier may include synchronization source (SSRC) identifier, the caller session identifier may include a caller SSRC identifier and the callee session identifier may include a callee SSRC identifier.


The IP transmission may contain real time transport protocol (RTP) data and the caller port may be a caller RTP port and the callee port may be a callee RTP port.


Other aspects and features of the present disclosure will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments in conjunction with the accompanying figures.





BRIEF DESCRIPTION OF THE DRAWINGS

In drawings which illustrate embodiments,



FIG. 1 is a schematic diagram illustrating a system for facilitating uninterrupted transmission of internet protocol (IP) transmissions containing real time transport protocol (RTP) data during endpoint changes, according to a first embodiment.



FIG. 2 is a tabular representation of a call record used by the system shown in FIG. 1.



FIG. 3 is a flow chart of an authentication routine executed by a processor of a media relay shown in the system shown in FIG. 1.



FIG. 4 is a schematic representation of an internet protocol (IP) transmission according to the prior art.



FIG. 5 is a tabular representation of the call record shown in FIG. 2 as updated after receipt of an IP transmission at a caller port of the media relay shown in FIG. 1.



FIG. 6 is a flow chart of a continuity routine executed by the processor of the media relay shown in FIG. 1.



FIG. 7 is a tabular representation of the call record as updated after execution of the continuity routine shown in FIG. 6 when a pre-determined packet is received in the IP transmission.



FIG. 8 is a tabular representation of the call record shown in FIG. 7 further updated by the continuity routine after an IP transmission received subsequent to the pre-determined packet is received.



FIG. 9 is a flow chart of a forwarding routine executed by the processor of the media relay shown in FIG. 1 to relay the received IP transmission to a caller or callee with a source identification provided by the call record as updated by the continuity routine shown in FIG. 6.





DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS

Referring to FIG. 1, a system for handling voice over internet protocol (IP) transmissions and more generally, IP transmissions, is shown generally at 20. The system 20 includes a routing controller/call controller (RC/CC) system 22 and first, second and third base stations 24, 26 and 50. The base stations 24, 26 and 50 are operable to communicate with the RC/CC 22 via a network or, as shown in this embodiment, separate networks 28 and 30, which in this embodiment depict the internet. The first and second base stations 24 and 26 in this embodiment are operable to communicate with caller and callee mobile telephones 32 and 34 respectively using a cellular wireless network in a conventional manner as is known in the art. The first and second base stations 24 and 26 thus act as “endpoints” for IP transmissions between the caller and callee.


Generally, to establish a call from the caller mobile telephone 32 to the callee mobile telephone 34, the caller mobile telephone transmits to the first base station 24 a session initiation protocol (SIP) message shown generally at 38. The SIP message 38 is transmitted from the caller mobile telephone 32 to the base station 24 and the first base station 24 formats the SIP message 38 into an IP transmission and transmits the IP transmission through the internet 28 to the RC/CC 22. In this embodiment, the first base station 24 is preconfigured with a network IP address 192.168.0.20 and universal datagram protocol (UDP) port 12345.


In response to receipt of the SIP message 38, the RC/CC 22 communicates with a media relay 40 and sends the caller IP address identifier and caller UDP port identifier contained in the SIP message to the media relay 40 to identify the IP address and UDP port to which the media relay 40 should send communications to the first base station 24 for receipt by the caller mobile telephone 32.


The media relay 40 has input/output interfaces 41 in communication with the processor to provide for physical connection to an IP network such as the internet. The media relay 40 is programmed to provide a logical input/output interface that interacts with the input/output interfaces 41 to define caller and callee real time transport protocol (RTP) ports in the conventional manner.


In response, the media relay 40 is configured to send a media relay IP address identifier and media relay RTP port identifier that it associates with the callee identified by the contents of the callee ID field in the SIP message 38. The media relay 40 sends this information to the RC/CC 22 to essentially inform the RC/CC 22 of the media relay IP address identifier and callee RTP port identifier that it should convey to the callee mobile telephone 34 so that the callee telephone can cause IP transmissions to be sent from the second base station, 26 to the media relay 40 which can then subsequently forward those transmissions to the caller mobile telephone 32.


In response to receipt of the media relay IP address identifier and the callee RTP port identifier designated by the media relay 40, the RC/CC 22 transmits a SIP invite message 42 through the internet 30 to the callee mobile telephone 34 through the second base station 26. In this embodiment, the second base station 26 has an IP address (192.168.3.10) and a UDP port number (33123). Thus, the RC/CC 22 directs this SIP invite message 42 to the IP address and UDP port associated with the callee mobile telephone 34 by the second base station 26. The second base station 26 then communicates this SIP invite message 42 to the callee mobile telephone 34 over the wireless network and the callee mobile telephone 34 returns a SIP okay message 44 to the second base station 26.


The SIP okay message format is shown at 44 and includes a caller identifier (ID), a callee ID, a call ID, a callee IP address identifier and a callee UDP port identifier. The callee IP address identifier is the IP address of the second base station 26 and the callee UDP port identifier is the UDP port identifier associated with the callee mobile telephone 34 by the second base station 26. The second base station 26 sends the SIP okay message 44 in an IP transmission through the internet 30 to the RC/CC 22 which communicates the call ID, callee IP address identifier, and callee UDP port identifier contained in the SIP okay message 44 to the media relay 40 to identify to the media relay the IP address and UDP port associated with the callee. In response, the media relay 40 sends a reply message to the RC/CC 22 containing a media relay IP address identifier and caller RTP port identifier of a caller RTP port assigned by the media relay, to which the first base station 24 should direct IP transmissions to the media relay for receipt by the callee mobile telephone 34. In this embodiment, this message includes a media relay IP address identifier of 192.168.1.10 and a caller RTP port identifier (R22125).


The RC/CC 22 transmits a SIP okay message 46, having a format as shown, through the internet 28 to the first base station 24 and the first base station communicates the media relay IP address identifier and the caller RTP port identifier associated with the caller to the caller mobile telephone 32.


The above basic communications for establishing a call between the caller and callee mobile telephones 32 and 34 are described in further detail in Applicant's related International Application No. PCT/CA2007/002150. Of interest in connection with the present disclosure is the following way in which the media relay 40 is configured to permit the caller mobile telephone 32 to move to another geographical location in which a handoff occurs between the first base station 24 and the third base station 50 having an IP address identifier and UDP port identifier different from that of the first base station 24.


When a handoff from the first base station 24 to the third base station 50 occurs, the caller mobile telephone 32 ceases communication with the first base station 24 and establishes communication with the third base station 50. However, since the third base station 50 has a different IP address identifier and UDP port identifier than the first base station 24, the media relay 40 will receive IP transmissions from the third base station 50 identifying the source of the transmissions with a different IP address identifier and UDP port identifier than those associated with the first base station. Normally, the media relay 40 would reject such communications as being from an unknown source, however, due to the configuration of the media relay described below, IP transmissions from the third base station 50 are not rejected and the call can continue uninterrupted. To facilitate this, the media relay 40 is configured with additional functionality beyond that which merely relays communications between the caller and callee.


It is known that in general, a media relay 40 includes a processor 52, memory 54 operable to be written to and read by the processor 52, and program memory 56 containing codes readable by the processor 52 that define program instructions for directing the processor 52 to carry out conventional media relay functions for transferring. IP transmissions between the caller and the callee. In order to provide the functionality of the present disclosure, in this embodiment, the media relay 40 is further configured with additional codes shown generally at 58 that direct the processor 52 to carry out the functionality described below and include functionality for configuring the memory 54 to include call records 60.


These additional codes 58 may be stored on a computer readable medium such as a CD-ROM, flash drive, or in memory at a remotely located computer and may be downloaded to the program memory 56 or the media relay 40 in a conventional manner, for example.


Referring to FIG. 2, an exemplary call record is shown generally at 60. Each call record associates session information 62, caller information 64 and callee information 66 for an IP communication session (i.e. call) handled by the media relay 40. The session information 62 includes caller and callee RTP port identifier fields 68 and 70 for storing caller and callee RTP port identifiers identifying caller and callee RTP ports respectively of the media relay 40. In this embodiment, the caller RTP port identifier is R22125 and the callee RTP port identifier is E22123. The session information 62 may also include a caller RTCP port identifier field and a callee RTCP port identifier field, however, these are optional.


The caller information 64 includes a caller IP address identifier field 72 and a caller UDP port identifier field 74 that hold a caller IP address identifier and caller port UDP identifier to which IP transmissions received at the callee RTP port are to be transmitted. In this embodiment, the caller IP address identifier is 192.168.0.20 and the caller UDP port identifier is 12345 and correspond to those of the first base station 24, i.e. that associated with the caller. The caller information 64 further includes a caller sync source (SSRC) identifier field 76 for storing a caller sync source identifier associated with the caller side of the IP communication session. In one embodiment, until a pre-determined packet such as a first packet, for example, is received in connection with the call, this caller SSRC identifier is undefined.


In the embodiment shown, the caller information 64 further includes a packets sent field 78 and a packets received field 80 for holding numbers representing the number of packets sent to and received respectively from the caller although these fields are optional and the contents of these fields may be available from other functions on the media relay 40.


Referring to FIG. 2, the callee information 66 includes a callee IP address identifier field 82 and a callee UDP port identifier field 84 that hold a callee IP address identifier and callee UDP port identifier identifying a callee address and UDP port to which IP transmissions received at the caller RTP port are to be transmitted. In this embodiment, the callee IP address identifier is 192.168.3.10 and the callee UDP port identifier is 33123 and correspond to those of the second base station 26, i.e., that is associated with the callee. The callee information 66 also includes a callee sync source (SSRC) identifier field 86 for storing a callee sync source identifier associated with the callee side of the IP communication session. In one embodiment, this callee SSRC identifier field 86 may be unpopulated until a predefined packet such as the first packet, for example, of the IP transmissions associated with the call is received.


In this embodiment, the callee information 66 also includes a packets sent field 88 and a packets received field 90 for storing numbers indicating the number of packets sent to and received from the caller. The call record 60 is populated with the information shown in FIG. 2 during the course of the normal message exchanges between the RC/CC 22, the caller and callee and the media relay 40 described above that communicate to the caller and callee the media relay IP address and respective RTP port identifiers (R22125 and E22123) to which communications are to be sent.


Referring back to FIG. 1, the additional codes 58 for directing the processor 52 of the media relay 40 to carry out the functions that facilitate uninterrupted transmissions of IP transmissions include codes 100 for effecting a low level processing routine, codes 102 for effecting an authentication routine, codes 104 for effecting a continuity routine, codes 106 for effecting a forwarding routine and codes 108 for effecting error handler routines. The functionality of the low level processing routine codes 100 is not shown but generally relates to processing associated with layers 0 to 4 of the 7 layer ISO IP transmission protocol.


Referring to FIG. 3, the functionality of the authentication routine is shown generally at 102. Before describing this routine, however, please refer to FIG. 4 which describes the generic nature of an IP transmission and the important fields of that transmission for effecting the use of the methods described herein.


In FIG. 4, an IP transmission is shown generally at 110 and includes a PSEUDO header 112, a UDP header 114, a RTP header 116, and a payload 118. The PSEUDO header 112 includes various fields, the most important of which, in this embodiment, are source IP address identifier and destination address identifier fields 120 and 122 respectively. The UDP header 114 includes source port and destination port identifier fields 124 and 126 and the RTP header 116 includes a SSRC identifier field 128. The payload 118 includes data representing, in this embodiment, audio and/or video data transmitted between the caller and the callee.


Referring back to FIG. 3, the authentication routine 102 is executed in response to receipt of an IP transmission 110 at either the caller RTP port R22125 of the media relay 40 or at the callee RTP port E22123 of the media relay. In response to receipt of an IP transmission 110 at either of these ports, the processor 52 of the media relay 40 is directed to store the source IP address contained in the source IP address identifier field 120, the source port identifier contained in the source port identifier field 124, the destination IP address contained in the destination IP address identifier field 122 and the destination port identifier contained in the destination port identifier field 126 in fields by the same name in a buffer memory 130 addressable by the processor 52. The low level processing routine codes 100 will perform the necessary functions to cleanly extract this information and in this embodiment, the storing of this information is effected by the authentication routine 102, as shown at 129. Alternatively, the low level processing routine codes 100 may store this information directly in the buffer memory 130. It will be appreciated that the buffer memory 130 may include separately addressable fields storing the respective information.


Referring to FIG. 5, upon completion of the execution of block 129 or the low level processing routine codes 100, the call record 60 is updated with the number of packets received as shown at 136 where it is indicated that one packet has been received from the callee, for example.


Referring back to FIG. 3, the authentication routine 102 further includes a block 132 that directs the processor 52 to find a call record such as shown at 60 in the memory 54 by matching the destination port identifier with at least one of the contents of the caller RTP port identifier field 74 and the contents of the callee RTP port identifier field 84 of any of the call records. To do this, the codes in block 132 may direct the media relay processor 52 to scan through all of the caller RTP port identifier fields and callee RTP port identifier fields of all of the call records 60 to find a match with the destination port identifier stored in the buffer memory 130.


Referring to FIG. 3, block 134 directs the processor 52 to invoke an error handler as shown at 108 if no record is found and to proceed to execute the code 104 associated with the continuity routine if a record is found.


Referring to FIG. 6, the continuity routine 104 begins with a first block 140 which directs the processor 52 to determine whether or not the IP transmission 110 has been received at the caller RTP port or the callee RTP port.


The identification of whether or not the IP transmission 110 is from the caller or callee can occur in a number of ways. One way, for example, is for the processor 52 to be responsive to interrupt signals that may be produced by the input/output interface circuitry 41 that physically implements the interface between the media relay 40 and the internet. Since the caller RTP port and callee RTP port have different port identifiers, the input/output interface circuitry 41 may identify the port which has received an IP transmission 110 and cause an interrupt signal and perhaps an interrupt handler (not shown) to be executed by the processor 52 in order to identify the specific port which has received the IP transmission 110.


Alternatively, when the processor 52 identifies the call record 60 by matching the destination port identifier received from the IP transmission 110 with at least one of the caller RTP port identifier and callee RTP port identifier in a call record, the matching RTP port identifier is inherently identified and this information can be used to identify the specific port that has received the IP transmission 110. A flag (not shown) may be set for example, to identify whether the IP transmission 110 is from the caller or callee, depending on whether there is a match of the destination port identifier with the callee or caller RTP identifier. Thus, if there is a match of the destination port identifier with the callee RTP port identifier, then the source must be the caller and if there is a match of the destination port identifier with the caller RTP port identifier, then the source must be the callee.


Thus, if a flag is used, block 140 can simply cause the processor 52 to read the flag to determine whether or not the IP transmission 110 is received from the caller or callee.


Assuming the IP transmission 110 is received from the caller, optionally, block 142 can direct the processor 52 to determine whether or not a pre-determined packet has been received. In this embodiment, the pre-determined packet is the first packet and thus can be determined by simply reading the contents of the packets received field 80 in the caller information 64 of the call record 60 identified at block 132 of the authentication routine 102. Alternatively, the low level processing codes 100 may have previously stored the number of packets received in some other location readable by the processor 52 for use at this stage.


In this embodiment, the first packet received from the caller is the pre-determined packet and thus, when the first packet is received, block 144 directs the processor 52 to store the SSRC identifier received in the IP transmission 110 in the caller SSRC field 76 associated with the caller information 64 of the call record 60 as shown at 146 in FIG. 7. The processor 52 is then directed to the forwarding routine 106. If at block 142, the IP transmission 110 includes a packet that is not the pre-determined packet, in particular, a packet received subsequent to the pre-determined packet, or where there will be no determination as to whether the received packet is a pre-determined packet, block 147 directs the processor 52 to determine whether the caller IP address identifier and caller port identifier in the caller information 64 of the call record 60 match the source IP address identifier and source port identifier received in the IP transmission 110. If so, the IP transmission 110 has been received from the pre-established source (in this embodiment, the first base station 24) and therefore, the processor 52 is directed to the forwarding routine 106.


If at block 147 the caller IP address identifier and caller port identifier do not match the source IP address identifier and source port identifier, then the IP transmission 110 is deemed to be originating from a different source (i.e. the third base station 50) in which case block 148 directs the processor 52 to determine whether or not the IP transmission is associated with the call represented by the call record 60. To do this, block 148 directs the processor 52 to determine whether the SSRC identifier received in the IP transmission 110 matches the caller SSRC identifier stored in the caller sync source field 76 of the call record 60 shown in FIG. 7. If not, the processor 52 is directed to an error handling routine 108.


If the SSRC received in the IP transmission 110 matches the caller SSRC stored in the caller sync source field 76 of the call record 60, block 150 directs the processor 52 to copy the source IP address identifier and source port identifier respectively to the caller IP address identifier and caller UDP port identifier fields 72 and 74 respectively of the call record 60 to update the call record to identify the IP address and UDP port of the third base station 50 as that of the caller, as shown in FIG. 8. The processor 52 is then directed to the call forwarding routine 106.


Thus, in an IP transmission 110 received subsequent to the pre-determined transmission, or where there is no determination of whether the transmission is a pre-determined one, the source IP address identifier and source port identifier from the IP transmission 110 are set as the caller IP address identifier and caller port identifier respectively of the call record 60 when the caller IP address identifier and caller port identifier of the record do not match the source IP address identifier and source port identifier respectively of the IP transmission 110 and the received SSRC in the IP transmission matches the caller SSRC identifier of the call record.


Similarly, blocks 152, 154, 156, 158, and 160 function to perform similar functionality when the destination port identifier in the IP transmission 110 matches the callee RTP port identifier of the identified call record 60. In this case where there is a determination of whether the transmission is a pre-determined one, if the IP transmission is the pre-determined transmission, the SSRC identifier received in the IP transmission 110 is set as the callee SSRC identifier associated with the callee information 66 of the record 60 and if the IP transmission is received subsequent to the pre-determined transmission, or where there is no determination of whether the transmission is a pre-determined one, the source IP address identifier and source port identifier from the IP transmission are set as the callee IP address identifier and callee port identifier respectively of the record when the callee IP address identifier and callee port identifier do not match the source IP address identifier and source port identifier respectively and the received SSRC identifier in the IP transmission matches the callee SSRC identifier.


Referring to FIG. 9, the forwarding routine is shown generally at 106. The forwarding routine includes a first block 170 that directs the processor 52 to again determine whether or not the IP transmission 110 has been received at the caller RTP port or callee RTP port. Again, this may be determined by reading the flag described above or by simply reading a memory location identifying the RTP port that received the IP transmission 110.


If the IP transmission 110 has been received at the caller RTP port, block 172 directs the processor 52 to transmit the IP transmission from the caller RTP port to the callee IP address and callee UDP port identified by the callee IP address identifier and callee UDP port identifier in the call record 60 and to identity the source IP address and source port of the IP transmission as the media relay IP address and callee RTP port. If on the other hand, the IP transmission 110 was received at the callee RTP port, block 174 directs the processor 52 to transmit the IP transmission from the callee RTP port to the caller IP address identified by the caller IP address identifier and caller UDP port identifier stored in the call record 60 and identify the source IP address and source port of the IP transmission as the media relay IP address and caller RTP port. The IP transmission 110 received at either port is thus relayed by the media relay 40 according to the contents of the call record 60 as previously established by the continuity routine 104 shown in FIG. 6.


It will be appreciated that in this embodiment, the IP transmissions 110 received from the caller and from the callee may have different SSRC identifiers. Alternatively, they may have the same SSRC identifiers.

Claims
  • 1. A method for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions, during endpoint changes, the method comprising: in response to receiving an IP transmission at a caller port or a callee port of a media relay through which IP transmissions of an IP communication session are relayed,a) locating a session information record having a caller port identifier or callee port identifier matching a destination port identifier in the IP transmission, wherein the caller port identifier identifies the caller port and the callee port identifier identifies the callee port; andb) when: i) the destination port identifier in the IP transmission matches the caller port identifier of the session information record; andii) a source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record; andiii) a session identifier in the IP transmission matches a caller session identifier in the session information record:setting the source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record; andc) when: i) the destination port identifier in the IP transmission matches the callee port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record; andiii) the session identifier in the IP transmission matches a callee session identifier in the session information record;setting the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record.
  • 2. The method of claim 1, further comprising: maintaining the session information records, each record associating session information, caller information and callee information for a respective IP communication session; the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively of the media relay through which IP transmissions of the IP communication session are relayed;the caller information including the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the media relay, and a caller session identifier; andthe callee information including the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the media relay, and a callee session identifier.
  • 3. The method of claim 2, further comprising: storing the session identifier received in the IP transmission in the caller session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the caller; andstoring the session identifier received in the IP transmission in the callee session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the callee.
  • 4. The method of claim 1, further comprising: causing the media relay to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record and identifying the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.
  • 5. The method of claim 4, further comprising: causing the media relay to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the record and identifying the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.
  • 6. The method of claim 1, wherein the session identifier includes synchronization source (SSRC) identifier, the caller session identifier includes a caller SSRC identifier and the callee session identifier includes a callee SSRC identifier.
  • 7. The method of claim 1, wherein the IP transmission contains real time transport protocol (RTP) data and wherein the caller port is a caller RTP port and the callee port is a callee RTP port.
  • 8. A media relay apparatus for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes, the apparatus comprising: connection means for providing a connection to an IP network;means for defining a logical input/output interface defining caller and callee ports in the connection means;means for relaying IP transmissions of an IP communication session between a caller port and a callee port of the connection means;means for receiving an IP transmission at the caller port or the callee port;means for locating a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission, wherein the caller port identifier identifies the caller port and the callee port identifier identifies the callee port; andmeans for setting a source IP address identifier and a source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the caller port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record; andiii) a session identifier in the IP transmission matches a caller session identifier in the session information record; andmeans for setting the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the callee port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record; andiii) the session identifier in the IP transmission matches a callee session identifier in the session information record.
  • 9. The apparatus of claim 8, further comprising: means for maintaining the session information records, each record associating session information, caller information and callee information for a respective IP communication session; the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection means through which IP transmissions of the IP communication session are relayed;the caller information including the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier; andthe callee information including the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.
  • 10. The apparatus of claim 9, further comprising: means for storing the session identifier received in the IP transmission in the caller session identifier field in one of the session information records, when the pre-determined IP transmission is received from the caller; andmeans for storing the session identifier received in the IP transmission in the callee session identifier field in one of the session information records, when the pre-determined IP transmission is received from the callee.
  • 11. The apparatus of claim 8, further comprising: means for causing the connection means to forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier respectively and callee port identifier of the session information record; andmeans for identifying the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.
  • 12. The apparatus of claim 11, further comprising: means for causing the connection means to forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record; andmeans for identifying the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.
  • 13. The apparatus of claim 8, wherein the session identifier includes synchronization source (SSRC) identifier, the caller session identifier includes a caller SSRC identifier and the callee session identifier includes a callee SSRC identifier.
  • 14. The apparatus of claim 8, wherein the IP transmission contains real time transport protocol (RTP) data and wherein the caller port is a caller RTP port and the callee port is a callee RTP port.
  • 15. A media relay apparatus for facilitating uninterrupted transmission of Internet protocol (IP) transmissions during endpoint changes, the apparatus comprising: a processor circuit operably configured to define caller and callee ports on a network and operably configured to relay IP transmissions of an IP communication session between a defined caller port and a defined callee port, the processor circuit being further configured to: locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission, wherein the caller port identifier identifies the caller port and the callee port identifier identifies the callee port; andset a source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the caller port identifier of the session information record; andii) the source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record; andiii) a session identifier in the IP transmission matches a caller session identifier in the session information record; andset the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the callee port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record; andiii) the session identifier in the IP transmission matches a callee session identifier in the session information record.
  • 16. The apparatus of claim 15, wherein the processor circuit is further configured to: maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session; the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively through which IP transmissions of the IP communication session are relayed;the caller information including the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier; andthe callee information including the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.
  • 17. The apparatus of claim 16, wherein the processor circuit is further configured to: store the session identifier received in the IP transmission in the caller session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the caller; andstore the session identifier received in the IP transmission in the callee session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the callee.
  • 18. The apparatus of claim 15, wherein the processor circuit is further configured to: forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.
  • 19. The apparatus of claim 18, wherein the processor circuit is further configured to: forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.
  • 20. The apparatus of claim 15, wherein the session identifier includes synchronization source (SSRC) identifier, the caller session identifier includes a caller SSRC identifier and the callee session identifier includes a callee SSRC identifier.
  • 21. The apparatus of claim 15, wherein the IP transmission contains real time transport protocol (RTP) data and wherein the caller port is a caller RTP port and the callee port is a callee RTP port.
  • 22. A media relay apparatus for facilitating uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes, the apparatus comprising: a network interface providing a connection to a network;a processor circuit in communication with the network interface, the processor circuit including a processor and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium being encoded with codes for directing the processor to: define caller and callee ports on the network;relay IP transmissions of an IP communication session between a defined caller port and a defined callee port;locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission, wherein the caller port identifier identifies the caller port and the callee port identifier identifies the callee port; andset the source IP address identifier and the source port identifier in the IP transmission as the caller IP address identifier and caller port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the caller port identifier of the session information record; andii) a source IP address identifier or a source port identifier in the IP transmission do not match a caller IP address identifier or the caller port identifier respectively of the session information record; andiii) a session identifier in the IP transmission matches a caller session identifier in the session information record; andset the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the callee port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record; andiii) the session identifier in the IP transmission matches a callee session identifier in the session information record.
  • 23. The apparatus of claim 22, wherein the non-transitory computer readable medium is further encoded with codes for directing the processor to: maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session; the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection through which IP transmissions of the IP communication session are relayed;the caller information including the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier; andthe callee information including the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.
  • 24. The apparatus of claim 23, wherein the non-transitory computer readable medium is further encoded with codes for directing the processor to: store the session identifier received in the IP transmission in the caller session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the caller; andstore the session identifier received in the IP transmission in the callee session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the callee.
  • 25. The apparatus of claim 22, wherein the non-transitory computer readable medium is further encoded with codes for directing the processor to: forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.
  • 26. The apparatus of claim 25, wherein the non-transitory computer readable medium is further encoded with codes for directing the processor to: forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.
  • 27. The apparatus of claim 22, wherein the session identifier includes synchronization source (SSRC) identifier, the caller session identifier includes a caller SSRC identifier and the callee session identifier includes a callee SSRC identifier.
  • 28. The apparatus of claim 22, wherein the IP transmission contains real time transport protocol (RTP) data and wherein the caller port is a caller RTP port and the callee port is a callee RTP port.
  • 29. A non-transitory computer readable medium encoded with codes for controlling a processor of a media relay apparatus to facilitate uninterrupted transmission of Internet Protocol (IP) transmissions during endpoint changes, the codes being operable to cause the processor to: cause the media relay to act as a network interface providing a connection to a network;define caller and callee ports on the network;relay IP transmissions of an IP communication session between a defined caller port and a defined callee port;locate a session information record having a caller port identifier or a callee port identifier matching a destination port identifier included in the IP transmission, wherein the caller port identifier identifies the caller port and the callee port identifier identifies the callee port; and set a source IP address identifier and a source port identifier in the IP transmission as a caller IP address identifier and caller port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the caller port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match the caller IP address identifier or the caller port identifier respectively of the session information record; andiii) a session identifier in the IP transmission matches a caller session identifier in the session information record; andset the source IP address identifier and the source port identifier of the IP transmission as the callee IP address identifier and the callee port identifier respectively of the session information record when: i) the destination port identifier in the IP transmission matches the callee port identifier of the session information record; andii) the source IP address identifier or the source port identifier in the IP transmission do not match a callee IP address identifier or the callee port identifier respectively of the session information record; andiii) the session identifier in the IP transmission matches a callee session identifier in the session information record.
  • 30. The non-transitory computer readable medium of claim 29, wherein the computer readable medium is further encoded with codes for directing the processor to: maintain the session information records, each record associating session information, caller information and callee information for a respective IP communication session; the session information including the caller and callee port identifiers identifying a caller port and a callee port respectively of the connection through which IP transmissions of the IP communication session are relayed;the caller information including the caller IP address identifier and the caller port identifier to which IP transmissions received at the callee port are transmitted from the caller port, and a caller session identifier; andthe callee information including the callee IP address identifier and the callee port identifier to which IP transmissions received at the caller port are transmitted from the callee port, and a callee session identifier.
  • 31. The non-transitory computer readable medium of claim 30, wherein the computer readable medium is further encoded with codes for directing the processor to: store the session identifier received in the IP transmission in the caller session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the caller; andstore the session identifier received in the IP transmission in the callee session identifier field in the one of the session information records, when the pre-determined IP transmission is received from the callee.
  • 32. The non-transitory computer readable medium of claim 29, wherein the computer readable medium is further encoded with codes for directing the processor to: forward the IP transmission to the callee at the callee IP address and callee port identified by the callee IP address identifier and callee port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the callee with the callee port identifier, when the IP transmission was received at the caller port.
  • 33. The non-transitory computer readable medium of claim 32, wherein the computer readable medium is further encoded with codes for directing the processor to: forward the IP transmission to the caller at the caller IP address and caller port identified by the caller IP address identifier and caller port identifier respectively of the session information record; andidentify the source of the IP transmission forwarded to the caller with the caller port identifier, when the IP transmission was received at the callee port.
  • 34. The non-transitory computer readable medium of claim 29, wherein the session identifier includes synchronization source (SSRC) identifier, the caller session identifier includes a caller SSRC identifier and the callee session identifier includes a callee SSRC identifier.
  • 35. The non-transitory computer readable medium of claim 29, wherein the IP transmission contains real time transport protocol (RTP) data and wherein the caller port is a caller RTP port and the callee port is a callee RTP port.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 13/496,864, filed Mar. 16, 2012, entitled “Uninterrupted Transmission of Internet Protocol Transmissions During Endpoint Changes”, which is a national phase entry of PCT/CA2009/001317, filed Sep. 17, 2009, all of which are incorporated by reference in their entireties.

US Referenced Citations (458)
Number Name Date Kind
4916491 Katoh Apr 1990 A
4992971 Hayashi Feb 1991 A
5146491 Silver et al. Sep 1992 A
5247571 Kay et al. Sep 1993 A
5303297 Hillis Apr 1994 A
5325421 Hou et al. Jun 1994 A
5359642 Castro Oct 1994 A
5425085 Weinberger et al. Jun 1995 A
5440621 Castro Aug 1995 A
5454030 de Oliveira et al. Sep 1995 A
5469497 Pierce et al. Nov 1995 A
5506893 Buscher et al. Apr 1996 A
5519769 Weinberger et al. May 1996 A
5559871 Smith Sep 1996 A
5590133 Billstrom et al. Dec 1996 A
5608786 Gordon Mar 1997 A
5621787 McKoy et al. Apr 1997 A
5633913 Talarmo May 1997 A
5661790 Hsu Aug 1997 A
5677955 Doggett et al. Oct 1997 A
5712907 Wegner et al. Jan 1998 A
5719926 Hill Feb 1998 A
5722067 Fougnies et al. Feb 1998 A
5724355 Bruno et al. Mar 1998 A
5726984 Kubler et al. Mar 1998 A
5737414 Walker et al. Apr 1998 A
5751961 Smyk May 1998 A
5793762 Penners et al. Aug 1998 A
5799072 Vulcan et al. Aug 1998 A
5802502 Gell et al. Sep 1998 A
5825863 Walker Oct 1998 A
5828740 Khuc et al. Oct 1998 A
5838682 Dekelbaum et al. Nov 1998 A
5845267 Ronen Dec 1998 A
5850433 Rondeau Dec 1998 A
5864610 Ronen Jan 1999 A
5867495 Elliott et al. Feb 1999 A
5883810 Franklin et al. Mar 1999 A
5883891 Williams et al. Mar 1999 A
5889774 Mirashrafi et al. Mar 1999 A
5905736 Ronen et al. May 1999 A
5907547 Foladare et al. May 1999 A
5910946 Csapo Jun 1999 A
5915005 He Jun 1999 A
5915093 Berlin et al. Jun 1999 A
5917899 Moss et al. Jun 1999 A
5923659 Curry et al. Jul 1999 A
5930343 Vasquez Jul 1999 A
5937045 Yaoya et al. Aug 1999 A
5940598 Strauss et al. Aug 1999 A
5953504 Sokal et al. Sep 1999 A
5956391 Melen et al. Sep 1999 A
5970477 Roden Oct 1999 A
5974043 Solomon Oct 1999 A
5991291 Asai et al. Nov 1999 A
6005870 Leung et al. Dec 1999 A
6005926 Mashinsky Dec 1999 A
6014379 White et al. Jan 2000 A
6021126 White et al. Feb 2000 A
6029062 Hanson Feb 2000 A
6052445 Bashoura et al. Apr 2000 A
6058300 Hanson May 2000 A
6069890 White et al. May 2000 A
6073013 Agre et al. Jun 2000 A
6078647 D'Eletto Jun 2000 A
6104704 Buhler et al. Aug 2000 A
6104711 Voit Aug 2000 A
6115737 Ely et al. Sep 2000 A
6128304 Gardell et al. Oct 2000 A
6137869 Voit et al. Oct 2000 A
6141404 Westerlage et al. Oct 2000 A
6151385 Reich et al. Nov 2000 A
6173272 Thomas et al. Jan 2001 B1
6188752 Lesley Feb 2001 B1
6243689 Norton Jun 2001 B1
6249573 Hudson Jun 2001 B1
6282574 Voit Aug 2001 B1
6298062 Gardell et al. Oct 2001 B1
6327351 Walker et al. Dec 2001 B1
6351464 Galvin et al. Feb 2002 B1
6359880 Curry et al. Mar 2002 B1
6430275 Voit et al. Aug 2002 B1
6445694 Swartz Sep 2002 B1
6507644 Henderson et al. Jan 2003 B1
6553025 Kung et al. Apr 2003 B1
6560224 Kung et al. May 2003 B1
6574328 Wood et al. Jun 2003 B1
6597686 Smyk Jul 2003 B1
6597783 Tada et al. Jul 2003 B1
6636833 Flitcroft et al. Oct 2003 B1
6650641 Albert et al. Nov 2003 B1
6674745 Schuster et al. Jan 2004 B1
6724860 Stumer et al. Apr 2004 B2
6744858 Ryan et al. Jun 2004 B1
6766159 Lindholm Jul 2004 B2
6772188 Cloutier Aug 2004 B1
6775534 Lindgren et al. Aug 2004 B2
6785266 Swartz Aug 2004 B2
6798767 Alexander et al. Sep 2004 B1
6819929 Antonucci et al. Nov 2004 B2
6873599 Han Mar 2005 B1
6892184 Komem et al. May 2005 B1
6934279 Sollee et al. Aug 2005 B1
6937713 Kung et al. Aug 2005 B1
6954453 Schindler Oct 2005 B1
6963557 Knox Nov 2005 B2
6963739 Dorenbosch et al. Nov 2005 B2
6985440 Albert et al. Jan 2006 B1
6993015 Kobayashi Jan 2006 B2
7006508 Bondy et al. Feb 2006 B2
7010727 Stucker Mar 2006 B1
7027564 James Apr 2006 B2
7046658 Kundaje May 2006 B1
7051072 Stewart et al. May 2006 B2
7055174 Cope et al. May 2006 B1
7068668 Feuer Jun 2006 B2
7068772 Widger et al. Jun 2006 B1
7079526 Wipliez et al. Jul 2006 B1
7120682 Salama Oct 2006 B1
7151772 Kalmanek, Jr. et al. Dec 2006 B1
7177399 Dawson et al. Feb 2007 B2
7203478 Benco et al. Apr 2007 B2
7212522 Shankar et al. May 2007 B1
7277528 Rao et al. Oct 2007 B2
7330835 Deggendorf Feb 2008 B2
7400881 Kallio Jul 2008 B2
7426492 Bishop et al. Sep 2008 B1
7436835 Castleberry et al. Oct 2008 B2
7437665 Perham Oct 2008 B2
7440442 Grabelsky et al. Oct 2008 B2
7447707 Gaurav et al. Nov 2008 B2
7454200 Cai et al. Nov 2008 B2
7454510 Kleyman et al. Nov 2008 B2
7486664 Swartz Feb 2009 B2
7486667 Feuer Feb 2009 B2
7512117 Swartz Mar 2009 B2
7565131 Rollender et al. Jul 2009 B2
7573982 Breen et al. Aug 2009 B2
7580886 Schulz Aug 2009 B1
7587036 Wood et al. Sep 2009 B2
7593390 Lebizay Sep 2009 B2
7593884 Rothman et al. Sep 2009 B2
7599944 Gaurav et al. Oct 2009 B2
7639792 Qiu et al. Dec 2009 B2
7644037 Ostrovsky Jan 2010 B1
7647500 Machiraju et al. Jan 2010 B2
7657011 Zielinski et al. Feb 2010 B1
7664495 Bonner et al. Feb 2010 B1
7676215 Chin et al. Mar 2010 B2
7676431 O'Leary et al. Mar 2010 B2
7680114 Yazaki et al. Mar 2010 B2
7680737 Smith et al. Mar 2010 B2
7702308 Rollender Apr 2010 B2
7715821 Rollender May 2010 B2
7734544 Schleicher Jun 2010 B2
7738384 Pelletier Jun 2010 B2
7764777 Wood et al. Jul 2010 B2
7764944 Rollender Jul 2010 B2
7765261 Kropivny Jul 2010 B2
7765266 Kropivny Jul 2010 B2
7797459 Roy et al. Sep 2010 B1
7882011 Sandhu et al. Feb 2011 B2
7894441 Yazaki et al. Feb 2011 B2
7899742 Berkert et al. Mar 2011 B2
7907551 Croy et al. Mar 2011 B2
7929955 Bonner Apr 2011 B1
7944909 James May 2011 B2
7950046 Kropivny May 2011 B2
7958233 Fernández Gutierrez Jun 2011 B2
7965645 Pelletier Jun 2011 B2
7979529 Kreusch et al. Jul 2011 B2
7995589 Sollee et al. Aug 2011 B2
8024785 Andress et al. Sep 2011 B2
8027333 Grabelsky et al. Sep 2011 B2
8041022 Andreasen et al. Oct 2011 B1
8050273 Gass Nov 2011 B2
8060887 Kropivny Nov 2011 B2
8078164 Ganesan Dec 2011 B2
8111690 Hussain et al. Feb 2012 B2
8116307 Thesayi et al. Feb 2012 B1
8125982 Feuer Feb 2012 B2
8127005 Fernández Gutierrez Feb 2012 B2
8145182 Rudolf et al. Mar 2012 B2
8161078 Gaurav et al. Apr 2012 B2
8166533 Yuan Apr 2012 B2
8166547 Bevan et al. Apr 2012 B2
8189568 Qiu et al. May 2012 B2
8190739 Fernández Gutierrez May 2012 B2
8200575 Torres et al. Jun 2012 B2
8204044 Lebizay Jun 2012 B2
8219115 Nelissen Jul 2012 B1
8223927 Di Serio et al. Jul 2012 B2
8228837 Sheriff et al. Jul 2012 B2
8228897 Mitchell Jul 2012 B2
8243730 Wong et al. Aug 2012 B1
8244204 Chen et al. Aug 2012 B1
8275404 Berger et al. Sep 2012 B2
8300632 Davis et al. Oct 2012 B2
8306063 Erdal et al. Nov 2012 B2
8315521 Leiden et al. Nov 2012 B2
8363647 Fangman et al. Jan 2013 B2
8364172 Guanfeng et al. Jan 2013 B2
8396445 Crawford et al. Mar 2013 B2
8410907 Twitchell, Jr. Apr 2013 B2
8417791 Peretz et al. Apr 2013 B1
8422507 Björsell et al. Apr 2013 B2
8423791 Yu et al. Apr 2013 B1
8427981 Wyss et al. Apr 2013 B2
8437340 James May 2013 B2
8462915 Breen et al. Jun 2013 B2
8468196 Roskind et al. Jun 2013 B1
8493931 Nix Jul 2013 B1
8509225 Grabelsky et al. Aug 2013 B2
8526306 Jungck et al. Sep 2013 B2
8532075 Rassool et al. Sep 2013 B2
8537805 Björsell et al. Sep 2013 B2
8542815 Perreault et al. Sep 2013 B2
8543477 Love et al. Sep 2013 B2
8599747 Saleem et al. Dec 2013 B1
8599837 Kyle Dec 2013 B2
8605714 Lebizay Dec 2013 B2
8605869 Mobarak et al. Dec 2013 B1
8607323 Yuan Dec 2013 B2
8611354 Keränen et al. Dec 2013 B2
8625578 Roy et al. Jan 2014 B2
8627211 Kropivny Jan 2014 B2
8630234 Björsell et al. Jan 2014 B2
8634838 Hellwig et al. Jan 2014 B2
8675566 Huttunen et al. Mar 2014 B2
8682919 Golliher Mar 2014 B1
8702505 Kropivny Apr 2014 B2
8713098 Adya et al. Apr 2014 B1
8724643 Feuer May 2014 B2
8749610 Gossweiler et al. Jun 2014 B1
8750290 Vance et al. Jun 2014 B2
8763081 Bogdanovic et al. Jun 2014 B2
8767717 Siegel et al. Jul 2014 B2
8768951 Crago Jul 2014 B2
8774171 Mitchell Jul 2014 B2
8774378 Björsell et al. Jul 2014 B2
8774721 Hertel et al. Jul 2014 B2
8780703 Eidelson et al. Jul 2014 B1
8792374 Jain et al. Jul 2014 B1
8792905 Li et al. Jul 2014 B1
8804705 Fangman et al. Aug 2014 B2
8805345 Ling et al. Aug 2014 B2
8810392 Teller et al. Aug 2014 B1
8819566 Mehin et al. Aug 2014 B2
8837360 Mishra et al. Sep 2014 B1
8838539 Ashcraft et al. Sep 2014 B1
8848887 Willman et al. Sep 2014 B2
8862701 Havriluk Oct 2014 B2
8885609 Nix Nov 2014 B2
8903051 Li et al. Dec 2014 B2
8903360 Celi, Jr. et al. Dec 2014 B2
8909556 Huxham Dec 2014 B2
8938209 Crawford et al. Jan 2015 B2
8938534 Le et al. Jan 2015 B2
8948061 Sridhar Feb 2015 B2
8972612 Le et al. Mar 2015 B2
8982719 Seetharaman et al. Mar 2015 B2
8995428 Haster Mar 2015 B2
9003306 Mehin et al. Apr 2015 B2
20010027478 Meier et al. Oct 2001 A1
20010052081 McKibben et al. Dec 2001 A1
20020002041 Lindgren et al. Jan 2002 A1
20020018445 Kobayashi Feb 2002 A1
20020051518 Bondy et al. May 2002 A1
20020116464 Mak Aug 2002 A1
20020122391 Shalit Sep 2002 A1
20020141352 Fangman et al. Oct 2002 A1
20030012196 Ramakrishnan Jan 2003 A1
20030095539 Feuer May 2003 A1
20030179747 Pyke et al. Sep 2003 A1
20030200311 Baum Oct 2003 A1
20030219103 Rao et al. Nov 2003 A1
20040022237 Elliott et al. Feb 2004 A1
20040034793 Yuan Feb 2004 A1
20040157629 Kallio et al. Aug 2004 A1
20040165709 Pence et al. Aug 2004 A1
20040181599 Kreusch et al. Sep 2004 A1
20040202295 Shen et al. Oct 2004 A1
20040203565 Chin et al. Oct 2004 A1
20040203582 Dorenbosch et al. Oct 2004 A1
20040240439 Castleberry et al. Dec 2004 A1
20040255126 Reith Dec 2004 A1
20050025043 Mussman et al. Feb 2005 A1
20050063519 James Mar 2005 A1
20050083911 Grabelsky et al. Apr 2005 A1
20050094651 Lutz et al. May 2005 A1
20050131813 Gallagher et al. Jun 2005 A1
20050169248 Truesdale et al. Aug 2005 A1
20050171898 Bishop et al. Aug 2005 A1
20050174937 Scoggins et al. Aug 2005 A1
20050177843 Williams Aug 2005 A1
20050188081 Gibson et al. Aug 2005 A1
20050190892 Dawson et al. Sep 2005 A1
20050192897 Rogers et al. Sep 2005 A1
20050192901 McCoy et al. Sep 2005 A1
20050198499 Salapaka et al. Sep 2005 A1
20050202799 Rollender Sep 2005 A1
20050222952 Garrett et al. Oct 2005 A1
20050267842 Weichert et al. Dec 2005 A1
20050287979 Rollender Dec 2005 A1
20060006224 Modi Jan 2006 A1
20060007940 Sollee et al. Jan 2006 A1
20060013266 Vega-Garcia et al. Jan 2006 A1
20060030290 Rudolf et al. Feb 2006 A1
20060036522 Perham Feb 2006 A1
20060072547 Florkey et al. Apr 2006 A1
20060072550 Davis et al. Apr 2006 A1
20060078094 Breen et al. Apr 2006 A1
20060093135 Fiatal et al. May 2006 A1
20060095320 Jones May 2006 A1
20060111116 Palmer et al. May 2006 A1
20060116892 Grimes et al. Jun 2006 A1
20060142011 Kallio Jun 2006 A1
20060146797 Lebizay Jul 2006 A1
20060153342 Sasaki Jul 2006 A1
20060160565 Singh et al. Jul 2006 A1
20060177035 Cope et al. Aug 2006 A1
20060189303 Rollender Aug 2006 A1
20060195398 Dheer et al. Aug 2006 A1
20060205383 Rollender et al. Sep 2006 A1
20060209768 Yan et al. Sep 2006 A1
20060248186 Smith Nov 2006 A1
20060251056 Feuer Nov 2006 A1
20060258328 Godoy Nov 2006 A1
20060264200 Laiho et al. Nov 2006 A1
20060268921 Ekstrom et al. Nov 2006 A1
20060281437 Cook Dec 2006 A1
20070016524 Diveley et al. Jan 2007 A1
20070036143 Alt et al. Feb 2007 A1
20070047548 Yazaki et al. Mar 2007 A1
20070053382 Bevan et al. Mar 2007 A1
20070092070 Croy et al. Apr 2007 A1
20070112964 Guedalia et al. May 2007 A1
20070115935 Qiu et al. May 2007 A1
20070121593 Vance et al. May 2007 A1
20070127676 Khadri Jun 2007 A1
20070174469 Andress et al. Jul 2007 A1
20070217354 Buckley Sep 2007 A1
20070220038 Crago Sep 2007 A1
20070253418 Shiri et al. Nov 2007 A1
20070253429 James Nov 2007 A1
20070263609 Mitchell Nov 2007 A1
20070297376 Gass Dec 2007 A1
20080013523 Nambakkam Jan 2008 A1
20080037715 Prozeniuk et al. Feb 2008 A1
20080056235 Albina et al. Mar 2008 A1
20080056243 Roy et al. Mar 2008 A1
20080056302 Erdal et al. Mar 2008 A1
20080063153 Krivorot et al. Mar 2008 A1
20080166999 Guedalia et al. Jul 2008 A1
20080167019 Guedalia et al. Jul 2008 A1
20080167020 Guedalia et al. Jul 2008 A1
20080167039 Guedalia et al. Jul 2008 A1
20080187122 Baker Aug 2008 A1
20080188198 Patel et al. Aug 2008 A1
20080188227 Guedalia et al. Aug 2008 A1
20080205378 Wyss et al. Aug 2008 A1
20080310599 Purnadi et al. Dec 2008 A1
20090003535 Grabelsky et al. Jan 2009 A1
20090028146 Kleyman et al. Jan 2009 A1
20090129566 Feuer May 2009 A1
20090135724 Zhang et al. May 2009 A1
20090135735 Zhang et al. May 2009 A1
20090141883 Bastien Jun 2009 A1
20090213839 Davis et al. Aug 2009 A1
20090214000 Patel et al. Aug 2009 A1
20090268615 Pelletier Oct 2009 A1
20090292539 Jaroker Nov 2009 A1
20090296900 Breen et al. Dec 2009 A1
20090325558 Pridmore et al. Dec 2009 A1
20100008345 Lebizay Jan 2010 A1
20100039946 Imbimbo et al. Feb 2010 A1
20100083364 Fernández Gutierrez Apr 2010 A1
20100086119 De Luca et al. Apr 2010 A1
20100105379 Bonner et al. Apr 2010 A1
20100114896 Clark et al. May 2010 A1
20100115018 Yoon et al. May 2010 A1
20100128729 Yazaki et al. May 2010 A1
20100142382 Jungck et al. Jun 2010 A1
20100150138 Björsell et al. Jun 2010 A1
20100150328 Perreault et al. Jun 2010 A1
20100172345 Björsell et al. Jul 2010 A1
20100177671 Qiu et al. Jul 2010 A1
20100220852 Willman et al. Sep 2010 A1
20100233991 Crawford et al. Sep 2010 A1
20100246589 Pelletier Sep 2010 A1
20100272242 Croy et al. Oct 2010 A1
20100278534 Leiden et al. Nov 2010 A1
20100316195 Di Serio et al. Dec 2010 A1
20110013541 Croy et al. Jan 2011 A1
20110072095 Havriluk Mar 2011 A1
20110122827 Björsell et al. May 2011 A1
20110153809 Ghanem et al. Jun 2011 A1
20110167164 Fernández Gutierrez Jul 2011 A1
20110176541 James Jul 2011 A1
20110201321 Bonner Aug 2011 A1
20110208859 Fernández Gutierrez Aug 2011 A1
20110235543 Seetharaman et al. Sep 2011 A1
20110255553 Bobba et al. Oct 2011 A1
20110261717 Akuzuwa et al. Oct 2011 A1
20110267986 Grabelsky et al. Nov 2011 A1
20110273526 Mehin et al. Nov 2011 A1
20110276903 Mehin et al. Nov 2011 A1
20110276904 Mehin et al. Nov 2011 A1
20110292929 Haster Dec 2011 A1
20120014383 Geromel et al. Jan 2012 A1
20120089717 Chen Apr 2012 A1
20120096145 Le et al. Apr 2012 A1
20120099599 Keranen et al. Apr 2012 A1
20120113981 Feuer May 2012 A1
20120155333 Yoon et al. Jun 2012 A1
20120170574 Huttunen et al. Jul 2012 A1
20120195236 Knight Aug 2012 A1
20120195415 Wyss et al. Aug 2012 A1
20120227101 Yuan Sep 2012 A1
20120250624 Lebizay Oct 2012 A1
20120259975 Le et al. Oct 2012 A1
20120270554 Hellwig et al. Oct 2012 A1
20120282881 Mitchell Nov 2012 A1
20120314699 Qiu et al. Dec 2012 A1
20130039226 Sridhar Feb 2013 A1
20130097308 Le et al. Apr 2013 A1
20130114589 Fangman et al. May 2013 A1
20130128879 Kyle May 2013 A1
20130148549 Crawford et al. Jun 2013 A1
20130173534 Nelakonda et al. Jul 2013 A1
20130223276 Padgett Aug 2013 A1
20130229950 Björsell et al. Sep 2013 A1
20130237198 Vashi et al. Sep 2013 A1
20130254301 Lin et al. Sep 2013 A1
20130272297 Breen et al. Oct 2013 A1
20130281147 Denman et al. Oct 2013 A1
20130287006 Nix Oct 2013 A1
20130310002 Celi, Jr. et al. Nov 2013 A1
20130318166 Jungck et al. Nov 2013 A1
20130329722 Perrault et al. Dec 2013 A1
20130329864 Björsell et al. Dec 2013 A1
20140010119 Björsell et al. Jan 2014 A1
20140016764 Björsell et al. Jan 2014 A1
20140024367 Björsell et al. Jan 2014 A1
20140101749 Yuan Apr 2014 A1
20140141884 Kropivny May 2014 A1
20140211789 Feuer Jul 2014 A1
20140215642 Huxham Jul 2014 A1
20140220944 Balasubramanian Aug 2014 A1
20140244393 Rimmer et al. Aug 2014 A1
20140247730 Thota et al. Sep 2014 A1
20140269624 Khay-Ibbat et al. Sep 2014 A1
20140307858 Li et al. Oct 2014 A1
20140321333 Björsell et al. Oct 2014 A1
20140324969 Riddle Oct 2014 A1
20140337961 Chien et al. Nov 2014 A1
20140337962 Brandstatter Nov 2014 A1
20140349602 Majumdar et al. Nov 2014 A1
Foreign Referenced Citations (133)
Number Date Country
PI 0718312-7 Nov 2013 BR
PI 0719682-2 Jan 2014 BR
2 218 218 Oct 1997 CA
2249668 Apr 1999 CA
2 299 037 Aug 2000 CA
2 437 275 Oct 2002 CA
2598200 Feb 2008 CA
2668025 May 2008 CA
2670510 Jun 2008 CA
2681984 Oct 2008 CA
2 690 236 Dec 2008 CA
2 659 007 Sep 2009 CA
2732148 Feb 2010 CA
2 778 905 Aug 2010 CA
2812174 Mar 2011 CA
1498029 May 2004 CN
1498482 May 2004 CN
1668137 Sep 2005 CN
1274114 Sep 2006 CN
101005503 Jul 2007 CN
101069390 Nov 2007 CN
101095329 Dec 2007 CN
101584150 Nov 2009 CN
101584166 Nov 2009 CN
101605342 Dec 2009 CN
1498029 May 2010 CN
101772929 Jul 2010 CN
101069390 Dec 2010 CN
102137024 Jul 2011 CN
102457494 May 2012 CN
102484656 May 2012 CN
102572123 Jul 2012 CN
101095329 Oct 2012 CN
101605342 Dec 2012 CN
102833232 Dec 2012 CN
101005503 Jan 2013 CN
101772929 Jul 2014 CN
102457494 Oct 2014 CN
602 01 827 Nov 2005 DE
11 2005 003 306 Jan 2008 DE
601 33 316 Jul 2008 DE
603 17 751 Nov 2008 DE
0 841 832 May 1998 EP
0 841 832 May 1999 EP
1 032 224 Aug 2000 EP
1 032 224 Aug 2000 EP
1 244 250 Sep 2002 EP
1 266 516 Dec 2002 EP
1 362 456 Nov 2003 EP
1 371 173 Dec 2003 EP
1 389 862 Feb 2004 EP
1 411 743 Apr 2004 EP
1 389 862 Nov 2004 EP
1 526 697 Apr 2005 EP
1 362 456 May 2005 EP
1 575 327 Sep 2005 EP
1 610 583 Dec 2005 EP
1 526 697 Mar 2006 EP
1 721 446 Nov 2006 EP
1 829 300 Sep 2007 EP
1 371 173 Nov 2007 EP
1 411 743 Nov 2007 EP
1 362 456 Mar 2008 EP
1 974 304 Oct 2008 EP
1 974 304 Oct 2008 EP
1 610 583 Aug 2009 EP
2 084 868 Aug 2009 EP
2 090 024 Aug 2009 EP
2 127 232 Dec 2009 EP
2 165 489 Mar 2010 EP
2 215 755 Aug 2010 EP
2 227 048 Sep 2010 EP
2 127 232 Mar 2011 EP
2 165 489 Mar 2011 EP
2 311 292 Apr 2011 EP
1 829 300 May 2012 EP
2 449 749 May 2012 EP
2 478 678 Jul 2012 EP
2 215 755 Oct 2012 EP
1 829 300 Nov 2012 EP
2 449 749 Mar 2014 EP
1 266 516 May 2014 EP
W00200902627 Sep 2009 ID
242009 Jun 2009 IN
292009 Jul 2009 IN
2011-199384 Oct 2011 JP
10-2009-0086428 (A) Aug 2009 KR
10-2009-0095621 (A) Sep 2009 KR
2009004811 Aug 2009 MX
2009005751 Aug 2009 MX
151991 Jun 2009 SG
152752 Jun 2009 SG
155474 Oct 2009 SG
WO 0150693 Jul 2001 WO
WO 0169899 Sep 2001 WO
WO 0169899 Sep 2001 WO
WO 0180587 Oct 2001 WO
WO 0189145 Nov 2001 WO
WO 02082728 Oct 2002 WO
WO 02082782 Oct 2002 WO
WO 02082782 Oct 2002 WO
WO 03027801 Apr 2003 WO
WO 2005084002 Sep 2005 WO
WO 2006067269 Jun 2006 WO
WO 2006072099 Jul 2006 WO
WO 2006078175 Jul 2006 WO
WO 2006078175 Jul 2006 WO
WO 2007044454 Apr 2007 WO
WO 2007056158 May 2007 WO
WO 2007087077 Aug 2007 WO
WO 2007087077 Aug 2007 WO
WO 2008027065 Mar 2008 WO
WO 2008052340 May 2008 WO
WO 2008064481 Jun 2008 WO
WO 2008085614 Jul 2008 WO
WO 2008085614 Jul 2008 WO
WO 2008086350 Jul 2008 WO
WO 2008086350 Jul 2008 WO
WO 2008103652 Aug 2008 WO
WO 2008116296 Oct 2008 WO
WO 2008085614 Dec 2008 WO
WO 2008151406 Dec 2008 WO
WO 2008151406 Dec 2008 WO
WO 2009070202 Jun 2009 WO
WO 2009070278 Jun 2009 WO
WO 2010012090 Feb 2010 WO
WO 2011000405 Jan 2011 WO
WO 2011032256 Mar 2011 WO
WO 2013013189 Jan 2013 WO
WO 2013120069 Aug 2013 WO
WO 2014066155 May 2014 WO
WO 2014117599 Aug 2014 WO
WO 2014166258 Oct 2014 WO
Non-Patent Literature Citations (58)
Entry
F. Baker et al. “RFC 3924—Cisco Architecture for Lawful Intercept in IP Networks.” Oct. 2004.
Cisco. “Lawful Intercept Requirements Summary.” http://www.faqs.org/rfcs/rfc3924.html. Nov. 8, 2006.
Sippy SIP B2BUA. “About Sippy RTPproxy.” http://www.rtpproxy.org. Jul. 15, 2009.
ETSI Technical Specification. “Lawful Interception (LI); Handover Interface and Service-Specific Details (SSD) for IP delivery; Part 5: Service-specific details for IP Multimedia Services.” Apr. 2008, 25 pgs, v.2.3.1, France.
M. Handley et al. “RFC 2543—SIP: Session Initiation Protocol.” Mar. 1999.
The International Search Report and Written Opinion of the International Searching Authority completed Feb. 6, 2008 for International Application No. PCT/CA2007/001956.
The International Search Report and Written Opinion of the International Searching Authority completed Mar. 3, 2008 for International Application No. PCT/CA2007/002150.
The International Search Report and Written Opinion of the International Searching Authority completed Jun. 6, 2008 for International Application No. PCT/CA2008/000545.
The International Preliminary Report on Patentability completed Feb. 13, 2009 for International Application No. PCT/CA2007/002150.
The International Preliminary Report on Patentability issued May 5, 2009 for International Application No. PCT/CA2007/001956.
The International Preliminary Report on Patentability issued Sep. 29, 2009 for International Application No. PCT/CA2008/000545.
The International Search Report and Written Opinion mailed Mar. 12, 2010 for International Application No. PCT/CA2009/001062.
The Written Opinion and International Search Report mailed Jun. 18, 2010 for International Application No. /CA2009/001317.
The International Preliminary Report on Patentability and Written Opinion of the International Searching Authority issued Feb. 1, 2011 for International Application No. PCT/CA2009/001062.
The International Preliminary Report on Patentability issued Mar. 20, 2012 for International Application No. PCT/CA2009/001317.
Townsley, et al.; “RFC 2661—Layer Two Tunneling Protocol ‘L2TP’ ”, Aug. 1999.
IP2Location, http://www.ip2location.com/; printed Jun. 20, 2012.
DOTS IP Address Validation, “Overview”, http://www.serviceobjects.com/products/dots—ipgeo.asp; printed Jun. 21, 2012.
List of North American Numbering Plan area codes, http://en.wikipedia.org/wiki/List—of—NANP—area—codes; printed Jun. 20, 2012.
DOTS Phone Exchange, “Overview”, http://www.serviceobjects.com/demos/PhoneExchangeDemo.asp (URL no longer valid, current URL is http://www.serviceobjects.com/products/phone/phone-exchange); printed Jun. 21, 2012.
Rosenberg, et al.; “RFC 3261—SIP: Session Initiation Protocol”, Jun. 2002.
Lind AT&T S: “ENUM Call Flows for VoIP Interworking; draft-lind-enum-callflows-03.txt”, Feb. 1, 2002, No. 3, pp. 1-17, XP015004214, ISSN: 0000-0004.
IETF ENUM WG R Stastny OEFEG Informational Numbering for VOIP and Other IP Communications: “Numbering for ViOP and other IP Communications, draft-stastny-enum-numbering-voip-00.txt”, Oct. 1, 2003, pp. 1-43, XP015035676, ISSN: 0000-0004.
Supplementary European Search Report for European Application No. 07816106, dated Jun. 18, 2012.
Supplementary European Search Report for European Application No. 07816106, dated Nov. 2, 2012.
Wikipedia, “International mobile subscriber identity (IMSI),” http://en.wikipedia.org/wiki/IMSI, Jul. 16, 2013.
Wikipedia, “Roaming,” http://en.wikipedia.org/wiki/Roaming, Jul. 16, 2013.
Extended European Search Report dated Dec. 20, 2013 for European Patent Application No. EP 09 849 358.8 which shares priority of International Application No. PCT/CA2009/001317 with U.S. Appl. No. 13/496,864, which is the parent of captioned U.S. Appl. No. 14/092,831.
Extended European Search Report dated Nov. 2, 2012 for European Application No. EP 07 855 436.7.
Extended European Search Report dated Apr. 16, 2014 for European Patent Application No. EP 09 802 316.1 which shares priority of U.S. Appl. No. 61/129,898, filed Jul. 28, 2008 with U.S. Appl. No. 13/056,277, filed Jan. 27, 2011, which is related to captioned U.S. Appl. No. 14/092,831, and cites above-identified reference Nos. 1 and 2.
Baker et al., “Cisco Support for Lawful Intercept in IP Networks,” Internet Draft—working document of the Internet Engineering Task Force (IETF), accessible at http://www.ietf.org/ietf/lid-abstracts.txt, Apr. 2003, expires Sep. 30, 2003, pp. 1-15.
Bhushan et al., “Federated Accounting: Service Charging and Billing in a Business-to-Business Environment,” 0-7803-6719-7/01, © 2001 IEEE, pp. 107-121.
Jajszczyk et al., “Emergency Calls in Flow-Aware Networks,” IEEE Communications Letters, vol. 11, No. 9, Sep. 2007, pp. 753-755.
Kim et al., “An Enhanced VoIP Emergency Services Prototype,” Proceedings of the 3rd International ISCRAM Conference (B. Van de Walle and M. Turoff, eds.), Newark, NJ (USA), May 2006, pp. 1-8.
Kornfeld et al., “DVB-H and IP Datacast—Broadcast to Handheld Devices,” IEEE Transactions on Broadcasting, vol. 53, No. 1, Mar. 2007, pp. 161-170.
Kortebi et al., “SINR-Based Routing in Multi-Hop Wireless Networks to Improve VoIP Applications Support,” 1-4244-0667-6/07, © 2007 IEEE, pp. 491-496.
Lee et al., “VoIP Interoperation with KT-NGN,” in The 6th International Conference on Advanced Communication Technology, Technical Proceedings, 2004, pp. 126-128, accompanied by Title and Contents—4 pages.
Lin et al., “Effective VoIP Call Routing in WLAN and Cellular Integration,” IEEE Communications Letters, vol. 9, No. 10, Oct. 2005, pp. 874-876.
Ma et al., “Realizing MPEG4 Video Transmission Based on Mobile Station over GPRS,” 0-7803-9335-X/05, © 2005 IEEE, pp. 1241-1244.
Mintz-Habib et al., “A VoIP Emergency Services Architecture and Prototype,” {mm2571,asr,hgs,xiaotaow}@cs.columbia.edu, 0-7803-9428-3/05, © 2005 IEEE, pp. 523-528.
Munir, Muhammad Farukh, “Study of an Adaptive Scheme for Voice Transmission on IP in a Wireless Networking Environment 802.11e,” Dept. of Networks and Distributed Computing, Ecole Supérieure En Sciences Informatiques (ESSI), Université De Nice, Jun. 2005, (pp. 1-35), Best Available Copy—pp. 1-11.
Sripanidkulchai et al., “Call Routing Management in Enterprise VoIP Networks,” Copyright 2007 ACM 978-1-59593-788-9/07/0008, 6 pages.
Thernelius, Fredrik, “SIP, NAT, and Firewalls,” Master's Thesis, ERICSSON, Department of Teleinformatics, May 2000, pp. 1-69.
Trad et al., “Adaptive VoIP Transmission over Heterogeneous Wired/Wireless Networks,” V. Roca and F. Rousscau (Eds.): MIPS 2004, LNCS 3311, pp. 25-36, 2004, © Springer-Verlag Berlin Heidelberg 2004.
Yu et al., “Service-Oriented Issues: Mobility, Security, Charging and Billing Management in Mobile Next Generation Networks,” IEEE BcN 2006, 1-4244-0146-1/06, © 2006 IEEE, pp. 1-10.
ETSI TS 122 173 V12.7.0 (Oct. 2014) Digital cellular telecommunications system (Phase 2+); Technical Specification 8.2.2.3—Interoperability with PSTN/ISDN and mobile CS Networks, Contents and Forward, pp. 1-9; Sec. 8, pp. 14-17.
Huitema et al., “Architecture for Internet Telephony Service for Residential Customers,” Academic Paper for Bellcore, Mar. 2, 1999, pp. 1-14.
Stallings, William, “The Session Initiation Protocol,” The Internet Protocol Journal, vol. 6, No. 1, Mar. 2003, pp. 20-30.
Canadian Office Action dated Jan. 27, 2015 for Canadian Patent Application No. CA 2,681,984.
Chinese Office Action dated Mar. 24, 2011 for Chinese Patent Application No. CN 200780049791.5.
Chinese Office Action dated Jun. 23, 2011 for Chinese Patent Application No. 200780049136.X.
Indonesian Examination Report dated Jul. 5, 2012 for Indonesian Patent Application No. W-00200901414.
Indonesian Examination Report dated Feb. 8, 2013 for Indonesian Patent Application No. W-00200901165.
Mexican Exam Report dated Jul. 11, 2011 for Mexican Patent Application No. MX/a/2009/004811.
Mexican Notice of Allowance dated Sep. 2, 2011 for Mexican Patent Application No. MX/a/2009/005751.
Ketchel et al. “U-PAI: A universal payment application interface” Second UNISEX Workshop on Electronic Commerce Proceedings, 1996-8, pp. 1-17.
Moberg & Drummond, “MIME-Based Secure Peer-to-Peer Business Data Interchange Using HTTP, Applicability Statement 2 (AS2),” Network Working Group, Request for Comments: 4130, Category: Standards Track, Copyright © The Internet Society Jul. 2005, pp. 1-47.
Abrazhevich, Dennis. “Electronic Payment Systems: a User-Centered Perspective and Interaction Design,” Thesis under the auspices of the J.F. Schouten School for User-System Interaction Research, Technische Universiteit Eindhoven, Netherlands, 2004, pp. Cover page-p. 189.
Related Publications (1)
Number Date Country
20140153477 A1 Jun 2014 US
Continuations (1)
Number Date Country
Parent 13496864 US
Child 14092831 US