Establishing a connection for a video call
First Claim
1. A method, performed in a system that includesan originating device,a first network address translation (NAT) device that performs NAT for the originating device,a terminating device,a second NAT device that performs NAT for the terminating device,a videotelephony server, anda push notification server,the method comprising:
- sending, by the originating device via the first NAT device, a first message to the videotelephony server that includes first candidate information, wherein the first candidate information has a unique identifier and includes an Internet Protocol (IP) address and a port number;
sending, by the videotelephony server to the push notification server, the first message including the first candidate information;
sending, by the push notification server via the second NAT device, the first message including the first candidate information to the terminating device;
generating, by the terminating device, a first list of candidate pairs based on the first candidate information in the first message and second candidate information, wherein the second candidate information has a unique identifier and includes an IP address and a port number;
sending, by the terminating device via the second NAT device, a second message to the videotelephony server including the second candidate information;
adjusting, by the videotelephony server, the IP address and the port number in the second candidate information to create an adjusted second candidate information, such that, in the adjusted second candidate information, the IP address and the port number are 0.0.0.0;
0;
sending, by the videotelephony server, a third message to the push notification server including the adjusted second candidate information;
sending, by the push notification server via the first NAT device, the third message to the originating device including the adjusted second candidate information;
sending, by the terminating device, a binding request to the originating device, the binding request including the first list of candidate pairs;
generating, by the originating device, a second list of candidate pairs based on the first candidate information and the adjusted second candidate information; and
determining, by the originating device, if the binding request is received within a predetermined amount of time after the third message.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for conducting a video call between an originating device and a terminating device by establishing a peer-to-peer (P2P) connection between the devices. The originating and terminating devices exchange candidate information through a P2P server, except that the candidate information for the terminating device is altered before arriving at the originating device. The altering includes changing the IP address and corresponding port for each candidate. The originating device uses the altered candidate information to derive new candidate pairs that are sent to the terminating device, which uses the new candidate pairs to also derive a second candidate list. If the candidate pairs match, a P2P connection is established between the devices.
-
Citations
17 Claims
-
1. A method, performed in a system that includes
an originating device, a first network address translation (NAT) device that performs NAT for the originating device, a terminating device, a second NAT device that performs NAT for the terminating device, a videotelephony server, and a push notification server, the method comprising: -
sending, by the originating device via the first NAT device, a first message to the videotelephony server that includes first candidate information, wherein the first candidate information has a unique identifier and includes an Internet Protocol (IP) address and a port number; sending, by the videotelephony server to the push notification server, the first message including the first candidate information; sending, by the push notification server via the second NAT device, the first message including the first candidate information to the terminating device; generating, by the terminating device, a first list of candidate pairs based on the first candidate information in the first message and second candidate information, wherein the second candidate information has a unique identifier and includes an IP address and a port number; sending, by the terminating device via the second NAT device, a second message to the videotelephony server including the second candidate information; adjusting, by the videotelephony server, the IP address and the port number in the second candidate information to create an adjusted second candidate information, such that, in the adjusted second candidate information, the IP address and the port number are 0.0.0.0;
0;sending, by the videotelephony server, a third message to the push notification server including the adjusted second candidate information; sending, by the push notification server via the first NAT device, the third message to the originating device including the adjusted second candidate information; sending, by the terminating device, a binding request to the originating device, the binding request including the first list of candidate pairs; generating, by the originating device, a second list of candidate pairs based on the first candidate information and the adjusted second candidate information; and determining, by the originating device, if the binding request is received within a predetermined amount of time after the third message. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method, comprising:
at an originating device; receiving, from a network address translation (NAT) device associated with the originating device, first candidate information related to the originating device, wherein each candidate of the first candidate information has a unique identifier and includes a respective Internet Protocol (IP) address and corresponding port number; sending a message including the first candidate information, wherein the message is bound for a terminating device with which the originating device is attempting to establish a peer-to-peer (P2P) connection, the message being routed through a videotelephony server and a push notification server; receiving second candidate information related to the terminating device, wherein each candidate of the second candidate information includes altered IP address and corresponding altered port number, wherein the altered IP address and altered port number is different from an actual IP address and port number for each candidate, wherein the altered IP address and corresponding altered port number are 0.0.0.0;
0;generating a first list of candidate pairs based on the first candidate information and the second candidate information; receiving a binding request including a second list of candidate pairs from the terminating device within a predetermined period of time from receiving the second candidate information; determining if any of the candidate pairs from the first list match any of the candidate pairs from the second list; when there is no match between the candidate pairs from the first list and the second list, deriving a new candidate related to the terminating device based on a source address and port number included in the binding request; generating a new candidate pair based on the new candidate and the first candidate information; generating a binding response including the new candidate pair and a derivation indication, wherein the derivation indication indicates to the terminating device that a second new candidate is to be derived; sending the binding response to the terminating device; sending a second binding request to the terminating device including the new candidate pair; receiving a second binding response from the terminating device including the new candidate pair; and establishing the peer-to-peer (P2P) connection with the terminating device. - View Dependent Claims (16)
-
17. A method, comprising:
at a terminating device; receiving, from a network address translation (NAT) device associated with the terminating device, first candidate information related to the terminating device, receiving second candidate information related to an originating device that is attempting to establish a peer-to-peer (P2P) connection with the terminating device, wherein each candidate of the first and second candidate information has a unique identifier and includes a respective Internet Protocol (IP) address and corresponding port number; sending a message including the first candidate information, wherein the message is bound for the originating device, the message being routed through a videotelephony server that alters the IP address and corresponding port number or each candidate of the first candidate information such that the altered IP address and corresponding altered port number are 0.0.0.0;
0;generating a first list of candidate pairs based on the first candidate information and the second candidate information; sending a binding request including the first list of candidate pairs to the originating device; receiving a binding response from the originating device, the binding response including a second list of candidate pairs and a derivation indication, wherein one of the candidate pairs of the second list includes a new candidate derived by the originating device, wherein the derivation indication indicates to the terminating device that a second new candidate is to be derived by the terminating device; deriving the second new candidate related to the terminating device based on an IP address and port number of the new candidate of the one of the candidate pairs of the second list; generating a new candidate pair based on the second new candidate and the second candidate information; receiving a second binding request from the originating device including the new candidate pair; sending a second binding response including the new candidate pair; and establishing the peer-to-peer (P2P) connection with the originating device.
Specification