WO2015192682A1 - Communication method and terminal - Google Patents
Communication method and terminal Download PDFInfo
- Publication number
- WO2015192682A1 WO2015192682A1 PCT/CN2015/076660 CN2015076660W WO2015192682A1 WO 2015192682 A1 WO2015192682 A1 WO 2015192682A1 CN 2015076660 W CN2015076660 W CN 2015076660W WO 2015192682 A1 WO2015192682 A1 WO 2015192682A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- point
- terminal
- channel
- data
- point channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Definitions
- the present invention relates to the field of communications, and in particular, to a communication method and a terminal.
- Point-to-point also known as peer-to-peer or peer-to-peer network, English: Peer to Peer; P2P for short
- VoIP Voice over Internet Protocol
- point-to-point calls are a type of call in which the data stream of a call does not transit through the intermediate server.
- IP address Internet Protocol Address
- NAT Network Address Translation
- Network address translation is a wide area network (WAN) technology. It is a conversion technology that converts a private (reserved) address into a legal IP address. It is also a process of converting an IP address in an IP packet header into another IP address. Widely used in various types of Internet access methods and various types of networks. NAT solves the problem of insufficient IP addresses, and it can effectively avoid attacks from outside the network, hiding and protecting computers inside the network.
- VoIP widely adopts session initiation protocol (English: Session Initiation) Protocol; abbreviation: SIP) (RFC3261) establishes a call and uses an interactive connection establishment (English: Interactive Connectivity Establishment; ICE) (RFC5245) technology to traverse network address translation (English: Network Address Translation; referred to as: NAT) device implementation VoIP peer-to-peer calls.
- SIP Session Initiation Protocol
- ICE Interactive Connectivity Establishment
- NAT Network Address Translation
- the ICE technology is based on the extension of the request/response model. It works by using the Session Description Protocol (SDP) request and response message to carry multiple types of IP addresses of the client (such as local IP, NAT). The IP addresses assigned by the device, etc., then perform connectivity detection of the peer-to-peer channels for these addresses to find the available and optimal point-to-point channels.
- SDP Session Description Protocol
- FIG. 1 is a flow chart of a VoIP point-to-point call using ICE technology in the prior art. As shown in FIG. 1 , the VoIP point-to-point call process using ICE technology has the following steps:
- the calling end initiates an Invite request to the called end, and carries the local candidate address in the SDP of the Invite.
- the called end After receiving the Invite of the calling end, the called end saves the candidate address of the calling end and initiates a STUN binding request to the STUN/TURN server to obtain the candidate address of the local end.
- the called end sends a 200ok response message to the calling end, and carries the local candidate address in the SDP of the response message.
- the calling end sends an acknowledgement message to the called end (English: Acknowledgement; abbreviation: ACK).
- the calling end initiates connectivity detection and negotiation after sending an ACK
- the called end initiates connectivity detection and negotiation after receiving the ACK.
- the calling party and the called party After the connectivity detection ends and the peer-to-peer channel is negotiated, the calling party and the called party start to send and receive media packets (rtp, rtcp) through the channel, and the user at the calling end and the user at the called end can talk.
- the ringing tone of the calling party and the called party ends.
- the call of the calling party and the called party is established, but at this time, the calling party and the called party are performing the connectivity detection and negotiation shown in step (6), and the media packet is not sent and received between the calling end and the called end, so the calling end The user and the user on the called end cannot hear any sound or see any image, that is, there is no data during this period.
- the calling end and the called end can exchange data, that is, in the In the VoIP based on the point-to-point channel, since the connectivity detection and negotiation of the point-to-point channel is required, there is a time period without data exchange after the call is established, and no sound is heard for the user during this time period. If you don't see any images, the user experience is poor. Especially when the network environment is poor, the connectivity detection takes a long time, and this time period will be longer, which will bring users a worse user experience.
- the embodiment of the present invention provides a communication method and a terminal, which are used to solve the technical problem of a time period of no data exchange existing in a network call through a point-to-point channel in the prior art.
- a first aspect of the embodiments of the present invention provides a communication method, including:
- the first terminal exchanges data with the second terminal through a non-point-to-point channel, and establishes a point-to-point channel between the first terminal and the second terminal.
- the first terminal After the point-to-point channel is established, the first terminal enables the point-to-point channel to exchange data with the second terminal;
- the first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel;
- the first terminal stops exchanging data with the second terminal in the non-point-to-point channel.
- the establishing a point-to-point channel between the first terminal and the second terminal includes:
- the first terminal initiates an ICE connectivity detection and negotiation with the second terminal, and establishes a point-to-point channel between the first terminal and the second terminal by using the ICE connectivity detection and negotiation.
- the first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and specifically includes:
- the first terminal sorts data packets in the first group of data according to a sequence number of the first group of data received through the non-point-to-point channel, and according to the second group of data received through the point-to-point channel
- the serial number sorts the data packets in the second set of data
- the method further includes:
- the first terminal sends a first heartbeat packet to the second terminal by using the non-point-to-point channel, where the first heartbeat packet is used to maintain the non-point-to-point channel.
- the method further include:
- the first terminal switches the data exchange channel with the second terminal to the non-point-to-point channel.
- the method also includes:
- the first terminal sends a second heartbeat packet to the second terminal by using the point-to-point channel, where the second heartbeat packet is used to maintain the point-to-point channel.
- the method further includes:
- the first terminal sends a close message to the second terminal by using the non-point-to-point channel, where the close message is used to notify the second terminal to close the non-point-to-point channel;
- the first terminal closes the non-point-to-point channel.
- the second aspect of the embodiment of the present invention further provides a terminal, including:
- connection module configured to establish a communication connection with the second terminal, and establish a point-to-point channel with the second terminal after the communication connection is established;
- a media control module configured to exchange data with the second terminal through a non-point-to-point channel when the connection module and the second terminal have established a communication connection, and enable the point-to-point channel after the point-to-point channel is established Exchanging data with the second terminal; and synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and the first data stream and the second data stream After the synchronization, the exchange of data with the second terminal is stopped at the non-point-to-point channel.
- the establishing, by the connection module, the point-to-point channel between the terminal and the second terminal the method further includes: starting the terminal and the second terminal Between the ICE connectivity detection and negotiation, the point-to-point channel between the first terminal and the second terminal is established by the ICE connectivity detection and negotiation.
- the media control module performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, including: the media.
- the control module is configured to sort the data packets in the first group of data according to the sequence number of the first group of data received through the non-point-to-point channel, and according to the second group of data received through the point-to-point channel
- the sequence number sorts the data packets in the second set of data, and determines the first when the first set of data and the second set of data have N consecutive serial number and consecutive data packets
- the data stream is synchronized with the second data stream, where N is a preset integer value.
- the terminal further includes a channel coordination control module, where the channel coordination control module is configured to stop at the media control module After the non-peer-to-peer channel exchanges data with the second terminal, the first heartbeat packet is sent to the second terminal by using the non-point-to-point channel, wherein the first heartbeat packet is used to maintain the non-point-to-point channel.
- the media control module is further configured to: when stopping the data exchange between the non-point-to-point channel and the second terminal, The communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel, and when the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel, data exchange with the second terminal The channel switches to the non-point-to-point channel.
- the channel coordination control module is further configured to: switch, by the media control module, the data switching channel from the point-to-point channel After the non-point-to-point channel, the second heartbeat packet is sent to the second terminal by the point-to-point channel, wherein the second heartbeat packet is used to maintain the point-to-point channel.
- the media control module is further configured to: after the media control module stops exchanging data in the non-peer-to-peer channel and the second terminal, by using the non- The peer-to-peer channel sends a close message to the second terminal, the close message is used to notify the second terminal to close the non-point-to-point channel, and close the non-point-to-point channel.
- the third aspect of the embodiment of the present invention further provides a terminal, including:
- the terminal establishes a communication connection, the data is exchanged with the second terminal through the non-point-to-point channel, and a point-to-point channel is established between the terminal and the second terminal, and after the point-to-point channel is established, the point-to-point channel is enabled to be exchanged with the second terminal.
- the processor is configured to execute the instruction, and establish a point-to-point channel between the terminal and the second terminal, including:
- the processor performs the instruction to perform synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel in the terminal, including:
- the first group of data and the second group of data have N consecutive serial number and consecutive data packets, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
- the processor is further configured to: after stopping the data exchange between the non-peer-to-peer channel and the second terminal, send the first heartbeat packet to the second terminal by using the non-point-to-point channel, The first heartbeat packet is used to maintain a non-point-to-point channel.
- the processor is further configured to monitor the communication of the non-point-to-point channel after stopping the data exchange between the non-point-to-point channel and the second terminal Quality and communication quality of the point-to-point channel;
- the data exchange channel with the second terminal is switched to the non-point-to-point channel.
- the processor is further configured to: after the data switching channel is switched from the point-to-point channel to the non-point-to-point channel, through the point-to-point channel
- the second terminal sends a second heartbeat packet, wherein the second heartbeat packet is used to maintain a point-to-point channel.
- the processor is further configured to: after stopping the data exchange between the non-peer-to-peer channel and the second terminal, the terminal sends a close message to the second terminal by using the non-point-to-point channel, and closes The message is used to notify the second terminal to close the non-point-to-point channel; the terminal closes the non-point-to-point channel.
- the first terminal and the second terminal first exchange data through the non-point-to-point channel, thereby eliminating the time period of no data exchange caused by the ICE connectivity detection of the point-to-point channel when establishing the point-to-point channel, thereby solving the problem in the prior art.
- the technical problem of time-free data exchange during the network call of the point-to-point channel avoids the poor user experience brought to the user by the time period without data exchange.
- FIG. 1 is a flow chart of a VoIP point-to-point call using ICE technology in the prior art
- FIG. 2 is a flowchart of a communication method according to an embodiment of the present invention.
- FIG. 3 is a schematic diagram of establishing a communication connection between a first terminal and a second terminal
- FIG. 4 is a schematic diagram of data flow of a non-point-to-point channel and a point-to-point channel after establishing a communication connection between a first terminal and a second terminal according to an embodiment of the present invention
- FIG. 5 is a schematic diagram of performing synchronization processing on a first data stream and a second data stream according to an embodiment of the present invention
- FIG. 6 is a schematic structural diagram of a terminal according to an embodiment of the present disclosure.
- FIG. 7 is a schematic structural diagram of a terminal according to an embodiment of the present invention.
- the embodiment of the present invention provides a communication method and a terminal, which are used to solve the technical problem of a time period of no data exchange existing in a network call through a point-to-point channel in the prior art.
- the non-point-to-point channel is enabled to exchange data with the second terminal, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel is The second data stream of the point-to-point channel is synchronized, and after the first data stream is synchronized with the second data stream, the first terminal exchanges data with the first terminal through the point-to-point channel, thereby eliminating the cause of the network call through the point-to-point channel.
- Performing the ICE connectivity detection of the point-to-point channel to generate a time period without data exchange thereby solving the prior art in the point-of-pass pair
- There is a technical problem of no data exchange time period when the point channel performs network call which avoids the poor user experience brought by the time period of the no data exchange, and avoids switching the network telephone from the non-point-to-point channel to the point-to-point channel.
- the network jitter that occurs when it is added further enhances the user experience of the VoIP.
- FIG. 2 is a flowchart of a communication method according to an embodiment of the present invention. As shown in FIG. 2, the method includes:
- the process of establishing a communication connection between the first terminal and the second terminal can be implemented by referring to the embodiment described in FIG. Different from the prior art, after establishing a communication connection between the first terminal and the second terminal, the embodiment of the present invention not only establishes a point-to-point channel between the first terminal and the second terminal, but also enables non-point-to-point channels and The second terminal exchanges data.
- the specific process of establishing a point-to-point channel between the first terminal and the second terminal may include: the first terminal starts the ICE connectivity detection and negotiation with the second terminal, and establishes the first terminal and the first through the ICE connectivity detection and negotiation.
- ICE connectivity detection and negotiation is prior art and will not be described here.
- the first terminal After the point-to-point channel is established, the first terminal enables the point-to-point channel to exchange data with the second terminal, and synchronizes the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel;
- the specific implementation process of the first terminal synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel is as follows:
- the first terminal sorts the data packets in the first group of data according to the sequence number of the first group of data received through the non-point-to-point channel, and the second group of data according to the sequence number of the second group of data received through the point-to-point channel
- the packets in the order are sorted.
- the first terminal is in the first group of data and When there are N data packets with the same serial number and consecutive numbers in the second group of data, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
- the non-point-to-point channel is enabled to exchange data with the second terminal, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel is The second data stream of the point-to-point channel is synchronized, and after the first data stream is synchronized with the second data stream, the first terminal exchanges data with the first terminal through the point-to-point channel, thereby eliminating the point-to-point channel when establishing the point-to-point channel.
- the data exchange-free time period generated by the ICE connectivity detection solves the technical problem in the prior art that there is no data exchange time period when performing network call through the point-to-point channel, and avoids the time period of no data exchange.
- FIG. 3 is a schematic diagram of establishing a communication connection between the first terminal and the second terminal.
- the first terminal may establish a communication connection with the second terminal by using the following steps:
- the first terminal initiates a STUN binding request to the STUN/TURN server after initiating the call to the second terminal, and the server returns the NAT traversal candidate address to the first terminal in the STUN binding response.
- the first terminal initiates an Invite request to the second terminal, and carries the local candidate address in the SDP of the Invite.
- the second terminal After receiving the Invite of the first terminal, the second terminal saves the candidate address of the first terminal and initiates a STUN binding request to the STUN/TURN server to obtain the candidate address of the local terminal.
- the second terminal sends a 200ok response message to the first terminal, and carries the local candidate address in the SDP of the response message.
- the first terminal sends an ACK to the second terminal.
- the first terminal and the second terminal have established a communication connection, and the first terminal and the second terminal have passed the handshake three times, and the first terminal and the second terminal can pass the non-point-to-point Channels such as SIP channels, etc., perform data exchange.
- This process is consistent with the prior art process and will not be described here.
- step S1 that is, when the first terminal and the second terminal have established a communication connection, the first terminal passes the non-point-to-point channel and The second terminal exchanges data and establishes a point-to-point channel between the first terminal and the second terminal.
- the first terminal exchanges data with the second terminal through the non-point-to-point channel. Specifically, the first terminal sends the ACK to the second terminal, and then starts to send and receive the media packet. Of course, the second terminal receives the first. After the ACK sent by the terminal, the media packet is also sent and received, so that the first terminal can exchange data with the second terminal through the non-point-to-point channel.
- the first terminal and the second terminal first exchange data through the non-point-to-point channel, thereby eliminating the time period of no data exchange caused by the ICE connectivity detection of the point-to-point channel when performing network call through the point-to-point channel, thereby solving the problem.
- step S1 the information processing method provided by the embodiment of the present invention proceeds to step S2, that is, the first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel.
- FIG. 4 is a communication between the first terminal and the second terminal according to the embodiment of the present invention.
- the data flow diagram of the non-point-to-point channel and the point-to-point channel after connection, as shown in FIG. 4, the first terminal may enter the first data stream A1 and the second data stream P1.
- Line synchronization of course, in the specific implementation process, the second terminal also synchronizes the third data stream A2 and the fourth data stream P2, and will not be described here.
- FIG. 5 is a schematic diagram of synchronizing the first data stream and the second data stream according to an embodiment of the present invention.
- the first terminal stores the data received by the two channels separately. Enter the buffer corresponding to each channel, and according to the serial number of the media packet (English: Sequence Number; SEQ: seq.), the data packet in the first group of data received by the non-point-to-point channel and the second data received by the peer-to-peer channel The packets in the group data are sorted.
- the SEQ number of each data packet is fixed, but it is copied into two, and the second terminal is sent to the second through the non-point-to-point channel.
- a terminal is stored in a non-point-to-point channel buffer, and the data packets stored in the non-point-to-point channel buffer are sorted, and sent to the first terminal through the point-to-point channel and stored in the point-to-point channel buffer, and stored in the point-to-point channel The packets in the buffer are sorted.
- N is an integer value of a preset value
- the preset integer value may be the maximum number of consecutive packet drops that the first terminal can accept when communicating with the second terminal.
- the synchronization process introduced in this embodiment is performed at the first terminal.
- the second terminal also performs similar data received through the non-point-to-point channel and data received through the point-to-point channel. Synchronization processing will not be described here.
- the data used by the first terminal or the second terminal (that is, the data presented to the user) It can still be data exchanged through non-point-to-point channels.
- step S3 Synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel.
- step S3 the first terminal exchanges data with the second terminal through the point-to-point channel, including the following two situations:
- the first terminal closes the non-point-to-point channel.
- the communication method provided by the embodiment of the present invention further includes: the first terminal sends a close message to the second terminal through the non-point-to-point channel, and the close message is used to notify the second terminal to close.
- the first terminal closes the non-point-to-point channel.
- the first terminal sends a close message for closing the point-to-point channel to the second terminal, for example, a message carrying the synchronization end identifier.
- the second terminal can stop transmitting and receiving media packets on the non-point-to-point channel; after transmitting the close message, the first terminal closes the non-point-to-point channel of the local end, so that the first terminal can pass the point-to-point channel and the first terminal
- the second terminal exchanges data.
- the first terminal maintains a non-point-to-point channel.
- the communication method provided by the embodiment of the present invention further includes: the first terminal sends the first heartbeat packet to the point-to-point channel through the non-point-to-point channel, where the first heartbeat packet is used. To maintain non-point-to-point channels.
- the first terminal may send a stop message to the second terminal by using the non-point-to-point channel, and the second terminal receives the stop message. After that, the media packet is stopped and sent on the non-point-to-point channel.
- the first terminal stops the exchange of the media packet with the second terminal through the non-point-to-point channel
- the first terminal sends the first heartbeat packet to the second terminal by using the non-point-to-point channel, where the first heartbeat packet is used to maintain the non-point-to-point channel, and the second terminal After receiving the first heartbeat packet, the non-point-to-point channel is kept off.
- the communication method provided by the embodiment of the present invention further includes: monitoring the communication quality of the non-point-to-point channel and the point-to-point channel quality of the point-to-point channel, and when the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel
- the first terminal switches the data exchange channel with the second terminal to a non-point-to-point channel.
- the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel can be monitored by parameters such as the packet loss rate. For example, if the packet loss rate of the non-point-to-point channel is smaller than the packet loss rate of the point-to-point channel, the communication quality of the non-point-to-point channel is higher.
- the communication quality of the point-to-point channel when the first terminal determines, according to these parameters, that the communication quality of the currently used point-to-point channel is lower than the communication quality of the non-point-to-point channel, the first terminal can switch the data exchange channel with the second terminal.
- the first terminal may send information to the second terminal, notify the second terminal to stop sending and receiving media packets through the peer-to-peer channel, and send and receive media packets through the non-point-to-point channel, and the first terminal itself stops receiving and transmitting media through the point-to-point channel. Packets, and send and receive media packets through non-point-to-point channels, so that the data exchange channel between the first terminal and the second terminal is switched from a point-to-point channel with poor communication quality to a non-point-to-point channel with better communication quality, thereby improving the first The quality of communication between the terminal and the second terminal.
- the communication method provided by the embodiment of the present invention further includes: the first terminal sends the second terminal to the second terminal through the point-to-point channel.
- the first terminal continues to monitor the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel, and When the communication quality of the non-point-to-point channel is lower than the communication quality of the point-to-point channel, the first terminal switches the data exchange channel with the second terminal to the point-to-point channel, thereby ensuring communication between the first terminal and the second terminal.
- the quality is maintained at a relatively high level, which further enhances the user experience of the network call, and will not be described here.
- the communication has been established between the first terminal and the second terminal.
- the first terminal exchanges data with the second terminal through the non-point-to-point channel, and establishes a point-to-point channel between the first terminal and the second terminal, and after the point-to-point channel is established, exchanges data with the second terminal through the point-to-point channel, and Synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and after the first data stream is synchronized with the second data stream, the technical solution for exchanging data with the second terminal through the point-to-point channel, first The terminal and the second terminal first exchange data through the non-point-to-point channel, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel are synchronously processed, and the first data stream and the second data are After the stream is synchronized, the first terminal exchanges data with
- FIG. 6 is a functional block diagram of a terminal according to an embodiment of the present invention. As shown in FIG. 6, the terminal 600 includes:
- the connection module 601 is configured to establish a communication connection with the second terminal, and establish a point-to-point channel with the second terminal after the communication connection is established.
- the media control module 602 is configured to exchange data with the second terminal through the non-point-to-point channel when the connection module 601 and the second terminal have established a communication connection; and enable the point-to-point channel to exchange data with the second terminal after the point-to-point channel is established. And synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and stopping the exchange of data with the second terminal in the non-point-to-point channel after the first data stream is synchronized with the second data stream.
- connection module 601 is specifically configured to initiate ICE connectivity detection and negotiation with the second terminal, and establish a point-to-point channel through ICE connectivity detection and negotiation.
- the process of establishing a point-to-point channel based on ICE connectivity detection and negotiation is a prior art, and details are not described herein again.
- the media control module 602 performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and specifically includes: the media control module 602 is configured to receive according to the non-point-to-point channel.
- the sequence number of the first set of data sorts the data packets in the first set of data, and sorts the data packets in the second set of data according to the serial number of the second set of data received through the point-to-point channel, and
- N is a preset integer value.
- the terminal 600 shown in FIG. 6 may further include a channel coordination control module 603, where the channel coordination control module 603 is configured to pass the non-point-to-point channel after the media control module stops exchanging data between the non-point-to-point channel and the second terminal.
- the media control module 602 is further configured to monitor the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel after stopping the data exchange between the non-point-to-point channel and the second terminal, and the communication quality of the point-to-point channel is lower than When the communication quality of the non-point-to-point channel is switched, the data exchange channel with the second terminal is switched to the non-point-to-point channel.
- the channel coordination control module 603 is further configured to: after the media control module 602 switches the data switching channel from the point-to-point channel to the non-point-to-point channel, send the second heartbeat packet to the second terminal by using the point-to-point channel, where the second Heartbeat packets are used to maintain point-to-point channels.
- the media control module 602 is further configured to: after the media control module 602 stops exchanging data in the non-peer-to-peer channel and the second terminal, send a close message to the second terminal through the non-point-to-point channel, and close the message to notify the second The terminal closes the non-point-to-point channel and closes the non-point-to-point channel.
- FIG. 7 is a physical block diagram of a terminal according to an embodiment of the present invention. As shown in FIG. 7, the terminal 700 includes: a bus 740; and is connected to the bus 740.
- Processor 710, memory 720 and interface 730 wherein the interface 730 is for communicating with another terminal; the memory 720 is for storing instructions, and the processor 710 is configured to execute the memory
- the instruction stored in 720 is configured to: when the terminal establishes a communication connection with the second terminal, exchange data with the second terminal through the non-point-to-point channel, and establish a point-to-point channel between the terminal and the second terminal, and After the point-to-point channel is established, the point-to-point channel is enabled to exchange data with the second terminal; and the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel are synchronized, and the first data stream and the second data stream are After synchronization, the non-peer-to-peer channel is stopped to exchange data with the second terminal.
- the processor 710 establishes a point-to-point channel between the terminal and the second terminal, including:
- the processor 710 is configured to perform synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, including:
- the first group of data and the second group of data have N consecutive serial number and consecutive data packets, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
- the processor 710 is configured to send the first heartbeat packet to the second terminal by using the non-point-to-point channel after the terminal stops exchanging data in the non-peer-to-peer channel and the second terminal, where The first heartbeat packet is used to maintain a non-point-to-point channel.
- the processor 710 is further configured to monitor the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel after stopping the data exchange between the non-point-to-point channel and the second terminal;
- the terminal switches the data exchange channel with the second terminal to a non-point-to-point channel.
- the processor 710 is further configured to: After the point-to-point channel is switched to the non-point-to-point channel, the second heartbeat packet is sent to the second terminal through the point-to-point channel, where the second heartbeat packet is used to maintain the point-to-point channel.
- the processor 710 is further configured to: after stopping the data exchange between the point-to-point channel and the second terminal, sending a close message to the second terminal by using the non-point-to-point channel, and closing the message for notifying the second The terminal closes the non-point-to-point channel; and closes the non-point-to-point channel.
- the communication method in the embodiment and the communication method in the foregoing embodiment are based on two aspects under the same inventive concept.
- the implementation process of the method has been described in detail above, so that those skilled in the art can clearly understand according to the foregoing description.
- the structure and implementation process of the terminal in this embodiment are understood. For the sake of brevity of the description, details are not described herein again.
- embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
- the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
- These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
- the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本申请要求2014年6月16日递交的申请号为201410268035.3、发明名称为“一种通信方法以及终端”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。The present application claims the priority of the Japanese Patent Application Serial No. No. No. No. No. No. No. No. No. No. No. No.
本发明涉及通信领域,尤其涉及一种通信方法以及终端。The present invention relates to the field of communications, and in particular, to a communication method and a terminal.
点对点(又被称为对等连接或对等网络,英文:Peer to Peer;简称:P2P)技术是一种用于不同终端之间,不经过中继设备直接交换数据或服务的技术。在网络电话(英文:Voice over Internet Protocol;简称:VoIP)领域,点对点通话是指通话的数据流不经过中间服务器中转的一种通话方式。Point-to-point (also known as peer-to-peer or peer-to-peer network, English: Peer to Peer; P2P for short) technology is a technology used to exchange data or services directly between different terminals without going through a relay device. In the field of Voice over Internet Protocol (VoIP), point-to-point calls are a type of call in which the data stream of a call does not transit through the intermediate server.
一般来说,在相同局域网中或者VoIP通话客户端拥有公有(固定且唯一)互联网协议地址(又称为网际协议地址,英文:Internet Protocol Address;简称:IP地址)情况下,数据流传输可以直接在客户端之间进行,而在互联网环境中,不同VoIP客户端可能处于不同局域网中,他们通过网络地址转换(英文:Network Address Translation;简称:NAT)技术接入互联网。Generally speaking, in the same local area network or VoIP call client has a public (fixed and unique) Internet Protocol address (also known as Internet Protocol Address, English: Internet Protocol Address; IP address), data stream transmission can be directly Between the clients, in the Internet environment, different VoIP clients may be in different LANs, and they access the Internet through Network Address Translation (NAT) technology.
网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它也是将IP数据包头中的IP地址转换为另一个IP地址的过程,被广泛应用于各种类型互联网接入方式和各种类型的网络中。NAT解决了IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。Network address translation is a wide area network (WAN) technology. It is a conversion technology that converts a private (reserved) address into a legal IP address. It is also a process of converting an IP address in an IP packet header into another IP address. Widely used in various types of Internet access methods and various types of networks. NAT solves the problem of insufficient IP addresses, and it can effectively avoid attacks from outside the network, hiding and protecting computers inside the network.
如上所述,由于网络地址转换技术的广泛使用,不同局域网中的通话客户端都只拥有私有IP地址,他们之间并不能直接使用私有IP地址进行数据流传输,需要采用技术手段穿越NAT设备,实现点对点通话。在当前NGN(下一代网络)环境下,VoIP广泛采用会话发起协议(英文:Session Initiation Protocol;简称:SIP)(RFC3261)建立通话,并使用交互式连接建立(英文:Interactive Connectivity Establishment;简称:ICE)(RFC5245)技术穿越网络地址转换(英文:Network Address Translation;简称:NAT)设备实现VoIP的点对点通话。As mentioned above, due to the widespread use of network address translation technology, the call clients in different local area networks only have private IP addresses, and they cannot directly use the private IP address for data stream transmission. It is necessary to use technical means to traverse the NAT device. Implement point-to-point calls. In the current NGN (next generation network) environment, VoIP widely adopts session initiation protocol (English: Session Initiation) Protocol; abbreviation: SIP) (RFC3261) establishes a call and uses an interactive connection establishment (English: Interactive Connectivity Establishment; ICE) (RFC5245) technology to traverse network address translation (English: Network Address Translation; referred to as: NAT) device implementation VoIP peer-to-peer calls.
ICE技术基于对请求/响应模型的扩充,它的工作原理是通过会话描述协议(英文:Session Description Protocol;简称:SDP)请求和响应消息携带客户端的多个种类的IP地址(如本地IP、NAT设备分配的IP等),再对这些地址进行点对点通道的连通性检测,从而找到可用且最优的点对点通道。The ICE technology is based on the extension of the request/response model. It works by using the Session Description Protocol (SDP) request and response message to carry multiple types of IP addresses of the client (such as local IP, NAT). The IP addresses assigned by the device, etc., then perform connectivity detection of the peer-to-peer channels for these addresses to find the available and optimal point-to-point channels.
请参考图1,图1是现有技术中使用ICE技术的VoIP点对点通话流程图,如图1所示,使用ICE技术的VoIP点对点通话流程有如下步骤:Please refer to FIG. 1. FIG. 1 is a flow chart of a VoIP point-to-point call using ICE technology in the prior art. As shown in FIG. 1 , the VoIP point-to-point call process using ICE technology has the following steps:
(1)主叫端向被叫端发起呼叫后首先向NAT的UDP简单穿越(英文:Simple Traversal of UDP over NATs;简称:STUN)服务器/通过Relay方式穿越NAT服务器(英文:Traversal Using Relay NAT;简称:TURN)发起STUN绑定请求(英文:Binding Requests),服务器在STUN绑定响应(英文:Binding Response)中携带NAT穿越候选地址返回给主叫端。(1) After the calling party initiates a call to the called end, it first traverses the NAT UDP over NATs (English: Simple Traversal of UDP over NATs; STUN) server/through the relay mode to traverse the NAT server (English: Traversal Using Relay NAT; The abbreviation: TURN) initiates a STUN binding request (English: Binding Requests), and the server carries the NAT traversal candidate address to the calling end in the STUN binding response (English: Binding Response).
(2)主叫端向被叫端发起Invite请求,并在Invite的SDP中携带本端的候选地址。(2) The calling end initiates an Invite request to the called end, and carries the local candidate address in the SDP of the Invite.
(3)被叫端收到主叫端的Invite后,保存主叫端的候选地址并向STUN/TURN服务器发起STUN绑定请求获取本端的候选地址。(3) After receiving the Invite of the calling end, the called end saves the candidate address of the calling end and initiates a STUN binding request to the STUN/TURN server to obtain the candidate address of the local end.
(4)被叫端向主叫端发200ok响应消息,并在响应消息的SDP中携带本端的候选地址。(4) The called end sends a 200ok response message to the calling end, and carries the local candidate address in the SDP of the response message.
(5)主叫端向被叫端发送确认消息(英文:Acknowledgement;简称:ACK)。(5) The calling end sends an acknowledgement message to the called end (English: Acknowledgement; abbreviation: ACK).
(6)主叫端在发送ACK后启动连通性检测和协商,被叫端在收到ACK后启动连通性检测和协商。(6) The calling end initiates connectivity detection and negotiation after sending an ACK, and the called end initiates connectivity detection and negotiation after receiving the ACK.
(7)连通性检测结束并协商出点对点通道后,主被叫开始通过该通道收发媒体包(rtp、rtcp),主叫端的用户和被叫端的用户即能够行通话。(7) After the connectivity detection ends and the peer-to-peer channel is negotiated, the calling party and the called party start to send and receive media packets (rtp, rtcp) through the channel, and the user at the calling end and the user at the called end can talk.
在上述过程中,在步骤(4)、(5)结束后,主被叫端的回铃音结束, 主被叫端的通话建立,但此时主被叫端正在进行步骤(6)所示的连通性检测和协商,主叫端和被叫端之间还未进行媒体包的收发,所以主叫端的用户和被叫端的用户不能听到任何声音或者看到任何图像,也即此时段没有任何数据,需要在步骤(6)完成之后主叫端与被叫端才能进行交换数据,也就是说,在基于点对点通道的VoIP中,由于需要进行点对点通道的连通性检测与协商,所以在通话建立后存在一个无数据交换的时间段,对用户而言,在这个时间段内听不到任何声音,也看不到任何图像,用户体验较差,尤其是在网络环境较差时,连通性检测耗时较长,这个时间段也会较长,从而会带给用户更差的用户体验。In the above process, after the end of steps (4) and (5), the ringing tone of the calling party and the called party ends. The call of the calling party and the called party is established, but at this time, the calling party and the called party are performing the connectivity detection and negotiation shown in step (6), and the media packet is not sent and received between the calling end and the called end, so the calling end The user and the user on the called end cannot hear any sound or see any image, that is, there is no data during this period. After the completion of step (6), the calling end and the called end can exchange data, that is, in the In the VoIP based on the point-to-point channel, since the connectivity detection and negotiation of the point-to-point channel is required, there is a time period without data exchange after the call is established, and no sound is heard for the user during this time period. If you don't see any images, the user experience is poor. Especially when the network environment is poor, the connectivity detection takes a long time, and this time period will be longer, which will bring users a worse user experience.
因此,现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题。Therefore, in the prior art, there is a technical problem of a period of no data exchange when making a network call through a point-to-point channel.
发明内容Summary of the invention
本发明实施例通过提供一种通信方法以及终端,用以解决现有技术中在通过点对点通道进行网络通话时存在的无数据交换的时间段的技术问题。The embodiment of the present invention provides a communication method and a terminal, which are used to solve the technical problem of a time period of no data exchange existing in a network call through a point-to-point channel in the prior art.
本发明实施例第一方面提供了一种通信方法,包括:A first aspect of the embodiments of the present invention provides a communication method, including:
在第一终端与第二终端已建立通信连接时,所述第一终端通过非点对点通道与所述第二终端交换数据,并在所述第一终端与所述第二终端之间建立点对点通道;When the first terminal and the second terminal have established a communication connection, the first terminal exchanges data with the second terminal through a non-point-to-point channel, and establishes a point-to-point channel between the first terminal and the second terminal. ;
在所述点对点通道建立后,所述第一终端启用所述点对点通道与所述第二终端交换数据;After the point-to-point channel is established, the first terminal enables the point-to-point channel to exchange data with the second terminal;
所述第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理;The first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel;
在所述第一数据流与所述第二数据流同步之后,所述第一终端停止在所述非点对点通道与所述第二终端交换数据。After the first data stream is synchronized with the second data stream, the first terminal stops exchanging data with the second terminal in the non-point-to-point channel.
结合第一方面,在第一种可能的实现方式中,所述在所述第一终端与所述第二终端间建立点对点通道,具体包括: With reference to the first aspect, in a first possible implementation, the establishing a point-to-point channel between the first terminal and the second terminal includes:
所述第一终端启动与所述第二终端的交互式连接建立ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。The first terminal initiates an ICE connectivity detection and negotiation with the second terminal, and establishes a point-to-point channel between the first terminal and the second terminal by using the ICE connectivity detection and negotiation.
结合第一方面,在第二种可能的实现方式中,所述第一终端对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理,具体包括:With reference to the first aspect, in a second possible implementation, the first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and specifically includes:
所述第一终端根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序;The first terminal sorts data packets in the first group of data according to a sequence number of the first group of data received through the non-point-to-point channel, and according to the second group of data received through the point-to-point channel The serial number sorts the data packets in the second set of data;
所述第一终端在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。Determining, by the first terminal, that the first data stream and the second data stream are synchronized when the first group of data and the second group of data have N consecutive sequence numbers and consecutive data packets, Where N is a preset integer value.
结合第一方面,在第三种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据后,所述方法还包括:With reference to the first aspect, in a third possible implementation, after the first terminal stops exchanging data between the non-peer-to-peer channel and the second terminal, the method further includes:
所述第一终端通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。The first terminal sends a first heartbeat packet to the second terminal by using the non-point-to-point channel, where the first heartbeat packet is used to maintain the non-point-to-point channel.
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据后,所述方法还包括:With the third possible implementation of the first aspect, in a fourth possible implementation, after the first terminal stops exchanging data between the non-peer-to-peer channel and the second terminal, the method further include:
监测所述非点对点通道的通信质量与所述点对点通道的通信质量;Monitoring communication quality of the non-point-to-point channel and communication quality of the point-to-point channel;
在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,所述第一终端将与所述第二终端之间的数据交换通道切换为所述非点对点通道。When the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel, the first terminal switches the data exchange channel with the second terminal to the non-point-to-point channel.
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述第一终端将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,所述方法还包括:In conjunction with the fourth possible implementation of the first aspect, in a fifth possible implementation, after the first terminal switches the data switching channel from the point-to-point channel to the non-point-to-point channel, The method also includes:
所述第一终端通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。 The first terminal sends a second heartbeat packet to the second terminal by using the point-to-point channel, where the second heartbeat packet is used to maintain the point-to-point channel.
结合第一方面,在第六种可能的实现方式中,在所述第一终端停止在所述非点对点通道与所述第二终端交换数据之后,所述方法还包括:With reference to the first aspect, in a sixth possible implementation, after the first terminal stops the data exchange between the non-peer-to-peer channel and the second terminal, the method further includes:
所述第一终端通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道;The first terminal sends a close message to the second terminal by using the non-point-to-point channel, where the close message is used to notify the second terminal to close the non-point-to-point channel;
所述第一终端关闭所述非点对点通道。The first terminal closes the non-point-to-point channel.
本发明实施例第二方面还提供一种终端,包括:The second aspect of the embodiment of the present invention further provides a terminal, including:
连接模块,用于与第二终端建立通信连接,以及在所述通信连接建立后,与所述第二终端建立点对点通道;a connection module, configured to establish a communication connection with the second terminal, and establish a point-to-point channel with the second terminal after the communication connection is established;
媒体控制模块,用于在所述连接模块与所述第二终端已建立通信连接时,通过非点对点通道与所述第二终端交换数据,并在所述点对点通道建立后,启用所述点对点通道与所述第二终端交换数据;以及对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理,并在所述第一数据流与所述第二数据流同步之后,停止在所述非点对点通道与所述第二终端交换数据。a media control module, configured to exchange data with the second terminal through a non-point-to-point channel when the connection module and the second terminal have established a communication connection, and enable the point-to-point channel after the point-to-point channel is established Exchanging data with the second terminal; and synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and the first data stream and the second data stream After the synchronization, the exchange of data with the second terminal is stopped at the non-point-to-point channel.
结合第二方面,在第一种可能的实现方式中,所述连接模块在所述终端与所述第二终端之间建立点对点通道具体包括:用于启动所述终端与所述第二终端之间的ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。With reference to the second aspect, in a first possible implementation manner, the establishing, by the connection module, the point-to-point channel between the terminal and the second terminal, the method further includes: starting the terminal and the second terminal Between the ICE connectivity detection and negotiation, the point-to-point channel between the first terminal and the second terminal is established by the ICE connectivity detection and negotiation.
结合第二方面,在第二种可能的实现方式中,所述媒体控制模块对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理具体包括:所述媒体控制模块用于根据通过所述非点对点通道接收到的第一组数据的序列号对所述第一组数据中的数据包进行排序,以及根据通过所述点对点通道接收到的第二组数据的序列号对所述第二组数据中的数据包进行排序,并在所述第一组数据与所述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。With reference to the second aspect, in a second possible implementation, the media control module performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, including: the media. The control module is configured to sort the data packets in the first group of data according to the sequence number of the first group of data received through the non-point-to-point channel, and according to the second group of data received through the point-to-point channel The sequence number sorts the data packets in the second set of data, and determines the first when the first set of data and the second set of data have N consecutive serial number and consecutive data packets The data stream is synchronized with the second data stream, where N is a preset integer value.
结合第二方面,在第三种可能的实现方式中,所述终端还包括通道协调控制模块,所述通道协调控制模块用于在所述媒体控制模块停止在所述 非点对点通道与所述第二终端交换数据后,通过所述非点对点通道向所述第二终端发送第一心跳包,其中,所述第一心跳包用于保持所述非点对点通道。With reference to the second aspect, in a third possible implementation, the terminal further includes a channel coordination control module, where the channel coordination control module is configured to stop at the media control module After the non-peer-to-peer channel exchanges data with the second terminal, the first heartbeat packet is sent to the second terminal by using the non-point-to-point channel, wherein the first heartbeat packet is used to maintain the non-point-to-point channel.
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述媒体控制模块还用于在停止在所述非点对点通道与所述第二终端交换数据时,监测所述非点对点通道的通信质量与所述点对点通道的通信质量,并在所述点对点通道的通信质量低于所述非点对点通道的通信质量时,将与所述第二终端之间的数据交换通道切换为所述非点对点通道。With reference to the third possible implementation of the second aspect, in a fourth possible implementation, the media control module is further configured to: when stopping the data exchange between the non-point-to-point channel and the second terminal, The communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel, and when the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel, data exchange with the second terminal The channel switches to the non-point-to-point channel.
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述通道协调控制模块还用于在所述媒体控制模块将所述数据交换通道从所述点对点通道切换为所述非点对点通道之后,通过所述点对点通道向所述第二终端发送第二心跳包,其中,所述第二心跳包用于保持所述点对点通道。In conjunction with the fourth possible implementation of the first aspect, in a fifth possible implementation, the channel coordination control module is further configured to: switch, by the media control module, the data switching channel from the point-to-point channel After the non-point-to-point channel, the second heartbeat packet is sent to the second terminal by the point-to-point channel, wherein the second heartbeat packet is used to maintain the point-to-point channel.
结合第二方面,在第六种可能的实现方式中,所述媒体控制模块还用于在所述媒体控制模块停止在所述非点对点通道与所述第二终端交换数据之后,通过所述非点对点通道向所述第二终端发送关闭消息,所述关闭消息用于通知所述第二终端关闭所述非点对点通道,并关闭所述非点对点通道。With reference to the second aspect, in a sixth possible implementation, the media control module is further configured to: after the media control module stops exchanging data in the non-peer-to-peer channel and the second terminal, by using the non- The peer-to-peer channel sends a close message to the second terminal, the close message is used to notify the second terminal to close the non-point-to-point channel, and close the non-point-to-point channel.
本发明实施例第三方面还提供一种终端,包括:The third aspect of the embodiment of the present invention further provides a terminal, including:
总线;以及连接到总线的处理器、存储器和接口,其中所述接口用于连与另一终端通信;所述存储器用于存储指令,所述处理器执行所述指令用于在终端与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据,并在终端与第二终端之间建立点对点通道,并在点对点通道建立后,启用所述点对点通道与所述第二终端交换数据;对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。a bus; and a processor, memory and interface connected to the bus, wherein the interface is for communicating with another terminal; the memory is for storing instructions, the processor executing the instructions for using the terminal and the second When the terminal establishes a communication connection, the data is exchanged with the second terminal through the non-point-to-point channel, and a point-to-point channel is established between the terminal and the second terminal, and after the point-to-point channel is established, the point-to-point channel is enabled to be exchanged with the second terminal. Data; synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and stopping the exchange of data with the second terminal in the non-point-to-point channel after the first data stream is synchronized with the second data stream.
结合第三方面,在第一种可能的实现方式中,所述处理器执行所述指令用于在终端与第二终端间建立点对点通道,包括: With reference to the third aspect, in a first possible implementation, the processor is configured to execute the instruction, and establish a point-to-point channel between the terminal and the second terminal, including:
启动与第二终端的交互式连接建立ICE连通性检测和协商,通过所述ICE连通性检测和协商建立所述第一终端与所述第二终端间的点对点通道。Initiating an ICE connectivity detection and negotiation with the second terminal, and establishing a point-to-point channel between the first terminal and the second terminal by using the ICE connectivity detection and negotiation.
结合第三方面,在第二种可能的实现方式中,所述处理器执行所述指令在终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,具体包括:With reference to the third aspect, in a second possible implementation manner, the processor performs the instruction to perform synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel in the terminal, including:
根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序;Sorting the data packets in the first set of data according to the sequence number of the first set of data received through the non-point-to-point channel, and the data in the second set of data according to the sequence number of the second set of data received through the point-to-point channel Packet sorting;
在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。When the first group of data and the second group of data have N consecutive serial number and consecutive data packets, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
结合第三方面,在第三种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。With reference to the third aspect, in a third possible implementation, the processor is further configured to: after stopping the data exchange between the non-peer-to-peer channel and the second terminal, send the first heartbeat packet to the second terminal by using the non-point-to-point channel, The first heartbeat packet is used to maintain a non-point-to-point channel.
结合第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量;In conjunction with the third possible implementation manner of the third aspect, in a fourth possible implementation, the processor is further configured to monitor the communication of the non-point-to-point channel after stopping the data exchange between the non-point-to-point channel and the second terminal Quality and communication quality of the point-to-point channel;
在点对点通道的通信质量低于非点对点通道的通信质量时,将与第二终端之间的数据交换通道切换为非点对点通道。When the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel, the data exchange channel with the second terminal is switched to the non-point-to-point channel.
结合第三方面的第四种可能的实现方式,在第五种可能的实现方式中,所述处理器还用于在将数据交换通道从点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。In conjunction with the fourth possible implementation of the third aspect, in a fifth possible implementation, the processor is further configured to: after the data switching channel is switched from the point-to-point channel to the non-point-to-point channel, through the point-to-point channel The second terminal sends a second heartbeat packet, wherein the second heartbeat packet is used to maintain a point-to-point channel.
结合第三方面,在第六种可能的实现方式中,所述处理器还用于在停止在非点对点通道与第二终端交换数据之后,终端通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;终端关闭非点对点通道。With reference to the third aspect, in a sixth possible implementation, the processor is further configured to: after stopping the data exchange between the non-peer-to-peer channel and the second terminal, the terminal sends a close message to the second terminal by using the non-point-to-point channel, and closes The message is used to notify the second terminal to close the non-point-to-point channel; the terminal closes the non-point-to-point channel.
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果 或优点:One or more technical solutions provided in the embodiments of the present invention have at least the following technical effects. Or advantages:
第一终端与第二终端先通过非点对点通道交换数据,消除了在建立点对点通道时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验。The first terminal and the second terminal first exchange data through the non-point-to-point channel, thereby eliminating the time period of no data exchange caused by the ICE connectivity detection of the point-to-point channel when establishing the point-to-point channel, thereby solving the problem in the prior art. The technical problem of time-free data exchange during the network call of the point-to-point channel avoids the poor user experience brought to the user by the time period without data exchange.
图1为现有技术中使用ICE技术的VoIP点对点通话流程图;1 is a flow chart of a VoIP point-to-point call using ICE technology in the prior art;
图2为本发明实施例提供的通信方法的流程图;2 is a flowchart of a communication method according to an embodiment of the present invention;
图3为第一终端与第二终端建立通信连接的示意图;3 is a schematic diagram of establishing a communication connection between a first terminal and a second terminal;
图4为本发明实施例提供的第一终端与第二终端建立通信连接后非点对点通道和点对点通道的数据流示意图;4 is a schematic diagram of data flow of a non-point-to-point channel and a point-to-point channel after establishing a communication connection between a first terminal and a second terminal according to an embodiment of the present invention;
图5为本发明实施例提供的对第一数据流和第二数据流进行同步处理的示意图;FIG. 5 is a schematic diagram of performing synchronization processing on a first data stream and a second data stream according to an embodiment of the present invention;
图6为本发明实施例提供的终端的功能结构图;FIG. 6 is a schematic structural diagram of a terminal according to an embodiment of the present disclosure;
图7为本发明实施例提供的终端的实体结构图。FIG. 7 is a schematic structural diagram of a terminal according to an embodiment of the present invention.
本发明实施例通过提供一种通信方法以及终端,用以解决现有技术中在通过点对点通道进行网络通话时存在的无数据交换的时间段的技术问题。The embodiment of the present invention provides a communication method and a terminal, which are used to solve the technical problem of a time period of no data exchange existing in a network call through a point-to-point channel in the prior art.
通过上述部分可以看出,由于在第一终端与第二终端已建立通信连接时,启用了非点对点通道与第二终端交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对 点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。It can be seen from the above that, when the first terminal and the second terminal have established a communication connection, the non-point-to-point channel is enabled to exchange data with the second terminal, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel is The second data stream of the point-to-point channel is synchronized, and after the first data stream is synchronized with the second data stream, the first terminal exchanges data with the first terminal through the point-to-point channel, thereby eliminating the cause of the network call through the point-to-point channel. Performing the ICE connectivity detection of the point-to-point channel to generate a time period without data exchange, thereby solving the prior art in the point-of-pass pair There is a technical problem of no data exchange time period when the point channel performs network call, which avoids the poor user experience brought by the time period of the no data exchange, and avoids switching the network telephone from the non-point-to-point channel to the point-to-point channel. The network jitter that occurs when it is added further enhances the user experience of the VoIP.
为了更好地理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。In order to better understand the above technical solutions, the above technical solutions will be described in detail below in conjunction with the drawings and specific embodiments.
请参考图2,图2是本发明实施例提供的通信方法的流程图,如图2所示,该方法包括:Please refer to FIG. 2. FIG. 2 is a flowchart of a communication method according to an embodiment of the present invention. As shown in FIG. 2, the method includes:
S1:在第一终端与第二终端已建立通信连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端之间建立点对点通道。S1: When the first terminal and the second terminal have established a communication connection, the first terminal exchanges data with the second terminal through the non-point-to-point channel, and establishes a point-to-point channel between the first terminal and the second terminal.
第一终端与第二终端建立通信连接的过程可参考图3所述实施例来实现。与现有技术不同的是,本发明实施例在第一终端与第二终端在建立通信连接后,不仅要在第一终端与第二终端之间建立点对点通道,还要启用非点对点通道与第二终端交换数据。The process of establishing a communication connection between the first terminal and the second terminal can be implemented by referring to the embodiment described in FIG. Different from the prior art, after establishing a communication connection between the first terminal and the second terminal, the embodiment of the present invention not only establishes a point-to-point channel between the first terminal and the second terminal, but also enables non-point-to-point channels and The second terminal exchanges data.
其中,在第一终端与第二终端之间建立点对点通道的具体过程可包括:第一终端启动与第二终端的ICE连通性检测与协商,通过ICE连通性检测和协商建立第一终端与第二终端之间的点对点通道。ICE连通性检测与协商是现有技术,这里不再赘述。The specific process of establishing a point-to-point channel between the first terminal and the second terminal may include: the first terminal starts the ICE connectivity detection and negotiation with the second terminal, and establishes the first terminal and the first through the ICE connectivity detection and negotiation. A point-to-point channel between two terminals. ICE connectivity detection and negotiation is prior art and will not be described here.
S2:在点对点通道建立后,第一终端启用点对点通道与所述第二终端交换数据,并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理;S2: After the point-to-point channel is established, the first terminal enables the point-to-point channel to exchange data with the second terminal, and synchronizes the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel;
其中,第一终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理的具体实现过程如下:The specific implementation process of the first terminal synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel is as follows:
第一终端根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序。第一终端在所述第一组数据与所 述第二组数据存在有N个序列号相同且连续的数据包时,确定所述第一数据流与所述第二数据流同步完成,其中,N为预设的整数值。The first terminal sorts the data packets in the first group of data according to the sequence number of the first group of data received through the non-point-to-point channel, and the second group of data according to the sequence number of the second group of data received through the point-to-point channel The packets in the order are sorted. The first terminal is in the first group of data and When there are N data packets with the same serial number and consecutive numbers in the second group of data, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
在具体实现时,可参考图4以及图5所示的实施例。In the specific implementation, reference may be made to the embodiments shown in FIG. 4 and FIG. 5.
S3:在第一数据流与第二数据流同步之后,第一终端停止在非点对点通道与第二终端交换数据。S3: After the first data stream is synchronized with the second data stream, the first terminal stops exchanging data with the second terminal in the non-point-to-point channel.
通过上述部分可以看出,由于在第一终端与第二终端已建立通信连接时,启用了非点对点通道与第二终端交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在建立点对点通道时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。It can be seen from the above that, when the first terminal and the second terminal have established a communication connection, the non-point-to-point channel is enabled to exchange data with the second terminal, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel is The second data stream of the point-to-point channel is synchronized, and after the first data stream is synchronized with the second data stream, the first terminal exchanges data with the first terminal through the point-to-point channel, thereby eliminating the point-to-point channel when establishing the point-to-point channel. The data exchange-free time period generated by the ICE connectivity detection solves the technical problem in the prior art that there is no data exchange time period when performing network call through the point-to-point channel, and avoids the time period of no data exchange. The poor user experience brought to the user, while avoiding the network jitter that occurs when the network phone is switched from a non-point-to-point channel to a point-to-point channel, further improving the user experience of the network phone.
请参考图3,图3是第一终端与第二终端建立通信连接的示意图,如图3所示,第一终端可以通过如下步骤与第二终端建立通信连接:Please refer to FIG. 3. FIG. 3 is a schematic diagram of establishing a communication connection between the first terminal and the second terminal. As shown in FIG. 3, the first terminal may establish a communication connection with the second terminal by using the following steps:
(1)第一终端向第二终端发起呼叫后首先向STUN/TURN服务器发起STUN绑定请求,服务器在STUN绑定响应中携带NAT穿越候选地址返回给第一终端。(1) The first terminal initiates a STUN binding request to the STUN/TURN server after initiating the call to the second terminal, and the server returns the NAT traversal candidate address to the first terminal in the STUN binding response.
(2)第一终端向第二终端发起Invite请求,并在Invite的SDP中携带本端的候选地址。(2) The first terminal initiates an Invite request to the second terminal, and carries the local candidate address in the SDP of the Invite.
(3)第二终端收到第一终端的Invite后,保存第一终端的候选地址并向STUN/TURN服务器发起STUN绑定请求获取本端的候选地址。(3) After receiving the Invite of the first terminal, the second terminal saves the candidate address of the first terminal and initiates a STUN binding request to the STUN/TURN server to obtain the candidate address of the local terminal.
(4)第二终端向第一终端发200ok响应消息,并在响应消息的SDP中携带本端的候选地址。(4) The second terminal sends a 200ok response message to the first terminal, and carries the local candidate address in the SDP of the response message.
(5)第一终端向第二终端发ACK。 (5) The first terminal sends an ACK to the second terminal.
在步骤(5)之后,第一终端与第二终端即已经建立了通信连接,第一终端与第二终端之间经过了3次握手,第一终端与第二终端之间即可以通过非点对点通道如SIP通道等等,进行数据交换,此过程与现有技术中的过程是一致的,在此就不再赘述了。After the step (5), the first terminal and the second terminal have established a communication connection, and the first terminal and the second terminal have passed the handshake three times, and the first terminal and the second terminal can pass the non-point-to-point Channels such as SIP channels, etc., perform data exchange. This process is consistent with the prior art process and will not be described here.
在第一终端与第二终端建立通信连接时,本发明实施例提供的通信方法即进入步骤S1,即:在第一终端与第二终端已建立通信连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端间建立点对点通道。When the first terminal establishes a communication connection with the second terminal, the communication method provided by the embodiment of the present invention proceeds to step S1, that is, when the first terminal and the second terminal have established a communication connection, the first terminal passes the non-point-to-point channel and The second terminal exchanges data and establishes a point-to-point channel between the first terminal and the second terminal.
在步骤S1中,第一终端通过非点对点通道与第二终端交换数据,具体来讲,即在第一终端向第二终端发送ACK后启动媒体包收发,当然,第二终端在收到第一终端发送的ACK后也启动媒体包收发,这样,第一终端即能够通过非点对点通道与第二终端交换数据。In the step S1, the first terminal exchanges data with the second terminal through the non-point-to-point channel. Specifically, the first terminal sends the ACK to the second terminal, and then starts to send and receive the media packet. Of course, the second terminal receives the first. After the ACK sent by the terminal, the media packet is also sent and received, so that the first terminal can exchange data with the second terminal through the non-point-to-point channel.
可以看出,第一终端与第二终端先通过非点对点通道交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验。It can be seen that the first terminal and the second terminal first exchange data through the non-point-to-point channel, thereby eliminating the time period of no data exchange caused by the ICE connectivity detection of the point-to-point channel when performing network call through the point-to-point channel, thereby solving the problem. In the prior art, there is a technical problem that there is no data exchange time period when a network call is made through a point-to-point channel, and a poor user experience brought to the user by the time period without the data exchange is avoided.
在步骤S1之后,本发明实施例提供的信息处理方法进入步骤S2,即:第一终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理。After the step S1, the information processing method provided by the embodiment of the present invention proceeds to step S2, that is, the first terminal performs synchronization processing on the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel.
具体来讲,在点对点通道建立后,第一终端即开始通过点对点通道与第二终端交换数据,当然了,此时可以适当降低终端发送媒体包的码率和帧率,以降低同步的难度,接着分别为非点对点通道和点对点通道建立同步缓冲区,缓冲区的长度为可接收丢包数的阈值,请参考图4,图4是本发明实施例提供的第一终端与第二终端建立通信连接后非点对点通道和点对点通道的数据流示意图,如图4所示,第一终端可以对第一数据流A1和第二数据流P1进 行同步,当然,在具体实施过程中,第二终端也会对第三数据流A2和第四数据流P2进行同步,在此就不再赘述了。Specifically, after the point-to-point channel is established, the first terminal starts to exchange data with the second terminal through the point-to-point channel. Of course, the bit rate and the frame rate of the media packet sent by the terminal may be appropriately reduced to reduce the difficulty of synchronization. Then, a synchronization buffer is established for the non-point-to-point channel and the point-to-point channel, and the length of the buffer is a threshold for receiving the number of lost packets. Referring to FIG. 4, FIG. 4 is a communication between the first terminal and the second terminal according to the embodiment of the present invention. The data flow diagram of the non-point-to-point channel and the point-to-point channel after connection, as shown in FIG. 4, the first terminal may enter the first data stream A1 and the second data stream P1. Line synchronization, of course, in the specific implementation process, the second terminal also synchronizes the third data stream A2 and the fourth data stream P2, and will not be described here.
请继续参考图5,图5是本发明实施例提供的对第一数据流和第二数据流进行同步处理的示意图,如图5所示,第一终端将两个通道接收到的数据分别存入各自通道对应的缓冲区,并根据媒体包的序列号(英文:Sequence Number;简称:SEQ号)对非点对点通道接收到的第一组数据中的数据包以及对点对点通道接收到的第二组数据中的数据包进行排序。Please refer to FIG. 5. FIG. 5 is a schematic diagram of synchronizing the first data stream and the second data stream according to an embodiment of the present invention. As shown in FIG. 5, the first terminal stores the data received by the two channels separately. Enter the buffer corresponding to each channel, and according to the serial number of the media packet (English: Sequence Number; SEQ: seq.), the data packet in the first group of data received by the non-point-to-point channel and the second data received by the peer-to-peer channel The packets in the group data are sorted.
具体来讲,对第二终端发送给第一终端的数据包而言,每个数据包的SEQ号是固定的,但其会被复制成两份,第二终端分别通过非点对点通道发给第一终端并存放在非点对点通道缓冲区,并对存放在非点对点通道缓冲区内的数据包进行排序,以及通过点对点通道发给第一终端并存放在点对点通道缓冲区,并对存放在点对点通道缓冲区内的数据包进行排序。Specifically, for the data packet sent by the second terminal to the first terminal, the SEQ number of each data packet is fixed, but it is copied into two, and the second terminal is sent to the second through the non-point-to-point channel. A terminal is stored in a non-point-to-point channel buffer, and the data packets stored in the non-point-to-point channel buffer are sorted, and sent to the first terminal through the point-to-point channel and stored in the point-to-point channel buffer, and stored in the point-to-point channel The packets in the buffer are sorted.
然后对非点对点通道缓冲区和点对点通道缓冲区内的媒体包进行比较,当存在N个SEQ号相同且连续的媒体包时,即确定非点对点通道的第一数据流和点对点通道的第二数据流同步完成,其中,N为预设值的整数值,预设的整数值可以是第一终端与第二终端通信时所能够接受的最大连续丢包数目。当然了,在实际应用中,通过本实施例的介绍,本领域所属的技术人员能够根据实际情况,将N设置为合适的数值,以满足实际情况的需要,在此就不再赘述了。Then, comparing the media packets in the non-point-to-point channel buffer and the point-to-point channel buffer, when there are N media packets with the same contiguous and consecutive SEQ numbers, the first data stream of the non-point-to-point channel and the second data of the point-to-point channel are determined. The stream synchronization is completed, where N is an integer value of a preset value, and the preset integer value may be the maximum number of consecutive packet drops that the first terminal can accept when communicating with the second terminal. Of course, in the actual application, by the introduction of this embodiment, the person skilled in the art can set N to a suitable value according to the actual situation, to meet the needs of the actual situation, and will not be further described herein.
本实施例中所介绍的同步处理过程是在第一终端处进行的,在具体实施过程中,第二终端也会对通过非点对点通道接收到的数据和通过点对点通道接收到的数据进行类似的同步处理,在此就不再赘述了。The synchronization process introduced in this embodiment is performed at the first terminal. In a specific implementation process, the second terminal also performs similar data received through the non-point-to-point channel and data received through the point-to-point channel. Synchronization processing will not be described here.
需要说明的是,在对非点对点通道的第一数据流和点对点通道的第二数据流进行同步处理的过程中,第一终端或第二终端使用的数据(也即其呈现给用户的数据)依然可以是通过非点对点通道交换的数据。It should be noted that, in the process of synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, the data used by the first terminal or the second terminal (that is, the data presented to the user) It can still be data exchanged through non-point-to-point channels.
在非点对点通道的第一数据流和点对点通道的第二数据流同步完成之 后,本发明实施例提供的通信方法进入步骤S3,即:在点对点通道建立后,第一终端停止在非点对点通道与第二终端交换数据,并通过点对点通道与第二终端交换数据。Synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel Then, the communication method provided by the embodiment of the present invention proceeds to step S3, that is, after the point-to-point channel is established, the first terminal stops exchanging data with the second terminal in the non-point-to-point channel, and exchanges data with the second terminal through the point-to-point channel.
在步骤S3中,第一终端通过点对点通道与第二终端交换数据包括以下两种情况:In step S3, the first terminal exchanges data with the second terminal through the point-to-point channel, including the following two situations:
第一种:第一终端关闭非点对点通道。First: The first terminal closes the non-point-to-point channel.
在第一终端通过点对点通道与第二终端交换数据之后,本发明实施例提供的通信方法还包括:第一终端通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;第一终端关闭非点对点通道。After the first terminal exchanges data with the second terminal through the point-to-point channel, the communication method provided by the embodiment of the present invention further includes: the first terminal sends a close message to the second terminal through the non-point-to-point channel, and the close message is used to notify the second terminal to close. Non-point-to-point channel; the first terminal closes the non-point-to-point channel.
具体来讲,在非点对点通道的第一数据流与点对点通道的第二数据流同步完成后,第一终端向第二终端发送用于关闭点对点通道的关闭消息,例如是携带同步结束标识的消息,第二终端在接收到该消息后即能够停止在非点对点通道上收发媒体包;第一终端在发送完关闭消息后,关闭本端的非点对点通道,这样第一终端即可以通过点对点通道与第二终端交换数据。Specifically, after the first data stream of the non-point-to-point channel is synchronized with the second data stream of the point-to-point channel, the first terminal sends a close message for closing the point-to-point channel to the second terminal, for example, a message carrying the synchronization end identifier. After receiving the message, the second terminal can stop transmitting and receiving media packets on the non-point-to-point channel; after transmitting the close message, the first terminal closes the non-point-to-point channel of the local end, so that the first terminal can pass the point-to-point channel and the first terminal The second terminal exchanges data.
第二种:第一终端保持非点对点通道。Second: The first terminal maintains a non-point-to-point channel.
在第一终端通过点对点通道与第二终端交换数据时,本发明实施例提供的通信方法还包括:第一终端通过非点对点通道向点对点通道发送第一心跳包,其中,该第一心跳包用于保持非点对点通道。When the first terminal exchanges data with the second terminal through the point-to-point channel, the communication method provided by the embodiment of the present invention further includes: the first terminal sends the first heartbeat packet to the point-to-point channel through the non-point-to-point channel, where the first heartbeat packet is used. To maintain non-point-to-point channels.
具体来讲,在非点对点通道的第一数据流与点对点通道的第二数据流同步完成后,第一终端可以通过非点对点通道向第二终端发送停止消息,第二终端在接收到该停止消息后即停止在非点对点通道收发媒体包。在第一终端停止通过非点对点通道与第二终端交换媒体包时,第一终端通过非点对点通道向第二终端发送第一心跳包,该第一心跳包用于保持非点对点通道,第二终端在接收到该第一心跳包后,即会保持非点对点通道不被关闭。Specifically, after the first data stream of the non-point-to-point channel is synchronized with the second data stream of the point-to-point channel, the first terminal may send a stop message to the second terminal by using the non-point-to-point channel, and the second terminal receives the stop message. After that, the media packet is stopped and sent on the non-point-to-point channel. When the first terminal stops the exchange of the media packet with the second terminal through the non-point-to-point channel, the first terminal sends the first heartbeat packet to the second terminal by using the non-point-to-point channel, where the first heartbeat packet is used to maintain the non-point-to-point channel, and the second terminal After receiving the first heartbeat packet, the non-point-to-point channel is kept off.
在第一终端通过点对点通道与第二终端交换数据,且保持非点对点通道不被关闭时,为了进一步提高第一终端与第二终端间的通信质量,从而给用 户以更好的用户体验,本发明实施例提供的通信方法还包括:监测非点对点通道的通信质量和点对点通道的点对点通道质量,并在点对点通道的通信质量低于非点对点通道的通信质量时,第一终端将与第二终端之间的数据交换通道切换为非点对点通道。When the first terminal exchanges data with the second terminal through the point-to-point channel, and keeps the non-point-to-point channel from being closed, in order to further improve the communication quality between the first terminal and the second terminal, The communication method provided by the embodiment of the present invention further includes: monitoring the communication quality of the non-point-to-point channel and the point-to-point channel quality of the point-to-point channel, and when the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel The first terminal switches the data exchange channel with the second terminal to a non-point-to-point channel.
例如,可以通过丢包率等参数来监测非点对点通道的通信质量和点对点通道的通信质量,比如,非点对点通道的丢包率小于点对点通道的丢包率,则非点对点通道的通信质量高于点对点通道的通信质量,在第一终端根据这些参数确定当前所使用的点对点通道的通信质量低于非点对点通道的通信质量时,第一终端即可以将与第二终端之间的数据交换通道切换为非点对点通道,具体可以是第一终端向第二终端发送信息,通知第二终端停止通过点对点通道收发媒体包并通过非点对点通道收发媒体包,并且第一终端本身也停止通过点对点通道收发媒体包,并通过非点对点通道收发媒体包,这样第一终端与第二终端之间的数据交换通道即由通信质量较差的点对点通道切换到了通信质量较优的非点对点通道,从而提高了第一终端与第二终端之间的通信质量。For example, the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel can be monitored by parameters such as the packet loss rate. For example, if the packet loss rate of the non-point-to-point channel is smaller than the packet loss rate of the point-to-point channel, the communication quality of the non-point-to-point channel is higher. The communication quality of the point-to-point channel, when the first terminal determines, according to these parameters, that the communication quality of the currently used point-to-point channel is lower than the communication quality of the non-point-to-point channel, the first terminal can switch the data exchange channel with the second terminal. For the non-point-to-point channel, the first terminal may send information to the second terminal, notify the second terminal to stop sending and receiving media packets through the peer-to-peer channel, and send and receive media packets through the non-point-to-point channel, and the first terminal itself stops receiving and transmitting media through the point-to-point channel. Packets, and send and receive media packets through non-point-to-point channels, so that the data exchange channel between the first terminal and the second terminal is switched from a point-to-point channel with poor communication quality to a non-point-to-point channel with better communication quality, thereby improving the first The quality of communication between the terminal and the second terminal.
当然了,在第一终端与第二终端之间的数据交换通道由点对点通道切换为非点对点通道之后,本发明实施例提供的通信方法还包括:第一终端通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。Of course, after the data exchange channel between the first terminal and the second terminal is switched from the point-to-point channel to the non-point-to-point channel, the communication method provided by the embodiment of the present invention further includes: the first terminal sends the second terminal to the second terminal through the point-to-point channel. A two-heartbeat packet, wherein the second heartbeat packet is used to maintain a point-to-point channel.
具体来讲,也即在第一终端与第二终端之间的数据交换通道由点对点通道切换为非点对点通道之后,第一终端继续监测非点对点通道的通信质量和点对点通道的通信质量,并且可以在非点对点通道的通信质量低于第点对点通道的通信质量的时候,第一终端将与第二终端之间的数据交换通道切换为点对点通道,从而保证第一终端与第二终端之间的通信质量维持在一个相对较高的水平,从而进一步提高网络通话的用户体验,在此就不再赘述了。Specifically, after the data exchange channel between the first terminal and the second terminal is switched from the point-to-point channel to the non-point-to-point channel, the first terminal continues to monitor the communication quality of the non-point-to-point channel and the communication quality of the point-to-point channel, and When the communication quality of the non-point-to-point channel is lower than the communication quality of the point-to-point channel, the first terminal switches the data exchange channel with the second terminal to the point-to-point channel, thereby ensuring communication between the first terminal and the second terminal. The quality is maintained at a relatively high level, which further enhances the user experience of the network call, and will not be described here.
通过上述部分可以看出,由于采用了在第一终端与第二终端已建立通信 连接时,第一终端通过非点对点通道与第二终端交换数据,并在第一终端与第二终端之间建立点对点通道,并在点对点通道建立后,通过点对点通道与第二终端交换数据,并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,通过点对点通道与第二终端交换数据的技术方案,第一终端与第二终端先通过非点对点通道交换数据,在点对点通道建立后,对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,第一终端才通过点对点通道与第一终端交换数据,消除了在通过点对点通道进行网络通话时因进行点对点通道的ICE连通性检测而产生的无数据交换的时间段,从而解决了现有技术中在通过点对点通道进行网络通话时存在无数据交换的时间段的技术问题,避免了该无数据交换的时间段所带给用户的较差的用户体验,同时避免了网络电话由非点对点通道切换为点对点通道时会出现的网络抖动,进一步提高了网络电话的用户体验。It can be seen from the above that the communication has been established between the first terminal and the second terminal. When connecting, the first terminal exchanges data with the second terminal through the non-point-to-point channel, and establishes a point-to-point channel between the first terminal and the second terminal, and after the point-to-point channel is established, exchanges data with the second terminal through the point-to-point channel, and Synchronizing the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel, and after the first data stream is synchronized with the second data stream, the technical solution for exchanging data with the second terminal through the point-to-point channel, first The terminal and the second terminal first exchange data through the non-point-to-point channel, and after the point-to-point channel is established, the first data stream of the non-point-to-point channel and the second data stream of the point-to-point channel are synchronously processed, and the first data stream and the second data are After the stream is synchronized, the first terminal exchanges data with the first terminal through the point-to-point channel, thereby eliminating the time period of no data exchange caused by the ICE connectivity detection of the point-to-point channel when performing network call through the point-to-point channel, thereby solving the problem. In the prior art, there is no data exchange when making a network call through a point-to-point channel. The technical problem of the time period avoids the poor user experience brought by the non-data exchange time period, and avoids the network jitter that occurs when the network telephone is switched from the non-point-to-point channel to the point-to-point channel, further improving the network jitter. The user experience of VoIP.
基于同一发明构思,本发明实施例还提供一种终端600,请参考图6,图6是本发明实施例提供的终端的功能模块图,如图6所示,该终端600包括:Based on the same inventive concept, the embodiment of the present invention further provides a terminal 600. Please refer to FIG. 6. FIG. 6 is a functional block diagram of a terminal according to an embodiment of the present invention. As shown in FIG. 6, the terminal 600 includes:
连接模块601,用于与第二终端建立通信连接,以及在该通信连接建立后,与第二终端建立点对点通道。The
媒体控制模块602,用于在连接模块601与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据;以及在点对点通道建立后,启用点对点通道与所述第二终端交换数据;对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。The
在具体实施过程中,连接模块601具体用于启动与第二终端之间的ICE连通性检测和协商,通过ICE连通性检测和协商来建立点对点通道。其中,基于ICE连通性检测和协商建立点对点通道过程是现有技术,这里不再赘述。
In the specific implementation process, the
在具体实施过程中,媒体控制模块602对所述非点对点通道的第一数据流以及所述点对点通道的第二数据流进行同步处理具体包括:媒体控制模块602用于根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序,并在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。In a specific implementation process, the
在具体实施过程中,图6所示的终端600还可以包括通道协调控制模块603,通道协调控制模块603用于在媒体控制模块停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。In the specific implementation process, the terminal 600 shown in FIG. 6 may further include a channel
在具体实施过程中,媒体控制模块602还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量,并在点对点通道的通信质量低于非点对点通道的通信质量时,将与第二终端之间的数据交换通道切换为非点对点通道。In a specific implementation process, the
在具体实施过程中,通道协调控制模块603还用于在媒体控制模块602将数据交换通道从点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。In a specific implementation process, the channel
在具体实施过程中,媒体控制模块602还用于在媒体控制模块602停止在非点对点通道与第二终端交换数据之后,通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道,并关闭非点对点通道。In a specific implementation process, the
本发明实施例还提供一种终端700,请参考图7,图7是本发明实施例提供的终端的实体模块图,如图7所示,该终端700包括:总线740;以及连接到总线740的处理器710、存储器720和接口730,其中该接口730用于与另一终端通信;该存储器720用于存储指令,该处理器710用于执行存储器
720中存储的指令,进行以下处理:用于在终端与第二终端已建立通信连接时,通过非点对点通道与第二终端交换数据,并在终端与第二终端之间建立点对点通道,并在点对点通道建立后,启用点对点通道与所述第二终端交换数据;并对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,并在第一数据流与第二数据流同步之后,停止在非点对点通道与第二终端交换数据。The embodiment of the present invention further provides a terminal 700. Please refer to FIG. 7. FIG. 7 is a physical block diagram of a terminal according to an embodiment of the present invention. As shown in FIG. 7, the terminal 700 includes: a
在本发明实施例中,可选地,该处理器710在终端与第二终端间建立点对点通道,包括:In the embodiment of the present invention, optionally, the
启动与第二终端的交互式连接建立ICE连通性检测和协商,通过该ICE连通性检测和协商建立与第二终端间的点对点通道。Initiating an ICE connectivity detection and negotiation by establishing an interactive connection with the second terminal, and establishing a point-to-point channel with the second terminal through the ICE connectivity detection and negotiation.
在本发明实施例中,可选地,该处理器710用于在终端对非点对点通道的第一数据流以及点对点通道的第二数据流进行同步处理,具体包括:In the embodiment of the present invention, the
根据通过非点对点通道接收到的第一组数据的序列号对第一组数据中的数据包进行排序,以及根据通过点对点通道接收到的第二组数据的序列号对第二组数据中的数据包进行排序;Sorting the data packets in the first set of data according to the sequence number of the first set of data received through the non-point-to-point channel, and the data in the second set of data according to the sequence number of the second set of data received through the point-to-point channel Packet sorting;
在第一组数据与第二组数据存在有N个序列号相同且连续的数据包时,确定第一数据流与第二数据流同步完成,其中,N为预设的整数值。When the first group of data and the second group of data have N consecutive serial number and consecutive data packets, it is determined that the first data stream is synchronized with the second data stream, where N is a preset integer value.
在本发明实施例中,可选地,该处理器710执还用于在终端停止在非点对点通道与第二终端交换数据后,通过非点对点通道向第二终端发送第一心跳包,其中,第一心跳包用于保持非点对点通道。In the embodiment of the present invention, optionally, the
在本发明实施例中,可选地,该处理器710还用于在停止在非点对点通道与第二终端交换数据后,监测非点对点通道的通信质量与点对点通道的通信质量;In the embodiment of the present invention, optionally, the
在点对点通道的通信质量低于非点对点通道的通信质量时,终端将与第二终端之间的数据交换通道切换为非点对点通道。When the communication quality of the point-to-point channel is lower than the communication quality of the non-point-to-point channel, the terminal switches the data exchange channel with the second terminal to a non-point-to-point channel.
在本发明实施例中,可选地,该处理器710还用于在将数据交换通道从
点对点通道切换为非点对点通道之后,通过点对点通道向第二终端发送第二心跳包,其中,第二心跳包用于保持点对点通道。In the embodiment of the present invention, optionally, the
在本发明实施例中,可选地,该处理器710还用于在停止在点对点通道与第二终端交换数据之后,通过非点对点通道向第二终端发送关闭消息,关闭消息用于通知第二终端关闭非点对点通道;并关闭非点对点通道。In the embodiment of the present invention, the
本实施例中的终端与前述实施例中的通信方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚地了解本实施例中的终端的结构及实施过程,为了说明书的简洁,在此就不再赘述了。The communication method in the embodiment and the communication method in the foregoing embodiment are based on two aspects under the same inventive concept. The implementation process of the method has been described in detail above, so that those skilled in the art can clearly understand according to the foregoing description. The structure and implementation process of the terminal in this embodiment are understood. For the sake of brevity of the description, details are not described herein again.
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。 The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 It is apparent that those skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the invention. Thus, it is intended that the present invention cover the modifications and modifications of the invention
Claims (14)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410268035.3A CN104052743A (en) | 2014-06-16 | 2014-06-16 | Communication method and terminals |
| CN201410268035.3 | 2014-06-16 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2015192682A1 true WO2015192682A1 (en) | 2015-12-23 |
Family
ID=51505107
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2015/076660 Ceased WO2015192682A1 (en) | 2014-06-16 | 2015-04-15 | Communication method and terminal |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN104052743A (en) |
| WO (1) | WO2015192682A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114629917A (en) * | 2022-03-22 | 2022-06-14 | 深圳市绿联科技股份有限公司 | Data processing method and device for cross-system communication and electronic equipment |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104052743A (en) * | 2014-06-16 | 2014-09-17 | 华为技术有限公司 | Communication method and terminals |
| CN107453935B (en) * | 2016-05-31 | 2021-01-15 | 华为技术有限公司 | Method and device for recovering conference resources and conference system |
| CN107888482B (en) * | 2017-11-09 | 2020-09-25 | 北京恒华伟业科技股份有限公司 | Instant messaging method and device |
| CN108234635A (en) * | 2017-12-29 | 2018-06-29 | 北京奇宝科技有限公司 | The method, apparatus and communication system to communicate with Intelligent target equipment |
| CN108540589A (en) * | 2018-03-23 | 2018-09-14 | 西安电子科技大学 | A kind of network traversal method for SIP communication systems |
| CN111903154B (en) * | 2019-02-12 | 2022-03-11 | Oppo广东移动通信有限公司 | Method and device for wireless communication |
| CN111657773B (en) * | 2020-07-03 | 2025-07-22 | 厦门市欧立通电子科技开发有限公司 | Automatic liquid feeder |
| CN114363676A (en) * | 2022-01-06 | 2022-04-15 | 重庆紫光华山智安科技有限公司 | Video stream transmission method, device, equipment and medium |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1968226A (en) * | 2006-04-18 | 2007-05-23 | 华为技术有限公司 | Method for crossing network address conversion in point-to-point communication |
| CN101102310A (en) * | 2007-07-25 | 2008-01-09 | 中国科学院沈阳计算技术研究所有限公司 | SIP soft switching system supporting P2P media transmission and its implementation method |
| CN102685268A (en) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | Fast private network traversal method based on ICE (Information and Content Exchange) protocol in VoIP (Voice over Internet Protocol) |
| WO2014002099A1 (en) * | 2012-06-29 | 2014-01-03 | Call Labs Ltd. | Interaction related content |
| CN104052743A (en) * | 2014-06-16 | 2014-09-17 | 华为技术有限公司 | Communication method and terminals |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8832280B2 (en) * | 2007-06-29 | 2014-09-09 | Microsoft Corporation | Interactive connectivity establishment for non-enabled endpoints |
| GB2494644B (en) * | 2011-09-13 | 2016-08-17 | Skype | Transmitting data over mulitiple networks |
-
2014
- 2014-06-16 CN CN201410268035.3A patent/CN104052743A/en active Pending
-
2015
- 2015-04-15 WO PCT/CN2015/076660 patent/WO2015192682A1/en not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1968226A (en) * | 2006-04-18 | 2007-05-23 | 华为技术有限公司 | Method for crossing network address conversion in point-to-point communication |
| CN101102310A (en) * | 2007-07-25 | 2008-01-09 | 中国科学院沈阳计算技术研究所有限公司 | SIP soft switching system supporting P2P media transmission and its implementation method |
| CN102685268A (en) * | 2012-05-22 | 2012-09-19 | 北京邮电大学 | Fast private network traversal method based on ICE (Information and Content Exchange) protocol in VoIP (Voice over Internet Protocol) |
| WO2014002099A1 (en) * | 2012-06-29 | 2014-01-03 | Call Labs Ltd. | Interaction related content |
| CN104052743A (en) * | 2014-06-16 | 2014-09-17 | 华为技术有限公司 | Communication method and terminals |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114629917A (en) * | 2022-03-22 | 2022-06-14 | 深圳市绿联科技股份有限公司 | Data processing method and device for cross-system communication and electronic equipment |
Also Published As
| Publication number | Publication date |
|---|---|
| CN104052743A (en) | 2014-09-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2015192682A1 (en) | Communication method and terminal | |
| US8694587B2 (en) | System and method for transferring a call bridge between communication devices | |
| US9374263B2 (en) | Latency differential mitigation for real time data streams | |
| CN102685268B (en) | Fast private network traversal method based on ICE (Information and Content Exchange) protocol in VoIP (Voice over Internet Protocol) | |
| EP3253050A1 (en) | Data processing method in webpage-based real-time communication media and device utilizing same | |
| CN102387081B (en) | Communication service QoS assurance method, device and system in NAT scene | |
| CN103718532A (en) | A data transmission method, device and terminal equipment | |
| WO2010020169A1 (en) | Media bypass method, system and apparatus | |
| KR101705440B1 (en) | Hybrid cloud media architecture for media communications | |
| CN102333124A (en) | Method and device for improving quality of audio or video transmission in cloud computing mode | |
| CN109714494B (en) | Method and system for generating bills, and server for generating bills | |
| US9525710B2 (en) | Seamless switch over from centralized to decentralized media streaming | |
| CN107277420A (en) | A kind of video calling implementation method and terminal | |
| CN110650260A (en) | A system and method for intercommunication of network terminal audio with internal and external networks | |
| CN108306986A (en) | Polymorphic type media data network address commutation traversing method, terminal and system | |
| CN102546644B (en) | Method, equipment and system for implementing SIP (Session Initiation Protocol) calling | |
| CN104363149B (en) | The system and method for VOIP Network Expert Systems is realized based on Session Initiation Protocol | |
| CN104811579B (en) | A kind of facsimile service processing system, method and apparatus | |
| CN102413136B (en) | VoIP system and method for realizing penetration of VoIP voice stream through fire wall | |
| CN101997870B (en) | Method for ensuring reliability of dynamic transfer in voice over internet protocol (VoIP) system | |
| JP2017028591A (en) | Resource securing device and resource securing method | |
| EP2876858B1 (en) | Call transfer with network spanning back-to-back user agents | |
| WO2011120367A1 (en) | Method and device for analyzing voice quality | |
| CN103929436B (en) | A kind of method of media negotiation repeatedly in limitation IMS network | |
| CN102739672A (en) | Realization method and device of terminal mobile service in IP (Internet Protocol) multimedia subsystem architecture |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15809285 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 15809285 Country of ref document: EP Kind code of ref document: A1 |