KR101617760B1 - SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME - Google Patents
SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME Download PDFInfo
- Publication number
- KR101617760B1 KR101617760B1 KR1020140154313A KR20140154313A KR101617760B1 KR 101617760 B1 KR101617760 B1 KR 101617760B1 KR 1020140154313 A KR1020140154313 A KR 1020140154313A KR 20140154313 A KR20140154313 A KR 20140154313A KR 101617760 B1 KR101617760 B1 KR 101617760B1
- Authority
- KR
- South Korea
- Prior art keywords
- peer
- media information
- available media
- ice candidate
- ice
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1072—Discovery involving ranked list compilation of candidate peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Multimedia (AREA)
- Telephonic Communication Services (AREA)
Abstract
Description
본 발명은 시그널링 서버 및 시그널링 서버에서의 WebRTC (Web Real Time Communication) 서비스 제공 방법에 관한 것으로서, 보다 상세하게는 WebRTC 연결 시 피어들 간의 정보 교환을 최소화하여 빠른 연결을 가능하게 하는 시그널링 서버 및 시그널링 서버에서의 WebRTC 서비스 제공 방법에 관한 것이다.The present invention relates to a method for providing a WebRTC (Web Real Time Communication) service in a signaling server and a signaling server, and more particularly, to a signaling server and a signaling server for minimizing information exchange between peers in a WebRTC connection, To a method for providing a WebRTC service.
WebRTC (Web Real Time Communication) 는 웹 브라우저 간에 플러그인의 도움 없이 서로 통신할 수 있도록 설계된 API이다. WebRTC는 웹 브라우저 상에서의 음성 통화, 영상 통화, P2P (peer to peer) 파일 공유 등으로 활용될 수 있다. 구글 (Google) 이 처음으로 WebRTC를 제안한 이후 구글, 모질라 (Mozilla), 오페라 (Opera) 및 마이크로소프트 (Microsoft) 까지 기술적 표준을 만들어가고 있다. WebRTC 기술이 다른 기술과 다른 점은 HTML5와 자바스크립트만을 이용하여 실시간 통신을 구현한 점이다. 따라서, WebRTC는 통신을 위한 별도의 플러그인을 웹 브라우저에 설치하지 않는 것을 특징으로 합니다.WebRTC (Web Real Time Communication) is an API designed to communicate between web browsers without the help of plugins. WebRTC can be used for voice call, video call, peer-to-peer (P2P) file sharing on a web browser. Since Google's first proposal for WebRTC, Google, Mozilla, Opera and Microsoft have been creating technical standards. WebRTC technology differs from other technologies in that it implements real-time communication using only HTML5 and JavaScript. Therefore, WebRTC does not install a separate plug-in for communication in a web browser.
기존의 WebRTC 시그널링 과정에서는 통화 연결되는 2개의 피어가 반드시 서버를 통해 각자의 네트워크 정보 및 가용 미디어 정보를 교환해야만 한다. 이러한 정보 교환은 피어와 서버 사이의 트래픽 발생을 의미하는데 소규모의 통신 서비스에서는 트래픽 양이 크다고 할 수 없지만 많은 인원이 통신 서비스에 연결하는 경우 해당 트래픽을 무시할 수 없게 된다. In the existing WebRTC signaling process, two peers connected by a call must exchange their network information and available media information through the server. This exchange of information means the traffic between the peer and the server. In a small communication service, the amount of traffic is not high. However, when a large number of people connect to the communication service, the traffic can not be ignored.
또한, 통계적으로 80% 이상의 WebRTC 연결이 각 피어의 호스트 (host) ICE 후보 (candidate) 를 통해 이루어지는데, 통화 연결 시도 시마다 각 피어는 STUN/TURN (Session Traversal Utilities for NAT/Traversal Using Relays around NAT) 서버를 통해 자신의 ICE 후보들을 확보하고 해당 ICE 후보와 자신의 가용 미디어 정보를 전달하는 과정을 매번 수행하여야 한다. 이에 따라, 각 피어는 통화 연결 시도 시마다 ICE 후보를 중복적으로 확보하는 과정을 수행하여야 하므로 불필요한 자원이 낭비되며, 정보 교환에 많은 시간이 소요되는 문제가 있다.Statistically, more than 80% of WebRTC connections are made through each peer's host ICE candidates. Each time a peer attempts to establish a connection, each peer sends a STUN / TURN (Session Traversal Utilities for NAT / Traversal Using Relays around NAT) The server must acquire its own ICE candidates and carry out the process of delivering its available media information to the ICE candidate each time. Accordingly, each peer must perform a process of redundantly securing the ICE candidate every time a call connection is attempted, so that unnecessary resources are wasted, and it takes a lot of time to exchange information.
[관련기술문헌][Related Technical Literature]
1. RTCWeb 서비스를 IMS 네트워크에 제공하기 위한 서버 (한국특허출원번호 제 10-2013-0127764 호)1. Server for providing RTCWeb service to IMS network (Korean Patent Application No. 10-2013-0127764)
이에, 본 발명이 해결하고자 하는 과제는 WebRTC 연결 시 주고받는 네트워크 정보 및 가용 미디어 정보를 서버 쪽에서 저장하여 WebRTC 연결 시 핸드쉐이킹 (handshaking) 과정을 줄일 수 있는 시그널링 서버 및 시그널링 서버에서의 WebRTC 서비스 제공 방법을 제공하는 것이다.Accordingly, a problem to be solved by the present invention is to provide a signaling server capable of reducing the handshaking process when a WebRTC is connected by storing network information and available media information transmitted and received when a WebRTC is connected, and a method of providing a WebRTC service in a signaling server .
본 발명이 해결하고자 하는 다른 과제는 서버에서 각 피어의 가용 미디어 정보 및 네트워크 정보를 저장하더라도, 보안을 유지할 수 있는 시그널링 서버 및 시그널링 서버에서의 WebRTC 서비스 제공 방법을 제공하는 것이다.Another object of the present invention is to provide a signaling server and a method for providing a WebRTC service in a signaling server that can maintain security even if the server stores available media information and network information of each peer.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the above-mentioned problems, and other problems not mentioned can be clearly understood by those skilled in the art from the following description.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 시그널링 서버에서의 WebRTC (Web-Real Time Communication) 서비스 제공 방법은 제1 피어(peer)로부터 제2 피어에 대한 통화 요청을 수신하는 단계, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보(ICE candidate)의 저장 여부를 확인하는 단계 및 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보가 저장된 경우, 제2 피어로 제1 피어의 가용 미디어 정보, 제1 피어의 ICE 후보 및 통화 요청을 송신하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method for providing a WebRTC (WebRTC) service in a signaling server, the method comprising: receiving a call request for a second peer from a first peer; Determining if the available media information of the first peer and the ICE candidate of the first peer are stored; and, if the available media information of the first peer and the ICE candidate of the first peer are stored, And transmitting the available media information of the first peer, the ICE candidate of the first peer, and a call request.
본 발명의 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보가 저장되지 않은 경우, 제1 피어로 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보에 대한 요청을 송신하는 단계, 제1 피어로부터 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보를 수신하는 단계 및 제1 피어의 가용 미디어 정보, 제1 피어의 ICE 후보 및 통화 요청을 제2 피어로 송신하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for providing a WebRTC service in a signaling server, the method comprising the steps of: if available media information of a first peer and an ICE candidate of a first peer are not stored, Sending a request to an ICE candidate of a first peer, receiving available media information of a first peer and an ICE candidate of a first peer from the first peer, and receiving available media information of the first peer, an ICE candidate of a first peer And sending the call request to the second peer.
본 발명의 또 다른 특징에 따르면, 제1 피어로부터 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보를 수신하는 단계는 수신된 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보를 저장하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, the step of receiving the available media information of the first peer and the ICE candidate of the first peer from the first peer stores the available media information of the received first peer and the ICE candidate of the first peer The method comprising the steps of:
본 발명의 또 다른 특징에 따르면, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보를 저장하는 단계는 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보를 암호화하여 저장하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, storing the available media information of the first peer and the ICE candidate of the first peer comprises encrypting and storing the available media information of the first peer and the ICE candidate of the first peer .
본 발명의 또 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제1 피어의 가용 미디어 정보가 변경된 경우, 제1 피어로부터 변경 가용 미디어 정보를 수신하는 단계 및 변경 가용 미디어 정보를 제1 피어의 가용 미디어 정보로 저장하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, a method for providing a WebRTC service in a signaling server includes receiving modified usable media information from a first peer when available media information of a first peer is changed, And storing the available media information in the storage medium.
본 발명의 또 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제1 피어의 ICE 후보가 변경된 경우, 제1 피어로부터 변경 ICE 후보를 수신하는 단계 및 변경 ICE 후보를 제1 피어의 ICE 후보로 저장하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for providing a WebRTC service in a signaling server, comprising: receiving a changed ICE candidate from a first peer when an ICE candidate of a first peer is changed; The method comprising the steps of:
본 발명의 또 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제2 피어로부터 통화 수락을 수신하는 단계, 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보의 저장 여부를 확인하는 단계 및 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보가 저장된 경우, 제1 피어로 제2 피어의 가용 미디어 정보, 제2 피어의 ICE 후보 및 통화 수락을 송신하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, a method for providing a WebRTC service in a signaling server includes receiving a call admission from a second peer, checking whether available media information of a second peer and ICE candidate of a second peer are stored And transmitting the available media information of the second peer to the first peer, the ICE candidate of the second peer and the call admission if the available media information of the second peer and the ICE candidate of the second peer are stored .
본 발명의 또 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보가 저장되지 않은 경우, 제2 피어로 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보에 대한 요청을 송신하는 단계, 제2 피어로부터 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보를 수신하는 단계 및 제2 피어의 가용 미디어 정보, 제2 피어의 ICE 후보 및 통화 수락을 제1 피어로 송신하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for providing a WebRTC service in a signaling server, the method comprising the steps of: if available media information of a second peer and an ICE candidate of a second peer are not stored, Receiving a request for an ICE candidate of a second peer, receiving available media information of a second peer from the second peer and an ICE candidate of a second peer, and receiving available media information of a second peer, And transmitting the candidate and call acceptance to the first peer.
본 발명의 또 다른 특징에 따르면, 제2 피어로부터 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보를 수신하는 단계는 수신된 제2 피어의 가용 미디어 정보 및 제2 피어의 ICE 후보를 저장하는 단계를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, the step of receiving the available media information of the second peer from the second peer and the ICE candidate of the second peer stores the available media information of the received second peer and the ICE candidate of the second peer The method comprising the steps of:
본 발명의 또 다른 특징에 따르면, 시그널링 서버에서의 WebRTC 서비스 제공 방법은 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보가 저장된 경우, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보의 신뢰도를 판단하는 단계 및 신뢰도에 기초하여 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보의 신뢰도의 재수신 여부를 결정하는 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method for providing a WebRTC service in a signaling server, the method comprising: when available media information of a first peer and an ICE candidate of a first peer are stored, the available media information of the first peer and the ICE candidate of the first peer Determining whether the reliability of the ICE candidate of the first peer and the reliability of the ICE candidate of the first peer based on the reliability of the available media information of the first peer and the reliability of the ICE candidate of the first peer are satisfied.
본 발명의 또 다른 특징에 따르면, 제1 피어의 가용 미디어 정보는 제1 피어의 오디오 정보 및 제1 피어의 비디오 정보인 것을 특징으로 한다.According to another aspect of the present invention, the available media information of the first peer is audio information of the first peer and video information of the first peer.
본 발명의 또 다른 특징에 따르면, 제1 피어의 ICE 후보는 제1 피어의 하나 이상의 네트워크 정보인 것을 특징으로 한다.According to another aspect of the present invention, the ICE candidate of the first peer is one or more network information of the first peer.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 시그널링 서버는 제1 피어(peer)로부터 제2 피어에 대한 통화 요청을 수신하도록 구성된 통신부, 저장부 및 통화 요청에 응답하여, 저장부에 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보(ICE candidate)가 저장되었는지 여부를 확인하고, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보가 저장부에 저장된 경우, 제2 피어로 제1 피어의 가용 미디어 정보, 제1 피어의 ICE 후보 및 통화 요청을 통신부를 통해 송신하도록 구성된 처리부를 포함한다.According to an aspect of the present invention, there is provided a signaling server comprising: a communication unit configured to receive a call request for a second peer from a first peer; a storage unit; If the available media information of the first peer and the ICE candidate of the first peer (ICE candidate) of the first peer are stored, and if the available media information of the first peer and the ICE candidate of the first peer are stored in the storage, And a processing unit configured to transmit, via the communication unit, the available media information of the first peer to the second peer, the ICE candidate of the first peer, and a talk request.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 컴퓨터 판독가능 기록매체는 제1 피어(peer)로부터 제2 피어에 대한 통화 요청을 수신하고, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보(ICE candidate)의 저장 여부를 확인하고, 제1 피어의 가용 미디어 정보 및 제1 피어의 ICE 후보가 저장된 경우, 제2 피어로 제1 피어의 가용 미디어 정보, 제1 피어의 ICE 후보 및 통화 요청을 송신하게 하는 명령어들의 세트를 포함한다.According to an aspect of the present invention, there is provided a computer readable recording medium for receiving a call request for a second peer from a first peer, (ICE candidate) of the first peer is stored, and when the available media information of the first peer and the ICE candidate of the first peer are stored, the available media information of the first peer to the second peer, ICE candidate and a set of instructions to send a call request.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.
본 발명은 WebRTC 연결 시 주고받는 네트워크 정보 및 가용 미디어 정보를 서버 쪽에서 저장하여 WebRTC 연결 시 핸드쉐이킹 과정을 줄일 수 있다.The present invention can reduce the handshaking process when the WebRTC is connected by storing network information and available media information on the server side when the WebRTC is connected.
또한, 본 발명은 서버에서 각 피어의 가용 미디어 정보 및 네트워크 정보를 저장하더라도, 보안을 유지할 수 있다.In addition, the present invention can maintain security even if the server stores available media information and network information of each peer.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.
도 1은 본 발명의 일 실시예에 따른 시그널링 서버와 제1 피어, 제2 피어 및 STUN/TURN 서버의 개략도이다.
도 2는 본 발명의 일 실시예에 따른 시그널링 서버의 개략도이다.
도 3 내지 도 5는 본 발명의 다양한 실시예들에 따른 시그널링 서버에서의 WebRTC 서비스 제공 방법을 설명하기 위한 흐름도들이다.1 is a schematic diagram of a signaling server, a first peer, a second peer, and a STUN / TURN server according to an embodiment of the present invention.
2 is a schematic diagram of a signaling server in accordance with an embodiment of the present invention.
3 to 5 are flowcharts illustrating a method of providing a WebRTC service in a signaling server according to various embodiments of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Like reference numerals refer to like elements throughout the specification.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 펌웨어 (firmware), 소프트웨어 (software), 또는 하드웨어 (hardware) 로 구성된, 알고리즘 또는 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 디지털 신호 처리 디바이스 (Digital Signal Processing Device) 의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 알고리즘 또는 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Each block of the accompanying block diagrams and combinations of the steps of the flowcharts may be performed by algorithms or computer program instructions comprised of firmware, software, or hardware. These algorithms or computer program instructions may be embedded in a processor of a general purpose computer, special purpose computer, or other programmable digital signal processing device, so that the instructions that are executed by a processor of a computer or other programmable data processing apparatus Generate means for performing the functions described in each block or flowchart of the block diagram. These algorithms or computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement a function in a particular manner, It is also possible for instructions stored in a possible memory to produce a manufacturing item containing instruction means for performing the function described in each block or flowchart of each block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.It is to be understood that each of the features of the various embodiments of the present invention may be combined or combined with each other partially or entirely and technically various interlocking and driving is possible as will be appreciated by those skilled in the art, It may be possible to cooperate with each other in association.
이하, 첨부된 도면을 참조하여 본 발명의 다양한 실시예들을 상세히 설명한다.Various embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일 실시예에 따른 시그널링 서버와 제1 피어, 제2 피어 및 STUN/TURN 서버의 개략도이다. 도 2는 본 발명의 일 실시예에 따른 시그널링 서버의 개략도이다. 1 is a schematic diagram of a signaling server, a first peer, a second peer, and a STUN / TURN server according to an embodiment of the present invention. 2 is a schematic diagram of a signaling server in accordance with an embodiment of the present invention.
도 1을 참조하면, 제1 피어 (200) 및 제2 피어 (300) 는 WebRTC 클라이언트로서, WebRTC 서비스를 사용하여 다른 피어와 통화를 할 수 있는 장치를 의미한다. 구체적으로, 제1 피어 (200) 및 제2 피어 (300) 는 WebRTC 프로토콜로 구현된 애클리케이션으로서, 웹 브라우저를 통해 WebRTC 서비스를 사용할 수 있는 장치이다. 제1 피어 (200) 및 제2 피어 (300) 는, 예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 휴대폰, 스마트폰, 태블릿 PC 등과 같은 다양한 전자 장치일 수 있다. 제1 피어 (200) 및 제2 피어 (300) 는 시그널링 서버 (100) 및 STUN/TURN 서버 (400) 와 다양한 통신 방식을 사용하여 통신할 수 있다. 도 1에서는 2개의 피어가 존재하는 것으로 도시하였으나, 하나의 시그널링 서버 (100) 및 하나의 STUN/TURN 서버 (400) 와 연결되는 피어의 개수는 이에 제한되지 않는다.Referring to FIG. 1, the
STUN/TURN 서버 (400) 는 제1 피어 (200) 및 제2 피어 (300) 에게 ICE 후보를 제공한다. 제1 피어 (200) 및 제2 피어 (300) 가 통화 연결을 위해 자신의 네트워크 정보를 요청하는 경우, STUN/TURN 서버 (400) 는 제1 피어 (200) 및 제2 피어 (300) 각각의 요청에 응답하여 제1 피어 (200) 및 제2 피어 (300) 로 ICE 후보를 제공할 수 있다. ICE 후보는, 예를 들어, 공용 IP 정보, 사설 네트워크 IP 정보 등과 같이 각각의 피어를 식별할 수 있는 하나 이상의 네트워크 정보를 의미한다.STUN / TURN
시그널링 서버 (100) 는 WebRTC 서비스를 제1 피어 (200) 및 제2 피어 (300) 에게 제공하기 위한 서버이다. 시그널링 서버 (100) 는 통화를 하고자 하는 피어를 확인하고, 해당 피어에 통화 요청을 전송하며, 해당 피어로부터 통화 수락을 수신하여 양 피어 사이의 통화 연결을 제공한다. The signaling
도 2를 참조하면, 시그널링 서버 (100) 는 통신부 (110), 저장부 (120) 및 처리부 (130) 를 포함한다. 시그널링 서버 (100) 의 통신부 (110), 저장부 (120) 및 처리부 (130) 의 기능에 대한 보다 상세한 설명을 위해 도 3을 함께 참조한다.Referring to FIG. 2, the signaling
도 3은 본 발명의 일 실시예에 따른 시그널링 서버에서의 WebRTC 서비스 제공 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method of providing a WebRTC service in a signaling server according to an embodiment of the present invention.
먼저, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 제2 피어 (300) 에 대한 통화 요청을 수신한다 (S300).First, the signaling
도 2 및 도 3을 참조하면, 시그널링 서버 (100) 는 통신부 (110) 를 통해 제1 피어 (200) 로부터 제2 피어 (300) 에 대한 통화 요청을 수신한다. 통신부 (110) 는 시그널링 서버 (100) 가 외부의 다른 장치들과 통신하기 위한 구성요소로서, 데이터를 송신하거나 수신할 수 있도록 구성된다. 통신는 다양한 통신 방식을 사용하여 제1 피어 (200) 또는 제2 피어 (300) 와 통신할 수 있다.2 and 3, the signaling
이어서, 시그널링 서버 (100) 는 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보의 저장 여부를 확인한다 (S310).Next, the signaling
도 2 및 도 3을 참조하면, 시그널링 서버 (100) 의 처리부 (130) 는 제1 피어 (200) 로부터의 통화 요청에 응답하여 시그널링 서버 (100) 의 저장부 (120) 에 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장되어 있는지 여부를 확인한다. 즉, 이전에 제1 피어 (200) 가 시그널링 서버 (100) 에 접속한 이력이 있어 시그널링 서버 (100) 에 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장되어 있다면, 제1 피어 (200) 로부터 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 다시 수신할 필요가 없으므로, 처리부 (130) 는 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보의 저장 여부를 확인한다. 여기서, 제1 피어 (200) 의 가용 미디어 정보는 제1 피어 (200) 의 화면 해상도, 제1 피어 (200) 에 설치된 영상 코덱, 음성 코덱 등과 같이 음성 통화, 영상 통화 또는 데이터 교환을 위해 사전 파악이 필요한 제1 피어 (200) 의 오디오 정보 및 비디오 정보를 의미한다. 2 and 3, the
만약, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장된 경우, 시그널링 서버 (100) 는 제2 피어 (300) 로 제1 피어 (200) 의 가용 미디어 정보, 제1 피어 (200) 의 ICE 후보 및 통화 요청을 송신한다 (S320).If the available media information of the
제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 시그널링 서버 (100) 의 저장부 (120) 에 저장된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 와 제2 피어 (300) 의 통화 연결을 위해 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 다시 수신할 필요가 없다. 따라서, 시그널링 서버 (100) 의 처리부 (130) 는 제2 피어 (300) 에게 제1 피어 (200) 로부터의 통화 요청을 전달함과 동시에, 이미 시그널링 서버 (100) 에 저장된 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 함께 전달할 수 있다.When the available media information of the
이어서, 시그널링 서버 (100) 는 제2 피어 (300) 로부터 통화 수락을 수신한다 (S330). Then, the signaling
시그널링 서버 (100) 로부터 제1 피어 (200) 로부터의 통화 요청을 수신한 제2 피어 (300) 가 제1 피어 (200) 와의 통화 연결을 희망할 경우, 제2 피어 (300) 는 시그널링 서버 (100) 로 통화 수락을 송신하고, 시그널링 서버 (100) 는 통신부 (110) 를 통해 제2 피어 (300) 로부터 통화 수락을 수신할 수 있다.When the
이어서, 시그널링 서버 (100) 는 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보의 저장 여부를 확인한다 (S340).Then, the signaling
도 2 및 도 3을 참조하면, 시그널링 서버 (100) 의 처리부 (130) 는 제2 피어 (300) 로부터의 통화 수락에 응답하여 시그널링 서버 (100) 의 저장부 (120) 에 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장되어 있는지 여부를 확인한다. 즉, 이전에 제2 피어 (300) 가 시그널링 서버 (100) 에 접속한 이력이 있어 시그널링 서버 (100) 에 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장되어 있다면, 제2 피어 (300) 로부터 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 다시 수신할 필요가 없으므로, 처리부 (130) 는 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보의 저장 여부를 확인한다. 2 and 3, the
만약, 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로 제2 피어 (300) 의 가용 미디어 정보, 제2 피어 (300) 의 ICE 후보 및 통화 수락을 송신한다 (S350).If the available media information of the
제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 시그널링 서버 (100) 의 저장부 (120) 에 저장된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 와 제2 피어 (300) 의 통화 연결을 위해 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 다시 수신할 필요가 없다. 따라서, 시그널링 서버 (100) 의 처리부 (130) 는 제1 피어 (200) 에게 제2 피어 (300) 로부터의 통화 수락을 전달함과 동시에, 이미 시그널링 서버 (100) 에 저장된 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 함께 전달할 수 있다.When the available media information of the
이어서, 제1 피어 (200) 및 제2 피어 (300) 는 각각의 피어의 가용 미디어 정보 및 ICE 후보에 기초하여 통화한다 (S360).Next, the
종래의 WebRTC 서비스에서는 통신을 하려는 각각의 피어의 가용 미디어 정보 및 ICE 후보가 시그널링 서버 (100) 에 저장되어 있는지 여부와 무관하게, 통화 연결 시마다 각각의 피어의 가용 미디어 정보 및 ICE 후보가 시그널링 서버 (100) 에 전송되었다. 또한, 각각의 피어는 통화 연결 시도 시마다 자신의 ICE 후보들을 확보하고 해당 ICE 후보와 자신의 가용 미디어 정보를 전달하는 과정을 매번 수행하여야 하였다. 본 발명의 일 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 시그널링 서버 (100) 를 통해 통신을 하려는 제1 피어 (200) 및 제2 피어 (300) 각각의 가용 미디어 정보 및 ICE 후보가 시그널링 서버 (100) 에 이미 저장되어 있는지 여부를 확인한다. 즉, 시그널링 서버 (100) 는 최초 1회 통화 시 해당 피어의 가용 미디어 정보 및 ICE 후보를 저장할 수 있고, 해당 피어의 가용 미디어 정보 및 ICE 후보가 이미 시그널링 서버 (100) 에 저장된 경우, 시그널링 서버 (100) 는 각각의 피어로부터 가용 미디어 정보 및 ICE 후보를 수신함이 없이 이미 저장된 가용 미디어 정보 및 ICE 후보를 사용하여 통화 연결을 제공할 수 있다. 또한, 각각의 피어들은 자신의 ICE 후보들을 확보하고 해당 ICE 후보와 자신의 가용 미디어 정보를 반복적으로 시그널링 서버 (100) 에 송신할 필요가 없다. 따라서, 본 발명의 일 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 WebRTC 연결 시 주고받는 네트워크 정보 및 가용 미디어 정보를 시그널링 서버 (100) 쪽에서 저장하여 WebRTC 연결 시 중복되는 ICE 후보 생성을 방지하고, 각각의 피어 사이의 정보 교환을 최소화하여 보다 빠른 통화 연결이 가능할 수 있다.In the conventional WebRTC service, regardless of the available media information of each peer to communicate with and whether the ICE candidate is stored in the
또한, 일시적인 네트워크 장애 등으로 인해 피어들 사이의 통화 연결이 예기치 않게 종료되었을 경우, 각각의 피어는 시그널링 서버 (100) 로부터 전송받은 신뢰할 수 있는 ICE 후보를 통해 내부적으로 빠르게 재연결을 시도할 수 있다.In addition, if the call connection between the peers is unexpectedly terminated due to a temporary network failure or the like, each of the peers can quickly reconnect internally through the trusted ICE candidate received from the signaling
몇몇 실시예에서, 시그널링 서버 (100) 는 저장된 각각의 피어의 가용 미디어 정보 및 ICE 후보의 신뢰도를 판단할 수 있다. 시그널링 서버 (100) 의 처리부 (130) 가 저장부 (120) 에 저장된 각각의 피어의 가용 미디어 정보의 신뢰도를 판단하는 것은, 예를 들어, 가용 미디어 정보의 개수, 가용 미디어 정보의 최종 저장 시간 등에 기초하여 해당 피어의 가용 미디어 정보의 신뢰도를 판단하는 것을 포함한다. 또한, 시그널링 서버 (100) 의 처리부 (130) 가 저장부 (120) 에 저장된 각각의 피어의 ICE 후보를 판단하는 것은, 예를 들어, ICE 후보의 개수, ICE 후보의 최종 저장 시간 등에 기초하여 해당 피어의 ICE 후보의 신뢰도를 판단하는 것을 포함한다. In some embodiments, the signaling
이어서, 시그널링 서버 (100) 는 신뢰도에 기초하여 각각의 피어의 가용 미디어 정보 및 ICE 후보의 재수신을 결정할 수 있다. 예를 들어, 가용 미디어 정보의 개수 및 ICE 후보의 개수가 기준치보다 적은 경우 또는 가용 미디어 정보 및 ICE 후보의 최종 저장 시간이 기준 시간을 도과한 경우, 시그널링 서버 (100) 는 해당 피어에게 가용 미디어 정보 및 ICE 후보를 요청하여 가용 미디어 정보 및 ICE 후보를 재수신할 수도 있다.The signaling
도 4는 본 발명의 다른 실시예에 따른 시그널링 서버에서의 WebRTC 서비스 제공 방법을 설명하기 위한 흐름도이다. 설명의 편의를 위해 도 1 및 도 2를 함께 참조하여 설명한다.4 is a flowchart illustrating a method for providing a WebRTC service in a signaling server according to another embodiment of the present invention. For convenience of explanation, FIG. 1 and FIG. 2 will be described together.
먼저, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 제2 피어 (300) 에 대한 통화 요청을 수신하고 (S300), 시그널링 서버 (100) 는 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보의 저장 여부를 확인한다 (S310). 단계 S300 및 단계 S310은 도 3을 참조하여 설명된 단계 S300 및 단계 S310과 동일하므로 중복 설명을 생략한다.First, the signaling
만약, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장되지 않은 경우, 예를 들어, 제1 피어 (200) 가 시그널링 서버 (100) 에 최초로 접속한 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보에 대한 요청을 송신한다 (S311).For example, when the
제1 피어 (200) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, STUN/TURN 서버 (400) 로부터 제1 피어 (200) 의 ICE 후보를 수신하고 (S312), 제1 피어 (200) 의 ICE 후보를 시그널링 서버 (100) 로 발송하여 시그널링 서버 (100) 가 제1 피어 (200) 의 ICE 후보를 제1 피어 (200) 로부터 수신한다 (S313).The
또한, 제1 피어 (200) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, 제1 피어 (200) 의 가용 미디어 정보를 직접 시그널링 서버 (100) 로 발송하여, 시그널링 서버 (100) 가 제1 피어 (200) 의 가용 미디어 정보를 수신한다 (S313).The
시그널링 서버 (100) 는 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 저장한다. 구체적으로 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보는 저장부 (120) 에 저장될 수 있다. The signaling
몇몇 실시예에서, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 암호화하여 저장할 수 있다. 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보는 제1 피어 (200) 의 사용자의 개인 정보에 해당할 수 있으므로, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 암호화하여 저장하여 WebRTC 서비스를 이용하는 사용자들의 개인 정보가 보호될 수 있다.In some embodiments, the signaling
몇몇 실시예에서, 시그널링 서버 (100) 에 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보 중 하나만이 저장되어 있는 경우, 시그널링 서버 (100) 는 다른 하나에 대한 요청을 제1 피어 (200) 로 송신하고, 제1 피어 (200) 로부터 해당 정보를 수신할 수 있다.In some embodiments, if only one of the available media information of the
이어서, 시그널링 서버 (100) 는 제1 피어 (200) 의 가용 미디어 정보, 제1 피어 (200) 의 ICE 후보 및 통화 요청을 제2 피어 (300) 로 송신하고 (S320), 제2 피어 (300) 로부터 통화 수락을 수신하고 (S330), 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보의 저장 여부를 확인한다 (S340). 단계 S320, 단계 S330 및 단계 S340은 도 3을 참조하여 설명된 단계 S320, 단계 S330 및 단계 S340과 동일하므로 중복 설명을 생략한다.The signaling
만약, 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장되지 않은 경우, 시그널링 서버 (100) 는 제2 피어 (300) 로 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보에 대한 요청을 송신한다 (S341).If the available media information of the
제2 피어 (300) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, STUN/TURN 서버 (400) 로부터 제2 피어 (300) 의 ICE 후보를 수신하고 (S342), 제2 피어 (300) 의 ICE 후보를 시그널링 서버 (100) 로 발송하여 시그널링 서버 (100) 가 제2 피어 (300) 의 ICE 후보를 제2 피어 (300) 로부터 수신한다 (S343).The
또한, 제2 피어 (300) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, 제2 피어 (300) 의 가용 미디어 정보를 직접 시그널링 서버 (100) 로 발송하여, 시그널링 서버 (100) 가 제2 피어 (300) 의 가용 미디어 정보를 수신한다 (S343).The
시그널링 서버 (100) 는 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 저장한다. 구체적으로 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보는 저장부 (120) 에 저장될 수 있다. The signaling
몇몇 실시예에서, 시그널링 서버 (100) 는 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 암호화하여 저장할 수 있다. 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보는 제2 피어 (300) 의 사용자의 개인 정보에 해당할 수 있으므로, 시그널링 서버 (100) 는 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 암호화하여 저장하여 WebRTC 서비스를 이용하는 사용자들의 개인 정보가 보호될 수 있다.In some embodiments, the signaling
몇몇 실시예에서, 시그널링 서버 (100) 에 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보 중 하나만이 저장되어 있는 경우, 시그널링 서버 (100) 는 다른 하나에 대한 요청을 제2 피어 (300) 로 송신하고, 제2 피어 (300) 로부터 해당 정보를 수신할 수 있다.In some embodiments, if only one of the available media information of the
이어서, 시그널링 서버 (100) 는 제1 피어 (200) 로 제2 피어 (300) 의 가용 미디어 정보, 제2 피어 (300) 의 ICE 후보 및 통화 수락을 송신하고 (S350), 제1 피어 (200) 및 제2 피어 (300) 는 각각의 피어의 가용 미디어 정보 및 ICE 후보에 기초하여 통화한다 (S360). 단계 S350 및 단계 S360은 도 3을 참조하여 설명된 단계 S350 및 단계 S360과 동일하므로 중복 설명을 생략한다.The signaling
본 발명의 다른 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 시그널링 서버 (100) 를 통해 통신을 하려는 제1 피어 (200) 및 제2 피어 (300) 각각의 가용 미디어 정보 및 ICE 후보가 시그널링 서버 (100) 에 이미 저장되어 있는지 여부를 확인하고, 저장되어 있지 않은 경우에만 해당 피어에게 가용 미디어 정보 및 ICE 후보를 요청하므로, WebRTC 연결 시 중복되는 ICE 후보 생성을 방지하고, 각각의 피어 사이의 정보 교환을 최소화하여 보다 빠른 통화 연결이 가능할 수 있다.In the
도 5는 본 발명의 또 다른 실시예에 따른 시그널링 서버에서의 WebRTC 서비스 제공 방법을 설명하기 위한 흐름도이다. 설명의 편의를 위해 도 1 및 도 2를 함께 참조하여 설명한다. 설명의 편의를 위해 도 1 및 도 2를 함께 참조하여 설명한다.5 is a flowchart illustrating a method of providing a WebRTC service in a signaling server according to another embodiment of the present invention. For convenience of explanation, FIG. 1 and FIG. 2 will be described together. For convenience of explanation, FIG. 1 and FIG. 2 will be described together.
먼저, 제1 피어 (200) 의 가용 미디어 정보 또는 제1 피어 (200) 의 ICE 후보가 변경된다 (S500).First, the available media information of the
예를 들어, 제1 피어 (200) 의 화면 해상도, 제1 피어 (200) 에 설치된 영상 코덱, 음성 코덱 등과 같은 제1 피어 (200) 의 오디오 정보 및 제1 피어 (200) 의 비디오 정보가 임의의 시점에 변경될 수 있다. 이와 같이 제1 피어 (200) 의 오디오 정보 및 제1 피어 (200) 의 비디오 정보가 변경된 경우, 변경된 정보가 반영된 변경 가용 미디어 정보가 제1 피어 (200) 에서 생성된다. For example, the screen resolution of the
또한, 제1 피어 (200) 의 공용 IP 정보, 제1 피어 (200) 의 사설 네트워크 IP 정보 등과 같이 제1 피어 (200) 를 식별할 수 있는 네트워크 정보가 임의의 시점에 변경될 수 있다. 이와 같이 제1 피어 (200) 의 네트워크 정보가 변경된 경우, 변경된 정보가 반영된 변경 ICE 후보가 생성된다. Network information that can identify the
이어서, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 변경 가용 미디어 정보 또는 변경 ICE 후보를 수신한다 (S510).Then, the signaling
시그널링 서버 (100) 는 통신부 (110) 를 통해 제1 피어 (200) 로부터 변경 가용 미디어 정보 및 변경 ICE 후보 중 하나 이상을 수신한다. 즉, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보 둘 모두가 변경된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 변경 가용 미디어 정보 및 변경 ICE 후보 둘 모두를 수신하고, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보 중 하나만 변경된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 변경 가용 미디어 정보 또는 변경 ICE 후보를 수신한다.The signaling
제1 피어 (200) 는 변경 가용 미디어 정보 또는 변경 ICE 후보가 생성된 시점에 바로 시그널링 서버 (100) 로 변경 가용 미디어 정보 및 변경 ICE 후보를 송신할 수 있다. 또는, 제1 피어 (200) 는 제2 피어 (300) 에 대한 통화 요청 시에 변경 가용 미디어 정보 및 변경 ICE 후보를 시그널링 서버 (100) 로 송신하여 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 변경 ICE 후보가 변경되었음을 시그널링 서버 (100) 로 통지할 수 있다.The
이어서, 시그널링 서버 (100) 는 변경 가용 미디어 정보를 제1 피어 (200) 의 가용 미디어 정보로 저장하거나 변경 ICE 후보를 제1 피어 (200) 의 ICE 후보로 저장한다 (S520). 구체적으로, 시그널링 서버 (100) 는 변경 가용 미디어 정보를 제1 피어 (200) 로부터 수신한 경우 이미 저장되어 있는 제1 피어 (200) 의 가용 미디어 정보를 변경 가용 미디어 정보로 대체할 수 있고, 변경 ICE 후보를 수신한 경우 이미 저장되어 있는 제1 피어 (200) 의 ICE 후보를 변경 ICE 후보로 대체할 수 있다.Then, the signaling
도 5에서는 제1 피어 (200) 의 가용 미디어 정보 또는 제1 피어 (200) 의 ICE 후보가 변경된 경우를 가정하여 설명하였으나, 제2 피어 (300) 의 가용 미디어 정보 또는 제2 피어 (300) 의 ICE 후보가 변경된 경우에도 동일한 과정이 수행될 수 있다.5, it is assumed that the available media information of the
본 발명의 또 다른 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 제1 피어 (200) 의 가용 미디어 정보 또는 ICE 후보가 변경된 경우, 제1 피어 (200) 가 시그널링 서버 (100) 로 변경 가용 미디어 정보 또는 변경 ICE 후보를 송신하여 시그널링 서버 (100) 가 해당 정보들을 저장한다. 따라서, 시그널링 서버 (100) 는 항상 갱신된 최신의 가용 미디어 정보 및 ICE 후보를 저장할 수 있고, 이에 따라 일시적인 네트워크 장애 등으로 인해 피어들 사이의 통화 연결이 예기치 않게 종료되었을 경우, 각각의 피어는 시그널링 서버 (100) 로부터 전송받은 신뢰할 수 있는 ICE 후보를 통해 내부적으로 빠르게 재연결을 시도할 수 있다.In the
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, which is capable of reading information from, and writing information to, the storage medium. Alternatively, the storage medium may be integral with the processor. The processor and the storage medium may reside within an application specific integrated circuit (ASIC). The ASIC may reside within the user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
이상으로 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the present invention is not limited to the disclosed exemplary embodiments, but various changes and modifications may be made without departing from the spirit and scope of the invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the scope of the present invention but to limit the scope of the technical idea of the present invention. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
100: 시그널링 서버
110: 통신부
120: 저장부
130: 처리부
200: 제1 피어
300: 제2 피어
400: STUN/TURN 서버100: Signaling server
110:
120:
130:
200: first peer
300: second peer
400: STUN / TURN server
Claims (14)
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보 (ICE candidate) 의 저장 여부를 확인하는 단계; 및
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보가 저장된 경우,
상기 제2 피어로 상기 제1 피어의 가용 미디어 정보, 상기 제1 피어의 ICE 후보 및 통화 요청을 송신하는 단계;
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보의 신뢰도를 판단하는 단계; 및
상기 신뢰도에 기초하여 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보의 재수신 여부를 결정하는 단계를 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC (Web-Real Time Communication) 서비스 제공 방법.Receiving a call request for a second peer from a first peer;
Confirming whether the available media information of the first peer and the ICE candidate (ICE candidate) of the first peer are stored; And
When the available media information of the first peer and the ICE candidate of the first peer are stored,
Sending available media information of the first peer, the ICE candidate of the first peer, and a talk request to the second peer;
Determining the reliability of the available media information of the first peer and the ICE candidate of the first peer; And
And determining whether the available media information of the first peer and the ICE candidate of the first peer are to be re-received based on the reliability. The WebRTC (Web-Real Time Communication) service in the signaling server Delivery method.
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보가 저장되지 않은 경우,
상기 제1 피어로 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보에 대한 요청을 송신하는 단계;
상기 제1 피어로부터 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보를 수신하는 단계; 및
상기 제1 피어의 가용 미디어 정보, 상기 제1 피어의 ICE 후보 및 통화 요청을 상기 제2 피어로 송신하는 단계를 더 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
If the available media information of the first peer and the ICE candidate of the first peer are not stored,
Sending to the first peer available media information of the first peer and a request for an ICE candidate of the first peer;
Receiving available media information of the first peer and the ICE candidate of the first peer from the first peer; And
Further comprising transmitting to the second peer the available media information of the first peer, the ICE candidate of the first peer, and a call request to the second peer.
상기 제1 피어로부터 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보를 수신하는 단계는 수신된 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보를 저장하는 단계를 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.3. The method of claim 2,
Wherein receiving the available media information of the first peer and the ICE candidate of the first peer from the first peer comprises storing the available media information of the received first peer and the ICE candidate of the first peer Wherein the WebRTC service is provided by a signaling server.
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보를 저장하는 단계는 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보를 암호화하여 저장하는 단계를 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method of claim 3,
Wherein storing the available media information of the first peer and the ICE candidate of the first peer comprises encrypting and storing the available media information of the first peer and the ICE candidate of the first peer , A method for providing a WebRTC service in a signaling server.
상기 제1 피어의 가용 미디어 정보가 변경된 경우,
상기 제1 피어로부터 변경 가용 미디어 정보를 수신하는 단계; 및
상기 변경 가용 미디어 정보를 상기 제1 피어의 가용 미디어 정보로 저장하는 단계를 더 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
When the available media information of the first peer is changed,
Receiving changeable media information from the first peer; And
Further comprising storing the modified usable media information as available media information of the first peer. ≪ RTI ID = 0.0 > 31. < / RTI >
상기 제1 피어의 ICE 후보가 변경된 경우,
상기 제1 피어로부터 변경 ICE 후보를 수신하는 단계; 및
상기 변경 ICE 후보를 상기 제1 피어의 ICE 후보로 저장하는 단계를 더 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
If the ICE candidate of the first peer is changed,
Receiving a modified ICE candidate from the first peer; And
Further comprising storing the modified ICE candidate as an ICE candidate of the first peer. ≪ RTI ID = 0.0 > 11. < / RTI >
상기 제2 피어로부터 통화 수락을 수신하는 단계;
상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보의 저장 여부를 확인하는 단계; 및
상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보가 저장된 경우, 상기 제1 피어로 상기 제2 피어의 가용 미디어 정보, 상기 제2 피어의 ICE 후보 및 통화 수락을 송신하는 단계를 더 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
Receiving a call acceptance from the second peer;
Confirming whether the available media information of the second peer and the ICE candidate of the second peer are stored; And
If the available media information of the second peer and the ICE candidate of the second peer are stored, sending the available media information of the second peer, the ICE candidate of the second peer, and the call acceptance to the first peer Wherein the method comprises the steps of:
상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보가 저장되지 않은 경우,
상기 제2 피어로 상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보에 대한 요청을 송신하는 단계;
상기 제2 피어로부터 상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보를 수신하는 단계; 및
상기 제2 피어의 가용 미디어 정보, 상기 제2 피어의 ICE 후보 및 통화 수락을 상기 제1 피어로 송신하는 단계를 더 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.8. The method of claim 7,
If the available media information of the second peer and the ICE candidate of the second peer are not stored,
Transmitting to the second peer available media information of the second peer and a request for an ICE candidate of the second peer;
Receiving from the second peer available media information of the second peer and an ICE candidate of the second peer; And
Further comprising transmitting to the first peer available media information of the second peer, an ICE candidate of the second peer, and call acceptance to the first peer.
상기 제2 피어로부터 상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보를 수신하는 단계는 수신된 상기 제2 피어의 가용 미디어 정보 및 상기 제2 피어의 ICE 후보를 저장하는 단계를 포함하는 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법. 9. The method of claim 8,
Wherein receiving the available media information of the second peer and the ICE candidate of the second peer from the second peer comprises storing the available media information of the received second peer and the ICE candidate of the second peer Wherein the WebRTC service is provided by a signaling server.
상기 제1 피어의 가용 미디어 정보는 상기 제1 피어의 오디오 정보 및 상기 제1 피어의 비디오 정보인 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
Wherein the available media information of the first peer is audio information of the first peer and video information of the first peer.
상기 제1 피어의 ICE 후보는 상기 제1 피어의 하나 이상의 네트워크 정보인 것을 특징으로 하는, 시그널링 서버에서의 WebRTC 서비스 제공 방법.The method according to claim 1,
Wherein the ICE candidate of the first peer is one or more network information of the first peer.
저장부; 및
상기 통화 요청에 응답하여, 상기 저장부에 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보 (ICE candidate) 가 저장되었는지 여부를 확인하고, 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보가 상기 저장부에 저장된 경우, 상기 제2 피어로 상기 제1 피어의 가용 미디어 정보, 상기 제1 피어의 ICE 후보 및 통화 요청을 상기 통신부를 통해 송신하고, 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보의 신뢰도를 판단하고, 상기 신뢰도에 기초하여 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보의 재수신 여부를 결정하도록 구성된 처리부를 포함하는 것을 특징으로 하는, WebRTC (Web-Real Time Communication) 서비스 제공 시그널링 서버.A communication unit configured to receive a talk request for a second peer from a first peer;
A storage unit; And
And in response to the call request, checking whether the available media information of the first peer and the ICE candidate (ICE candidate) of the first peer are stored in the storage unit, The ICE candidate of the first peer and the talk request are transmitted through the communication unit when the ICE candidate of the first peer is stored in the storage unit, the available media information of the first peer, the ICE candidate of the first peer, And a processing unit configured to determine the reliability of the available media information and the ICE candidate of the first peer and to determine whether to re-receive the available media information of the first peer and the ICE candidate of the first peer based on the reliability (Web-Real Time Communication) service providing signaling server.
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보 (ICE candidate) 의 저장 여부를 확인하고,
상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보가 저장된 경우, 상기 제2 피어로 상기 제1 피어의 가용 미디어 정보, 상기 제1 피어의 ICE 후보 및 통화 요청을 송신하고, 상기 제1 피어의 가용 미디어 정보, 상기 제1 피어의 ICE 후보의 신뢰도를 판단하고, 상기 신뢰도에 기초하여 상기 제1 피어의 가용 미디어 정보 및 상기 제1 피어의 ICE 후보의 재수신 여부를 결정하게 하는 명령어들의 세트를 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 기록매체.Receiving a call request for a second peer from a first peer,
Checking whether the available media information of the first peer and the ICE candidate (ICE candidate) of the first peer are stored,
Transmitting the available media information of the first peer, the ICE candidate of the first peer, and a talk request to the second peer when the available media information of the first peer and the ICE candidate of the first peer are stored, Determining whether the available media information of the first peer, the reliability of the first peer's ICE candidate, and the reliability of the available media information of the first peer and the ICE candidate of the first peer, ≪ / RTI > of the computer readable medium.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140154313A KR101617760B1 (en) | 2014-11-07 | 2014-11-07 | SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140154313A KR101617760B1 (en) | 2014-11-07 | 2014-11-07 | SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101617760B1 true KR101617760B1 (en) | 2016-05-09 |
Family
ID=56020490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140154313A KR101617760B1 (en) | 2014-11-07 | 2014-11-07 | SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101617760B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109995734A (en) * | 2017-12-30 | 2019-07-09 | 中国科学院沈阳计算技术研究所有限公司 | A kind of communication means of the WebRTC based on Session Initiation Protocol |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100607930B1 (en) * | 1999-05-27 | 2006-08-03 | 삼성전자주식회사 | Connecting method for internet telephone and transfering method for packet data |
-
2014
- 2014-11-07 KR KR1020140154313A patent/KR101617760B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100607930B1 (en) * | 1999-05-27 | 2006-08-03 | 삼성전자주식회사 | Connecting method for internet telephone and transfering method for packet data |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109995734A (en) * | 2017-12-30 | 2019-07-09 | 中国科学院沈阳计算技术研究所有限公司 | A kind of communication means of the WebRTC based on Session Initiation Protocol |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10264051B2 (en) | Method and system for replicating a communication application on an auxiliary computing device | |
US8478893B2 (en) | Data transmission to offline recipient nodes in a distributed network | |
US10592695B1 (en) | Staggered secure data receipt | |
US20190281032A1 (en) | Dynamically Serving Digital Certificates Based on Secure Session Properties | |
US20170034149A1 (en) | Intelligent Communications Method, Terminal, and System | |
US9237134B2 (en) | Communicating in a peer-to-peer computer environment | |
US20130225080A1 (en) | System and method for information sharing using near proximity communication | |
US20130225081A1 (en) | System and method for information sharing using near proximity communication | |
KR102186114B1 (en) | Method, system, and medium for using dynamic public key infrastructure to transmit and receive encrypted messages | |
CN104980482A (en) | File transmitting method and device, file receiving method and device | |
US20170171166A1 (en) | Anti-hotlinking method and electronic device | |
CN112291364A (en) | Message pushing processing method and device | |
US10785025B1 (en) | Synchronization of key management services with cloud services | |
CN108564330B (en) | Information processing method and platform and computer readable medium | |
WO2016029854A1 (en) | Wireless network connection method, device and system | |
KR101617760B1 (en) | SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME | |
KR20100056934A (en) | System and method for transporting of contents using cache server | |
JP5961185B2 (en) | Real-time media optimization in remote sessions | |
JP2011186631A (en) | File transfer system and file transfer method | |
JP2005267520A (en) | Mutual certificate authentication system, and mutual certificate authentication method | |
CA3008936C (en) | Secure transmission of local private encoding data | |
JP3911697B2 (en) | Network connection device, network connection method, network connection program, and storage medium storing the program | |
CA2937922C (en) | Method and system for replicating a communication application on an auxiliary computing device | |
US20220377058A1 (en) | Secure communication between devices | |
KR102309044B1 (en) | Apparatus and method for establishing secure channel in message processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |