Voice user interface entity resolution
US-11238855-B1 · Feb 1, 2022 · US
US12058096B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12058096-B2 |
| Application number | US-202017618123-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 9, 2020 |
| Priority date | Jun 11, 2019 |
| Publication date | Aug 6, 2024 |
| Grant date | Aug 6, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method for establishing an end-to-end network connection includes obtaining, by a first node, super node information from a server, obtaining, by the first node, a network address translation (NAT) type of the first node, obtaining, by the first node, a NAT type of a to-be-connected second node from the server, determining, by the first node based on the NAT type of the first node and the NAT type of the second node, whether to use a relay node, and selecting, by the first node, the relay node from super nodes to establish a connection to the second node.
Opening claim text (preview).
What is claimed is: 1. A method implemented by a first node, wherein the method comprises: obtaining, from a server, super node information of super nodes; sending, to the super nodes, a first data packet; receiving, from the super nodes in response to the first data packet, a second data packet; determining a first network address translation (NAT) type of the first node based on the second data packet; obtaining, from the server, a second NAT type of a second node; determining, based on the first NAT type and the second NAT type, whether to use a relay node from the super nodes; selecting, in response to determining to use the relay node, a super node from the super nodes as the relay node; establishing a connection to the second node using the relay node; selecting a first super node and a second super node from the super nodes; sending a third data packet to the first super node to enable the first super node to obtain a first source Internet Protocol (IP) address of the third data packet and a first source port of the third data packet and to instruct the second super node to send a fourth data packet to the first source IP address and the first source port; and determining that the first NAT type is a full cone NAT when the first node receives the fourth data packet. 2. The method of claim 1 , further comprising: sending, to at least two super nodes, data packets; and determining the first NAT type based on a fifth data packet received from the at least two super nodes and a parameter of the fifth data packet. 3. The method of claim 1 , further comprising: sending a fifth data packet to the second super node when the first node does not receive the fourth data packet, wherein the fifth data packet enables the second super node to obtain a second source IP address of the fifth data packet and a second source port of the fifth data packet and to analyze whether the first source port is the same as the second source port; and determining that the first NAT type is a symmetric NAT when the first source port is different from the second source port. 4. The method of claim 3 , further comprising: determining whether a sixth data packet is received when the first source port is the same as the second source port, wherein the sixth data packet is from the second super node to the second source IP address and the second source port using a public port that is different from a destination port of the fifth data packet; determining that the first NAT type is a restricted cone NAT when the first node receives the sixth data packet; and determining that the first NAT type is a port restricted cone NAT when the first node does not receive the sixth data packet. 5. The method of claim 1 , further comprising: determining whether the super node information comprises historically selected super nodes; and selecting, based on determining that the super node information comprises the historically selected super nodes, the first super node and the second super node from the historically selected super nodes. 6. The method of claim 1 , further comprising: obtaining online node information from the server; determining a node identity (ID) of the second node from the online node information according to a user instruction; sending, to the server, a query instruction carrying the node ID; and receiving, from the server based on the query instruction, the second NAT type. 7. The method of claim 1 , further comprising determining to use the relay node either when the first NAT type and the second NAT type are a restricted cone NAT or a port restricted cone NAT or when one of the first NAT type or the second NAT type is a symmetric NAT and the other is the restricted cone NAT, wherein the relay node is used by the first node and the second node to perform User Datagram Protocol (UDP) hole punching. 8. The method of claim 1 , further comprising performing instant messaging (IM) with the second node using the relay node, wherein the instant messaging comprises at least one of a voice communication, a video communication, an image transmission, a text transmission or a file transmission. 9. A first node comprising: a memory configured to store program instructions; and a processor coupled to the memory, wherein when executed by the processor, the program instructions cause the first node to: obtain, from a server, super node information of super nodes; send a first data packet to the super nodes; receive, from the super nodes in response to the first data packet, a second data packet; determine a first network address translation (NAT) type of the first node based on the second data packet; obtain, from the server, a second NAT type of a second node; determine, based on the first NAT type and the second NAT type, whether to use a relay node from the super nodes; select, in response to determining to use the relay node, a super node from the super nodes as the relay node; establish a connection to the second node using the relay node; select a first super node and a second super node from the super nodes; send a third data packet to the first super node to enable the first super node to obtain a first source Internet Protocol (IP) address of the third data packet and a first source port of the first data packet and to instruct the second super node to send a fourth data packet to the first source IP address and the first source port; and determine that the first NAT type is a full cone NAT when the first node receives the fourth data packet. 10. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: send data packets to at least two super nodes; and determine the first NAT type based on a fifth data packet received from the at least two super nodes and a parameter of the fifth data packet. 11. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: send a fifth data packet to the second super node when the first node does not receive the fourth data packet, wherein the fifth data packet enables the second super node to obtain a second source IP address of the fifth data packet and a second source port of the fifth data packet and to analyze whether the first source port is the same as the second source port; and determine that the second NAT type is a symmetric NAT when the first source port is different from the second source port. 12. The first node of claim 11 , wherein when executed by the processor, the program instructions further cause the first node to: determine whether a sixth data packet is received when the first source port is the same as the second source port, wherein the sixth data packet is from the second super node to the second source IP address and the second source port using a public port that is different from a destination port of the fifth data packet; and determine that the first NAT type is a restricted cone NAT when the first node receives the sixth data packet; and determine that the first NAT type is a port restricted cone NAT when the first node does not receive the sixth data packet. 13. The first node of claim 9 , wherein when executed by the processor, the program instructions further cause the first node to: determine whether the super node information comprises historically selected super nodes; and select, in response to determining that the super node information comprises the historically selected super nodes, the first super node and the second super node from the historically selected super nodes. 14. The first n
NAT traversal · CPC title
using selective relaying for reaching a BTS [Base Transceiver Station] or an access point · CPC title
based on transmission quality or channel quality · CPC title
Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70) · CPC title
over a relay server, e.g. traversal using relay for network address translation [TURN] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.