KR20210142912A - 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법 - Google Patents

웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법 Download PDF

Info

Publication number
KR20210142912A
KR20210142912A KR1020200059679A KR20200059679A KR20210142912A KR 20210142912 A KR20210142912 A KR 20210142912A KR 1020200059679 A KR1020200059679 A KR 1020200059679A KR 20200059679 A KR20200059679 A KR 20200059679A KR 20210142912 A KR20210142912 A KR 20210142912A
Authority
KR
South Korea
Prior art keywords
media server
user terminal
group call
media
terminal
Prior art date
Application number
KR1020200059679A
Other languages
English (en)
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 KR1020200059679A priority Critical patent/KR20210142912A/ko
Publication of KR20210142912A publication Critical patent/KR20210142912A/ko

Links

Images

Classifications

    • 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/10Architectures or entities
    • H04L65/1046Call controllers; Call servers
    • H04L61/2069
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5069Address allocation for group communication, multicast communication or broadcast communication
    • 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
    • H04L65/1083In-session procedures
    • 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
    • H04L65/1101Session protocols
    • H04L65/1108Web based protocols, e.g. webRTC
    • 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/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • H04L65/608
    • 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]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • 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/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/56Arrangements for connecting several subscribers to a common circuit, i.e. affording conference facilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

미디어 서버 선정 시스템이, 웹 기반 그룹 통화에 참여하는 복수의 사용자 단말들에 다자간 그룹 통화 서비스를 제공하는 미디어 서버를 선정하는 방법으로서, IP 대역별로 적어도 하나의 미디어 서버를 매핑하고, 웹 브라우저로 로그인하는 복수의 사용자 단말들 각각의 IP 주소와 단말 식별자를 단말 로그인 정보로 저장한다. 복수의 사용자 단말 중 발신 사용자 단말로부터 발신 사용자 단말의 식별자 및 착신 사용자 단말들의 식별자들을 포함하는 그룹 통화를 요청 받으면, 단말 로그인 정보와 요청에 포함된 단말 식별자들을 기초로, 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들을 확인하고, 확인한 IP 대역들 각각에서 접속한 사용자 단말 수를 기초로 특정 IP 대역을 결정하고, 특정 IP 대역에 매핑된 미디어 서버를 그룹 통화를 제공하는 미디어 서버로 선택한다.

Description

웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법{Media server selection system and method for providing web-based group call low latency service}
본 발명은 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법에 관한 것이다.
1:1 또는 다자간 통신을 하는 기술은 전통적인 PSTN(Public Switch Telecommunication Network)을 시작으로, IP(Internet Protocol) 기술을 이용한 SIP(Session Initiation Protocol) 및 Web 기술을 이용한 Web RTC(Realtime Telecommunication Protocol)로 진화되어 왔다.
Web RTC는 웹에서 별도의 플러그인 없이 실시간 통신을 위한 공개 API로, 국제 표준화 기구인 월드 와이드 웹 컨소시엄(W3C)에서 제정하였다. 최근 Web RTC 표준이 완성되면서, 이를 이용하여 음성, 영상, 데이터를 실시간으로 전송하고 Web RTC를 통해 통화하는 응용 사례들이 출현하고 있다. 이는 웹 환경이 제공되는 모바일 폰, PC 등에 별도의 앱을 설치하지 않고도 서비스를 이용할 수 있다는 장점으로 인해, 영상 상담, 콜센터, 화상회의 등의 응용 사례들이 급증하고 있다.
WebRTC는 기본적으로 P2P 프로토콜이다. 1:1 통신의 경우 중간에 서버를 경유할 필요가 없이 직접 피어(Peer) 간 연결을 통해 통신하면 된다. 그러나, 1:N 통신의 경우 피어들 간에 그물망(Mesh) 형태로 트래픽이 발생되므로, 피어 간 트래픽을 효율적으로 전송하기 위한 방법이 강구되어야 한다.
따라서, P2P의 한쪽 피어에 미디어 서버(Media Server)를 둔다. 미디어 서버는 자신으로 유입되는 트래픽을 믹싱(Mixing)하여 내보내는 MCU(Multipoint Control Unit) 방식과, 믹싱하지 않고 트래픽을 선별적으로 배분해서 보내주는 SFU(Selective Forwarding Unit) 방식 중 하나가 이용된다. 이 두 방식은 각각 소요되는 트래픽과 세션 개수에 있어 차별점이 있는데, MCU 방식은 네트워크 대역폭을 최소로 사용하는 장점이 있다.
최근 유튜브나 1인 방송이 인기를 끌며, 대용량의 동영상 트래픽이 인터넷을 통해 유입되고 있다. 따라서, 대용량 동영상 트래픽이 유입되는 동일한 루트로 인터넷을 이용하는 웹 RTC 기반의 영상통화 미디어 서비스는 실시간성이 보장되기 어렵다. 그러므로 네트워크 트래픽에 영향을 덜 받거나 서비스 품질을 높일 수 있도록, 서버를 분산하거나 서버를 제어하는 방안 모색이 요구된다.
따라서, 본 발명은 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법을 제공한다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 하나의 특징인 미디어 서버 선정 시스템이, 웹 기반 그룹 통화에 참여하는 복수의 사용자 단말들에 다자간 그룹 통화 서비스를 제공하는 미디어 서버를 선정하는 방법으로서,
IP 대역별로 적어도 하나의 미디어 서버를 매핑하는 단계, 웹 브라우저로 로그인하는 복수의 사용자 단말들 각각의 IP 주소와 단말 식별자를 단말 로그인 정보로 저장하는 단계, 상기 복수의 사용자 단말 중 발신 사용자 단말로부터, 상기 발신 사용자 단말의 식별자 및 착신 사용자 단말들의 식별자들을 포함하는 그룹 통화를 요청받는 단계, 그리고 상기 단말 로그인 정보와 상기 요청에 포함된 단말 식별자들을 기초로, 상기 발신 사용자 단말과 상기 착신 사용자 단말들이 접속한 IP 대역들을 확인하고, 확인한 IP 대역들 각각에서 접속한 사용자 단말 수를 기초로 특정 IP 대역을 결정하고, 상기 특정 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계를 포함한다.
상기 대상 미디어 서버를 선정하는 단계는, 상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들을 확인하는 단계, 그리고 가장 많은 사용자 단말들이 접속한 IP 대역이 있으면, 해당 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계를 포함할 수 있다.
상기 IP 대역들을 확인하는 단계 이후에, 상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들의 수가 동일하면, 상기 IP 대역별로 매핑되어 있는 미디어 서버들의 위치를 토대로 각 미디어 서버에 할당된 벡터 주소의 합을 계산하는 단계, 그리고 벡터 주소의 합이 0이 되면, 복수의 미디어 서버 중 미리 설정된 특정 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는 단계를 포함할 수 있다.
상기 벡터 주소의 합이 0이 아니면, 상기 발신 사용자 단말과 착신 사용자 단말들의 IP 대역들에 각각 매핑된 미디어 서버들로부터 서버 세션 수와 각 미디어 서버들의 CPU 부하량을 수신하는 단계, 그리고 상기 서버 세션 수와 CPU 부하량을 토대로, 어느 하나의 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는 단계를 포함할 수 있다.
CPU 부하량이 가장 적은 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정할 수 있다.
각 미디어 서버들의 CPU 부하량들의 차가 미리 설정한 임계값 이하이면, 세션 수가 가장 적은 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정할 수 있다.
상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계는, 상기 발신 사용자 단말과 착신 사용자 단말들이 신호를 전송할 채널을 생성하는 단계, 그리고 상기 발신 사용자 단말과 착신 사용자 단말들이 상기 미디어 서버로 접속할 접속 URL을 생성하는 단계를 더 포함할 수 있다.
상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계 이후에, 상기 미디어 서버로 상기 생성한 채널의 채널 식별자, 접속 URL, 그리고 상기 발신 사용자 단말과 착신 사용자 단말들의 단말 정보를 포함하여, 리소스 할당을 요청하는 단계를 포함할 수 있다.
상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계 이후에, 상기 그룹 통화에 참여한 어느 하나의 사용자 단말로부터, 상기 채널을 통해 단말 식별자와 채널 식별자를 포함한 통화 종료 알림 신호 또는 신규 단말 추가 요청 신호를 수신하는 단계, 상기 채널 식별자에 대응하여 저장한 단말 접속 정보를 갱신하는 단계, 그리고 갱신한 단말 접속 정보를 토대로 상기 그룹 통화를 제공하는 미디어 서버의 재선정 여부를 결정하는 단계를 포함할 수 있다.
상기 본 발명의 기술적 과제를 달성하기 위한 본 발명의 또 다른 특징인 웹 기반 그룹 통화에 참여하는 복수의 사용자 단말들에 다자간 그룹 통화 서비스를 제공하는 미디어 서버를 선정하는 미디어 서버 선정 시스템으로서,
복수의 미디어 서버별로 각각 매핑된 IP 대역 리스트를 관리하는 메모리, 그리고 프로세서를 포함하고, 상기 프로세서는, 웹 브라우저로 로그인한 발신 사용자 단말로부터 착신 사용자 단말들의 식별자를 포함하는 그룹 통화를 요청 받고, 상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들을 확인하고, 확인한 IP 대역들 각각에서 접속한 사용자 단말 수를 기초로 특정 IP 대역을 결정하고, 상기 특정 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택한다.
상기 프로세서는, 가장 많은 사용자 단말들이 접속한 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택할 수 있다.
상기 프로세서는, 상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들의 수가 동일하면, 상기 IP 대역별로 매핑되어 있는 미디어 서버들의 위치를 토대로 각 미디어 서버에 할당된 벡터 주소를 토대로, 미리 설정된 특정 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택할 수 있다.
상기 프로세서는, 상기 발신 사용자 단말과 착신 사용자 단말들의 IP 대역들에 각각 매핑된 미디어 서버들로부터 서버 세션 수와 각 미디어 서버들의 CPU 부하량을 토대로, 복수의 미디어 서버들 중 어느 하나를 상기 그룹 통화를 제공하는 미디어 서버로 선택할 수 있다.
상기 프로세서는, 상기 발신 사용자 단말과 착신 사용자 단말들이 신호를 전송할 채널을 생성하고, 상기 발신 사용자 단말과 착신 사용자 단말들이 웹 기반 그룹 통화 서비스를 이용하도록 상기 미디어 서버로 접속할 접속 URL을 생성할 수 있다.
본 발명에 따르면, 동일한 웹 환경을 이용하는 다수의 영상 미디어와 함께 전송되는 통화 미디어를 제어하는 서버들을 분산하여 제공하고, 각각의 단말들이 근거리 서버에서 웹 RTC 서비스를 이용할 수 있도록 제어함으로써, 실시간 저지연 보장이 가능하다.
또한, 1:1 통화 중 다른 사용자의 초대, 1:N 통화 중 종료 등 통화 상황이 변경할 경우 이를 분석하고, 변경된 통화 상황에서 단말들에 적절한 미디어 서버로 재 연결하도록 제어함으로써, 통화가 종료될 때까지 서비스 품질을 보장할 수 있다.
도 1은 본 발명의 실시예에 따른 미디어 서버 선정 시스템이 적용된 환경의 예시도이다.
도 2는 본 발명의 실시예에 따른 구역별로 매핑된 IP 대역의 예시도이다.
도 3은 본 발명의 실시예에 따라, 초기 사용자 단말에 웹 기반 그룹 통화 서비스를 제공할 미디어 서버를 할당하는 방법에 대한 흐름도이다.
도 4는 본 발명의 실시예에 따라, 미디어 서버를 선정하는 방법에 대한 흐름도이다.
도 5는 본 발명의 실시예에 따라 선정된 미디어 서버의 위치에 대한 예시도이다.
도 6은 본 발명의 실시예에 따른 미디어 서버를 변경 방법에 대한 흐름도이다.
도 7은 본 발명의 실시예에 따른 컴퓨팅 장치의 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조로 하여, 본 발명의 실시예에 따른 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 미디어 서버 선정 시스템이 적용된 환경의 예시도이다.
도 1에 도시된 바와 같이, 미디어 서버 선정 시스템(100)은 복수의 미디어 서버들(310~330) 및 복수의 사용자 단말(210~230)들과 연동한다.
복수의 사용자 단말(210~230)들에는 웹 기반 통화 서비스를 이용하기 위한 앱 또는 클라이언트가 설치된다. 사용자 단말(210~230)들에 전원이 인가되어 로그인되면, 웹 기반 통화 서비스를 요청하기 위하여 사용자 단말(210~230)은 미디어 서버 선정 시스템(100)과 연동한다.
미디어 서버 선정 시스템(100)으로부터 착신 요청 신호를 수신하면, 사용자 단말(210~230)들은 착신자에게 착신이 시도되었음을 알린다. 그리고, 상대방 사용자 단말(210~230)들과 통화 연결이 되면, 웹 기반 통화 서비스를 제공하는 미디어 서버(310~330)와 연동하여 미디어를 수신한다.
미디어 서버(310~330)는 미디어 서버 선정 시스템(100)으로부터, 미디어 서버(310~330) 자신에 연동될 적어도 하나의 사용자 단말(210~230)에 대한 정보를 수신한다. 그리고 복수의 사용자 단말(210~230)들 중 발신 사용자 단말로부터 통화 미디어를 수신하고, 착신 사용자 단말로 통화 미디어를 전송하기 위해, 통화 미디어를 인코딩/믹싱/디코딩 기능을 수행한다.
미디어 서버 선정 시스템(100)은 기능에 따라 신호 처리 서버(400)와 접속 관리 서버(500)로 구분된다. 본 발명의 실시예에서는 미디어 서버 선정 시스템(100)에 신호 처리 서버(400)와 접속 관리 서버(500)가 포함되는 것을 예로 하여 설명하나, 별도의 물리적인 서버로 구현될 수 있다.
신호 처리 서버(400)는 복수의 사용자 단말(210~230)들로부터 사용자 단말(210~230)들 각각의 식별 정보와 사용자 단말(210~230)에 각각 할당된 IP 정보를 포함하는 통화 연결 요청 신호를 수신한다. 신호 처리 서버(400)는 복수의 미디어 서버(310~330)들 중 사용자 단말(210~230)들이 접속할 미디어 서버를 접속 대상 미디어 서버로 결정하고, 접속 대상 미디어 서버에 리소스 채널 ID를 할당한다.
또한, 신호 처리 서버(400)는 임의의 사용자 단말(210~230)로부터 통화 연결 요청 신호를 수신하면, 통화 연결 요청 신호에 포함된 착신 사용자 단말의 단말 정보를 확인한다. 신호 처리 서버(400)는 발신 사용자 단말 및 착신 사용자 단말의 단말 정보를 토대로, 발신 사용자 단말과 착신 사용자 단말의 IP 지역 정보를 확인한다.
신호 처리 서버(400)는 발신 사용자 단말 및 착신 사용자 단말들의 IP 지역 정보를 분석하여, 복수의 미디어 서버(310~330)들 중 사용자 단말들이 연결될 최적의 미디어 서버를 접속 대상 미디어 서버로 결정한다. 또한, 신호 처리 서버(400)는 접속 대상 미디어 서버의 접속 정보(미디어 서버의 IP, UDP port 등)와 접속 대상 미디어 서버에 할당된 리소스 채널 ID를 매핑한다.
신호 처리 서버(400)는 발신 사용자 단말 및 착신 사용자 단말로, 접속 대상 미디어 서버의 서버 정보(미디어 서버의 IP, Port, 채널 ID)를 전송한다. 신호 처리 서버(400)는 발신 사용자 단말 및 착신 사용자 단말들에 할당된 접속 대상 미디어 서버와 통화 미디어 채널이 형성되도록 제어하여, 각 사용자 단말(210~230)들에서 전송하는 음성/영상 정보가 통화 미디어 채널을 통해 다른 사용자 단말들로 송수신되도록 한다.
신호 처리 서버(400)는 접속 대상 미디어 서버에 연결된 사용자 단말들 중 임의의 사용자 단말에 의해 신규 단말이 초대되거나, 연결된 사용자 단말들 중 어느 하나의 사용자 단말의 통화 종료가 발생하면, 통화에 참여하는 사용자 단말들의 수의 변화를 확인한다. 그리고 접속 대상 미디어 서버에 여전히 연결되어 있는 복수의 사용자 단말들이 새로 접속할 미디어 서버를 다시 설정한다.
접속 관리 서버(500)는 복수의 구역으로 이루어진 임의의 지역에, 각 구역별로 매핑된 IP 주소들과, 각 구역에 위치한 미디어 서버(310~330)들을 매핑하여 저장, 관리한다. 그리고 통화 세션에 포함된 사용자 단말(210~230)들 각각의 IP, 사용자 단말(210~230)들이 연결된 미디어 서버에 대한 정보를 관리한다.
또한, 접속 관리 서버(500)는 변경되는 통화 세션의 사용자 단말 정보를 관리하고, 변경된 세션에 따라 사용자 단말들이 새로 연결될 미디어 서버를 선정한다.
이때, 각 사용자 단말들에 할당된 IP들과, 구역별로 IP 대역의 자원을 관리하는 미디어 서버들의 배치에 대해 도 2를 참조로 설명한다.
도 2는 본 발명의 실시예에 따른 구역별로 매핑된 IP 대역의 예시도이다.
도 2는 구역별로 매핑된 IP 대역을 표시한 예시도로서, 임의의 지역을 4개의 구역으로 나누고, 각 구역별로 각각 하나의 미디어 서버(MS: Media Server)(320~350)가 위치한다고 가정한다. 이때, 임의의 지역의 중심에는 하나의 센터 미디어 서버(350)가 위치는 것을 예로 하여 설명한다.
본 발명의 실시예에서는 설명의 편의를 위하여 임의의 지역을 둥글게 원형으로 표시한다. 그리고 원형으로 표시된 임의의 지역을 4개의 구역으로 나누는 것을 예로 하여 설명하나, 반드시 이와 같이 한정되는 것은 아니다. 임의의 지역을 4개의 구역으로 나누는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
그리고 DHCP IP(Dynamic Host Configuration Protocol IP)를 할당하는 DHCP 서버(도면 미도시)가 네트워크를 통해 각 사용자 단말(D1~D4)(210~240)들에 연결되어 있다. DHCP 서버는 각 구역에 위치한 사용자 단말(210~240)들로 IP 자원을 할당한다.
각 구역에 위치한 각 사용자 단말(210~240)들은 DHCP 서버로부터 IP 자원을 할당 받기 위하여, DHCP 서버에 각 사용자 단말(210~240) 자신의 물리적인 위치 정보를 제공한다. 그리고 DHCP 서버는 각 사용자 단말(210~240)이 위치한 구역에 기 매핑되어 있는 IP 대역에서, 임의의 IP를 각각 단말(210~240)들에 할당한다.
예를 들어, 제2 미디어 서버(320)가 웹 기반 서비스를 제공하는 구역 2에, 제1 사용자 단말(D1)(210)이 있다고 가정한다. 제1 사용자 단말(210)은 DHCP 서버로부터 구역 2에 할당된 IP 대역 내에서 어느 하나의 IP를 할당 받는다. ISP(Internet Service Provider) 사업자마다 지역별/구역별로 구분하여 IP 대역을 관리하기 때문에, DHCP 서버는 사용자 단말의 물리적인 위치에 따라 IP를 구분하여 할당할 수 있다.
본 발명의 실시예에서는 구역별로 IP 대역이 할당되어 있고, 각 구역별로 미디어 서버가 위치하는 것으로 예를 들어 설명하나, IP 대역별로 미디어 서버를 매핑해 두고 사용자 단말들이 접속한 IP 대역들을 토대로 미디어 서버를 선택하는 것으로 설명될 수도 있다.
도 2에 도시된 바와 같이 임의의 지역이 4개의 구역으로 구분되고, 각각의 구역에 5개의 미디어 서버(310~350)들이 위치한다. 그리고, IP 대역이 각 미디어 서버(310~350)에 매핑될 때, 미디어 서버 선정 시스템(100)은 다음 표 1과 같이 각 미디어 서버(310~350)들의 정보와 접속 관리 서버(500)가 관리하는 관리 IP 리스트를 구성할 수 있다.
여기서, 미디어 서버 선정 시스템(100)이 각 미디어 서버(310~350)들의 정보를 구성할 때, 미디어 서버(310~350)의 위치를 벡터로 정의하여 180도를 기준으로 위치를 구분한다. 그리고 3, 4분면의 위치에 존재하는 경우는 (-) 위상으로 관리한다. 이때, 미디어 서버(310~350)의 위치는 사전에 결정되어 있는 것으로, 미디어 서버(310~350)의 위치를 벡터 주소로 정의하는 방법은 다양하게 수행할 수 있으므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
미디어 서버 0 미디어 서버 1 미디어 서버 2 미디어 서버 3 미디어 서버 4
IP 주소 10.1.1.1 10.1.1.2 10.1.1.3 10.1.1.4 10.1.1.5
미디어 서버의 벡터 주소 0 Z1 Z2 -Z1 -Z2
관리 IP
리스트
IP 대역 1 a.a.a.x a.b.a.x a.c.a.x a.d.a.x ×
IP 대역 2 a.a.b.x a.b.b.x a.c.b.x a.d.b.x ×
IP 대역 3 a.a.c.x a.b.c.x a.c.c.x a.d.c.x ×
그리고, 사용자 단말(210~240)들이 각각 DHCP 서버로부터 IP를 할당 받아 통신망에 접속할 때, 미디어 서버 선정 시스템(100)은 다음 표 2와 같이 각 사용자 단말(210~240)들이 미디어 서버 선정 시스템(100)과 연결되는 채널 ID, 접속 단말의 ID/IP 주소, 각 IP 주소에 따른 접속 미디어 서버, 할당 로직에 따른 할당 미디어 서버(310~350)의 정보를 관리한다.
채널ID 접속 단말 단말 ID IP 접속 미디어 서버
1234567abcde D1 id1 a.a.a.x MS1
D2 id2 a.a.b.x MS1
D3 id3 a.a.c.x MS1
D4 id4 a.d.a.x MS4
D5 id5 a.d.a.x MS4
D6 id6 a.d.b.x MS4
D7 id7 a.d.c.x MS4
D8 id8 a.b.a.x MS2
이때, 일반적인 웹 RTC 환경에서는 사용자 단말들이 1:1로 연결되어 웹 기반서비스를 이용하기 때문에, 표 2와 같이 사용자 단말(210~240)에 할당된 IP를 토대로 사용자 단말(210~240)에서 가장 가까운 미디어 서버를 통해 웹 서비스를 이용하도록 하고 있다.
사용자 단말(210~240)들이 다자간 그룹통화 서비스를 이용하고자 할 경우, 각 사용자 단말(210~240)들 사이에 그물망(Mesh) 형태로 미디어 트래픽이 발생한다. 따라서 미디어 서버 선정 시스템(100)은 사용자 단말(210~240) 간 미디어 트래픽을 효율적으로 처리할 수 있는 미디어 서버를 선정하여야 한다. 미디어 서버 선정 시스템(100)이 웹 기반 그룹 통화 서비스를 이용하는 복수의 사용자 단말들(210~240)이 접속할 미디어 서버를 선정하는 방법에 대해 도 3을 참조로 설명한다.
본 발명의 실시예에서는 세 명의 사용자들이 각각 자신의 사용자 단말(210~230)을 이용하여 그룹 통화 서비스를 이용한다고 가정한다. 본 발명의 실시예에서는, 제1 사용자 단말(210)을 발신 단말로 하고, 제2 사용자 단말(220)과 제3 사용자 단말(230)에 그룹 통화를 시도한다고 가정하여 설명한다.
도 3은 본 발명의 실시예에 따라, 초기 사용자 단말에 웹 기반 그룹 통화 서비스를 제공할 미디어 서버를 할당하는 방법에 대한 흐름도이다.
도 3에 도시된 바와 같이, 접속 관리 서버(500)는 임의의 지역을 형성하는 복수의 구역들에서, 각 구역에서 사용되는 IP 대역을 기반으로, 미디어 서버별 IP 대역 리스트를 저장, 관리한다(S100). 웹 기반의 그룹 통화 서비스를 이용하고자 하는 복수의 사용자 단말(210~230)들에 전원이 인가되어 각각 로그인 되면(S101), 각 사용자 단말(210~230)들은 자신의 ID를 포함하여 신호 처리 서버(400)로 단말 ID를 포함하는 사용자 단말 정보를 전송한다(S102).
신호 처리 서버(400)는 S102 단계를 통해 각 사용자 단말(210~230)들로부터 사용자 단말 ID를 수신하면, STUN(Session Traversal Utilities for NAT) 기능을 활용하여 각 사용자 단말(210~230)에 할당된 IP 주소를 확인한다(S103). 여기서, 신호 처리 서버(400)가 STUN 기능을 이용하여 단말의 IP 주소를 확인하기 위해서는 별도의 STUN 서버(도면 미도시)가 필요하다. STUN 서버는 웹 RTC 프로토콜에서 사설 주소를 이용하는 단말도 공인 IP를 가지고 미디어 통신 서비스를 이용할 수 있도록 하는 서버이다.
STUN 서버의 기능, 그리고 STUN 기능을 통해 단말의 IP 주소를 확인하는 방법은 이미 알려진 것으로, 본 발명의 실시예에서는 상세한 설명을 생략한다. 다만, 본 발명의 실시예에서는 로그인되는 사용자 단말들의 IP를 토대로 접속 관리 서버(500)가 미디어 서버를 선정하기 때문에, 신호 처리 서버(400)는 사용자 단말에 할당된 IP를 STUN 기능을 이용하여 획득한다.
신호 처리 서버(400)는 로그인 한 모든 사용자 단말(210~230)들의 단말 ID와 S103 단계에서 확인한 IP 정보를 포함하는 단말 로그인 정보를, 접속 관리 서버(500)로 전달한다(S104). 접속 관리 서버(500)는 S104 단계에서 신호 처리 서버(400)로부터 수신한 단말 로그인 정보를 사용자 단말 별로 저장, 관리한다(S105).
한편, 복수의 사용자 단말들 중 제1 사용자 단말(210)의 사용자가 자신의 단말을 이용하여 웹 기반 그룹 통화를 시도한다고 가정한다(S106). 이때, 사용자는 제1 사용자 단말(210)을 통해 제공되는 웹 브라우저에서, 그룹 통화 착신자들의 사용자 단말들 각각의 ID를 입력한다. 이를 위해, 제1 사용자 단말(210)은 사용자에게 착신 사용자 단말(220, 230)들의 ID를 제공한다고 가정하여 설명한다.
웹 기반 그룹 통화를 신호 처리 서버(400)는 제1 사용자 단말(210)로부터 그룹 통화 요청 정보를 수신한다(S107). 수신한 그룹 통화 요청 정보에는 통화를 시도하는 발신 단말, 즉 제1 사용자 단말(210)의 단말 ID, 착신 사용자 단말(220, 230)들의 ID를 포함하는 착신 사용자 단말 리스트, S106 단계에서 그룹 통화를 시도한 통화 요청 시간 정보를 포함한다.
신호 처리 서버(400)는 S107 단계에서 수신한 그룹 통화 요청 정보를 토대로, 제1 사용자 단말(210), 제2 사용자 단말(220), 그리고 제3 사용자 단말(230)이 웹 기반 통화 서비스를 제공받을 채널을 생성한다(S108).
여기서, 채널이라 함은, 복수의 사용자 단말(210~230)들이 웹 기반 그룹 통화를 할 때, 그룹 통화를 위해 필요한 다양한 형태의 신호들을 신호 처리 서버(400)에서 처리하도록 신호 처리 서버(400)로 접속하는 통로를 의미한다. 신호 처리 서버(400)가 채널을 생성하는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
신호 처리 서버(400)는 S108 단계에서 생성한 채널에 대응하는 채널 ID, 그리고 S107 단계에서 제1 사용자 단말(210)로부터 수신한 그룹 통화 요청 정보를 포함하여, 접속 관리 서버(500)로 접속 대상 미디어 서버의 선정을 요청한다(S109). 이때 접속 대상 미디어 서버는 웹 기반 그룹 통화를 시도하는 사용자 단말(210~230)들이 접속할 미디어 서버를 의미한다.
접속 관리 서버(500)는 채널에 접속할 사용자 단말(210~230)들의 IP 정보를 기반으로, 복수의 미디어 서버들 중 접속 대상 미디어 서버를 선정한다(S110). 여기서 접속 관리 서버(500)가 미디어 서버를 선정하는 방법에 대해서는 이후 도 4를 참조로 설명한다.
접속 관리 서버(500)는 S110 단계에서 선정한 접속 대상 미디어 서버에 현재 채널을 매핑하여 S108 단계에서 신호 처리 서버(400)가 생성한 채널의 채널 ID를 관리한다(S111). 그리고, 신호 처리 서버(400)는 접속 관리 서버(500)로부터 접속 대상 미디어 서버를 식별할 수 있는 미디어 서버의 ID와 IP, 포트 정보를 포함하는 접속 대상 미디어 서버 정보를 수신한다(S112).
신호 처리 서버(400)는 S112 단계에서 수신한 접속 대상 미디어 서버(300) 정보를 토대로, 사용자 단말(210~230)들이 접속 대상 미디어 서버(300)로 접속할 접속 URL을 생성한다(S113). 신호 처리 서버(400)가 접속 대상 미디어 서버(300)로 채널 ID와 접속 URL, 그리고 그룹 통화를 시도하는 사용자 단말(210~230)들 정보를 전달하면(S114), 접속 대상 미디어 서버(300)는 웹 기반 통화 서비스를 제공하기 위한 리소스를 할당한다(S115).
신호 처리 서버(400)는 접속 대상 미디어 서버(300)의 IP, 접속할 포트, 접속 URL을 포함하는 접속 대상 미디어 서버 정보를 발신 단말인 제1 사용자 단말(210)로 전송한다(S116). 이때, 미디어 서버(300)가 리소스를 할당하기 위한 시간이 필요하므로, 미디어 서버(300)로 채널 ID, 접속 URL, 그룹 통화 단말 정보를 먼저 전송하여 리소스를 준비하도록 제어한다.
영상신호는 I 프레임과 P 프레임이 주기적으로 나타나는데, H.264 코덱을 사용할 경우 I 프레임 유실 시 8~10초간의 영상 신호 손실과 딜레이가 발생한다. 따라서 미디어 서버(300)가 통화 미디어 트래픽을 수신할 수 있는 상태로 만드는게 중요하다.
그리고 착신 사용자 단말인 제2 사용자 단말(220)과 제3 사용자 단말(230)로는 통화 요청 신호를 전송한다(S117, S118). 여기서, 통화 요청 신호에는 채널 ID, 발신 단말 ID, 착신 사용자 단말 ID, 접속 대상 미디어 서버 정보를 포함한다.
이와 같은 절차를 통해 웹 기반 그룹 통화를 시도하는 복수의 사용자 단말(210~230)들은 접속 대상 미디어 서버(300)뿐만 아니라 신호 처리 서버(400)로 채널을 통해 연결된다(S119). 그리고 S116 단계에서 접속 대상 미디어 서버 정보를 수신한 제1 사용자 단말(210)은, 접속 URL을 이용하여 접속 대상 미디어 서버(300)에 접속한다.
제1 사용자 단말(210)은 접속한 접속 대상 미디어 서버(300)로 그룹 통화를 위한 통화 미디어(음성, 화면 등)를 포함하는 미디어 트래픽을 전송한다(S120).
접속 대상 미디어 서버(300)는 S120 단계에서 수신한 미디어 트래픽에 포함된 미디어를 미디어를 믹싱한 후(S121) 제2 사용자 단말(220)과 제3 사용자 단말(230)로 중계하거나, 그대로 제2 사용자 단말(220)과 제3 사용자 단말(230)로 중계한다(S122, S123). 여기서, 미디어 서버(300)가 미디어를 믹싱하는 방법은 다양하므로, 본 발명의 실시예에서는 어느 하나의 방법으로 한정하지 않는다.
한편, 상기 S110 단계에서 접속 관리 서버(500)가 미디어 서버를 선정하는 방법에 대해 도 4 및 도 5를 참조로 설명한다.
도 4는 본 발명의 실시예에 따라, 미디어 서버를 선정하는 방법에 대한 흐름도이다.
먼저 도 4에 도시된 바와 같이, 접속 관리 서버(500)가 복수의 미디어 서버(310~330)들 중 어느 하나의 접속 대상 미디어 서버를 선정하기 위하여, 그룹 통화 요청 정보에 포함된 사용자 단말(210~230)들의 ID과 해당 단말들의 IP 정보를 이용하여 각 사용자 단말(210~230)이 위치한 구역들을 확인한다. 그리고 각 구역별로 사용자 단말들의 수를 확인한다(S200).
예를 들어 m개의 사용자 단말들이 웹 기반 그룹 통화를 진행한다고 가정한다. 접속 관리 서버(500)는 S200 단계에서 각 사용자 단말들에 할당된 IP 대역을 확인하고, 각 IP 대역들에 매핑되어 있는 미디어 서버들에 대한 단말 수를 하나씩 증가시킨다.
접속 관리 서버(500)는 하나씩 증가시킨 단말 수를 토대로, 가장 많은 사용자 단말들이 위치한 구역이 있는지 확인한다(S201). 즉, 사용자 단말들이 지역적으로 고르게 분산되어 있지 않고 어느 하나의 구역에 몰려 있는지 확인한다.
만약, 특정 구역에 사용자 단말들이 집중되어 있다면, 접속 관리 서버(500)는 해당 구역에 위치한 미디어 서버를 접속 대상 미디어 서버로 선정한다(S202). 그러나, S201 단계에서 확인한 결과 사용자 단말들이 복수의 구역에 고르게 분포되어 있다면, 접속 관리 서버(500)는 각 사용자 단말들이 위치한 각 구역에 할당된 벡터 주소의 합을 계산한다(S203). 여기서 각 구역에 할당된 벡터 주소는 미디어 서버들에 대한 벡터 주소로 각 벡터 주소는 사전에 이미 결정되어 있으며, 이에 대해서는 이후 설명한다.
접속 관리 서버(500)는 미디어 서버들의 벡터 주소의 합을 계산한 후, 벡터 주소의 합이 0인지 확인한다(S204). 만약, 벡터 주소의 합이 0이 되는 구역이 있다면, 접속 관리 서버(500)는 센터에 위치한 미디어 서버를 접속 대상 미디어 서버로 선정한다(S205).
그러나, 구역별 벡터 주소의 합이 0이 되는 구역이 없다면, 접속 관리 서버(500)는 각 구역에 위치한 미디어 서버들의 세션 수, 각 미디어 서버의 CPU 부하량에 따라, 접속 대상 미디어 서버를 선정한다(S206). 본 발명의 실시예에서는 S206 단계에서 접속 대상 미디어 서버를 선정할 때, CPU 부하량이 적은 미디어 서버 순서로 접속 대상 미디어 서버를 선정한다. 그러나, 모든 미디어 서버들의 CPU 부하량이 동일하다면 세션 수가 가장 적은 미디어 서버를 접속 대상 미디어 서버로 선정하는 것을 예로 하여 설명한다.
여기서, 복수의 구역에 사용자 단말들이 고르게 분포되어 있는 경우의 접속 대상 미디어 서버를 선정하는 예에 대해 설명하면 다음과 같다.
각 미디어 서버들은 최초 구성될 때, 구성된 위치에 따라 사전에 벡터 주소들이 할당된다. 예를 들어, 1사분면에 위치한 미디어 서버 1과 2사분면에 위치한 미디어 서버 2에 각각 할당된 주소를 기초로, 3사분면에 위치한 미디어 서버 3과, 4사분면에 위치한 미디어 서버 4의 벡터 주소는 (-1) 위상으로 매핑된다.
즉, 상기 표 1에서 언급한 바와 같이, 1사분면의 미디어 서버의 벡터 주소는 Z1, 2사분면의 미디어 서버의 벡터 주소는 Z2, 3사분면의 미디어 서버의 벡터 주소는 -Z1, 4사분면 미디어 서버의 벡터 주소는 -Z2가 된다. 여기서 각 벡터 주소는 가상의 주소로서, 어느 하나의 형태로 한정하지 않는다.
접속 관리 서버(500)는 각 구역의 단말 수를 카운트한다. 그리고, 각 구역의 단말 수를 비교하여, 가장 많은 수의 단말들이 위치한 미디어 서버를 단말들이 접속할 미디어 서버로 선정한다.
미디어 서버의 수가 적을수록, 구역별로 단말 수가 균일하게 위치할 확률이 높다. 따라서, 구역별로 웹 기반 그룹 통화 단말의 수가 균일할 경우, 각 단말들이 접속할 미디어 서버를 어떻게 선정하는지는 구현에 따라 다양한 방법을 적용할 수 있다.
예를 들어, 1사분면과 3사분면에 각각 사용자 단말이 1개씩 있다고 하면, 각 단말에 대한 벡터 주소의 합은 0(= Z1+(-Z1))이 된다. 이는 각 사용자 단말이 서로 반대편에 위치하기 때문이다. 이 경우, 접속 관리 서버(500)는 중앙의 센터 미디어 서버를 접속 대상 미디어 서버로 선정한다.
이는, 지역적으로 고르게 사용자 단말들이 분산되어 있는 경우, 지역의 중심인 센터 미디어 서버에서 미디어 트래픽을 수신하는 것이 효율적이기 때문이다. 이를 위해, 본 발명의 실시예에서는 각 구역별로 미디어 서버가 위치하고, 지역의 중심에 센터 미디어 서버가 위치한다고 가정한다.
그러나 만약 1사분면에 하나의 사용자 단말이 위치하고, 2사분면에 하나의 사용자 단말이 위치할 경우, 접속 관리 서버(500)는 미디어 서버 1과 미디어 서버 2 중 어느 미디어 서버를 선택할지 결정해야 한다. 본 발명의 실시예에서는 각 미디어 서버의 CPU 부하율과 각 미디어 서버들의 세션 수를 확인한다.
그리고 CPU 부하율이 적은 미디어 서버를 접속 대상 미디어 서버로 선정한다. 그러나, 두 미디어 서버의 CPU 부하율의 차이가 임계값 이내라면, 두 미디어 서버에 형성된 세션 수를 확인한다. 접속 관리 서버(500)는 적은 세션 수를 가지는 미디어 서버를 접속 대상 미디어 서버로 선정한다.
즉, 미디어 서버에 형성된 세션수가 동일하다 하더라도 또는 세션수가 적더라도, 실제 사용자 단말에서 송수신하는 미디어 트래픽을 처리하는 내용에 따라 CPU 점유율이 다르다. 따라서, 접속 관리 서버(500)는 접속 대상 미디어 서버를 선정할 때, 먼저 CPU 부하율을 확인하고, CPU 부하율이 유사한 경우 세션수를 기초로 접속 대상 미디어 서버를 선정한다,
그러나, 세션 수의 차이가 역시 임계값 이내라면, 두 미디어 서버 중 어느 하나의 미디어 서버를 랜덤하게 선택한다. 이를 도 5를 참조로 설명하면, 다음과 같다.
도 5는 본 발명의 실시예에 따라 선정된 미디어 서버의 위치에 대한 예시도이다.
1사분면에 3대의 사용자 단말(D1~D3)이 있고, 4사분면에 4대의 사용자 단말(D4~D6)이 있으며, 2사분면이 한 대의 사용자 단말(D8)이 있다고 가정한다. 이러한 환경에서 접속 관리 서버(500)가 관리하는 채널 ID별 접속 단말 정보는 다음 표 3과 같다.
채널ID 접속 단말 단말 ID IP 구역 벡터 주소 할당 미디어 서버
1234567abcde D1 id1 a.a.a.x Z1 Z1 MS1
D2 id2 a.a.b.x Z1 Z1 MS1
D3 id3 a.a.c.x Z1 Z1 MS1
D4 id4 a.d.a.x Z4 -Z2 MS4
D5 id5 a.d.a.x Z4 -Z2 MS4
D6 id6 a.d.b.x Z4 -Z2 MS4
D7 id7 a.d.c.x Z4 -Z2 MS4
D8 id8 a.b.a.x Z2 Z2 MS2
그러면, 접속 관리 서버(500)는 사용자 단말(D1~D8)의 위치에 따라 계산한 벡터 주소 합은 3Z1-3Z2임을 알 수 있다.
1사분면의 미디어 서버 1과 4사분면의 미디어 서버 4가 동일한 벡터 주소 합을 가지므로, 접속 관리 서버(500)는 미디어 서버 1과 미디어 서버 4 중 어느 하나를 접속 대상 미디어 서버로 설정해야 한다. 접속 관리 서버(500)는 미디어 서버 1과 미디어 서버 4로부터 수집한 CPU 부하율, 그리고 세션 수를 기초로 접속 대상 미디어 서버를 설정한다.
CPU 부하율이 적은 쪽의 미디어 서버를 선택하고, CPU 부하율의 차이가 임계값 이내라면 각 미디어 서버에 생성된 세션 수가 적은 미디어 서버를 접속 대상 미디어 서버로 선정한다.
다음은 사용자 단말의 통화 종료나 신규 사용자 단말의 초대 요청과 같이, 기 웹 기반 그룹 통화 서비스를 이용하기 위해 접속한 미디어 서버를 변경해야 할 경우, 미디어 서버를 할당하는 방법에 대해 도 6을 참조로 설명한다. 본 발명의 실시예에서는 설명의 편의를 위하여 임의의 사용자 단말에 통화 종료가 발생한 경우의 미디어 서버 변경 절차에 대해 설명한다.
도 6은 본 발명의 실시예에 따른 미디어 서버를 변경 방법에 대한 흐름도이다.
도 6에 도시된 바와 같이, 웹 기반 그룹 통화 서비스를 이용하던 사용자 중 제3 사용자 단말(230)을 사용하는 사용자가 통화를 종료하였다고 가정한다(S300). 그러면, 통화가 종료된 제3 사용자 단말(230)은 상기 도 3의 S119 단계에서 신호 처리 서버(400)와 연결한 채널을 통해, 제3 사용자 단말(230)의 단말 ID, 해당 단말이 사용한 채널 ID를 포함하여 통화 종료 알림 신호를 전송한다(S301).
신호 처리 서버(400)는 S301 단계에서 수신한 통화 종료 알림 신호를 토대로, 단말 접속 정보를 갱신한다(S302). 즉, 채널 ID에 대응하여 관리하던 접속 단말 리스트 중 제3 사용자 단말(230) 정보를 삭제한다.
신호 처리 서버(400)는 단말 접속 정보를 갱신한 후, 접속 관리 서버(500)로 통화 종료 단말 정보를 전달한다(S303). 이때, 통화 종료 단말 정보에는 제3 사용자 단말(230)의 ID와 채널 ID가 포함된다.
접속 관리 서버(500)는 S303 단계에서 수신한 통화 종료 단말 정보 중, 채널 ID를 토대로 채널 ID에 대응하는 접속 단말 정보를 갱신한다(S304). 그리고, 해당 채널 ID를 통해 신호 처리 서버(400)에 연결된 나머지 사용자 단말들 즉, 제1 사용자 단말(210)과 제2 사용자 단말(220)이 연결될 새로운 미디어 서버를 재선정할지 여부를 확인한다(S305).
즉 상기 도 4에서 설명한 절차를 통해 현재 그룹 단말들이 연결된 미디어 서버(310)를 유지할 것인지, 다른 미디어 서버를 재 선정할 것인지 확인한다. 만약 S305 단계에서 확인한 미디어 서버가 기존 미디어 서버(310)와 동일하면, 절차를 종료한다.
그러나, S305 단계에서 확인한 미디어 서버가 기존 미디어 서버(310)와 상이하면, 접속 관리 서버(500)는 변경된 미디어 서버 정보에 채널 ID를 포함하여 신호 처리 서버(400)로 전송한다(S306). 신호 처리 서버(400)는 S306 단계에서 전송된 정보를 토대로 변경된 미디어 서버 정보를 확인하고(S307), 재 선정 미디어 서버(320)로 리소스 할당을 요청한다(S308). 이때, 신호 처리 서버(400)는 재 선정 미디어 서버(320)로 채널 ID와 접속 URL, 그룹 통화 단말 정보들을 포함하여 리소스 할당을 요청한다.
재 선정 미디어 서버(320)는 S308 단계의 요청에 따라 리소스를 할당한다. 신호 처리 서버(400)는 제1 사용자 단말(210) 및 제2 사용자 단말(220)로 이전 미디어 서버(310)에서 재 선정 미디어 서버(320)로의 재접속을 요청한다(S310). 이때, 재 선정 미디어 서버의 정보(IP, 포트, URL 등)와 채널 ID를 포함하여 요청한다.
제1 사용자 단말(210) 및 제2 사용자 단말(220)은 S310 단계에서 수신한 요청 신호를 토대로 재 선정 미디어 서버(320)로 재접속하여, 미디어 트래픽을 송신한다(S311).
한편, 신호 처리 서버(400)는 미리 설정한 시간 경과 후에, 변경 전 미디어 서버(310)로 채널 ID, 접속 URL, 그룹 통화 단말 정보를 포함하여 리소스 해제 요청 신호를 전송한다(S312). 변경 전 미디어 서버(310)는 S312 단계에서 수신한 요청 신호를 토대로 리소스를 해제한다(S313).
이때, 변경 전 미디어 서버(310)가 리소스를 해제하기 전까지, 제1 사용자 단말(210) 및 제2 사용자 단말(220)은 변경 전 미디어 서버(310)와 재 선정 미디어 서버(320) 양쪽으로부터 미디어 트래픽을 수신하게 된다. 각 미디어 서버(310, 320)들의 부하, 서버 간 전송되는 신호나 미디어의 지연 상황에 따라 미디어 트래픽이 유실될 가능성이 있다. 이를 방지하기 위하여 신호 처리 서버(400)는 변경 전 미디어 서버(310)와 재 선정 미디어 서버(320)의 연결을 유지한 채, 사용자 단말이 재 선정 미디어 서버(320)로 접속하여 미디어 트래픽을 송수신하게 되면, 신호 처리 서버(400)는 이전 미디어 서버(310)로 리소스 해제를 요청한다.
따라서, 제1 사용자 단말(210) 및 제2 사용자 단말(220)은 재 선정 미디어 서버(320)로 전속한 이후에 변경 전 미디어 서버(310)로부터 미디어 트래픽을 수신하더라도 이를 폐기 처리한다.
상기에서 설명한 도 6에서는 제3 사용자 단말(230)이 통화를 종료한 경우의 미디어 서버를 재 선정하는 절차에 대해 설명하였다. 그러나, 신규 사용자 단말이 웹 기반 그룹 통화에 초대되더라도 신호 처리 서버(400)와 접속 관리 서버(500)를 포하하는 미디어 서버 선정 시스템(100)은 동일한 절차로 미디어 서버를 재 선정할 수 있다.
다음은, 상기에서 설명한 신호 처리 서버(400)와 접속 관리 서버(500)의 구조에 대해 도 7을 참조로 설명한다. 본 발명의 실시예에서는 설명의 편의를 위하여 컴퓨팅 장치(600)로 표현하며, 사용자 단말(210~230)들도 동일한 형태로 구현될 수 있다.
도 7은 본 발명의 실시예에 따른 컴퓨팅 장치의 구조도이다.
도 7을 참고하면, 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(600)에서, 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행한다. 프로그램은 컴퓨터 판독 가능한 저장매체에 저장될 수 있고, 유통될 수 있다.
컴퓨팅 장치(600)의 하드웨어는 적어도 하나의 프로세서(610), 메모리(620), 스토리지(630), 통신 인터페이스(640)를 포함할 수 있고, 버스를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(600)는 프로그램을 구동할 수 있는 운영 체제를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(610)는 컴퓨팅 장치(600)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를 들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다.
메모리(620)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(610)에 의해 처리되도록 해당 프로그램을 로드한다. 메모리(620)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(630)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장한다. 통신 인터페이스(640)는 유/무선 통신 모듈일 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 미디어 서버 선정 시스템이, 웹 기반 그룹 통화에 참여하는 복수의 사용자 단말들에 다자간 그룹 통화 서비스를 제공하는 미디어 서버를 선정하는 방법으로서,
    IP 대역별로 적어도 하나의 미디어 서버를 매핑하는 단계,
    웹 브라우저로 로그인하는 복수의 사용자 단말들 각각의 IP 주소와 단말 식별자를 단말 로그인 정보로 저장하는 단계,
    상기 복수의 사용자 단말 중 발신 사용자 단말로부터, 상기 발신 사용자 단말의 식별자 및 착신 사용자 단말들의 식별자들을 포함하는 그룹 통화를 요청받는 단계, 그리고
    상기 단말 로그인 정보와 상기 요청에 포함된 단말 식별자들을 기초로, 상기 발신 사용자 단말과 상기 착신 사용자 단말들이 접속한 IP 대역들을 확인하고, 확인한 IP 대역들 각각에서 접속한 사용자 단말 수를 기초로 특정 IP 대역을 결정하고, 상기 특정 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  2. 제1항에 있어서,
    상기 대상 미디어 서버를 선정하는 단계는,
    상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들을 확인하는 단계, 그리고
    가장 많은 사용자 단말들이 접속한 IP 대역이 있으면, 해당 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  3. 제2항에 있어서,
    상기 IP 대역들을 확인하는 단계 이후에,
    상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들의 수가 동일하면, 상기 IP 대역별로 매핑되어 있는 미디어 서버들의 위치를 토대로 각 미디어 서버에 할당된 벡터 주소의 합을 계산하는 단계, 그리고
    벡터 주소의 합이 0이 되면, 복수의 미디어 서버 중 미리 설정된 특정 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  4. 제3항에 있어서,
    상기 벡터 주소의 합이 0이 아니면,
    상기 발신 사용자 단말과 착신 사용자 단말들의 IP 대역들에 각각 매핑된 미디어 서버들로부터 서버 세션 수와 각 미디어 서버들의 CPU 부하량을 수신하는 단계, 그리고
    상기 서버 세션 수와 CPU 부하량을 토대로, 어느 하나의 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  5. 제4항에 있어서,
    CPU 부하량이 가장 적은 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는, 미디어 서버 선정 방법.
  6. 제5항에 있어서,
    각 미디어 서버들의 CPU 부하량들의 차가 미리 설정한 임계값 이하이면, 세션 수가 가장 적은 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선정하는, 미디어 서버 선정 방법.
  7. 제2항에 있어서,
    상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계는,
    상기 발신 사용자 단말과 착신 사용자 단말들이 신호를 전송할 채널을 생성하는 단계, 그리고
    상기 발신 사용자 단말과 착신 사용자 단말들이 상기 미디어 서버로 접속할 접속 URL을 생성하는 단계
    를 더 포함하는, 미디어 서버 선정 방법.
  8. 제7항에 있어서,
    상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계 이후에,
    상기 미디어 서버로 상기 생성한 채널의 채널 식별자, 접속 URL, 그리고 상기 발신 사용자 단말과 착신 사용자 단말들의 단말 정보를 포함하여, 리소스 할당을 요청하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  9. 제7항에 있어서,
    상기 그룹 통화를 제공하는 미디어 서버로 선택하는 단계 이후에,
    상기 그룹 통화에 참여한 어느 하나의 사용자 단말로부터, 상기 채널을 통해 단말 식별자와 채널 식별자를 포함한 통화 종료 알림 신호 또는 신규 단말 추가 요청 신호를 수신하는 단계,
    상기 채널 식별자에 대응하여 저장한 단말 접속 정보를 갱신하는 단계, 그리고
    갱신한 단말 접속 정보를 토대로 상기 그룹 통화를 제공하는 미디어 서버의 재선정 여부를 결정하는 단계
    를 포함하는, 미디어 서버 선정 방법.
  10. 웹 기반 그룹 통화에 참여하는 복수의 사용자 단말들에 다자간 그룹 통화 서비스를 제공하는 미디어 서버를 선정하는 미디어 서버 선정 시스템으로서,
    복수의 미디어 서버별로 각각 매핑된 IP 대역 리스트를 관리하는 메모리, 그리고
    프로세서
    를 포함하고,
    상기 프로세서는,
    웹 브라우저로 로그인한 발신 사용자 단말로부터 착신 사용자 단말들의 식별자를 포함하는 그룹 통화를 요청 받고, 상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들을 확인하고, 확인한 IP 대역들 각각에서 접속한 사용자 단말 수를 기초로 특정 IP 대역을 결정하고, 상기 특정 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는, 미디어 서버 선정 시스템.
  11. 제10항에 있어서,
    상기 프로세서는,
    가장 많은 사용자 단말들이 접속한 IP 대역에 매핑된 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는, 미디어 서버 선정 시스템.
  12. 제11항에 있어서,
    상기 프로세서는,
    상기 발신 사용자 단말과 착신 사용자 단말들이 접속한 IP 대역들의 수가 동일하면, 상기 IP 대역별로 매핑되어 있는 미디어 서버들의 위치를 토대로 각 미디어 서버에 할당된 벡터 주소를 토대로, 미리 설정된 특정 미디어 서버를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는, 미디어 서버 선정 시스템.
  13. 제12항에 있어서,
    상기 프로세서는,
    상기 발신 사용자 단말과 착신 사용자 단말들의 IP 대역들에 각각 매핑된 미디어 서버들로부터 서버 세션 수와 각 미디어 서버들의 CPU 부하량을 토대로, 복수의 미디어 서버들 중 어느 하나를 상기 그룹 통화를 제공하는 미디어 서버로 선택하는, 미디어 서버 선정 시스템.
  14. 제12항에 있어서,
    상기 프로세서는,
    상기 발신 사용자 단말과 착신 사용자 단말들이 신호를 전송할 채널을 생성하고, 상기 발신 사용자 단말과 착신 사용자 단말들이 웹 기반 그룹 통화 서비스를 이용하도록 상기 미디어 서버로 접속할 접속 URL을 생성하는, 미디어 서버 선정 시스템.
KR1020200059679A 2020-05-19 2020-05-19 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법 KR20210142912A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200059679A KR20210142912A (ko) 2020-05-19 2020-05-19 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200059679A KR20210142912A (ko) 2020-05-19 2020-05-19 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20210142912A true KR20210142912A (ko) 2021-11-26

Family

ID=78700266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200059679A KR20210142912A (ko) 2020-05-19 2020-05-19 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR20210142912A (ko)

Similar Documents

Publication Publication Date Title
EP2770667B1 (en) Method and system for combined Peer-to-Peer (P2P) and central relay server-based telecommunication conferencing using a telephony and conferencing protocol
JP5800872B2 (ja) 相互接続ネットワークにおけるパケットレベルプライオリティ付け
KR101571925B1 (ko) 다자간 통화 단말 및 상기 단말에서의 다자간 통화에서 일대일 통화로의 전환 방법
RU2399160C1 (ru) СПОСОБ И СИСТЕМА ПЕРЕДАЧИ ДАННЫХ НА ОСНОВЕ ТЕХНОЛОГИИ "Peer-to-Peer"
WO2017020790A1 (zh) 多屏控制方法及装置
CN113596191A (zh) 一种数据处理方法、网元设备以及可读存储介质
JP2023508061A (ja) アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器
EA016158B1 (ru) Система управления мобильной связью, способ и терминал связи
US9374232B2 (en) Method and a device for optimizing large scaled video conferences
US20200169695A1 (en) Video conference multi-point control method and device, storage medium and computer apparatus
EP2704355B1 (en) Method, device and system for establishing multi-cascade channel
EP3057287A1 (en) Node allocation method, device and system
US7860958B2 (en) Network management method for wireless transmission/reception of data streams, and network system and apparatus employing the same
US10757155B2 (en) Method and server for real-time data streaming in a media session
KR20140092630A (ko) 사용자장치, 통신서버 및 그 제어방법
US11671487B1 (en) Port prediction for peer-to-peer communications
KR20210142912A (ko) 웹 기반 그룹통화 저지연 서비스를 제공하기 위한 미디어 서버 선정 시스템 및 방법
CN107995201B (zh) 数据的传输方法及装置、服务器及存储介质
CN106357592A (zh) 资源共享方法、装置及系统
US11503164B2 (en) Media interaction method in DECT network cluster
KR100744667B1 (ko) 다자간 음성통화 시스템 및 그 제어방법
CN116708381B (zh) 跨网络的数据传输方法、装置和存储介质及电子设备
JP5439938B2 (ja) 通信制御装置
KR20180021448A (ko) 그룹 통화를 위한 시스템 및 방법과 이를 위한 장치
KR100527200B1 (ko) 교환 시스템의 다자간 통화 서비스 제공 장치 및 그 제공방법

Legal Events

Date Code Title Description
A201 Request for examination