Electronic device for establishing communication session and operation method thereof
Patent Information
- Application Number
- PCT/KR2024/012522
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-30
- Filing Date
- 2024-08-22
- Publication Date
- 2025-03-06
Smart Images

Figure KR2024012522_06032025_PF_FP_ABST
Abstract
Description
Electronic device for establishing a communication session and method of operating the same
[0001] Various embodiments of the present disclosure relate to an electronic device for establishing a communication session and a method of operating the same.
[0002] The Internet can be divided into public and private networks. Network address translation (NAT) can be used to facilitate communication between private and public networks. NAT can be a function that enables communication between public and private networks by translating private Internet Protocol (IP) addresses used on private networks into public IP addresses used on public networks, or by translating public IP addresses into private IP addresses.
[0003] When a packet is transmitted from a private network to a public network, a translation table can be created to manage the translation between private and public IP addresses based on the NAT function. Thereafter, packets can be transmitted from the public network to the private network based on the translation table.
[0004] When communication occurs between an electronic device and an external electronic device, the electronic device and the external electronic device can each identify the IP address / port number of the other device using a signaling protocol such as the Session Initiation Protocol (SIP). Each electronic device and the external electronic device can transmit its IP address to the other device during communication. However, if the private network to which the electronic device belongs is different from the private network to which the external electronic device belongs, and the IP addresses transmitted by each of the electronic device and the external electronic device are private IP addresses, communication between the electronic device and the external electronic device may be impossible. To prevent this communication failure due to the use of private IP addresses, various methods have been proposed, and the interactive connectivity establishment (ICE) method may be a representative method.
[0005] However, in the ICE method, the electronic device can only begin checking for a communication path that allows communication with an external electronic device after a request for establishing a communication session has been issued. Therefore, the electronic device must perform various processes, such as checking the electronic device's communication channel, checking the channel information of the external electronic device, and determining whether communication is possible between each channel between the electronic device and the external electronic device, before establishing a communication session. These various processes can increase the time required to establish a communication session between the electronic device and the external electronic device.
[0006] According to one embodiment of the present disclosure, an electronic device (101) may include a communication circuit (190), one or more processors (120) including processing circuitry, and a memory (130) storing instructions.
[0007] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit a first message to a server (200) through the communication circuit, requesting that the server (200) notify the electronic device of first information related to the service of the external electronic device before a communication session is established with the electronic device in a peer-to-peer (P2P) based service.
[0008] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device, in response to the first message, to receive from the server via the communication circuit a second message comprising second information comprising at least a portion of the first information.
[0009] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit a P2P discovery request message including third information related to the service of the electronic device to the external electronic device through the communication circuit based on the second information.
[0010] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to receive, in response to the P2P discovery request message, a P2P discovery response message including the first information from the external electronic device through the communication circuit.
[0011] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to confirm a request for establishing a communication session with the external electronic device after receiving the P2P discovery response message.
[0012] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to establish a communication session with the external electronic device through the communication circuit based on the first information.
[0013] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0014] According to one embodiment of the present disclosure, a server (200) may include a communication circuit (211), one or more processors (213) including processing circuitry, and a memory (217) for storing instructions.
[0015] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to receive, through the communication circuit, a first message from the electronic device (101) requesting that the external electronic device (220) notify the electronic device of first information related to the service of the external electronic device before a communication session is established with the electronic device (101) in a peer-to-peer (P2P) based service.
[0016] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, after receiving the first message, to receive a second message including the first information from the external electronic device through the communication circuit.
[0017] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, in response to the second message, to transmit a third message to the electronic device via the communication circuitry, the third message including second information including at least a portion of the first information.
[0018] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, after transmitting the third message, to receive a communication session connection request message from the electronic device through the communication circuit to the external electronic device, the communication session connection request message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device.
[0019] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to determine whether the information about the P2P communication-capable device includes the first information.
[0020] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to determine whether the first token included in the communication session connection request message is identical to a token of the external electronic device registered with the server, based on the first information being included in the information about the P2P communication-capable device.
[0021] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to transmit, through the communication circuit, the communication session connection request message including private IP / port information of the electronic device to the external electronic device based on verification that the first token is identical to a token of the external electronic device registered with the server.
[0022] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0023] According to one embodiment of the present disclosure, a method of operating an electronic device (101) may include, before a communication session is established with an external electronic device (220) having an association with the electronic device in a peer-to-peer (P2P) based service, transmitting a first message to a server (200) requesting that the external electronic device notify the electronic device of first information related to the service.
[0024] According to one embodiment of the present disclosure, the method may include, in response to the first message, receiving from the server a second message including second information including at least a portion of the first information.
[0025] According to one embodiment of the present disclosure, the method may include an operation of transmitting, to the external electronic device, a P2P discovery request message including third information related to the service of the electronic device, based on the second information.
[0026] According to one embodiment of the present disclosure, the method may include an operation of receiving, from the external electronic device, a P2P discovery response message including the first information in response to the P2P discovery request message.
[0027] According to one embodiment of the present disclosure, the method may include an operation of confirming a request for establishing a communication session to the external electronic device after receiving the P2P discovery response message.
[0028] According to one embodiment of the present disclosure, the method may include an operation of establishing a communication session with the external electronic device based on the first information.
[0029] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0030] According to one embodiment of the present disclosure, a method of operating a server (200) may include, before a communication session is established with an external electronic device (220) having an association with an electronic device (101) in a peer-to-peer (P2P) based service, receiving a first message from the electronic device requesting that the external electronic device notify the electronic device of first information related to the service.
[0031] According to one embodiment of the present disclosure, the method may include, after receiving the first message, receiving a second message including the first information from the external electronic device.
[0032] According to one embodiment of the present disclosure, the method may include, in response to the second message, transmitting to the electronic device a third message including second information including at least a portion of the first information.
[0033] According to one embodiment of the present disclosure, the method may include, after transmitting the third message, receiving, from the electronic device, a communication session connection request message to the external electronic device, the message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device.
[0034] According to one embodiment of the present disclosure, the method may include an operation of checking whether the first information is included in the information about the device capable of P2P communication.
[0035] According to one embodiment of the present disclosure, the method may include an operation of checking whether the first token included in the communication session connection request message is identical to a token of the external electronic device registered on the server, based on the first information being included in the information about the device capable of P2P communication.
[0036] According to one embodiment of the present disclosure, the method may include an operation of transmitting, to the external electronic device, a communication session connection request message including private IP / port information of the electronic device, based on verifying that the first token is identical to a token of the external electronic device registered with the server.
[0037] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0038] According to one embodiment of the present disclosure, a non-transitory computer-readable storage medium may include one or more programs, which are executed by one or more processors (120) including processing circuitry of an electronic device (101), and which include instructions configured to transmit, to a server (200), a first message requesting that the external electronic device (220) notify the electronic device of first information related to the service before a communication session is established with the electronic device in a peer-to-peer (P2P) based service.
[0039] According to one embodiment of the present disclosure, the instructions may be configured to cause the electronic device, in response to the first message, to receive from the server a second message comprising second information comprising at least a portion of the first information.
[0040] According to one embodiment of the present disclosure, the instructions may be configured to cause the electronic device to transmit, to the external electronic device, a P2P discovery request message including third information related to the service of the electronic device based on the second information.
[0041] According to one embodiment of the present disclosure, the instructions may be configured to cause the electronic device to receive, in response to the P2P discovery request message, a P2P discovery response message including the first information from the external electronic device.
[0042] According to one embodiment of the present disclosure, the instructions may be configured to cause the electronic device to confirm a request for establishing a communication session with the external electronic device after receiving the P2P discovery response message.
[0043] According to one embodiment of the present disclosure, the instructions may be configured to cause the electronic device to establish a communication session with the external electronic device based on the first information.
[0044] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0045] According to one embodiment of the present disclosure, a non-transitory computer-readable storage medium may include one or more programs, including instructions, that are executed by one or more processors (213) including processing circuitry of a server (200), and that are configured to cause the server to receive, before a communication session is established with an external electronic device (220) having an association with the electronic device (101) in a peer-to-peer (P2P) based service, a first message from the electronic device requesting that the external electronic device notify the electronic device of first information related to the service of the external electronic device.
[0046] According to one embodiment of the present disclosure, the instructions may be configured to cause the server to receive, from the external electronic device, a second message including the first information after receiving the first message.
[0047] According to one embodiment of the present disclosure, the instructions may be configured to cause the server, in response to the second message, to transmit to the electronic device a third message comprising second information including at least a portion of the first information.
[0048] According to one embodiment of the present disclosure, the instructions may be configured to receive, from the electronic device, a communication session connection request message to the external electronic device, after the server transmits the third message, the communication session connection request message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device.
[0049] According to one embodiment of the present disclosure, the instructions may be configured to cause the server to check whether the first information is included in the information about the device capable of P2P communication.
[0050] According to one embodiment of the present disclosure, the instructions may be configured to determine whether the first token included in the communication session connection request message is identical to a token of the external electronic device registered with the server, based on the first information being included in the information about the device capable of P2P communication.
[0051] According to one embodiment of the present disclosure, the instructions may be configured to cause the server to transmit, to the external electronic device, a communication session connection request message including private IP / port information of the electronic device, based on the server verifying that the first token is identical to a token of the external electronic device registered with the server.
[0052] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0053] FIG. 1 is a block diagram schematically illustrating an electronic device within a network environment according to one embodiment.
[0054] FIG. 2a is a block diagram schematically illustrating a communication system supporting an interactive connectivity establishment (ICE) method according to one embodiment.
[0055] FIG. 2b is a block diagram illustrating the internal structure of a signaling server according to one embodiment.
[0056] FIG. 3a is a signal flow diagram illustrating a general communication session establishment procedure for comparison with a communication session establishment procedure according to an embodiment.
[0057] FIG. 3b is a signal flow diagram illustrating a general communication session establishment procedure for comparison with a communication session establishment procedure according to an embodiment.
[0058] FIG. 4 is a flowchart illustrating a method of operating an electronic device according to one embodiment.
[0059] Figure 5 is a flowchart illustrating a method of operating a server according to one embodiment.
[0060] FIG. 6A is a signal flow diagram illustrating a procedure for checking whether peer-to-peer (P2P) communication is possible according to one embodiment.
[0061] FIG. 6b is a signal flow diagram illustrating a procedure for checking whether P2P communication is possible according to one embodiment.
[0062] FIG. 7a is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0063] FIG. 7b is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0064] FIG. 7c is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0065] FIG. 7d is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0066] FIG. 7e is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0067] FIG. 7f is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0068] FIG. 8a is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0069] FIG. 8b is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0070] FIG. 8c is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0071] FIG. 8d is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0072] FIG. 8e is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0073] FIG. 8f is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0074] FIG. 8g is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0075] FIG. 8h is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0076] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the attached drawings. In describing an embodiment of the present disclosure, if a detailed description of a related known function or configuration is determined to unnecessarily obscure the gist of an embodiment of the present disclosure, such detailed description will be omitted. The terms described below are defined in consideration of the functions of an embodiment of the present disclosure, and may vary depending on the intent or custom of the user or operator. Therefore, their definitions should be determined based on the contents throughout this specification.
[0077] It should be noted that the technical terms used in this specification are merely used to describe specific embodiments and are not intended to limit the embodiments of the present disclosure. Alternatively, unless specifically defined otherwise herein, the technical terms used in this specification should be interpreted as having a meaning generally understood by a person skilled in the art to which the present disclosure pertains, and should not be interpreted in an excessively broad or narrow sense. Alternatively, if a technical term used in this specification is an incorrect technical term that does not accurately express the spirit of the present disclosure, it should be replaced with a technical term that can be correctly understood by a person skilled in the art. Alternatively, general terms used in the embodiments of the present disclosure should be interpreted as defined in the dictionary or according to the context, and should not be interpreted in an excessively narrow sense.
[0078] Alternatively, the singular expressions used herein include plural expressions unless the context clearly dictates otherwise. In this application, terms such as "consisting of" or "comprising" should not be construed to necessarily include all of the various components or various operations described in the specification, and should be construed to mean that some of the components or some operations may not be included, or that additional components or operations may be included.
[0079] Alternatively, terms including ordinal numbers, such as "first" and "second," used herein may be used to describe various components, but the components should not be limited by these terms. These terms are used solely to distinguish one component from another. For example, without departing from the scope of the present disclosure, a first component could be referred to as a second component, and similarly, a second component could also be referred to as a first component.
[0080] When a component is referred to as being "connected" or "connected" to another component, it may be directly connected or connected to that other component, but there may also be other components intervening. Conversely, when a component is referred to as being "directly connected" or "connected" to another component, it should be understood that there are no other components intervening.
[0081] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the attached drawings. Regardless of the drawing numbers, identical or similar components will be given the same reference numbers and redundant descriptions thereof will be omitted. Alternatively, when describing an embodiment of the present disclosure, if a detailed description of a related known technology is determined to obscure the gist of the present disclosure, the detailed description thereof will be omitted. Alternatively, it should be noted that the attached drawings are only intended to facilitate easy understanding of the spirit of the present disclosure and should not be construed as limiting the spirit of the present disclosure by the attached drawings. The spirit of the present disclosure should be construed to extend to all modifications, equivalents, and substitutes other than the attached drawings.
[0082] Hereinafter, an embodiment of the present disclosure will be described using an electronic device as an example, but the electronic device may also be referred to as a terminal, a mobile station, mobile equipment (ME), user equipment (UE), user terminal (UT), subscriber station (SS), wireless device, handheld device, or access terminal (AT). Alternatively, in an embodiment of the present disclosure, the electronic device may be a device having a communication function, such as a mobile phone, a personal digital assistant (PDA), a smart phone, a wireless MODEM, or a laptop.
[0083] FIG. 1 is a block diagram schematically illustrating an electronic device (101) within a network environment (100) according to one embodiment.
[0084] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) via a first network (198) (e.g., a short-range wireless communication network), or may communicate with an electronic device (104) or a server (108) via a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) via the server (108). According to one embodiment, the electronic device (101) may include a processor (120), a memory (130), an input module (150), an audio output module (155), a display module (160), an audio module (170), a sensor module (176), an interface (177), a connection terminal (178), a haptic module (179), a camera module (180), a power management module (188), a battery (189), a communication module (190), a subscriber identification module (196), or an antenna module (197). In some embodiments, the electronic device (101) may omit at least one of these components (e.g., the connection terminal (178)), or may have one or more other components added. In some embodiments, some of these components (e.g., the sensor module (176), the camera module (180), or the antenna module (197)) may be integrated into one component (e.g., the display module (160)).
[0085] The processor (120) may control at least one other component (e.g., a hardware or software component) of the electronic device (101) connected to the processor (120) by executing, for example, software (e.g., a program (140)), and may perform various data processing or calculations. According to one embodiment, as at least a part of the data processing or calculation, the processor (120) may store a command or data received from another component (e.g., a sensor module (176) or a communication module (190)) in a volatile memory (132), process the command or data stored in the volatile memory (132), and store the resulting data in a non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., a central processing unit or an application processor) or a secondary processor (123) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together therewith. For example, if the electronic device (101) includes a main processor (121) and a secondary processor (123), the secondary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a specified function. The secondary processor (123) may be implemented separately from the main processor (121) or as a part thereof.
[0086] The auxiliary processor (123) may control at least a part of functions or states associated with at least one component (e.g., a display module (160), a sensor module (176), or a communication module (190)) of the electronic device (101), for example, on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (123) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (180) or a communication module (190)). In one embodiment, the auxiliary processor (123) (e.g., a neural network processing device) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, in the electronic device (101) itself where artificial intelligence is performed, or can be performed through a separate server (e.g., server (108)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0087] The memory (130) can store various data used by at least one component (e.g., processor (120) or sensor module (176)) of the electronic device (101). The data can include, for example, software (e.g., program (140)) and input data or output data for commands related thereto. The memory (130) can include volatile memory (132) or non-volatile memory (134).
[0088] The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).
[0089] The input module (150) can receive commands or data to be used in a component of the electronic device (101) (e.g., a processor (120)) from an external source (e.g., a user) of the electronic device (101). The input module (150) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0090] The audio output module (155) can output audio signals to the outside of the electronic device (101). The audio output module (155) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. According to one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0091] The display module (160) can visually provide information to an external party (e.g., a user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. In one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0092] The audio module (170) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150), output sound through the sound output module (155), or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (101).
[0093] The sensor module (176) can detect the operating status (e.g., power or temperature) of the electronic device (101) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (176) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0094] The interface (177) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (101) with an external electronic device (e.g., electronic device (102)) (tablet and / or smartwatch). In one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0095] The connection terminal (178) may include a connector through which the electronic device (101) may be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0096] A haptic module (179) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. According to one embodiment, the haptic module (179) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0097] The camera module (180) can capture still images and videos. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.
[0098] The power management module (188) can manage power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0099] A battery (189) may power at least one component of the electronic device (101). In one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0100] The communication module (190) may also be referred to as a “communication circuit,” and thus, it should be noted that the communication module (190) and the communication circuit (190) may be used interchangeably as needed. The communication module (190) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may operate independently from the processor (120) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (194) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (104) via a first network (198) (e.g., a short-range communication network such as Bluetooth, Wi-Fi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (199) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips).The wireless communication module (192) can verify or authenticate an electronic device (101) within a communication network, such as a first network (198) or a second network (199), using subscriber information (e.g., international mobile subscriber identity (IMSI)) stored in the subscriber identification module (196).
[0101] The wireless communication module (192) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). The NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimization of terminal power and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (192) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (192) can support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), an external electronic device (e.g., the electronic device (104)), or a network system (e.g., the second network (199)). According to one embodiment, the wireless communication module (192) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0102] The antenna module (197) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). According to one embodiment, the antenna module (197) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (198) or the second network (199), may be selected from the plurality of antennas, for example, by the communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device via the selected at least one antenna. According to some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (197).
[0103] In one embodiment, the antenna module (197) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high-frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high-frequency band.
[0104] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0105] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) via a server (108) connected to a second network (199). Each of the external electronic devices (102 or 104) may be the same or a different type of device as the electronic device (101). According to one embodiment, all or part of the operations executed in the electronic device (101) may be executed in one or more of the external electronic devices (102, 104, or 108). For example, when the electronic device (101) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (101) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (101) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In one embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server utilizing machine learning and / or a neural network. According to one embodiment, the external electronic device (104) or the server (108) may be included in the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
[0106] Electronic devices according to embodiments disclosed herein may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to embodiments disclosed herein are not limited to the aforementioned devices.
[0107] The embodiments of this document and the terms used herein are not intended to limit the technical features described in this document to a specific embodiment, but should be understood to include various modifications, equivalents, or substitutes of the embodiment. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the item, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0108] The term "module" used in one embodiment of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0109] An embodiment of the present document may be implemented as software (e.g., a program (140)) including one or more instructions stored in a storage medium (e.g., an internal memory (136) or an external memory (138)) readable by a machine (e.g., an electronic device (101)). For example, a processor (e.g., a processor (120)) of the machine (e.g., an electronic device (101)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0110] According to one embodiment, the method according to one embodiment disclosed in the present document may be provided as a computer program product. The computer program product may be traded between sellers and buyers as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., compact disc read-only memory (CD-ROM)) or may be available through an application store (e.g., Play Store). TM ) or directly between two user devices (e.g., smart phones), online distribution (e.g., downloading or uploading). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0111] According to one embodiment, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to one embodiment, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to one embodiment, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
[0112] FIG. 2a is a block diagram schematically illustrating a communication system supporting an interactive connectivity establishment (ICE) method according to one embodiment.
[0113] Referring to FIG. 2A, a communication system supporting the ICE method may include an electronic device (e.g., electronic device (101) of FIG. 1), a signaling server (200) (e.g., server (180) of FIG. 1), a relay server (210), and / or an external electronic device (220) (e.g., electronic device (102) or electronic device (104) of FIG. 1).
[0114] The electronic device (101) and the external electronic device (220) can perform peer-to-peer (P2P) discovery operations. The electronic device (101) and the external electronic device (220) can each establish a communication session with a counterpart device through a signaling server (200) and perform communication through the established communication session.
[0115] The signaling server (200) can perform operations related to establishing a communication session between an electronic device (101) and an external electronic device (220).
[0116] The relay server (210) can respond to requests for public internet protocol (IP) / port information from each of the electronic device (101) and the external electronic device (220), and relay packets between the electronic device (101) and the external electronic device (220).
[0117] FIG. 2b is a block diagram illustrating the internal structure of a signaling server (200) according to one embodiment.
[0118] Referring to FIG. 2B, a signaling server (200) (e.g., server (108) of FIG. 1 or signaling server (200) of FIG. 2A) may be a server providing a service. In one embodiment, the service may include a P2P-based service that is linked to the signaling server (200). As an example, the service may be a CMC service.
[0119] In one embodiment, the signaling server (200) may provide a service in conjunction with an electronic device (e.g., an electronic device (101) of FIG. 1 or FIG. 2A, or an electronic device (102) or an electronic device (104) of FIG. 1) or another server (e.g., a relay server (210) of FIG. 2A).
[0120] The signaling server (200) may include at least one antenna (211), a communication circuit (213), a processor (215), a memory (217), an interface (219), and / or a display (221). In one embodiment, the antenna (211), the communication circuit (213), the processor (215), the memory (217), the interface (219), and / or the display (221) may be implemented similarly or substantially identically to the antenna module (197), the communication module (190), the processor (120), the memory (130), the interface (177), and / or the display module (160) described in FIG. 1, respectively, and thus, a detailed description thereof will be omitted.
[0121] FIG. 3a is a signal flow diagram illustrating a general communication session establishment procedure for comparison with a communication session establishment procedure according to an embodiment.
[0122] FIG. 3b is a signal flow diagram illustrating a general communication session establishment procedure for comparison with a communication session establishment procedure according to an embodiment.
[0123] Referring to FIGS. 3A and 3B, the electronic device (101) (e.g., the electronic device (101) of FIG. 1 or FIG. 2A) may be a smart phone, the external electronic device (220) (e.g., the electronic device (102) or the electronic device (104) of FIG. 1, or the external electronic device (220) of FIG. 2A) may be a tablet and / or a smart watch, and the signaling server (200) (e.g., the server (108) of FIG. 1, or the signaling server (200) of FIG. 2A or FIG. 2B) and the relay server (210) (e.g., the relay server (210) of FIG. 2A) may be servers providing services. The P2P method used in FIGS. 3A and 3B may be a SIP method.
[0124] In operation 301, the electronic device (101) may perform a network connection operation for a network (300). The electronic device (101) that has performed the network connection operation for the network (300) may transmit a communication session establishment request message to the signaling server (200) in operation 302 to establish a communication session with the signaling server (200). As an example, the communication session establishment request message transmitted in operation 302 may be implemented as shown in Table A below.
[0125] Table A
[0126]
[0127] In Table A, “user1” may be a user identifier (ID) of the electronic device (101), and “device1” may be a device ID of the electronic device (101).
[0128] In operation 303, the external electronic device (220) may perform a network connection operation for the network (300). The external electronic device (220) that performed the network connection operation for the network (300) may transmit a communication session establishment request message to the signaling server (200) in operation 304 to establish a communication session with the signaling server (200). As an example, the communication session establishment request message transmitted in operation 304 may be implemented as shown in Table B below.
[0129] Table B
[0130]
[0131] In Table B, “user2” may be the user ID of the external electronic device (220), and “device2” may be the device ID of the external electronic device (220).
[0132] The electronic device (101) may, at operation 305, determine that a request for establishing a communication session with an external electronic device (220) has occurred. The request for establishing a communication session may be generated based on a user input of the electronic device (101), or may be generated based on a program running on the electronic device (101).
[0133] The electronic device (101), which has confirmed that a request for establishing a communication session for an external electronic device (220) has occurred, can check the private Internet protocol (IP) / port information used for packet communication through the communication session of the electronic device (101) in operation 306. The private IP / port information may include a private IP address and a port number.
[0134] The electronic device (101) that has confirmed the private IP / port information can confirm the public IP / port information of the electronic device (101) by transmitting a message requesting the public IP / port information of the electronic device (101) to the relay server (210) in operation 307. The public IP / port information may include a public IP address and a port number.
[0135] The electronic device (101) that has confirmed the public IP / port information can confirm the IP / port information of the relay server (210) by sending a message requesting the IP / port information of the relay server (210) to the relay server (210) in operation 308. The IP / port information of the relay server (210) may include the IP address and port number of the relay server (210). The IP address and port number of the relay server (210) may be a public IP address and port number.
[0136] The electronic device (101) that has verified the IP / port information of the relay server (210) can transmit a communication session connection request message to the signaling server (200) to establish a communication session with an external electronic device (220) in operation 309. As an example, the communication session connection request message can be implemented as shown in Table C below.
[0137] Table C
[0138]
[0139] In Table C, “candidate” may include private IP / port information of the electronic device (101) confirmed by the electronic device (101), and / or public IP / port information of the electronic device (101).
[0140] In Table C, ice-ufrag and ice-pwd can be used to ensure the integrity of a communication session connection request message. For example, ice-ufrag and ice-pwd can be implemented similarly or substantially identically to ice-ufrag and ice-pwd specified in Request for Comments (RFC) 5245, which specifies the Interactive Connectivity Establishment (ICE) protocol, and thus their detailed description is omitted.
[0141] The signaling server (200) that has received a communication session connection request message from the electronic device (101) can transmit the communication session connection request message received from the electronic device (101) to the external electronic device (200) in operation 310.
[0142] An external electronic device (220) that has received a communication session connection request message from a signaling server (200) can check private IP / port information used for packet communication through the communication session of the external electronic device (220) in operation 311.
[0143] The external electronic device (220) that has confirmed the private IP / port information can confirm the public IP / port information of the external electronic device (220) by sending a message requesting the public IP / port information of the external electronic device (220) to the relay server (210) in operation 312.
[0144] An external electronic device (220) that has confirmed the public IP / port information can confirm the IP / port information of the relay server (210) by sending a message requesting the IP / port information of the relay server (210) to the relay server (210) in operation 313.
[0145] The external electronic device (220) that has confirmed the IP / port information of the relay server (210) may accept the communication session connection request of the electronic device (101) to the external electronic device (220) in operation 314, and transmit a communication session connection acceptance message as a response message to the communication session connection request message to the signaling server (200). The communication session connection acceptance message may include private IP / port information of the external electronic device (220), IP / port information of the external electronic device (220), and IP / port information of the relay server (210).
[0146] For example, the communication session connection acceptance message transmitted in operation 314 can be implemented as shown in Table D below.
[0147] Table D
[0148]
[0149] The signaling server (200) that has received a communication session connection acceptance message from an external electronic device (220) can transmit the communication session connection acceptance message received from the external electronic device (220) to the electronic device (101) in operation 315.
[0150] Upon receiving a communication session connection acceptance message from the signaling server (200), the electronic device (101) and the external electronic device (220) can check a communication channel between the electronic device (101) and the external electronic device (220) in operation 316. The electronic device (101) and the external electronic device (220) can check a communication channel between the electronic device (101) and the external electronic device (220) based on the private IP / port information, the public IP / port information, and the IP / port information of the relay server of the counterpart device, respectively. When there are multiple communication channels between the electronic device (101) and the external electronic device (220), any one of the multiple communication channels can be selected as the communication channel between the electronic device (101) and the external electronic device (220) as specified in Section 2.2 and / or Section 5.1.2 of the RFC 8445 standard specifying the ICE protocol.
[0151] If the communication channel between the electronic device (101) and the external electronic device (220) is selected as a channel based on private IP / port information (e.g., a channel capable of P2P communication based on private IP / port information), the electronic device (101) and the external electronic device (220) can exchange packets (e.g., P2P media) based on the private IP / port information in operation 317.
[0152] If the communication channel between the electronic device (101) and the external electronic device (220) is selected as a channel based on public IP / port information (e.g., P2P communication based on public IP / port information is possible), the electronic device (101) and the external electronic device (220) can exchange packets (e.g., P2P media) based on the public IP / port information in operation 318.
[0153] If the communication channel between the electronic device (101) and the external electronic device (220) is selected as a channel based on the IP / port information of the relay server (e.g., communication based on the IP / port information of the relay server (210) is possible), the electronic device (101) can transmit a packet (e.g., relay server media) to the relay server (210) based on the IP / port information of the relay server (210) in operation 319. The relay server (210) that received the packet from the electronic device (101) can relay the packet received from the electronic device (101) to the external electronic device (220) in operation 320.
[0154] If the messages transmitted in actions 309, 310, 314, and 315 are session description protocol (SDP) messages, each of the messages may include ICE-related information (e.g., "ice-pwd" and / or "ice-ufrag").
[0155] As described in FIGS. 3A and 3B , in the communication possible channel confirmation procedure based on the ICE method, the electronic device (101) may start to confirm the communication possible channel between the electronic device (101) and the external electronic device (220) only after the electronic device (101) confirms that a communication session establishment request has occurred. In this case, the electronic device (101) may have to perform operations for confirming the communication channel of the electronic device (101) (e.g., operations 306 to 308), the external electronic device (220) may have to perform operations for confirming the communication channel of the external electronic device (220) (e.g., operations 311 to 313), and the operation for confirming the communication possible channel between the electronic device (101) and the external electronic device (220) (e.g., operation 316). Due to these operations, the time required for establishing a communication session between the electronic device (101) and the external electronic device (220) based on the ICE method may become longer.
[0156] One embodiment of the present disclosure may provide an electronic device and a method of operating the same that reduces (e.g., minimizes) the time required to establish a communication session by checking whether P2P communication is possible before a request for establishing a communication session between devices is generated.
[0157] According to one embodiment of the present disclosure, an electronic device (101) may include a communication circuit (190), one or more processors (120) including processing circuitry, and a memory (130) for storing instructions.
[0158] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit a first message to a server (200) through the communication circuit, requesting that the server (200) notify the electronic device of first information related to the service of the external electronic device before a communication session is established with the electronic device in a peer-to-peer (P2P) based service.
[0159] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device, in response to the first message, to receive from the server via the communication circuit a second message comprising second information comprising at least a portion of the first information.
[0160] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit a P2P discovery request message including third information related to the service of the electronic device to the external electronic device through the communication circuit based on the second information.
[0161] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to receive, in response to the P2P discovery request message, a P2P discovery response message including the first information from the external electronic device through the communication circuit.
[0162] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to confirm a request for establishing a communication session with the external electronic device after receiving the P2P discovery response message.
[0163] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to establish a communication session with the external electronic device through the communication circuit based on the first information.
[0164] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit, based on the first information, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information to the external electronic device through the communication circuit.
[0165] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to receive, in response to the communication session connection request message, a communication session connection acceptance message from the external electronic device through the communication circuitry, the communication session connection acceptance message including private IP / port information of the external electronic device.
[0166] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit or receive a packet with the external electronic device through the communication circuit based on private IP / port information of the external electronic device.
[0167] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit, based on the first information, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information to the external electronic device through the communication circuit.
[0168] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to receive, in response to the communication session connection request message, a communication session connection acceptance message from the external electronic device through the communication circuitry, the communication session connection acceptance message including public IP / port information of the external electronic device.
[0169] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the electronic device to transmit or receive a packet with the external electronic device through the communication circuit based on private IP / port information of the external electronic device.
[0170] According to one embodiment of the present disclosure, the first information may include a user identifier (ID) of the external electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and the first token.
[0171] According to one embodiment of the present disclosure, the first token may be generated when the external electronic device connects to a new network.
[0172] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the external electronic device is connected, a change in a device used by the external electronic device when performing a network connection operation, or a change in the IP address of the external electronic device.
[0173] According to one embodiment of the present disclosure, the third information may include a user identifier (ID) of the electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and a second token related to the validity of the third information.
[0174] According to one embodiment of the present disclosure, the second token may be generated when the electronic device connects to a new network.
[0175] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the electronic device is connected, a change in a device used by the electronic device when performing a network connection operation, or a change in the IP address of the electronic device.
[0176] According to one embodiment of the present disclosure, the external electronic device having an association with the electronic device may log in to the service with the same user identifier (ID) as the electronic device, log in to the service with the same user ID as a device having a set relationship with the electronic device, or log in to the service with the same user ID as a device belonging to the same group as the electronic device.
[0177] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0178] According to one embodiment of the present disclosure, a server (200) may include a communication circuit (211), one or more processors (213) including processing circuitry, and a memory (217) for storing instructions.
[0179] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to receive, through the communication circuit, a first message from the electronic device (101) requesting that the external electronic device (220) notify the electronic device of first information related to the service of the external electronic device before a communication session is established with the electronic device (101) in a peer-to-peer (P2P) based service.
[0180] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, after receiving the first message, to receive a second message including the first information from the external electronic device through the communication circuit.
[0181] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, in response to the second message, to transmit a third message to the electronic device via the communication circuitry, the third message including second information including at least a portion of the first information.
[0182] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server, after transmitting the third message, to receive a communication session connection request message from the electronic device through the communication circuit to the external electronic device, the communication session connection request message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device.
[0183] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to determine whether the information about the P2P communication-capable device includes the first information.
[0184] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to determine whether the first token included in the communication session connection request message is identical to a token of the external electronic device registered with the server, based on the first information being included in the information about the P2P communication-capable device.
[0185] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to transmit, through the communication circuit, the communication session connection request message including private IP / port information of the electronic device to the external electronic device based on verification that the first token is identical to a token of the external electronic device registered with the server.
[0186] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to, in response to the communication session connection request message, receive a communication session connection acceptance message from the external electronic device through the communication circuitry, the communication session connection acceptance message including private IP / port information of the external electronic device.
[0187] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to transmit the communication session connection acceptance message to the electronic device via the communication circuitry.
[0188] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to obtain public IP / port information of the electronic device from a server (210) other than the server through the communication circuit, based on the first information not being included in the information about the P2P communication-capable device, or based on the first token not being identical to a token of the external electronic device registered with the server.
[0189] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to transmit, to the external electronic device through the communication circuit, the communication session connection request message including public IP / port information of the electronic device.
[0190] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to, in response to the communication session connection request message, receive a communication session connection acceptance message from the external electronic device through the communication circuitry, the communication session connection acceptance message including private IP / port information of the external electronic device.
[0191] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to obtain public IP / port information of the external electronic device from the other server via the communication circuit.
[0192] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to transmit a communication session connection acceptance message including public IP / port information of the external electronic device to the electronic device through the communication circuit.
[0193] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to request, through the communication circuit, the establishment of a relay session between the electronic device and the external electronic device to the other server before transmitting a communication session connection acceptance message including public IP / port information of the external electronic device.
[0194] According to one embodiment of the present disclosure, the instructions, when individually or collectively executed by the one or more processors, may cause the server to receive, from the electronic device through the communication circuit, a fourth message including third information related to the service of the electronic device, prior to transmitting the first message.
[0195] According to one embodiment of the present disclosure, the first information may include a user identifier (ID) of the external electronic device, a device ID, IP / port information used for P2P discovery, and the first token.
[0196] According to one embodiment of the present disclosure, the first token may be generated when the external electronic device connects to a new network.
[0197] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the external electronic device is connected, a change in a device used by the external electronic device when performing a network connection operation, or a change in the IP address of the external electronic device.
[0198] According to one embodiment of the present disclosure, the third information may include a user identifier (ID) of the electronic device, a device ID, IP / port information used for P2P discovery, and a second token related to the validity of the third information.
[0199] According to one embodiment of the present disclosure, the second token may be generated when the electronic device connects to a new network.
[0200] According to one embodiment of the present disclosure, the external electronic device having an association with the electronic device may log in to the service with the same user identifier (ID) as the electronic device, log in to the service with the same user ID as a device having a set relationship with the electronic device, or log in to the service with the same user ID as a device belonging to the same group as the electronic device.
[0201] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0202] FIG. 4 is a flowchart illustrating a method of operating an electronic device according to one embodiment.
[0203] Referring to FIG. 4, an electronic device (e.g., an electronic device (101) of FIG. 1, FIG. 2A, or FIG. 3) (e.g., one or more processors including processing circuitry) (e.g., a processor (120) of FIG. 1) may, in operation 411, transmit a first message to a server (e.g., a server (108) of FIG. 1, or a signaling server (200) of FIG. 2A, FIG. 2B, or FIG. 3) via a communication circuit (e.g., a communication module (190) of FIG. 1) requesting that first information related to a service of the external electronic device be notified to the electronic device before a communication session is established with an external electronic device (e.g., an electronic device (102) or an electronic device (104) of FIG. 1, or an external electronic device (220) of FIG. 2A or FIG. 3) having an association with the electronic device in a peer-to-peer (P2P)-based service.
[0204] The electronic device that transmitted the first message may, in operation 413, receive a second message from the server via the communication circuit, including second information including at least a portion of the first information, in response to the first message. In one embodiment, the first information may include at least a first token associated with the validity of the first information.
[0205] The electronic device receiving the second message may, in operation 415, transmit a P2P discovery request message including third information related to a service of the electronic device to an external electronic device through a communication circuit based on the second information.
[0206] An electronic device that has transmitted a P2P discovery request message can, in operation 417, receive a P2P discovery response message including first information from an external electronic device through a communication circuit in response to the P2P discovery request message.
[0207] An electronic device that receives a P2P discovery response message can, in operation 419, confirm a request to establish a communication session with an external electronic device.
[0208] An electronic device that has confirmed a request to establish a communication session with an external electronic device can establish a communication session with the external electronic device based on the first information in operation 421.
[0209] Meanwhile, although FIG. 4 illustrates a method of operating an electronic device according to one embodiment, it should be understood that various modifications may be made to FIG. 4 . For example, although FIG. 4 illustrates sequential operations, it should be understood that the operations described in FIG. 4 may overlap, occur in parallel, occur in a different order, or occur multiple times.
[0210] Figure 5 is a flowchart illustrating a method of operating a server according to one embodiment.
[0211] Referring to FIG. 5, a server (e.g., server (108) of FIG. 1, or signaling server (200) of FIG. 2a, FIG. 2b, or FIG. 3) may, in operation 511, receive a first message from an electronic device (e.g., electronic device (102) or electronic device (104) of FIG. 1, or external electronic device (220) of FIG. 2a or FIG. 3) that is associated with an electronic device (e.g., electronic device (101) of FIG. 1, FIG. 2a, or FIG. 3) in a P2P-based service, requesting to notify the electronic device of first information related to a service of the external electronic device, from the electronic device through a communication circuit (e.g., communication circuit (211) of FIG. 2b).
[0212] After receiving the first message, the server may, at operation 513, receive a second message including the first information from an external electronic device via the communication circuit.
[0213] The server receiving the second message may, in operation 515, in response to the second message, transmit a third message to the electronic device via the communication circuit, the third message including second information including at least a portion of the first information. In one embodiment, the first information may include at least a first token associated with the validity of the first information.
[0214] After transmitting the third message, the server may, in operation 517, receive a communication session connection request message from the electronic device through the communication circuit, including private IP / port information of the electronic device and information about a device capable of P2P communication with the electronic device, to an external electronic device.
[0215] A server that receives a communication session connection request message can check whether the first information is included in the information about a device capable of P2P communication in operation 519.
[0216] Based on the fact that the information about the device capable of P2P communication includes the first information (action 519 - Yes), the server can verify in action 521 whether the first token included in the communication session connection request message is identical to the token of the external electronic device registered with the server. Based on the fact that the information about the device capable of P2P communication does not include the first information (action 519 - No), the server can terminate without performing any further actions.
[0217] Based on the determination that the first token is identical to the token of the external electronic device registered with the server (Operation 521 - Yes), the server may transmit a communication session connection request message including the private IP / port information of the electronic device to the external electronic device through the communication circuit in operation 523. Based on the determination that the first token is not identical to the token of the external electronic device registered with the server (Operation 521 - No), the server may terminate without performing any further operations.
[0218] Meanwhile, although FIG. 5 illustrates a method of operating a server according to one embodiment, it is to be understood that various modifications may be made to FIG. 5 . For example, although FIG. 5 illustrates sequential operations, it is to be understood that the operations described in FIG. 5 may overlap, occur in parallel, occur in a different order, or occur multiple times.
[0219] FIG. 6A is a signal flow diagram illustrating a procedure for checking whether peer-to-peer (P2P) communication is possible according to one embodiment.
[0220] FIG. 6b is a signal flow diagram illustrating a procedure for checking whether P2P communication is possible according to one embodiment.
[0221] Referring to FIGS. 6A and 6B, the electronic device (101) (e.g., the electronic device (101) of FIG. 1, FIG. 2A, FIG. 3A, or FIG. 3B) may be a smart phone, the external electronic device (220) (e.g., the electronic device (102) or the electronic device (104) of FIG. 1, or the external electronic device (220) of FIG. 2A, FIG. 3A, or FIG. 3B) may be a tablet and / or a smart watch, and the signaling server (200) (e.g., the server (108) of FIG. 1, or the signaling server (200) of FIG. 2A, FIG. 2B, FIG. 3A, or FIG. 3B) may be a server providing a service.
[0222] In one embodiment, the service may include a P2P-based service that interfaces with a server (e.g., a signaling server (200)). As an example, the service may be a call and message continuity (CMC) service. The CMC service may be a service that extends the phone function and / or text message function of the electronic device (101) to at least one external electronic device (e.g., the external electronic device (220)) registered based on the same user account as the user account of the electronic device (101). The phone function provided in the CMC service uses the SIP method for signaling. The phone function provided in the CMC service, which is a voice over internet protocol (VoIP) service, has the characteristic of being very sensitive to reception delay (e.g., packet delay). Since packets are transmitted / received in the CMC service through a general internet network, managing the delay that occurs between endpoint electronic devices may be very important. The P2P method used in FIGS. 6A and 6B may be the SIP method. However, the procedure for checking whether P2P communication is possible as described in FIGS. 6a and 6b can be applied to various P2P methods as well as the SIP method.
[0223] In operation 601, the electronic device (101) may transmit a message to the signaling server (200) requesting that the P2P discovery information registered by the external electronic device (220) be notified to the electronic device (101) when the external electronic device (220) registers P2P discovery information to the signaling server (200). Hereinafter, for convenience, a message requesting that the P2P discovery information registered by the second device (e.g., the external electronic device (220)) be notified to the first device when the first device (e.g., the electronic device (101)) registers P2P discovery information to the signaling server (200) will be referred to as a "P2P discovery information notification request message." The P2P discovery information notification request message may be transmitted from the first device to the signaling server (200), or may be transmitted from the second device to the signaling server (200). The P2P discovery information notification request message may be transmitted periodically or when a set condition is met. In one embodiment, the set condition related to the transmission of the P2P discovery information notification request message may include a case where the first device (or second device) additionally identifies a device that has an association with the first device (or second device). The "association" between devices will be described in operation 601, and therefore, a detailed description thereof will be omitted here.
[0224] According to one embodiment, the P2P discovery information may be information registered (or stored) in the signaling server (200), and whenever a device (e.g., an electronic device (101) or an external electronic device (220)) connects to a new network (or whenever the network to which the device belongs is changed), the P2P discovery information may be registered (or stored) in the signaling server (200).
[0225] According to one embodiment, the P2P discovery information may include a user ID, a device ID, P2P discovery IP / port information, and / or a P2P token.
[0226] In one embodiment, the IP / port information may include IP address / port information used for P2P discovery (hereinafter, for convenience of explanation, referred to as “P2P discovery IP / port information”).
[0227] In one embodiment, the user ID may be the ID of a user using the service. The service may include a P2P-based service that interfaces with a server (e.g., a signaling server (200)). As an example, the service may be a call and message continuity (CMC) service. The CMC service may be a service that extends the phone function and / or text message function of an electronic device (101) (e.g., a smart phone) to at least one external electronic device (e.g., an external electronic device (220)) (e.g., a tablet and / or a smartwatch) registered based on the same user account as the user account of the electronic device (101). The phone function provided in the CMC service uses the SIP method for signaling. The phone function provided in the CMC service, which is a voice over internet protocol (VoIP) service, has the characteristic of being very sensitive to reception delay (e.g., packet delay). Since packets are transmitted / received in the CMC service through a general internet network, managing the delay that occurs between endpoint electronic devices may be very important.
[0228] In one embodiment, the device ID may be an ID used to distinguish a device connected to the service.
[0229] In one embodiment, a P2P token may be generated with a unique value each time a device connects to a new network. In one embodiment, the P2P token may be associated with the validity of P2P discovery information. In one embodiment, the signaling server (200) may determine whether the P2P discovery information is valid based on the P2P token, and the operation of the signaling server (200) determining whether the P2P discovery information is valid based on the P2P token will be described below. In one embodiment, the P2P token may include a medium access control (MAC) address and / or a random character string. For example, if the P2P token is generated with a MAC address, the MAC address may be implemented as "588694b607a7." For example, if the P2P token is a random character string, the random character string may be implemented as "5ef8dd7e06b44e294953f907a61ac16".
[0230] The device can register P2P discovery information with a signaling server (200) based on an IP multimedia service (IMS). For convenience of explanation, the message used to register P2P discovery information with the signaling server (200) will be referred to as a "P2P discovery information registration request message." The P2P discovery information registration request message will be described below with reference to Table 1.
[0231] In operation 601, the electronic device (101) may include information related to an external electronic device (220) from which the electronic device (101) wishes to be notified (or receive) of P2P discovery information in a P2P discovery information notification request message. A target device for which the electronic device (101) may request notification of P2P discovery information to a signaling server (200) through the P2P discovery information notification request message may be a P2P discovery counterpart device and may include a device having an association with the electronic device (101).
[0232] According to one embodiment, a device associated with the electronic device (101) may include a device that logs into the service with the same user ID as the electronic device (101).
[0233] According to one embodiment, a device associated with an electronic device (101) may include a device that logs into a service with a user ID that is identical to a user ID of a device registered in a relationship (e.g., a friend relationship) with the electronic device (101).
[0234] According to one embodiment, a device associated with the electronic device (101) may include a device that logs into the service with a user ID that is identical to a user ID of a device belonging to the same group (e.g., the same chat service group) as the electronic device (101).
[0235] According to one embodiment, devices associated with the electronic device (101) may be devices permitted to share P2P discovery information. For example, the electronic device (101) may share P2P discovery information of the electronic device (101) with devices associated with the electronic device (101), and devices associated with the electronic device (101) may share P2P discovery information of devices associated with the electronic device (101).
[0236] Although not separately illustrated in FIGS. 6A and 6B , the signaling server (200) can manage information related to a device (hereinafter, for convenience of explanation, referred to as a “P2P discovery partner device”) associated with the electronic device (101), and thus the electronic device (101) can obtain information related to a P2P discovery partner device associated with the electronic device (101) from the signaling server (200). In FIGS. 6A and 6B , it is assumed that the P2P discovery partner device of the electronic device (101) is an external electronic device (220). Information related to the external electronic device (220) included in the P2P discovery information notification request message can include a user ID and device ID of the external electronic device (220). The signaling server (200) that receives the P2P discovery information notification request message from the electronic device (101) can check the user ID and device ID of the external electronic device (220) included in the P2P discovery information notification request message, and can confirm that there is a need to transmit the P2P discovery information of the external electronic device (220) to the electronic device (101) when the P2P discovery information of the external electronic device (220) is registered later.
[0237] In operation 602, the external electronic device (220) may perform a network connection operation for the network (300). The external electronic device (220) may determine whether the network (300) performing the network connection operation is a new network, and whether it is a new network may be determined based on at least one of the following conditions 1, 2, or 3. In FIGS. 6A and 6B , it is assumed that the network (300) is a new network.
[0238] (1) Condition 1
[0239] Condition 1 may include a condition in which the access point to which the external electronic device (220) is connected is changed.
[0240] (2) Condition 2
[0241] Condition 2 may include a condition in which the device used by the external electronic device (220) for network connection operation is changed (for example, a condition in which the device used for network connection operation is changed from a Wi-Fi device to an Ethernet device).
[0242] (3) Condition 3
[0243] Condition 3 may include a condition in which the IP address of the external electronic device (220) is changed.
[0244] An external electronic device (220) that has performed a network connection operation for a network (300) may generate a P2P token for the network (300) in operation 603, since the network (300) is a new network. The P2P token may be generated each time the external electronic device (220) connects to a new network. According to one embodiment, the external electronic device (220) may update the P2P token each time information on the network to which the external electronic device (220) is connected changes.
[0245] An external electronic device (220) that has generated a P2P token for a network (300) may transmit a P2P discovery information registration request message requesting registration of P2P discovery information for the external electronic device (220) to a signaling server (200) in operation 604. The P2P discovery information registration request message may include a user ID of the external electronic device (220), a device ID of the external electronic device (220), a P2P discovery IP address / P2P discovery port number of the external electronic device (220), and a P2P token of the external electronic device (220).
[0246] For example, the P2P discovery information registration request message can be implemented as shown in Table 1 below.
[0247] Table 1
[0248]
[0249] In Table 1, “user2” may be a user ID of the external electronic device (220), “device2” may be a device ID of the external electronic device (220), “192.168.0.2” may be a P2P discovery IP address of the external electronic device (220), “20000” may be a P2P discovery port number of the external electronic device (220), and “5ef8dd7e06b44e294953f907a61ac16” may be a P2P token of the external electronic device (220). The P2P discovery IP address may be an IP address used by the external electronic device (220) to receive a P2P discovery request message. The P2P discovery port number may be a port number used by the external electronic device (220) to receive a P2P discovery request message.
[0250] The signaling server (200) that receives the P2P discovery information registration request message from the external electronic device (220) can register (or store) the P2P discovery information of the external electronic device (220) included in the P2P discovery information registration request message. In this way, the signaling server (200) that has registered the P2P discovery information of the external electronic device (220) can transmit the P2P discovery information of the external electronic device (220) to the electronic device (101) in operation 605. In one embodiment, the signaling server (200) can transmit the P2P discovery information of the external electronic device (220) to the electronic device (101) through a P2P discovery information notification response message, which is a response message to the P2P discovery information notification request message.
[0251] The P2P discovery information of the external electronic device (220) included in the P2P discovery information notification response message transmitted in operation 605 may not include the P2P token among the P2P discovery information of the external electronic device (220) included in the P2P discovery information registration request message transmitted in operation 604. The P2P token of the external electronic device (220) may be registered in the signaling server (200), but may not be transmitted to the electronic device (101) that requested the P2P discovery information of the external electronic device (220).
[0252] The electronic device (101) that has received the P2P discovery information notification response message from the signaling server (200) can transmit a P2P discovery request message to the P2P discovery IP address / port of the external electronic device (220) in operation 606. The P2P discovery request message can include the user ID of the electronic device (101), the device ID of the electronic device (101), the P2P discovery IP address / P2P discovery port number of the electronic device (101), and the P2P token of the electronic device (101).
[0253] For example, the P2P discovery request message can be implemented as shown in Table 2 below.
[0254] Table 2
[0255]
[0256] In Table 2, message_type can indicate the message type of the corresponding message. The message type of the P2P discovery request message can be set to "request."
[0257] In Table 2, user_id may indicate the user ID of the device transmitting the message. user_id may be set to “user1,” which is the user ID of the electronic device (101) transmitting the P2P discovery request message.
[0258] In Table 2, device_id may indicate the device ID of the device transmitting the message. device_id may be set to “device1,” which is the device ID of the electronic device (101) transmitting the P2P discovery request message.
[0259] In Table 2, response_ip may indicate the IP address of a device (i.e., a device that transmitted the P2P discovery request message) that wishes to receive a P2P discovery response message, which is a response message to the P2P discovery request message. In FIGS. 6A and 6B , since the electronic device (101) transmits the P2P discovery request message, response_ip may be set to 192.168.0.1, which is the IP address of the electronic device (101).
[0260] In Table 2, response_port may indicate the port number of a device (i.e., a device that transmitted the P2P discovery request message) that wishes to receive a P2P discovery response message, which is a response message to a P2P discovery request message. In FIGS. 6A and 6B , since the electronic device (101) transmits the P2P discovery request message, response_port may be set to 10000, which is the port number of the electronic device (101).
[0261] In Table 2, p2p_token may indicate the P2P token of the device transmitting the message. In FIGS. 6A and 6B , since the electronic device (101) transmits a P2P discovery request message, p2p_token may be set to "699065dc91dabde19fa54736f957885," which is the P2P token of the electronic device (101).
[0262] When the electronic device (101) transmits a P2P discovery request message to the P2P discovery IP / port of the external electronic device (220), if P2P communication between the electronic device (101) and the external electronic device (220) is possible, the P2P discovery request message transmitted from the electronic device (101) can be received by the external electronic device (220). Conversely, if P2P communication between the electronic device (101) and the external electronic device (220) is not possible, the P2P discovery request message transmitted from the electronic device (101) cannot be received by the external electronic device (220). Cases in which P2P communication between the electronic device (101) and the external electronic device (220) is not possible may include cases in which the network to which the electronic device (101) belongs and the network (e.g., network (300)) to which the external electronic device (220) belongs are different. In FIGS. 6a and 6b, it is assumed that P2P communication between the electronic device (101) and the external electronic device (220) is possible.
[0263] Since P2P communication between the electronic device (101) and the external electronic device (220) is possible, the external electronic device (220) can receive the P2P discovery request message transmitted from the electronic device (101) in operation 607.
[0264] An external electronic device (220) that receives a P2P discovery request message can confirm that P2P communication between the electronic device (101) that transmitted the P2P discovery request message and the external electronic device (220) is possible, and in operation 608, can store the user ID, device ID, and / or P2P token of the electronic device (101) included in the P2P discovery request message. For example, the external electronic device (220) can store the user ID, device ID, and / or P2P token of the electronic device (101) in a form that includes it in a P2P list. In one embodiment, the P2P list can include information on device(s) that are capable of P2P communication with the external electronic device (220), and the information on device(s) that are capable of P2P communication with the external electronic device (220) can include the user ID, device ID, and / or P2P token of the corresponding device. For example, when there are multiple devices capable of P2P communication with an external electronic device (220), information about each of the multiple devices capable of P2P communication may be included in the P2P list.
[0265] An external electronic device (220) that stores the user ID, device ID, and / or P2P token of the electronic device (101) included in the P2P discovery request message can transmit a P2P discovery response message, which is a response message to the P2P discovery request message, to the P2P discovery IP / port of the electronic device (101) in operation 609. The P2P discovery response message can include the user ID, device ID, and P2P token of the external electronic device (220).
[0266] For example, the P2P discovery response message can be implemented as shown in Table 3 below.
[0267] Table 3
[0268]
[0269] In Table 3, message_type can indicate the message type of the corresponding message. The message type of the P2P discovery response message can be set to "response".
[0270] In Table 3, user_id may indicate the user ID of the device transmitting the message. user_id may be set to “user2,” which is the user ID of the external electronic device (220) transmitting the P2P discovery response message.
[0271] In Table 3, device_id may indicate the device ID of the device transmitting the message. device_id may be set to “device2,” which is the device ID of the external electronic device (220) transmitting the P2P discovery response message.
[0272] In Table 3, p2p_token may indicate the P2P token of the device transmitting the message. In FIGS. 6A and 6B , since an external electronic device (200) transmits a P2P discovery response message, p2p_token may be set to "5ef8dd7e06b44e294953f907a61ac16," which is the P2P token of the external electronic device (200).
[0273] The electronic device (101) can receive a P2P discovery response message transmitted from an external electronic device (220) in operation 610. The electronic device (101) that receives the P2P discovery response message from the external electronic device (220) can confirm that P2P communication between the electronic device (101) and the external electronic device (220) is possible, and can store the user ID, device ID, and / or P2P token of the external electronic device (220) included in the P2P discovery response message in operation 611.
[0274] In one embodiment, the electronic device (101) may store the user ID, device ID, and / or P2P token of the external electronic device (220) in a form that is included in the P2P list. In one embodiment, the P2P list may include information about device(s) capable of P2P communication with the electronic device (101), and the information about the device(s) capable of P2P communication with the electronic device (101) may include the user ID, device ID, and / or P2P token of the corresponding device. For example, when there are multiple devices capable of P2P communication with the electronic device (101), information about each of the multiple devices capable of P2P communication may be included in the P2P list.
[0275] In one embodiment, whether P2P communication is possible (e.g., whether P2P discovery information including the P2P token is valid) may be determined based on a P2P token, as described below.
[0276] First, after performing a P2P discovery operation, it is assumed that the first device (e.g., electronic device (101)) confirms that P2P communication between the first device and the second device (e.g., external electronic device (220)) is possible, and stores information about the second device in a P2P list.
[0277] While the first device is storing information about the second device in the P2P list, the second device may connect to a new network (or the network the second device is connected to has changed), but may not be able to receive the P2P discovery information of the second device through a P2P discovery information notification response message from the signaling server (200) due to various reasons such as network delay. In this case, even though P2P communication between the first device and the second device is not possible, the first device may determine that P2P communication between the first device and the second device is possible. Therefore, the first device may need to determine whether the second device is connected to the same network as the network that it was connected to when it performed the P2P discovery operation with the first device.
[0278] Accordingly, the first device and the second device can include a P2P token in the P2P discovery request message and the P2P discovery response message, respectively, to determine whether P2P communication between the first device and the second device is possible. If P2P communication between the first device and the second device is possible, the first device and the second device can each check the P2P token of the counterpart device. Thereafter, when the first device or the second device wants to establish a communication session with the counterpart device, the first device or the second device transmits a communication session connection request message to the signaling server (200). If the P2P token included in the P2P discovery information of the counterpart device and the P2P token of the counterpart device included in the communication session connection request message are the same, the signaling server (200) can determine that the network to which the counterpart device is connected has not changed (or can determine that the network to which the counterpart device is connected at the time of registering the P2P discovery information with the signaling server (200) is the same as the network to which the counterpart device is currently connected). The signaling server (200) that has confirmed that the network to which the other device is connected has not changed can confirm that P2P communication between the first device and the second device is possible.
[0279] In contrast, if the P2P token included in the P2P discovery information of the counterpart device and the P2P token of the counterpart device included in the communication session connection request message are different, it can be determined that the network to which the counterpart device is connected has changed (or it can be determined that the network to which the counterpart device was connected at the time of registering the P2P discovery information with the signaling server (200) and the network to which the counterpart device is currently connected are different). The signaling server (200) that determines that the network to which the counterpart device is connected has changed can determine that P2P communication between the first device and the second device is impossible.
[0280] Meanwhile, although FIGS. 6A and 6B illustrate a communication session establishment procedure according to one embodiment, it should be understood that various modifications may be made to FIGS. 6A and 6B . For example, although FIGS. 6A and 6B illustrate sequential operations, the operations described in FIGS. 6A and 6B may overlap, occur in parallel, occur in a different order, or occur multiple times.
[0281] FIG. 7a is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0282] FIG. 7b is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0283] FIG. 7c is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0284] FIG. 7d is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0285] FIG. 7e is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0286] FIG. 7f is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0287] Referring to FIGS. 7A to 7F, the electronic device (101) (e.g., the electronic device (101) of FIG. 1, FIG. 2A, FIG. 3A, FIG. 3B, FIG. 6A, or FIG. 6B) may be a smart phone, the external electronic device (220) (e.g., the electronic device (102) or the electronic device (104) of FIG. 1, or the external electronic device (220) of FIG. 2A, FIG. 3A, FIG. 3B, FIG. 6A, or FIG. 6B) may be a tablet and / or a smart watch, and the signaling server (200) (e.g., the signaling server (200) of FIG. 2A, FIG. 2B, FIG. 3A, FIG. 3B, FIG. 6A, or FIG. 6B) and the relay server (210) (e.g., the relay server (210) of FIG. 2A) may be servers that provide services. The P2P method used in FIGS. 7A to 7F may be the SIP method. However, the communication session establishment procedure described in FIGS. 7A to 7F can be applied to various P2P methods as well as the SIP method.
[0288] In operation 701, the electronic device (101) may perform a network connection operation for a network (300). The electronic device (101) may determine whether the network (300) performing the network connection operation is a new network, and the conditions determined to determine whether the network is a new network may be implemented similarly or substantially identically to those described in FIGS. 6A and 6B , and thus, a detailed description thereof will be omitted herein. In FIGS. 7A to 7F , it is assumed that the network (300) is a new network.
[0289] An electronic device (101) that has performed a network connection operation for a network (300) can transmit a communication session establishment request message to a signaling server (200) in operation 702 to establish a communication session with the signaling server (200).
[0290] The electronic device (101) may generate a P2P token for the network (300) in operation 703, since the network (300) is a new network. The P2P token may be generated each time the electronic device (101) connects to a new network. According to one embodiment, the electronic device (101) may update the P2P token each time information about the network to which the electronic device (101) is connected changes.
[0291] The electronic device (101) can check the P2P discovery IP address / port number used for P2P discovery in operation 704.
[0292] The electronic device (101) may transmit a P2P discovery information registration request message to the signaling server (200) at operation 705, requesting registration of P2P discovery information of the electronic device (101). The P2P discovery information may be implemented similarly or substantially identically to that described in FIGS. 6A and 6B , and thus a detailed description thereof will be omitted herein. For example, the P2P discovery information registration request message transmitted at operation 705 may be implemented as shown in Table 4 below.
[0293] Table 4
[0294]
[0295] In Table 4, user1 may be a user ID of the electronic device (101), device1 may be a device ID of the electronic device (101), 192.168.0.1 may be a P2P discovery IP address of the electronic device (101), 20000 may be a P2P discovery port number of the electronic device (101), and 699065dc91dabde19fa54736f957885 may be a P2P token of the electronic device (101).
[0296] A signaling server (200) that receives a P2P discovery information registration request message from an electronic device (101) can register (or store) the P2P discovery information of the electronic device (101).
[0297] In Fig. 7a, an example is described in which operation 705 is performed after operation 702 is performed, but operations 702 and 705 may be performed simultaneously.
[0298] The electronic device (101) that transmitted the P2P discovery information registration request message may, in operation 706, transmit a P2P discovery information notification request message to the signaling server (200), requesting that the P2P discovery information registered by the external electronic device (220) be notified to the electronic device (101) when the external electronic device (220) registers P2P discovery information with the signaling server (200). In one embodiment, the P2P discovery information notification request message transmitted in operation 706 may be a message requesting that the electronic device (101) notify the electronic device (101) of the P2P discovery information of the P2P discovery counterpart device when the P2P discovery information of the P2P discovery counterpart device of the electronic device (101) is registered with the signaling server (200). The P2P discovery information notification request message and the P2P discovery counterpart device may be implemented similarly or substantially identically to those described in FIGS. 6A and 6B, and thus a detailed description thereof will be omitted herein. In FIGS. 7A to 7F, it is assumed that the P2P discovery counterpart device of the electronic device (101) is an external electronic device (220). Although not separately illustrated in FIGS. 7A to 7F, the signaling server (200) can manage information related to the P2P discovery counterpart device of the electronic device (101), and thus the electronic device (101) can obtain information related to the P2P discovery counterpart device from the signaling server (200). Information related to the external electronic device (220) included in the P2P discovery information notification request message transmitted in operation 706 can include the user ID and device ID of the external electronic device (220).The signaling server (200) that receives the P2P discovery information notification request message from the electronic device (101) can check the user ID and device ID of the external electronic device (220) included in the P2P discovery information notification request message, and can confirm that there is a need to transmit the P2P discovery information of the external electronic device (220) to the electronic device (101) when the P2P discovery information of the external electronic device (220) is registered later. In operation 706, a case where the electronic device (101) transmits the P2P discovery information notification request message is described as an example, but it may also be possible for the external electronic device (220) to transmit the P2P discovery information notification request message to the signaling server (200), and this will be described in operation 712.
[0299] In operation 706, an example is described in which an electronic device (101) designates a P2P discovery counterpart device as an external electronic device (220) and transmits a P2P discovery information notification request message. However, the P2P discovery information notification request message transmitted in operation 706 can be implemented as shown in Table 5 below.
[0300] Table 5
[0301]
[0302] In Table 5, user1 is the user ID of the electronic device (101), device1 is the device ID of the electronic device (101), and Event can be set to “request” to request the signaling server (200) to notify the electronic device (101) of P2P discovery information for all devices (e.g., P2P discovery counterpart devices) registered using the user ID user1.
[0303] In FIGS. 7A to 7F, the signaling server (200) that receives the P2P discovery information notification request message from the electronic device (101) can check the user ID of the electronic device (101) included in the P2P discovery information notification request message, and if P2P discovery information including a user ID identical to the user ID of the electronic device (101) is registered later, it can check that the corresponding P2P discovery information needs to be transmitted to the electronic device (101).
[0304] In operation 707, the external electronic device (220) may perform a network connection operation for the network (300). The external electronic device (220) may determine whether the network (300) performing the network connection operation is a new network, and the conditions determined to determine whether the network is a new network may be implemented similarly or substantially identically to those described in FIGS. 6A and 6B , and thus, a detailed description thereof will be omitted herein. In FIGS. 7A to 7F , it is assumed that the network (300) is a new network.
[0305] An external electronic device (220) that has performed a network connection operation for a network (300) may transmit a communication session establishment request message to the signaling server (200) in operation 708 to establish a communication session with the signaling server (200).
[0306] The external electronic device (220) may generate a P2P token for the network (300) at operation 709, since the network (300) is a new network. The P2P token may be generated each time the external electronic device (220) connects to a new network. In one embodiment, the external electronic device (220) may update the P2P token each time information about the network to which the external electronic device (220) is connected changes.
[0307] The external electronic device (220) can check the P2P discovery IP address / port number used for P2P discovery in operation 710.
[0308] The external electronic device (220) may transmit a P2P discovery information registration request message to the signaling server (200) in operation 711, requesting registration of P2P discovery information of the external electronic device (220). The P2P discovery information may be implemented similarly or substantially identically to that described in FIGS. 6A and 6B , and thus a detailed description thereof will be omitted herein. For example, the P2P discovery information registration request message transmitted in operation 711 may be implemented as shown in Table 6 below.
[0309] Table 6
[0310]
[0311] In Table 6, user1 may be a user ID of an external electronic device (220), device2 may be a device ID of an external electronic device (220), 192.168.0.2 may be a P2P discovery IP address of an external electronic device (220), 20000 may be a P2P discovery port number of an external electronic device (220), and 1a374d691d823d56019a7b63f2f1413 may be a P2P token of an external electronic device (220).
[0312] A signaling server (200) that receives a P2P discovery information registration request message from an external electronic device (220) can register (or store) the P2P discovery information of the external electronic device (220).
[0313] In Fig. 7b, an example is described in which operation 711 is performed after operation 708 is performed, but operations 708 and 711 may be performed simultaneously.
[0314] In operation 712, the external electronic device (220) may transmit a P2P discovery information notification request message to the signaling server (200) requesting that the electronic device (101) notify the external electronic device (220) of the P2P discovery information registered by the electronic device (101) when the electronic device (101) registers P2P discovery information with the signaling server (200). Information related to the electronic device (101) included in the P2P discovery information notification request message transmitted in operation 712 may include the user ID and device ID of the electronic device (101).
[0315] In operation 712, an example is described in which an external electronic device (220) designates a P2P discovery counterpart device as an electronic device (101) and transmits a P2P discovery information notification request message. However, the P2P discovery information notification request message transmitted in operation 712 can be implemented as shown in Table 7 below.
[0316] Table 7
[0317]
[0318] In Table 7, user2 is the user ID of the external electronic device (220), device2 is the device ID of the external electronic device (220), and Event can be set to “request” to request the signaling server (200) to notify the external electronic device (220) of P2P discovery information for all devices (e.g., P2P discovery counterpart devices) registered using the user ID user2.
[0319] In FIGS. 7A to 7F, the signaling server (200) that receives the P2P discovery information notification request message from the external electronic device (220) can check the user ID of the external electronic device (220) included in the P2P discovery information notification request message, and if P2P discovery information including a user ID identical to the user ID of the external electronic device (220) is registered later, it can check that the corresponding P2P discovery information needs to be transmitted to the external electronic device (220).
[0320] In FIGS. 7A and 7B, an example is described in which the electronic device (101) transmits a P2P discovery information notification request message to the signaling server (200) in operation 706, and an external electronic device (220) transmits a P2P discovery information notification request message to the signaling server (200) in operation 712. However, each of the electronic device (101) and the external electronic device (220) may periodically transmit a P2P discovery information notification request message to the signaling server (200). The signaling server (200) may notify the electronic device (101) of the P2P discovery information of the external electronic device (220) whenever the external electronic device (220) registers P2P discovery information with the signaling server (200) after receiving the P2P discovery information notification request message from the electronic device (101). The signaling server (200) can notify the external electronic device (220) of the P2P discovery information of the electronic device (101) whenever the electronic device (101) registers P2P discovery information with the signaling server (200) after receiving a P2P discovery information notification request message from the external electronic device (220).
[0321] The signaling server (200) may transmit P2P discovery information of an external electronic device (220) to the electronic device (101) in operation 713. In one embodiment, the signaling server (200) may transmit P2P discovery information of the external electronic device (220) through a P2P discovery information notification response message, which is a response message to a P2P discovery information notification request message.
[0322] The P2P discovery information of the external electronic device (220) included in the P2P discovery information notification response message transmitted in operation 713 may not include the P2P token among the P2P discovery information of the external electronic device (220) included in the P2P discovery information registration request message transmitted in operation 711. The P2P token of the external electronic device (220) may be registered in the signaling server (200), but may not be transmitted to the electronic device (101) that requested the P2P discovery information of the external electronic device (220).
[0323] The electronic device (101) that has received the P2P discovery information notification response message from the signaling server (200) can transmit a P2P discovery request message to the P2P discovery IP address / port of the external electronic device (220) in operation 714. For example, the P2P discovery request message can be implemented similarly or substantially identically to that described in Table 2, and thus, a detailed description thereof will be omitted here.
[0324] When the electronic device (101) transmits a P2P discovery request message to the P2P discovery IP address / port of the external electronic device (220), if P2P communication between the electronic device (101) and the external electronic device (220) is possible, the P2P discovery request message transmitted from the electronic device (101) can be received by the external electronic device (220). Conversely, if P2P communication between the electronic device (101) and the external electronic device (220) is not possible, the P2P discovery request message transmitted from the electronic device (101) cannot be received by the external electronic device (220). Cases in which P2P communication between the electronic device (101) and the external electronic device (220) is not possible may include cases in which the network to which the electronic device (101) belongs and the network (e.g., network (300)) to which the external electronic device (220) belongs are different. In FIGS. 7a to 7f, it is assumed that P2P communication between an electronic device (101) and an external electronic device (220) is possible.
[0325] Since P2P communication between the electronic device (101) and the external electronic device (220) is possible, the external electronic device (220) can receive the P2P discovery request message transmitted from the electronic device (101) in operation 715.
[0326] An external electronic device (220) that receives a P2P discovery request message can confirm that P2P communication between the electronic device (101) that transmitted the P2P discovery request message and the external electronic device (220) is possible, and in operation 716, can store the user ID, device ID, and / or P2P token of the electronic device (101) included in the P2P discovery request message. In one embodiment, the external electronic device (220) can store the user ID, device ID, and / or P2P token of the electronic device (101) in a form that includes it in a P2P list. In one embodiment, the P2P list can include information on device(s) that are capable of P2P communication with the external electronic device (220), and the information on device(s) that are capable of P2P communication with the external electronic device (220) can include the user ID, device ID, and / or P2P token of the corresponding device. For example, when there are multiple devices capable of P2P communication with an external electronic device (220), information about each of the multiple devices capable of P2P communication may be included in the P2P list.
[0327] An external electronic device (220) that stores the user ID, device ID, and / or P2P token of the electronic device (101) included in the P2P discovery request message may transmit a P2P discovery response message, which is a response message to the P2P discovery request message, to the P2P discovery IP address / P2P discovery port of the electronic device (101) in operation 717. The P2P discovery response message may include the user ID, device ID, and P2P token of the external electronic device (220). For example, the P2P discovery response message may be implemented similarly or substantially identically to that described in Table 3, and thus, a detailed description thereof will be omitted herein.
[0328] The electronic device (101) can receive a P2P discovery response message transmitted from an external electronic device (220) in operation 718. The electronic device (101) that receives the P2P discovery response message from the external electronic device (220) can confirm that P2P communication between the electronic device (101) and the external electronic device (220) is possible, and can store the user ID, device ID, and / or P2P token of the external electronic device (220) included in the P2P discovery response message in operation 719.
[0329] In one embodiment, the electronic device (101) may store the user ID, device ID, and / or P2P token of the external electronic device (220) in a form that is included in the P2P list. In one embodiment, the P2P list may include information about device(s) capable of P2P communication with the electronic device (101), and the information about the device(s) capable of P2P communication with the electronic device (101) may include the user ID, device ID, and / or P2P token of the corresponding device. For example, when there are multiple devices capable of P2P communication with the electronic device (101), information about each of the multiple devices capable of P2P communication may be included in the P2P list.
[0330] In this way, in a state where the electronic device (101) and the external electronic device (220) are each storing a P2P list, the electronic device (101) can confirm that a request for establishing a communication session for the external electronic device (220) has occurred in operation 720. The request for establishing a communication session may be generated based on a user input of the electronic device (101), or may be generated based on a program running on the electronic device (101).
[0331] The electronic device (101) that has confirmed that a request for establishing a communication session to an external electronic device (220) has occurred can check the private IP address / port number used for packet communication through the communication session of the electronic device (101) in operation 721.
[0332] The electronic device (101) that has verified the private IP address / port number may transmit a communication session connection request message to the signaling server (200) to establish a communication session with the external electronic device (220) in operation 722. The communication session connection request message may include a P2P list stored by the electronic device (101). For example, the P2P list stored by the electronic device (101) may include a user ID, device ID, and / or P2P token of the external electronic device (220).
[0333] For example, the communication session connection request message transmitted in operation 722 can be implemented as shown in Table 8 below.
[0334] Table 8
[0335]
[0336] In Table 8, Reachable-Contact may include the user ID and device ID of a P2P discovery partner device capable of P2P communication with the electronic device (101). In FIGS. 7A to 7F, since the external electronic device (220) is a discovery partner device of the electronic device (101), Reachable-Contact may include the user ID (e.g., user1) and device ID (e.g., device2) of the external electronic device (220).
[0337] In Table 8, 192.168.0.1 may be the private IP address of the electronic device (101), and 1234 may be the private port number of the electronic device (101).
[0338] In Table 8, crypto can be a key used for SRTP (secure real-time transport protocol) encryption.
[0339] The signaling server (200) that receives the communication session connection request message from the electronic device (101) can check whether the P2P discovery information of the external electronic device (220) is included in the P2P list included in the communication session connection request message in operation 723.
[0340] First, the following may be explained for the case where it is confirmed that the P2P list included in the communication session connection request message in operation 723 includes P2P discovery information of an external electronic device (220).
[0341] If the P2P list included in the communication session connection request message includes P2P discovery information of an external electronic device (220), the signaling server (200) can check whether the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same in operation 724.
[0342] First, the following may be explained in the case where it is confirmed that the P2P token of the external electronic device (220) registered in the signaling server (200) in operation 724 and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same.
[0343] If the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same, the signaling server (200) can confirm that the electronic device (101) and the external electronic device (220) are capable of P2P communication using private IP addresses / ports.
[0344] The signaling server (200), which has confirmed that the electronic device (101) and the external electronic device (220) are capable of P2P communication using private IP addresses / ports, can transmit a communication session connection request message received from the electronic device (101) to the external electronic device (220) in operation 725. The communication session connection request message transmitted in operation 725 may include the private IP address / port number of the electronic device (101).
[0345] For example, the communication session connection request message transmitted in operation 725 can be implemented as shown in Table 9 below.
[0346] Table 9
[0347]
[0348] As shown in Table 9, it can be seen that the communication session connection request message transmitted in operation 725 includes the same private IP address / port number as the communication session connection request message transmitted in operation 725 transmitted in operation 722.
[0349] An external electronic device (220) that has received a communication session connection request message from a signaling server (200) can check the private IP address / port number used for packet communication through the communication session of the external electronic device (220) in operation 726.
[0350] The external electronic device (220) that has verified the private IP address / port number may accept the communication session connection request of the electronic device (101) to the external electronic device (220) and transmit a communication session connection acceptance message to the signaling server (200) as a response message to the communication session connection request message in operation 727.
[0351] For example, the communication session connection acceptance message transmitted in operation 727 can be implemented as shown in Table 10 below.
[0352] Table 10
[0353]
[0354] In Table 10, 192.168.0.2 may be the private IP address of the external electronic device (220), and 3456 may be the private port number of the external electronic device (220).
[0355] In Table 10, crypto can be the key used for SRTP encryption.
[0356] The signaling server (200), which has received a communication session connection acceptance message from an external electronic device (220), may transmit the communication session connection acceptance message received from the external electronic device (220) to the electronic device (101) in operation 728. Since the electronic device (101) and the external electronic device (220) are capable of P2P communication using private IP addresses / ports, the communication session connection acceptance message transmitted in operation 728 may include the private IP address / port number of the external electronic device (220). For example, the communication session connection acceptance message transmitted in operation 728 may be implemented similar to or substantially identical to Table 10.
[0357] Upon receiving a communication session connection acceptance message from the signaling server (200), the electronic device (101) can confirm that a communication session is established with the external electronic device (220). Thereafter, packet transmission and reception operations between the electronic device (101) and the external electronic device (220) can be performed based on the private IP address / port of the electronic device (101) and the private IP address / port of the external electronic device (220). In operation 729, the electronic device (101) can transmit a packet to the private IP address / port of the external electronic device (220), and in operation 730, the external electronic device (220) can transmit a packet to the private IP address / port of the electronic device (101).
[0358] Operations 725 to 730 may be performed when the P2P discovery information of the external electronic device (220) is included in the P2P list included in the communication session connection request message transmitted from the electronic device (101) (operation 723 - Yes), and the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same (operation 724 - Yes).
[0359] In contrast, if it is determined that the P2P discovery information of the external electronic device (220) is not included in the P2P list included in the communication session connection request message transmitted from the electronic device (101) in operation 723, or if it is determined that the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are not the same, the signaling server (200) can determine that P2P communication using the private IP address / port number of the other device is impossible between the electronic device (101) and the external electronic device (220). In this case, the signaling server (200) can convert the private IP address / port number of the electronic device (101) into the IP address / port number of the relay server (210) received from the relay server (210) and transmit the IP address / port number of the relay server (210) to the external electronic device (220), and can convert the private IP address / port number of the external electronic device (220) into the IP address / port number of the relay server (210) received from the relay server (210) and transmit the IP address / port number of the relay server (210) to the electronic device (101). This can be described in detail as follows. The IP address and port number of the relay server (210) can be a public IP address and port number.
[0360] The signaling server (200), which has confirmed that P2P communication using the private IP address / port number of the other device is impossible between the electronic device (101) and the external electronic device (220), requests the relay server (210) to convert the private IP address / port number of the electronic device (101) into the IP address / port number of the relay server (210) in operation 731, thereby obtaining the IP address / port number of the relay server (210) of the electronic device (101).
[0361] The signaling server (200) that has obtained the IP address / port number of the relay server (210) of the electronic device (101) can transmit a communication session connection request message to the external electronic device (220) in operation 732. The communication session connection request message transmitted in operation 732 can include the IP address / port number of the relay server (210) of the electronic device (101). In one embodiment, the IP address / port number of the relay server (210) can be a public IP address / port number.
[0362] For example, the communication session connection request message transmitted in operation 732 can be implemented as shown in Table 11 below.
[0363] Table 11
[0364]
[0365] In Table 11, 52.79.198.100 may be the IP address of the relay server (210) of the electronic device (101), and 40002 may be the port number of the relay server (210) of the electronic device (101).
[0366] An external electronic device (220) that has received a communication session connection request message from a signaling server (200) can check the private IP address / port number of the external electronic device (220) in operation 733.
[0367] The external electronic device (220) that has verified the private IP address / port number may accept the communication session connection request of the electronic device (101) to the external electronic device (220) and transmit a communication session connection acceptance message to the signaling server (200) as a response message to the communication session connection request message in operation 734.
[0368] For example, the communication session connection acceptance message transmitted in operation 734 can be implemented as shown in Table 12 below.
[0369] Table 12
[0370]
[0371] In Table 12, 192.168.0.2 is the private IP address of the external electronic device (220), 3456 is the private port number of the external electronic device (220), and crypto may be a key for SRTP encryption.
[0372] The signaling server (200), which has received a communication session connection acceptance message from an external electronic device (220), requests the relay server (210) to convert the private IP address / port number of the external electronic device (220) into the IP address / port number of the relay server (210) at operation 735, thereby obtaining the IP address / port number of the relay server (210) of the external electronic device (220).
[0373] The external electronic device (220) that has obtained the IP address / port number of the relay server (210) of the external electronic device (220) can transmit a relay session connection request message requesting the relay server (210) to establish a relay session between the electronic device (101) and the external electronic device (220) in operation 736.
[0374] The signaling server (200), which has received a communication session connection acceptance message from an external electronic device (220), may transmit a communication session connection acceptance message to the electronic device (101) in operation 737. Since the electronic device (101) and the external electronic device (220) cannot perform P2P communication using private IP addresses / port numbers, the communication session connection acceptance message transmitted in operation 737 may include the IP address / port number of the relay server (210) of the external electronic device (220). As an example, the communication session connection acceptance message transmitted in operation 737 may be implemented as shown in Table 13 below.
[0375] Table 13
[0376]
[0377] In Table 13, 52.79.198.100 may be the IP address of the relay server (210) of the external electronic device (220), and 50002 may be the port number of the relay server (210) of the external electronic device (220).
[0378] Upon receiving a communication session connection acceptance message from the signaling server (200), the electronic device (101) can confirm that a communication session has been established with the external electronic device (220). Thereafter, packet transmission and reception operations between the electronic device (101) and the external electronic device (220) can be performed based on the IP address / port number of the relay server (210) of the electronic device (101) and the IP address / port number of the relay server (210) of the external electronic device (220).
[0379] In operation 738, the external electronic device (220) may transmit a packet to the IP address / port of the relay server (210) of the electronic device (101). As the external electronic device (220) transmits the packet to the IP address / port of the relay server (210) of the electronic device (101), the relay server (210) may check the source IP address / port number in the header included in the packet transmitted from the external electronic device (220) in operation 739, and store the checked source IP address / port number in the public IP address / port information of the external electronic device (220). In this case, the relay server (210) may set the relay server IP address / port number of the relay server (210) of the external electronic device (220) as the source IP address / port number, and set the public IP address / port number of the electronic device (101) as the target IP address / port number.
[0380] Since the electronic device (101) has never transmitted a packet to the relay server (210), the relay server (210) does not know the public IP address / port number of the electronic device (101), and therefore may not be able to relay a packet received from an external electronic device (220) to the electronic device (101) (operation 740).
[0381] In operation 741, the electronic device (101) may transmit a packet to the IP address / port of the relay server (210) of the external electronic device (220). As the electronic device (101) transmits the packet to the IP address / port of the relay server of the external electronic device (220), the relay server (210) may check the source IP address / port number in the header included in the packet transmitted from the electronic device (101) in operation 742, and store the checked source IP address / port number in the public IP address / port information of the electronic device (101). In this case, the relay server (210) may set the IP address / port number of the relay server (210) of the electronic device (101) as the source IP address / port number, and set the public IP address / port number of the external electronic device (220) as the target IP address / port number.
[0382] Accordingly, the relay server (210) stores the public IP address / port number of each of the electronic device (101) and the external electronic device (220), and thus can relay the packet received from the electronic device (101) to the public IP address / port of the external electronic device (220) in operation 743.
[0383] In operation 744, the external electronic device (220) can transmit a packet to the IP address / port of the relay server (210) of the electronic device (101). As the external electronic device (220) transmits the packet to the IP address / port of the relay server (210) of the electronic device (101), the relay server (210) can relay the packet transmitted by the external electronic device (220) to the public IP address / port of the electronic device (101) in operation 745.
[0384] Encryption protocols such as SRTP (secure real-time transport protocol) and / or DTLS-SRTP (datagram transport layer security-secure real-time transport protocol) may be applied to packets transmitted / received in operations 729, 730, 738, and 745. Since FIGS. 7a to 7f illustrate an example where SIP is used as a P2P protocol, encryption protocols such as SRTP and / or DTLS-SRTP are applied. In addition, if a protocol other than SIP is used as a P2P protocol, the encryption protocol applied to packets transmitted / received in operations 729, 730, 738, and 745 may also be changed.
[0385] When a communication session is established as described in FIGS. 7A to 7F, a communication channel between the electronic device (101) and the external electronic device (220) can be confirmed before a request for establishing a communication session is generated in the electronic device (101), and thus the time required for establishing a communication session can be reduced (e.g., minimized).
[0386] The communication session establishment procedure as described in FIGS. 7A to 7F can enable fast call connection between devices when applied to a communication session establishment procedure for a packet call service (e.g., VoIP service and / or VoLTE service).
[0387] The communication session establishment procedure as described in FIGS. 7A to 7F can enable fast data transmission and reception between devices when applied to a communication session establishment procedure for packet data services (e.g., message services and / or data services).
[0388] The communication session establishment procedure as described in FIGS. 7A to 7F may be performed in parallel between one device and multiple other devices, enabling rapid communication session establishment between one device and multiple other devices.
[0389] The communication session establishment procedure as described in FIGS. 7A to 7F can also be applied when establishing multiple communication sessions between one device and another device, in which case the communication session establishment procedure for the multiple communication sessions can be performed in parallel, enabling rapid communication session establishment.
[0390] Meanwhile, although FIGS. 7A through 7F illustrate a communication session establishment procedure according to one embodiment, it should be understood that various modifications may be made to FIGS. 7A through 7F. For example, although FIGS. 7A through 7F illustrate sequential operations, the operations described in FIGS. 7A through 7F may overlap, occur in parallel, occur in a different order, or occur multiple times.
[0391] FIG. 8a is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0392] FIG. 8b is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0393] FIG. 8c is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0394] FIG. 8d is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0395] FIG. 8e is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0396] FIG. 8f is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0397] FIG. 8g is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0398] FIG. 8h is a signal flow diagram illustrating a communication session establishment procedure according to one embodiment.
[0399] Referring to FIGS. 8A to 8H, the electronic device (101) (e.g., the electronic device (101) of FIG. 1, FIG. 2A, FIG. 3A, FIG. 3B, FIG. 6A, FIG. 6B, FIG. 7A, FIG. 7B, FIG. 7C, FIG. 7D, FIG. 7E, or FIG. 7F) may be a smart phone, the external electronic device (220) (e.g., the electronic device (102) or the electronic device (104) of FIG. 1, or the external electronic device (220) of FIGS. 2A, 3A, 3B, FIG. 6A, 6B, FIG. 7A, FIG. 7B, FIG. 7C, FIG. 7D, FIG. 7E, or FIG. 7F) may be a tablet and / or a smart watch, and the signaling server (200) (e.g., the server (108) of FIG. 1 or the server (108) of FIGS. 2A, 2B, 3A, The signaling server (200) of FIG. 3b, FIG. 6a, FIG. 6b, FIG. 7a, FIG. 7b, FIG. 7c, FIG. 7d, FIG. 7e, or FIG. 7f) and the relay server (210) (e.g., the relay server (210) of FIG. 2a, FIG. 7a, FIG. 7b, FIG. 7c, FIG. 7d, FIG. 7e, or FIG. 7f) may be servers providing services. The P2P method used in FIGS. 8a to 8h may be the SIP method. However, the communication session establishment procedure described in FIGS. 8a to 8h may be applied to various P2P methods as well as the SIP method.
[0400] Actions 801 to 820 may be implemented similarly to, or substantially identically to, actions 701 to 720 described in FIGS. 7A to 7F, and therefore, their detailed descriptions are omitted here.
[0401] In operation 821, the electronic device (101) can check whether P2P communication is possible with the external electronic device (220). In one embodiment, if the electronic device (101) stores P2P discovery information of the external electronic device (220) through P2P discovery (for example, if the P2P discovery information of the external electronic device (220) is included in the P2P list), the electronic device (101) can check whether P2P communication is possible with the external electronic device (220).
[0402] First, the case where the electronic device (101) confirms that P2P communication with the external electronic device (220) is possible in operation 821 may be described as follows.
[0403] When P2P communication with an external electronic device (220) is possible, the electronic device (101) can check the private IP address / port number used for packet communication through the communication session of the electronic device (101) in operation 822.
[0404] The electronic device (101) that has verified the private IP address / port number may transmit a communication session connection request message to the signaling server (200) to establish a communication session with the external electronic device (220) in operation 823. The communication session connection request message may include a P2P list stored by the electronic device (101). For example, the P2P list stored by the electronic device (101) may include a user ID, device ID, and / or P2P token of the external electronic device (220).
[0405] The signaling server (200) that receives a communication session connection request message from an electronic device (101) can check whether ICE information is included in the communication session connection request message in operation 824.
[0406] First, let's explain the case where it is determined in operation 824 that the communication session connection request message does not contain ICE information.
[0407] If the communication session connection request message does not include ICE information, the signaling server (200) can check whether the P2P list included in the communication session connection request message includes P2P discovery information of the external electronic device (220) in operation 825.
[0408] First, the following may be explained for the case where it is confirmed that the P2P list included in the communication session connection request message in operation 825 includes P2P discovery information of an external electronic device (220).
[0409] If the P2P list included in the communication session connection request message includes P2P discovery information of an external electronic device (220), the signaling server (200) can check whether the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same in operation 826.
[0410] First, the following may be explained in the case where it is confirmed that the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same.
[0411] If the P2P token of the external electronic device (220) registered in the signaling server (200) and the P2P token of the external electronic device (220) included in the P2P list included in the communication session connection request message are the same, the signaling server (200) can confirm that the electronic device (101) and the external electronic device (220) are capable of P2P communication using private IP addresses / port numbers.
[0412] The signaling server (200), which has confirmed that the electronic device (101) and the external electronic device (220) are capable of P2P communication using private IP addresses / port numbers, may transmit a communication session connection request message received from the electronic device (101) to the external electronic device (220) in operation 827. The communication session connection request message transmitted in operation 827 may include the private IP address / port number of the electronic device (101). For example, the communication session connection request message transmitted in operation 827 may be implemented similar to or substantially identical to Table 9, and thus, a detailed description thereof will be omitted herein.
[0413] An external electronic device (220) that receives a communication session connection request message from a signaling server (200) can check whether ICE information is included in the communication session connection request message in operation 828. If it is determined in operation 828 that ICE information is not included in the communication session connection request message, operations 829 to 835 can be performed. Operations 829 to 835 can be implemented similarly to or substantially identically to operations 726 to 732 described in FIGS. 7A to 7F , and thus, a detailed description thereof will be omitted herein.
[0414] An external electronic device (220) that receives a communication session connection request message from a signaling server (200) can check whether ICE information is included in the communication session connection request message received in operation 836. If it is determined in operation 836 that ICE information is not included in the communication session connection request message, operations 837 to 849 may be performed. Operations 837 to 849 may be implemented similarly to or substantially identically to operations 733 to 745 described in FIGS. 7A to 7F , and thus, a detailed description thereof will be omitted herein.
[0415] In operation 821, if the electronic device (101) determines that P2P communication with the external electronic device (220) is impossible, operations 850 to 853 may be performed. Operations 850 to 853 may be implemented similarly to or substantially identically to operations 306 to 309 described in FIGS. 3A and 3B , and thus, a detailed description thereof will be omitted herein.
[0416] The signaling server (200) that receives the communication session connection request message from the electronic device (101) can check whether the communication session connection request message received in operation 854 includes ICE information. If it is confirmed that the communication session connection request message includes ICE information in operation 854, the signaling server (200) can transmit the communication session connection request message including the ICE information received from the electronic device (101) to the external electronic device (220) in operation 855. Operation 855 may be implemented similarly to or substantially identically to operation 310 described in FIGS. 3A and 3B , and thus, a detailed description thereof will be omitted herein.
[0417] An external electronic device (220) that receives a communication session connection request message can check whether ICE information is included in the communication session connection request message received in operation 856. If it is determined that ICE information is included in the communication session connection request message received in operation 856, operations 857 to 866 may be performed. Operations 857 to 866 may be implemented similarly to or substantially identically to operations 311 to 320 described in FIGS. 3A and 3B , and thus, a detailed description thereof will be omitted herein.
[0418] When a communication session is established as described in FIGS. 8A to 8H, a communication channel between the electronic device (101) and the external electronic device (220) can be confirmed before a request for establishing a communication session is generated in the electronic device (101), and thus the time required for establishing a communication session can be reduced (e.g., minimized).
[0419] When a communication session is established as described in FIGS. 8A to 8H, a communication channel between the electronic device (101) and the external electronic device (220) can be confirmed before a request for establishing a communication session is generated in the electronic device (101), and thus the time required for establishing a communication session can be reduced (e.g., minimized).
[0420] The communication session establishment procedure as described in FIGS. 8a to 8h can enable fast call connection between devices when applied to a communication session establishment procedure for a packet call service (e.g., VoIP service and / or VoLTE service).
[0421] The communication session establishment procedure as described in FIGS. 8a to 8h can enable fast data transmission and reception between devices when applied to a communication session establishment procedure for packet data services (e.g., message services and / or data services).
[0422] The communication session establishment procedure as described in FIGS. 8a to 8h may be performed in parallel between one device and multiple other devices, enabling rapid communication session establishment between one device and multiple other devices.
[0423] Meanwhile, although FIGS. 8A through 8H illustrate a communication session establishment procedure according to one embodiment, it should be understood that various modifications may be made to FIGS. 8A through 8H . For example, although FIGS. 8A through 8H illustrate sequential operations, it should be understood that the operations described in FIGS. 8A through 8H may overlap, occur in parallel, occur in a different order, or occur multiple times.
[0424] According to one embodiment of the present disclosure, a method of operating an electronic device (101) may include, before a communication session is established with an external electronic device (220) having an association with the electronic device in a peer-to-peer (P2P) based service, transmitting a first message to a server (200) requesting that the external electronic device notify the electronic device of first information related to the service.
[0425] According to one embodiment of the present disclosure, the method may include, in response to the first message, receiving from the server a second message including second information including at least a portion of the first information.
[0426] According to one embodiment of the present disclosure, the method may include an operation of transmitting, to the external electronic device, a P2P discovery request message including third information related to the service of the electronic device, based on the second information.
[0427] According to one embodiment of the present disclosure, the method may include an operation of receiving, from the external electronic device, a P2P discovery response message including the first information in response to the P2P discovery request message.
[0428] According to one embodiment of the present disclosure, the method may include an operation of confirming a request for establishing a communication session to the external electronic device after receiving the P2P discovery response message.
[0429] According to one embodiment of the present disclosure, the method may include an operation of establishing a communication session with the external electronic device based on the first information.
[0430] According to one embodiment of the present disclosure, the operation of establishing a communication session with the external electronic device may include an operation of transmitting, to the external electronic device, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information, based on the first information.
[0431] According to one embodiment of the present disclosure, the operation of establishing a communication session with the external electronic device may include, in response to the communication session connection request message, receiving, from the external electronic device, a communication session connection acceptance message including private IP / port information of the external electronic device.
[0432] According to one embodiment of the present disclosure, the method may include an operation of transmitting or receiving a packet with the external electronic device based on private IP / port information of the external electronic device.
[0433] According to one embodiment of the present disclosure, the operation of establishing a communication session with the external electronic device may include an operation of transmitting, to the external electronic device, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information, based on the first information.
[0434] According to one embodiment of the present disclosure, the operation of establishing a communication session with the external electronic device may include, in response to the communication session connection request message, receiving, from the external electronic device, a communication session connection acceptance message including public IP / port information of the external electronic device.
[0435] According to one embodiment of the present disclosure, the method may include an operation of transmitting or receiving a packet with the external electronic device based on private IP / port information of the external electronic device.
[0436] According to one embodiment of the present disclosure, the first information may include a user identifier (ID) of the external electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and the first token.
[0437] According to one embodiment of the present disclosure, the first token may be generated when the external electronic device connects to a new network.
[0438] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the external electronic device is connected, a change in a device used by the external electronic device when performing a network connection operation, or a change in the IP address of the external electronic device.
[0439] According to one embodiment of the present disclosure, the third information may include a user identifier (ID) of the electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and a second token related to the validity of the third information.
[0440] According to one embodiment of the present disclosure, the second token may be generated when the electronic device connects to a new network.
[0441] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the electronic device is connected, a change in a device used by the electronic device when performing a network connection operation, or a change in the IP address of the electronic device.
[0442] According to one embodiment of the present disclosure, the external electronic device having an association with the electronic device may log in to the service with the same user identifier (ID) as the electronic device, log in to the service with the same user ID as a device having a set relationship with the electronic device, or log in to the service with the same user ID as a device belonging to the same group as the electronic device.
[0443] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0444] According to one embodiment of the present disclosure, a method of operating a server (200) may include, before a communication session is established with an external electronic device (220) having an association with an electronic device (101) in a peer-to-peer (P2P) based service, receiving a first message from the electronic device requesting that the external electronic device notify the electronic device of first information related to the service.
[0445] According to one embodiment of the present disclosure, the method may include, after receiving the first message, receiving a second message including the first information from the external electronic device.
[0446] According to one embodiment of the present disclosure, the method may include, in response to the second message, transmitting to the electronic device a third message including second information including at least a portion of the first information.
[0447] According to one embodiment of the present disclosure, the method may include, after transmitting the third message, receiving, from the electronic device, a communication session connection request message to the external electronic device, the message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device.
[0448] According to one embodiment of the present disclosure, the method may include an operation of checking whether the first information is included in the information about the device capable of P2P communication.
[0449] According to one embodiment of the present disclosure, the method may include an operation of checking whether the first token included in the communication session connection request message is identical to a token of the external electronic device registered on the server, based on the first information being included in the information about the device capable of P2P communication.
[0450] According to one embodiment of the present disclosure, the method may include an operation of transmitting, to the external electronic device, a communication session connection request message including private IP / port information of the electronic device, based on verifying that the first token is identical to a token of the external electronic device registered with the server.
[0451] According to one embodiment of the present disclosure, the method may include, in response to the communication session connection request message, receiving a communication session connection acceptance message from the external electronic device to the electronic device, the communication session connection acceptance message including private IP / port information of the external electronic device.
[0452] According to one embodiment of the present disclosure, the method may include an action of transmitting, to the electronic device, the communication session connection acceptance message.
[0453] According to one embodiment of the present disclosure, the method may include an operation of obtaining public IP / port information of the electronic device from a server (210) different from the server, based on the first information not being included in the information about the device capable of P2P communication, or based on the first token not being identical to a token of the external electronic device registered with the server.
[0454] According to one embodiment of the present disclosure, the method may include an action of transmitting, to the external electronic device, the communication session connection request message including public IP / port information of the electronic device.
[0455] According to one embodiment of the present disclosure, the method may include, in response to the communication session connection request message, receiving a communication session connection acceptance message from the external electronic device to the electronic device, the communication session connection acceptance message including private IP / port information of the external electronic device.
[0456] According to one embodiment of the present disclosure, the method may include an operation of obtaining public IP / port information of the external electronic device from the other server.
[0457] According to one embodiment of the present disclosure, the method may include an action of transmitting, to the electronic device, a communication session connection acceptance message including public IP / port information of the external electronic device.
[0458] According to one embodiment of the present disclosure, the method may include an operation of requesting establishment of a relay session between the electronic device and the external electronic device to the other server before transmitting a communication session connection acceptance message including public IP / port information of the external electronic device.
[0459] According to one embodiment of the present disclosure, the method may include, before transmitting the first message, receiving, from the electronic device, a fourth message including third information related to the service of the electronic device.
[0460] According to one embodiment of the present disclosure, the first information may include a user identifier (ID) of the external electronic device, a device ID, IP / port information used for P2P discovery, and the first token.
[0461] According to one embodiment of the present disclosure, the first token may be generated when the external electronic device connects to a new network.
[0462] According to one embodiment of the present disclosure, connection to the new network may include at least one of connection to an access point (AP) different from the AP to which the external electronic device is connected, a change in a device used by the external electronic device when performing a network connection operation, or a change in the IP address of the external electronic device.
[0463] According to one embodiment of the present disclosure, the third information may include a user identifier (ID) of the electronic device, a device ID, IP / port information used for P2P discovery, and a second token related to the validity of the third information.
[0464] According to one embodiment of the present disclosure, the second token may be generated when the electronic device connects to a new network.
[0465] According to one embodiment of the present disclosure, the external electronic device having an association with the electronic device may log in to the service with the same user identifier (ID) as the electronic device, log in to the service with the same user ID as a device having a set relationship with the electronic device, or log in to the service with the same user ID as a device belonging to the same group as the electronic device.
[0466] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
[0467] According to one embodiment of the present disclosure, a storage medium storing at least one computer-readable instruction may be provided.
[0468] According to one embodiment of the present disclosure, the at least one instruction, when executed individually or collectively by one or more processors (120) including processing circuitry of the electronic device (101), may cause the electronic device to perform at least one operation.
[0469] According to one embodiment of the present disclosure, the at least one operation may include, before a communication session is established with an external electronic device (220) having an association with the electronic device in a peer-to-peer (P2P) based service, an operation of transmitting a first message to a server (200) requesting that the external electronic device notify the electronic device of first information related to the service.
[0470] According to one embodiment of the present disclosure, the at least one operation may include receiving, in response to the first message, a second message from the server, the second message including second information including at least a portion of the first information.
[0471] According to one embodiment of the present disclosure, the at least one operation may include transmitting, to the external electronic device, a P2P discovery request message including third information related to the service of the electronic device, based on the second information.
[0472] According to one embodiment of the present disclosure, the at least one operation may include receiving, in response to the P2P discovery request message, a P2P discovery response message including the first information from the external electronic device.
[0473] According to one embodiment of the present disclosure, the at least one operation may include an operation of confirming a request for establishing a communication session to the external electronic device after receiving the P2P discovery response message.
[0474] According to one embodiment of the present disclosure, the at least one operation may include an operation of establishing a communication session with the external electronic device based on the first information.
[0475] According to one embodiment of the present disclosure, the first information may include at least a first token associated with the validity of the first information.
Claims
1. In an electronic device (101), Communication circuit (190); One or more processors (120) comprising processing circuitry; A memory (130) for storing instructions, wherein the instructions, when individually or collectively executed by one or more processors, cause the electronic device to: Before a communication session is established with an external electronic device (220) having an association with the electronic device in a peer-to-peer (P2P)-based service, a first message is transmitted to a server (200) through the communication circuit, requesting that first information related to the service of the external electronic device be notified to the electronic device, In response to said first message, a second message including second information including at least a portion of said first information is received from said server through said communication circuit, Based on the second information, a P2P discovery request message including third information related to the service of the electronic device is transmitted to the external electronic device through the communication circuit, In response to the P2P discovery request message, a P2P discovery response message including the first information is received from the external electronic device through the communication circuit, After receiving the above P2P discovery response message, a request for establishing a communication session to the external electronic device is confirmed, and Based on the above first information, causing a communication session to be established with the external electronic device through the communication circuit, The electronic device, wherein the first information comprises at least a first token related to the validity of the first information.
2. In paragraph 1, The above instructions, when individually or collectively executed by one or more processors, cause the electronic device to: Based on the first information, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information is transmitted to the external electronic device through the communication circuit, and An electronic device that causes the electronic device to receive, in response to the communication session connection request message, a communication session connection acceptance message including private IP / port information of the external electronic device from the external electronic device through the communication circuit.
3. In paragraph 2, The above instructions, when individually or collectively executed by one or more processors, cause the electronic device to: An electronic device that causes a packet to be transmitted or received with the external electronic device through the communication circuit based on the private IP / port information of the external electronic device.
4. In paragraph 1, The above instructions, when individually or collectively executed by one or more processors, cause the electronic device to: Based on the first information, a communication session connection request message including private Internet protocol (IP) / port information of the electronic device and the first information is transmitted to the external electronic device through the communication circuit, and An electronic device, in response to said communication session connection request message, causing said electronic device to receive a communication session connection acceptance message including public IP / port information of said external electronic device from said external electronic device through said communication circuit.
5. In paragraph 4, The above instructions, when individually or collectively executed by one or more processors, cause the electronic device to: An electronic device that causes a packet to be transmitted or received with the external electronic device through the communication circuit based on the private IP / port information of the external electronic device.
6. In any one of paragraphs 1 to 5, The first information includes a user identifier (ID) of the external electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and the first token, and The above first token is generated when the electronic device connects to a new network of the external electronic device.
7. In paragraph 6, Access to the new network above is: Connection to an access point (AP) other than the access point to which the external electronic device is connected; Change of the device used when the above external electronic device performs network connection operations, or An electronic device comprising at least one of changing the IP address of said external electronic device.
8. In any one of paragraphs 1 to 5, The third information includes a user identifier (ID) of the electronic device, a device ID, internet protocol (IP) / port information used for P2P discovery, and a second token related to the validity of the third information, and The second token is generated when the electronic device connects to a new network.
9. In paragraph 8, Access to the new network above is: Connection to an access point (AP) other than the access point to which the above electronic device is connected; Change of the device used when the above electronic device performs network connection operations, or An electronic device comprising at least one of changing an IP address of said electronic device.
10. In any one of paragraphs 1 to 9, The external electronic device associated with the above electronic device is: Log in to the service with the same user identifier (ID) as the electronic device, or Log in to the service with the same user ID as the device that has a setup relationship with the electronic device, or An electronic device that is logged into the service with the same user ID as a device belonging to the same group as the electronic device.
11. In the server (200), Communication circuit (211); and One or more processors (213) including processing circuitry; and A memory (217) for storing instructions, wherein the instructions, when individually or collectively executed by one or more processors, cause the server to: Before a communication session is established with an external electronic device (220) having an association with an electronic device (101) in a peer-to-peer (P2P)-based service, a first message is received from the electronic device through the communication circuit, requesting that first information related to the service of the external electronic device be notified to the electronic device, After receiving the first message, a second message including the first information is received from the external electronic device through the communication circuit, In response to said second message, transmitting a third message including second information including at least a portion of said first information to said electronic device through said communication circuit; After transmitting the third message, a communication session connection request message to the external electronic device is received from the electronic device through the communication circuit, the message including private Internet protocol (IP) / port information of the electronic device and information about a device capable of P2P communication with the electronic device, Check whether the information about the device capable of P2P communication includes the first information, Based on the fact that the first information is included in the information about the device capable of the P2P communication, it is checked whether the first token included in the communication session connection request message is identical to the token of the external electronic device registered in the server, and Based on the verification that the first token is identical to the token of the external electronic device registered on the server, causing the communication session connection request message including the private IP / port information of the electronic device to be transmitted to the external electronic device through the communication circuit, The server, wherein the first information comprises at least a first token related to the validity of the first information.
12. In paragraph 11, The above instructions, when individually or collectively executed by one or more processors, cause the server to: In response to the communication session connection request message, receiving a communication session connection acceptance message from the external electronic device through the communication circuit, the communication session connection acceptance message including private IP / port information of the external electronic device, and The server causing the electronic device to transmit the communication session connection acceptance message through the communication circuit.
13. In paragraph 11, The above instructions, when individually or collectively executed by one or more processors, cause the server to: Based on the fact that the information about the device capable of P2P communication does not include the first information, or based on the fact that the first token is not identical to the token of the external electronic device registered in the server, the public IP / port information of the electronic device is acquired from a server (210) other than the server through the communication circuit, and The server causing the external electronic device to transmit the communication session connection request message including the public IP / port information of the electronic device to the external electronic device through the communication circuit.
14. In paragraph 13, The above instructions, when individually or collectively executed by one or more processors, cause the server to: In response to the above communication session connection request message, a communication session connection acceptance message is received from the external electronic device through the communication circuit, the communication session connection acceptance message including private IP / port information of the external electronic device to the electronic device, Obtaining public IP / port information of the external electronic device from the other server through the above communication circuit, and The server causing the electronic device to transmit a communication session connection acceptance message including public IP / port information of the external electronic device through the communication circuit.
15. In a storage medium storing at least one computer-readable instruction, The at least one instruction, when executed individually or collectively by one or more processors (120) comprising processing circuitry of the electronic device (101), causes the electronic device to perform at least one operation, At least one of the above actions: An action of transmitting a first message to a server (200) requesting that first information related to the service of the external electronic device be notified to the electronic device before a communication session is established with an external electronic device (220) having an association with the electronic device in a peer-to-peer (P2P) based service; In response to said first message, receiving from said server a second message including second information including at least a portion of said first information; An action of transmitting a P2P discovery request message including third information related to the service of the electronic device to the external electronic device based on the second information; In response to the P2P discovery request message, an action of receiving a P2P discovery response message including the first information from the external electronic device; After receiving the above P2P discovery response message, an action of confirming a request for establishing a communication session to the external electronic device; and Based on the first information, an action is included to establish a communication session with the external electronic device, The storage medium wherein the first information includes at least a first token related to the validity of the first information.
Citation Information
Patent Citations
Method for generating wi-fi p2p group
KR101826327B1
Methods and apparatus to establish peer-to-peer communications
KR1020120089477A
Hybrid modes for peer discovery
KR1020170104662A
Method and apparatus for receiving streaming via transport protocol in wireless communication system
WO2017155271A1