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 PDF

Info

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
Application number
KR1020140154313A
Other languages
Korean (ko)
Inventor
안치수
홍준표
Original Assignee
주식회사 인프라웨어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 인프라웨어 filed Critical 주식회사 인프라웨어
Priority to KR1020140154313A priority Critical patent/KR101617760B1/en
Application granted granted Critical
Publication of KR101617760B1 publication Critical patent/KR101617760B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols 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

Provided are a signaling server and a method for providing a web-real time communication (WebRTC) service in the signaling server. The method for providing a WebRTC service in a signaling server comprises the steps of: receiving a request for a call to a second peer from a first peer; confirming whether available media information of the first peer and an ICE candidate of the first peer have been stored; and, if the available media information of the first peer and the ICE candidate of the first peer have been stored, transmitting the available media information of the first peer, the ICE candidate of the first peer and the request for a call to the second peer.

Description

시그널링 서버 및 시그널링 서버에서의 WebRTC 서비스 제공 방법{SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME} Technical Field [0001] The present invention relates to a method for providing a WebRTC service in a signaling server and a signaling server,

본 발명은 시그널링 서버 및 시그널링 서버에서의 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 first peer 200 and the second peer 300 are WebRTC clients, which are devices capable of communicating with other peers using the WebRTC service. Specifically, the first peer 200 and the second peer 300 are applications implemented by the WebRTC protocol, and are devices that can use the WebRTC service through a web browser. The first and second peers 200 and 300 may be various electronic devices such as, for example, a desktop computer, a laptop computer, a mobile phone, a smart phone, a tablet PC, and the like. The first peer 200 and the second peer 300 can communicate with the signaling server 100 and the STUN / TURN server 400 using various communication methods. Although FIG. 1 illustrates the presence of two peers, the number of peers connected to one signaling server 100 and one STUN / TURN server 400 is not limited thereto.

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 server 400 provides ICE candidates to first peer 200 and second peer 300. When the first peer 200 and the second peer 300 request their own network information for a call connection, the STUN / TURN server 400 transmits the network information of the first peer 200 and the second peer 300, And may provide the ICE candidate to the first peer 200 and the second peer 300 in response to the request. The ICE candidate means one or more pieces of network information that can identify each peer, for example, public IP information, private network IP information, and the like.

시그널링 서버 (100) 는 WebRTC 서비스를 제1 피어 (200) 및 제2 피어 (300) 에게 제공하기 위한 서버이다. 시그널링 서버 (100) 는 통화를 하고자 하는 피어를 확인하고, 해당 피어에 통화 요청을 전송하며, 해당 피어로부터 통화 수락을 수신하여 양 피어 사이의 통화 연결을 제공한다. The signaling server 100 is a server for providing the WebRTC service to the first peer 200 and the second peer 300. The signaling server 100 acknowledges the peer to be called, sends a call request to the peer, receives a call accept from the peer, and provides a call connection between the two peers.

도 2를 참조하면, 시그널링 서버 (100) 는 통신부 (110), 저장부 (120) 및 처리부 (130) 를 포함한다. 시그널링 서버 (100) 의 통신부 (110), 저장부 (120) 및 처리부 (130) 의 기능에 대한 보다 상세한 설명을 위해 도 3을 함께 참조한다.Referring to FIG. 2, the signaling server 100 includes a communication unit 110, a storage unit 120, and a processing unit 130. 3 for a more detailed description of the functions of the communication unit 110, the storage unit 120, and the processing unit 130 of the signaling server 100. [

도 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 server 100 receives a call request for the second peer 300 from the first peer 200 (S300).

도 2 및 도 3을 참조하면, 시그널링 서버 (100) 는 통신부 (110) 를 통해 제1 피어 (200) 로부터 제2 피어 (300) 에 대한 통화 요청을 수신한다. 통신부 (110) 는 시그널링 서버 (100) 가 외부의 다른 장치들과 통신하기 위한 구성요소로서, 데이터를 송신하거나 수신할 수 있도록 구성된다. 통신는 다양한 통신 방식을 사용하여 제1 피어 (200) 또는 제2 피어 (300) 와 통신할 수 있다.2 and 3, the signaling server 100 receives a call request for the second peer 300 from the first peer 200 through the communication unit 110. The communication unit 110 is a component for the signaling server 100 to communicate with other external devices, and is configured to transmit or receive data. The communication may communicate with the first peer 200 or the second peer 300 using various communication schemes.

이어서, 시그널링 서버 (100) 는 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보의 저장 여부를 확인한다 (S310).Next, the signaling server 100 confirms whether the available media information of the first peer 200 and the ICE candidate of the first peer 200 are stored (S310).

도 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 processing unit 130 of the signaling server 100 may include a first peer 200 in the storage unit 120 of the signaling server 100 in response to a call request from the first peer 200, And the ICE candidate of the first peer 200 are stored. That is, since there is a history that the first peer 200 has previously connected to the signaling server 100, the available media information of the first peer 200 and the ICE candidate of the first peer 200 are stored in the signaling server 100 The processing unit 130 does not need to receive the available media information of the first peer 200 and the ICE candidate of the first peer 200 from the first peer 200, The available media information, and whether the ICE candidate of the first peer 200 is stored. The available media information of the first peer 200 may include information such as a screen resolution of the first peer 200, an image codec installed in the first peer 200, a voice codec, Quot; means audio information and video information of the first peer 200 that is required.

만약, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장된 경우, 시그널링 서버 (100) 는 제2 피어 (300) 로 제1 피어 (200) 의 가용 미디어 정보, 제1 피어 (200) 의 ICE 후보 및 통화 요청을 송신한다 (S320).If the available media information of the first peer 200 and the ICE candidate of the first peer 200 are stored, the signaling server 100 transmits the available media information of the first peer 200 to the second peer 300, And transmits an ICE candidate and a talk request of the first peer 200 (S320).

제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 first peer 200 and the ICE candidate of the first peer 200 are stored in the storage unit 120 of the signaling server 100, the signaling server 100 transmits the first peer 200, It is not necessary to receive again the available media information of the first peer 200 and the ICE candidate of the first peer 200 for the call connection of the second peer 300. Accordingly, the processing unit 130 of the signaling server 100 transmits a call request from the first peer 200 to the second peer 300, and at the same time, the first peer 200, which is already stored in the signaling server 100, Lt; RTI ID = 0.0 > ICE < / RTI >

이어서, 시그널링 서버 (100) 는 제2 피어 (300) 로부터 통화 수락을 수신한다 (S330). Then, the signaling server 100 receives the call acceptance from the second peer 300 (S330).

시그널링 서버 (100) 로부터 제1 피어 (200) 로부터의 통화 요청을 수신한 제2 피어 (300) 가 제1 피어 (200) 와의 통화 연결을 희망할 경우, 제2 피어 (300) 는 시그널링 서버 (100) 로 통화 수락을 송신하고, 시그널링 서버 (100) 는 통신부 (110) 를 통해 제2 피어 (300) 로부터 통화 수락을 수신할 수 있다.When the second peer 300 receiving the call request from the first peer 200 from the signaling server 100 desires to establish a call connection with the first peer 200, the second peer 300 transmits the call request to the signaling server 100 and the signaling server 100 may receive the call acceptance from the second peer 300 through the communication unit 110. [

이어서, 시그널링 서버 (100) 는 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보의 저장 여부를 확인한다 (S340).Then, the signaling server 100 confirms whether the available media information of the second peer 300 and the ICE candidate of the second peer 300 are stored (S340).

도 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 processing unit 130 of the signaling server 100 may send a second peer 300 (e.g., a packet) to the storage unit 120 of the signaling server 100 in response to a call acceptance from the second peer 300. [ And the ICE candidate of the second peer 300 are stored. That is, since there is a history that the second peer 300 has previously connected to the signaling server 100, the available media information of the second peer 300 and the ICE candidate of the second peer 300 are stored in the signaling server 100 The processing unit 130 does not need to receive the available media information of the second peer 300 and the ICE candidate of the second peer 300 from the second peer 300, The available media information and the ICE candidate of the second peer 300 are stored.

만약, 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장된 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로 제2 피어 (300) 의 가용 미디어 정보, 제2 피어 (300) 의 ICE 후보 및 통화 수락을 송신한다 (S350).If the available media information of the second peer 300 and the ICE candidate of the second peer 300 are stored, the signaling server 100 transmits the available media information of the second peer 300 to the first peer 200, And transmits the ICE candidate and the call acceptance of the second peer 300 (S350).

제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 second peer 300 and the ICE candidate of the second peer 300 are stored in the storage unit 120 of the signaling server 100, the signaling server 100 transmits the first peer 200 and the second peer 300, It is not necessary to again receive the available media information of the second peer 300 and the ICE candidate of the second peer 300 for the call connection of the second peer 300. Accordingly, the processing unit 130 of the signaling server 100 transmits the acceptance of the call from the second peer 300 to the first peer 200, and at the same time, the second peer 300 already stored in the signaling server 100, And the ICE candidate of the second peer 300 together.

이어서, 제1 피어 (200) 및 제2 피어 (300) 는 각각의 피어의 가용 미디어 정보 및 ICE 후보에 기초하여 통화한다 (S360).Next, the first peer 200 and the second peer 300 communicate based on the available media information and the ICE candidate of each peer (S360).

종래의 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 signaling server 100, the available media information of each peer and the ICE candidate are transmitted to the signaling server 100). In addition, each peer has to perform its own process of acquiring ICE candidates each time a call connection is attempted and transmitting the available media information to the ICE candidate. In the signaling server 100 and the signaling server 100 according to an embodiment of the present invention, the first and second peers 200 and 300 for communication through the signaling server 100 Lt; RTI ID = 0.0 > ICE < / RTI > candidate is already stored in the signaling server 100. That is, the signaling server 100 can store the available media information and the ICE candidate of the corresponding peer in the first one-time communication, and when the available media information of the peer and the ICE candidate are already stored in the signaling server 100, 100 may provide a call connection using ICE candidates and available media information already stored without receiving available media information and ICE candidates from each peer. In addition, each of the peers does not need to secure their ICE candidates and repeatedly send their ICE candidates and their available media information to the signaling server 100. Accordingly, in the signaling server 100 and the signaling server 100 according to the embodiment of the present invention, the network information and the available media information transmitted and received when the WebRTC is connected are stored in the signaling server 100, It is possible to prevent generation of ICE candidates and minimize the exchange of information between each peer, thereby enabling faster call connection.

또한, 일시적인 네트워크 장애 등으로 인해 피어들 사이의 통화 연결이 예기치 않게 종료되었을 경우, 각각의 피어는 시그널링 서버 (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 server 100 .

몇몇 실시예에서, 시그널링 서버 (100) 는 저장된 각각의 피어의 가용 미디어 정보 및 ICE 후보의 신뢰도를 판단할 수 있다. 시그널링 서버 (100) 의 처리부 (130) 가 저장부 (120) 에 저장된 각각의 피어의 가용 미디어 정보의 신뢰도를 판단하는 것은, 예를 들어, 가용 미디어 정보의 개수, 가용 미디어 정보의 최종 저장 시간 등에 기초하여 해당 피어의 가용 미디어 정보의 신뢰도를 판단하는 것을 포함한다. 또한, 시그널링 서버 (100) 의 처리부 (130) 가 저장부 (120) 에 저장된 각각의 피어의 ICE 후보를 판단하는 것은, 예를 들어, ICE 후보의 개수, ICE 후보의 최종 저장 시간 등에 기초하여 해당 피어의 ICE 후보의 신뢰도를 판단하는 것을 포함한다. In some embodiments, the signaling server 100 may determine the reliability of the ICE candidate and the available media information of each stored peer. The determination of the reliability of the available media information of each peer stored in the storage unit 120 by the processing unit 130 of the signaling server 100 may be based on, for example, the number of available media information, And determining the reliability of the available media information of the peer based on the reliability of the available media information. It is also possible for the processing unit 130 of the signaling server 100 to determine the ICE candidate of each of the peers stored in the storage unit 120 based on the number of ICE candidates, And determining the reliability of the peer's ICE candidate.

이어서, 시그널링 서버 (100) 는 신뢰도에 기초하여 각각의 피어의 가용 미디어 정보 및 ICE 후보의 재수신을 결정할 수 있다. 예를 들어, 가용 미디어 정보의 개수 및 ICE 후보의 개수가 기준치보다 적은 경우 또는 가용 미디어 정보 및 ICE 후보의 최종 저장 시간이 기준 시간을 도과한 경우, 시그널링 서버 (100) 는 해당 피어에게 가용 미디어 정보 및 ICE 후보를 요청하여 가용 미디어 정보 및 ICE 후보를 재수신할 수도 있다.The signaling server 100 may then determine the availability of the available media information and the ICE candidate for each peer based on the trustworthiness. For example, if the number of available media information and the number of ICE candidates is less than the reference value, or if the available media information and the final storage time of the ICE candidate have passed the reference time, the signaling server 100 informs the peer of the available media information And request ICE candidates to re-receive available media information and ICE candidates.

도 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 server 100 receives a call request for the second peer 300 from the first peer 200 (S300), and the signaling server 100 transmits the available media information of the first peer 200, It is confirmed whether the ICE candidate of the first peer 200 is stored (S310). Step S300 and step S310 are the same as step S300 and step S310 described with reference to FIG. 3, and redundant description will be omitted.

만약, 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보가 저장되지 않은 경우, 예를 들어, 제1 피어 (200) 가 시그널링 서버 (100) 에 최초로 접속한 경우, 시그널링 서버 (100) 는 제1 피어 (200) 로 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보에 대한 요청을 송신한다 (S311).For example, when the first peer 200 first accesses the signaling server 100, if the available media information of the first peer 200 and the ICE candidate of the first peer 200 are not stored, The signaling server 100 transmits the request for the available media information of the first peer 200 and the ICE candidate of the first peer 200 to the first peer 200 at step S311.

제1 피어 (200) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, STUN/TURN 서버 (400) 로부터 제1 피어 (200) 의 ICE 후보를 수신하고 (S312), 제1 피어 (200) 의 ICE 후보를 시그널링 서버 (100) 로 발송하여 시그널링 서버 (100) 가 제1 피어 (200) 의 ICE 후보를 제1 피어 (200) 로부터 수신한다 (S313).The first peer 200 receives the ICE candidate of the first peer 200 from the STUN / TURN server 400 in response to the request from the signaling server 100 (S312) ICE candidate to the signaling server 100 and the signaling server 100 receives the ICE candidate of the first peer 200 from the first peer 200 (S313).

또한, 제1 피어 (200) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, 제1 피어 (200) 의 가용 미디어 정보를 직접 시그널링 서버 (100) 로 발송하여, 시그널링 서버 (100) 가 제1 피어 (200) 의 가용 미디어 정보를 수신한다 (S313).The first peer 200 may also send the available media information of the first peer 200 directly to the signaling server 100 in response to a request from the signaling server 100 to allow the signaling server 100 to send the first The available media information of the peer 200 is received (S313).

시그널링 서버 (100) 는 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보를 저장한다. 구체적으로 제1 피어 (200) 로부터 수신한 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보는 저장부 (120) 에 저장될 수 있다. The signaling server 100 stores the available media information of the first peer 200 received from the first peer 200 and the ICE candidate of the first peer 200. The available media information of the first peer 200 received from the first peer 200 and the ICE candidate of the first peer 200 may be stored in the storage unit 120. [

몇몇 실시예에서, 시그널링 서버 (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 server 100 may encrypt and store the available media information of the first peer 200 received from the first peer 200 and the ICE candidate of the first peer 200. Since the available media information of the first peer 200 and the ICE candidate of the first peer 200 may correspond to the personal information of the user of the first peer 200, The private media information of the first peer 200 received from the first peer 200 and the ICE candidate of the first peer 200 are encrypted and stored to protect personal information of users using the WebRTC service.

몇몇 실시예에서, 시그널링 서버 (100) 에 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 ICE 후보 중 하나만이 저장되어 있는 경우, 시그널링 서버 (100) 는 다른 하나에 대한 요청을 제1 피어 (200) 로 송신하고, 제1 피어 (200) 로부터 해당 정보를 수신할 수 있다.In some embodiments, if only one of the available media information of the first peer 200 and the ICE candidate of the first peer 200 is stored in the signaling server 100, the signaling server 100 sends a request To the first peer (200) and receive the information from the first peer (200).

이어서, 시그널링 서버 (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 server 100 then transmits the available media information of the first peer 200, the ICE candidate of the first peer 200 and the talk request to the second peer 300 (S320), and the second peer 300 (S330), and checks whether the available media information of the second peer 300 and the ICE candidate of the second peer 300 are stored (S340). Step S320, step S330, and step S340 are the same as steps S320, S330, and S340 described with reference to FIG. 3, and redundant description will be omitted.

만약, 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보가 저장되지 않은 경우, 시그널링 서버 (100) 는 제2 피어 (300) 로 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보에 대한 요청을 송신한다 (S341).If the available media information of the second peer 300 and the ICE candidate of the second peer 300 are not stored, the signaling server 100 sends the second peer 300 the available media of the second peer 300, Information and a request for an ICE candidate of the second peer 300 (S341).

제2 피어 (300) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, STUN/TURN 서버 (400) 로부터 제2 피어 (300) 의 ICE 후보를 수신하고 (S342), 제2 피어 (300) 의 ICE 후보를 시그널링 서버 (100) 로 발송하여 시그널링 서버 (100) 가 제2 피어 (300) 의 ICE 후보를 제2 피어 (300) 로부터 수신한다 (S343).The second peer 300 receives the ICE candidate of the second peer 300 from the STUN / TURN server 400 in response to the request from the signaling server 100 (S342) The signaling server 100 sends the ICE candidate to the signaling server 100 and receives the ICE candidate of the second peer 300 from the second peer 300 (S343).

또한, 제2 피어 (300) 는 시그널링 서버 (100) 로부터의 요청에 응답하여, 제2 피어 (300) 의 가용 미디어 정보를 직접 시그널링 서버 (100) 로 발송하여, 시그널링 서버 (100) 가 제2 피어 (300) 의 가용 미디어 정보를 수신한다 (S343).The second peer 300 may also send the available media information of the second peer 300 directly to the signaling server 100 in response to a request from the signaling server 100 to allow the signaling server 100 to send the second The available media information of the peer 300 is received (S343).

시그널링 서버 (100) 는 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보를 저장한다. 구체적으로 제2 피어 (300) 로부터 수신한 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보는 저장부 (120) 에 저장될 수 있다. The signaling server 100 stores the available media information of the second peer 300 received from the second peer 300 and the ICE candidate of the second peer 300. [ Specifically, the available media information of the second peer 300 received from the second peer 300 and the ICE candidate of the second peer 300 may be stored in the storage unit 120.

몇몇 실시예에서, 시그널링 서버 (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 server 100 may encrypt and store the available media information of the second peer 300 received from the second peer 300 and the ICE candidate of the second peer 300. Since the available media information of the second peer 300 and the ICE candidate of the second peer 300 may correspond to the personal information of the user of the second peer 300, The private media information of the second peer 300 and the ICE candidate of the second peer 300 are encrypted and stored so that the personal information of users using the WebRTC service can be protected.

몇몇 실시예에서, 시그널링 서버 (100) 에 제2 피어 (300) 의 가용 미디어 정보 및 제2 피어 (300) 의 ICE 후보 중 하나만이 저장되어 있는 경우, 시그널링 서버 (100) 는 다른 하나에 대한 요청을 제2 피어 (300) 로 송신하고, 제2 피어 (300) 로부터 해당 정보를 수신할 수 있다.In some embodiments, if only one of the available media information of the second peer 300 and the ICE candidate of the second peer 300 is stored in the signaling server 100, the signaling server 100 sends a request To the second peer (300) and receive the information from the second peer (300).

이어서, 시그널링 서버 (100) 는 제1 피어 (200) 로 제2 피어 (300) 의 가용 미디어 정보, 제2 피어 (300) 의 ICE 후보 및 통화 수락을 송신하고 (S350), 제1 피어 (200) 및 제2 피어 (300) 는 각각의 피어의 가용 미디어 정보 및 ICE 후보에 기초하여 통화한다 (S360). 단계 S350 및 단계 S360은 도 3을 참조하여 설명된 단계 S350 및 단계 S360과 동일하므로 중복 설명을 생략한다.The signaling server 100 then transmits the available media information of the second peer 300 to the first peer 200, the ICE candidate and the call acceptance of the second peer 300 (S350), and the first peer 200 And the second peer 300 communicate based on the available media information of each peer and the ICE candidate (S360). Step S350 and step S360 are the same as step S350 and step S360 described with reference to FIG. 3, and redundant description will be omitted.

본 발명의 다른 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 시그널링 서버 (100) 를 통해 통신을 하려는 제1 피어 (200) 및 제2 피어 (300) 각각의 가용 미디어 정보 및 ICE 후보가 시그널링 서버 (100) 에 이미 저장되어 있는지 여부를 확인하고, 저장되어 있지 않은 경우에만 해당 피어에게 가용 미디어 정보 및 ICE 후보를 요청하므로, WebRTC 연결 시 중복되는 ICE 후보 생성을 방지하고, 각각의 피어 사이의 정보 교환을 최소화하여 보다 빠른 통화 연결이 가능할 수 있다.In the signaling server 100 and the signaling server 100 according to another embodiment of the present invention, the first and second peers 200 and 300, which are to communicate through the signaling server 100, It is determined whether the available media information and the ICE candidate are already stored in the signaling server 100. If the ICE candidate is not stored in the signaling server 100, the available media information and the ICE candidate are requested to the corresponding peer only. And minimizes the exchange of information between each peer, thereby enabling faster call connection.

도 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 first peer 200 or the ICE candidate of the first peer 200 is changed (S500).

예를 들어, 제1 피어 (200) 의 화면 해상도, 제1 피어 (200) 에 설치된 영상 코덱, 음성 코덱 등과 같은 제1 피어 (200) 의 오디오 정보 및 제1 피어 (200) 의 비디오 정보가 임의의 시점에 변경될 수 있다. 이와 같이 제1 피어 (200) 의 오디오 정보 및 제1 피어 (200) 의 비디오 정보가 변경된 경우, 변경된 정보가 반영된 변경 가용 미디어 정보가 제1 피어 (200) 에서 생성된다. For example, the screen resolution of the first peer 200, the audio information of the first peer 200 such as the video codec and the audio codec installed in the first peer 200, and the video information of the first peer 200 are arbitrary As shown in FIG. When the audio information of the first peer 200 and the video information of the first peer 200 are changed, modified media information reflecting the changed information is generated in the first peer 200.

또한, 제1 피어 (200) 의 공용 IP 정보, 제1 피어 (200) 의 사설 네트워크 IP 정보 등과 같이 제1 피어 (200) 를 식별할 수 있는 네트워크 정보가 임의의 시점에 변경될 수 있다. 이와 같이 제1 피어 (200) 의 네트워크 정보가 변경된 경우, 변경된 정보가 반영된 변경 ICE 후보가 생성된다. Network information that can identify the first peer 200, such as public IP information of the first peer 200, private network IP information of the first peer 200, etc., can be changed at any time. In this way, when the network information of the first peer 200 is changed, the changed ICE candidate reflecting the changed information is generated.

이어서, 시그널링 서버 (100) 는 제1 피어 (200) 로부터 변경 가용 미디어 정보 또는 변경 ICE 후보를 수신한다 (S510).Then, the signaling server 100 receives the changeable media information or the changed ICE candidate from the first peer 200 (S510).

시그널링 서버 (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 server 100 receives at least one of the changeable media information and the changed ICE candidate from the first peer 200 through the communication unit 110. [ That is, when both the available media information of the first peer 200 and the ICE candidates of the first peer 200 are changed, the signaling server 100 receives the changeable media information and the changed ICE candidates from the first peer 200 If only one of the available media information of the first peer 200 and the ICE candidate of the first peer 200 is changed, the signaling server 100 receives the changeable media information from the first peer 200 or the modified ICE And receives a candidate.

제1 피어 (200) 는 변경 가용 미디어 정보 또는 변경 ICE 후보가 생성된 시점에 바로 시그널링 서버 (100) 로 변경 가용 미디어 정보 및 변경 ICE 후보를 송신할 수 있다. 또는, 제1 피어 (200) 는 제2 피어 (300) 에 대한 통화 요청 시에 변경 가용 미디어 정보 및 변경 ICE 후보를 시그널링 서버 (100) 로 송신하여 제1 피어 (200) 의 가용 미디어 정보 및 제1 피어 (200) 의 변경 ICE 후보가 변경되었음을 시그널링 서버 (100) 로 통지할 수 있다.The first peer 200 can transmit the changeable media information and the changed ICE candidate to the signaling server 100 immediately when the changeable media information or the changed ICE candidate is generated. Alternatively, the first peer 200 may transmit the changeable media information and the modified ICE candidate to the signaling server 100 at the time of the call request for the second peer 300, 1 peer 200 can be notified to the signaling server 100 that the change ICE candidate has been changed.

이어서, 시그널링 서버 (100) 는 변경 가용 미디어 정보를 제1 피어 (200) 의 가용 미디어 정보로 저장하거나 변경 ICE 후보를 제1 피어 (200) 의 ICE 후보로 저장한다 (S520). 구체적으로, 시그널링 서버 (100) 는 변경 가용 미디어 정보를 제1 피어 (200) 로부터 수신한 경우 이미 저장되어 있는 제1 피어 (200) 의 가용 미디어 정보를 변경 가용 미디어 정보로 대체할 수 있고, 변경 ICE 후보를 수신한 경우 이미 저장되어 있는 제1 피어 (200) 의 ICE 후보를 변경 ICE 후보로 대체할 수 있다.Then, the signaling server 100 stores the changed available media information as available media information of the first peer 200 or stores the modified ICE candidate as an ICE candidate of the first peer 200 (S520). In detail, when the signaling server 100 receives the changeable media information from the first peer 200, the signaling server 100 can replace the already-stored available media information of the first peer 200 with the changeable media information, When receiving the ICE candidate, the ICE candidate of the first peer 200 already stored can be replaced with the changed ICE candidate.

도 5에서는 제1 피어 (200) 의 가용 미디어 정보 또는 제1 피어 (200) 의 ICE 후보가 변경된 경우를 가정하여 설명하였으나, 제2 피어 (300) 의 가용 미디어 정보 또는 제2 피어 (300) 의 ICE 후보가 변경된 경우에도 동일한 과정이 수행될 수 있다.5, it is assumed that the available media information of the first peer 200 or the ICE candidate of the first peer 200 is changed. However, the available media information of the second peer 300, The same process can be performed even if the ICE candidate is changed.

본 발명의 또 다른 실시예에 따른 시그널링 서버 (100) 및 시그널링 서버 (100) 에서의 WebRTC 서비스 제공 방법에서는 제1 피어 (200) 의 가용 미디어 정보 또는 ICE 후보가 변경된 경우, 제1 피어 (200) 가 시그널링 서버 (100) 로 변경 가용 미디어 정보 또는 변경 ICE 후보를 송신하여 시그널링 서버 (100) 가 해당 정보들을 저장한다. 따라서, 시그널링 서버 (100) 는 항상 갱신된 최신의 가용 미디어 정보 및 ICE 후보를 저장할 수 있고, 이에 따라 일시적인 네트워크 장애 등으로 인해 피어들 사이의 통화 연결이 예기치 않게 종료되었을 경우, 각각의 피어는 시그널링 서버 (100) 로부터 전송받은 신뢰할 수 있는 ICE 후보를 통해 내부적으로 빠르게 재연결을 시도할 수 있다.In the signaling server 100 and the signaling server 100 according to another embodiment of the present invention, when the available media information or ICE candidate of the first peer 200 is changed, the first peer 200, The signaling server 100 transmits the changeable media information or the changed ICE candidate to the signaling server 100, and the signaling server 100 stores the information. Thus, the signaling server 100 can always store updated up-to-date available media information and ICE candidates, and if a call connection between peers ends unexpectedly due to a temporary network failure, etc., It can quickly reconnect internally through the trusted ICE candidate received from the server 100. [

본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 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 피어 (peer) 로부터 제2 피어에 대한 통화 요청을 수신하는 단계;
상기 제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 피어의 가용 미디어 정보 및 상기 제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.
제2항에 있어서,
상기 제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.
제3항에 있어서,
상기 제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 피어로부터 변경 가용 미디어 정보를 수신하는 단계; 및
상기 변경 가용 미디어 정보를 상기 제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항에 있어서,
상기 제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 >
제1항에 있어서,
상기 제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:
제7항에 있어서,
상기 제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.
제8항에 있어서,
상기 제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.
삭제delete 제1항에 있어서,
상기 제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항에 있어서,
상기 제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 피어 (peer) 로부터 제2 피어에 대한 통화 요청을 수신하도록 구성된 통신부;
저장부; 및
상기 통화 요청에 응답하여, 상기 저장부에 상기 제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 피어 (peer) 로부터 제2 피어에 대한 통화 요청을 수신하고,
상기 제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.
KR1020140154313A 2014-11-07 2014-11-07 SIGNALING SERVER AND METHOD OF PROVIDING WebRTC SERVICE AT THE SAME KR101617760B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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