KR20170134307A - Voip 통화의 확립 및 관리 - Google Patents

Voip 통화의 확립 및 관리 Download PDF

Info

Publication number
KR20170134307A
KR20170134307A KR1020177008457A KR20177008457A KR20170134307A KR 20170134307 A KR20170134307 A KR 20170134307A KR 1020177008457 A KR1020177008457 A KR 1020177008457A KR 20177008457 A KR20177008457 A KR 20177008457A KR 20170134307 A KR20170134307 A KR 20170134307A
Authority
KR
South Korea
Prior art keywords
relay
called party
party device
server
communication
Prior art date
Application number
KR1020177008457A
Other languages
English (en)
Other versions
KR102334467B1 (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 왓츠앱 인크.
Publication of KR20170134307A publication Critical patent/KR20170134307A/ko
Application granted granted Critical
Publication of KR102334467B1 publication Critical patent/KR102334467B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/56Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP for VoIP communications
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B17/00Layered products essentially comprising sheet glass, or glass, slag, or like fibres
    • B32B17/06Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material
    • B32B17/10Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin
    • B32B17/10005Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing
    • B32B17/10009Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the number, the constitution or treatment of glass sheets
    • B32B17/10036Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the number, the constitution or treatment of glass sheets comprising two outer glass sheets
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B17/00Layered products essentially comprising sheet glass, or glass, slag, or like fibres
    • B32B17/06Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material
    • B32B17/10Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin
    • B32B17/10005Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing
    • B32B17/1055Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the resin layer, i.e. interlayer
    • B32B17/10559Shape of the cross-section
    • B32B17/10577Surface roughness
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B17/00Layered products essentially comprising sheet glass, or glass, slag, or like fibres
    • B32B17/06Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material
    • B32B17/10Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin
    • B32B17/10005Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing
    • B32B17/1055Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the resin layer, i.e. interlayer
    • B32B17/10559Shape of the cross-section
    • B32B17/10577Surface roughness
    • B32B17/10587Surface roughness created by embossing
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B17/00Layered products essentially comprising sheet glass, or glass, slag, or like fibres
    • B32B17/06Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material
    • B32B17/10Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin
    • B32B17/10005Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing
    • B32B17/1055Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the resin layer, i.e. interlayer
    • B32B17/10688Adjustment of the adherence to the glass layers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B17/00Layered products essentially comprising sheet glass, or glass, slag, or like fibres
    • B32B17/06Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material
    • B32B17/10Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin
    • B32B17/10005Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing
    • B32B17/1055Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the resin layer, i.e. interlayer
    • B32B17/10761Layered products essentially comprising sheet glass, or glass, slag, or like fibres comprising glass as the main or only constituent of a layer, next to another layer of a specific material of synthetic resin laminated safety glass or glazing characterized by the resin layer, i.e. interlayer containing vinyl acetal
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/06Layered products comprising a layer of synthetic resin as the main or only constituent of a layer, which is next to another layer of the same or of a different material
    • B32B27/08Layered products comprising a layer of synthetic resin as the main or only constituent of a layer, which is next to another layer of the same or of a different material of synthetic resin
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/18Layered products comprising a layer of synthetic resin characterised by the use of special additives
    • B32B27/22Layered products comprising a layer of synthetic resin characterised by the use of special additives using plasticisers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/30Layered products comprising a layer of synthetic resin comprising vinyl (co)polymers; comprising acrylic (co)polymers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/30Layered products comprising a layer of synthetic resin comprising vinyl (co)polymers; comprising acrylic (co)polymers
    • B32B27/306Layered products comprising a layer of synthetic resin comprising vinyl (co)polymers; comprising acrylic (co)polymers comprising vinyl acetate or vinyl alcohol (co)polymers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/42Layered products comprising a layer of synthetic resin comprising condensation resins of aldehydes, e.g. with phenols, ureas or melamines
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B3/00Layered products comprising a layer with external or internal discontinuities or unevennesses, or a layer of non-planar shape; Layered products comprising a layer having particular features of form
    • B32B3/26Layered products comprising a layer with external or internal discontinuities or unevennesses, or a layer of non-planar shape; Layered products comprising a layer having particular features of form characterised by a particular shape of the outline of the cross-section of a continuous layer; characterised by a layer with cavities or internal voids ; characterised by an apertured layer
    • B32B3/30Layered products comprising a layer with external or internal discontinuities or unevennesses, or a layer of non-planar shape; Layered products comprising a layer having particular features of form characterised by a particular shape of the outline of the cross-section of a continuous layer; characterised by a layer with cavities or internal voids ; characterised by an apertured layer characterised by a layer formed with recesses or projections, e.g. hollows, grooves, protuberances, ribs
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B7/00Layered products characterised by the relation between layers; Layered products characterised by the relative orientation of features between layers, or by the relative values of a measurable parameter between layers, i.e. products comprising layers having different physical, chemical or physicochemical properties; Layered products characterised by the interconnection of layers
    • B32B7/02Physical, chemical or physicochemical properties
    • CCHEMISTRY; METALLURGY
    • C03GLASS; MINERAL OR SLAG WOOL
    • C03CCHEMICAL COMPOSITION OF GLASSES, GLAZES OR VITREOUS ENAMELS; SURFACE TREATMENT OF GLASS; SURFACE TREATMENT OF FIBRES OR FILAMENTS MADE FROM GLASS, MINERALS OR SLAGS; JOINING GLASS TO GLASS OR OTHER MATERIALS
    • C03C27/00Joining pieces of glass to pieces of other inorganic material; Joining glass to glass other than by fusing
    • C03C27/06Joining glass to glass by processes other than fusing
    • C03C27/10Joining glass to glass by processes other than fusing with the aid of adhesive specially adapted for that purpose
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/20Repeater circuits; Relay circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • 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/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • 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/1045Proxies, e.g. for session initiation protocol [SIP]
    • 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
    • H04L65/105
    • 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/1069Session establishment or de-establishment
    • 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
    • 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/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • H04L65/4015Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2250/00Layers arrangement
    • B32B2250/022 layers
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2250/00Layers arrangement
    • B32B2250/40Symmetrical or sandwich layers, e.g. ABA, ABCBA, ABCCBA
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2307/00Properties of the layers or laminate
    • B32B2307/10Properties of the layers or laminate having particular acoustical properties
    • B32B2307/102Insulating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2307/00Properties of the layers or laminate
    • B32B2307/30Properties of the layers or laminate having particular thermal properties
    • B32B2307/308Heat stability
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2307/00Properties of the layers or laminate
    • B32B2307/50Properties of the layers or laminate having particular mechanical properties
    • B32B2307/538Roughness
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2307/00Properties of the layers or laminate
    • B32B2307/70Other properties
    • B32B2307/732Dimensional properties
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2605/00Vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2605/00Vehicles
    • B32B2605/006Transparent parts other than made from inorganic glass, e.g. polycarbonate glazings
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Chemical & Material Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • General Chemical & Material Sciences (AREA)
  • Geochemistry & Mineralogy (AREA)
  • Materials Engineering (AREA)
  • Organic Chemistry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Ceramic Engineering (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

시스템, 장치 및 방법이 하나의 컴퓨팅/통신 장치로부터 다른 장치로 향하는 VOIP(Voice Over Internet Protocol) 통화를 확립하고 지원하기 위해 제공된다. 시스템은 발신자로부터 통화 제안을 수신하고, 통화 제안을 착신자에게 포워딩하며, 각 당사자에게 그들의 디지털 음성 통신을 릴레이하기 위한 다수의 후보 릴레이 엔티티들을 식별한다. 각각의 장치는 하나 또는 모든 릴레이와 바인딩(bind)하며, 장치 중 어느 하나 또는 둘 모두는 필요하다면 통화의 릴레이 동작 모드에서 사용하기 위해 릴레이들 중 하나를 선택한다. 하나 이상의 릴레이들은 장치들에 그들의 외부 네트워크 주소를 알리고, 각 장치는 시스템을 통해 그들의 (내부 및 외부) 주소를 전달한다. 장치는 피어-투-피어 동작 모드에서 그들의 통화를 수행하기 위해 직접적인 연결의 확립을 시도하지만, 필요에 따라 피어-투-피어 및 릴레이 모드 사이에서 동적으로 스위칭할 수 있다.

Description

VOIP 통화의 확립 및 관리{ESTABLISHING AND MAINTAINING A VOIP CALL}
본 발명은 컴퓨터 및 전자 통신 분야에 관한 것이다. 더욱 특히, 시스템, 장치 및 방법은 VOIP(Voice Over Internet Protocol) 통화를 확립하고 관리하기 위해 제공된다.
기존 VOIP 방식은 제한된 유연성을 가지며, 이는 VOIP 통화에 참여하는 장치의 주소(예컨대, IP 주소)가 변경되면, VOIP 연결이 일반적으로 실패하며, 하나 또는 둘의 참여자들은 통화를 다시 초기화해야 한다는 것을 의미한다. 추가로, 기존의 절차로 VOIP 통화를 확립하는 것은 통상적으로 사용자의 경험을 손상할 수 있는 광범위한 프로토콜 협상을 요구한다.
본 발명의 내용 중에 포함되어 있다.
본 발명의 일부 실시예로, VOIP 통화의 확립 및 관리를 용이하게 하는 시스템은 발신자 장치로부터 통화나 통화 제안을 수신하고, 그것을 착신자의 장치로 포워딩하며, 그들의 디지털화된 음성 통신을 릴레이(relay)하기 위해 이용가능한 다수의 후보 릴레이 엔티티들을 두 장치에 식별한다. 각각의 장치는 하나 또는 모든 릴레이와 결합하여 그들이 전송 엔드포인트를 할당하도록 하고, 장치 중 하나 또는 둘 모두는 필요하게 된다면 릴레이들 중 하나를 사용하기 위해 선택한다.
하나 이상의 릴레이는 장치의 외부 네트워크 주소를 장치에 알리고, 각각의 장치는 시스템을 통해 서로에게 그것의 (내부 및 외부) 주소를 전달한다. 장치들은 그들의 통화를 수행하기 위해 피어-투-피어 연결의 확립을 시도할 수 있으나, 필요에 따라 또는 원하는 바에 따라 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 동적으로 스위칭할 수 있다.
일부 실시예로, 하나 또는 둘 모두의 장치가 상이한 네트워크로 로밍(roam)함에 따라, 그들은 그들의 새로운(외부) 주소를 획득하기 위해 선택된 릴레이 (및/또는 하나 이상의 다른 릴레이)와의 통신을 재확립하고, 새로운 주소는 다시 다른 장치와 공유되며, 그들은 피어-투-피어 연결의 확립을 계속 시도한다. 그렇게 할 수 없을 때에 장치들은 그들의 디지털 통신을 릴레이하는데 선택된 릴레이를 사용한다.
장치의 주소는 어떤 주소가 선호되거나 더 성공적일 가능성이 큰지를 표시하기 위해 우선순위화되거나 순서화될 수 있다. 예컨대, 장치들 중 하나가 다른 장치에 의해 사용되는 네트워크가 아닌 네트워크로 로밍할 때, 장치는 그것의 외부 주소를 우선순위화할 수 있고, Wi-Fi 주소는 셀룰러 장치(즉, 음성 서비스 제공자의 데이터 네트워크 내의 주소)보다 우선순위가 부여될 수 있는 등이 가능하다.
본 발명에 따른 실시예들은 특히 방법, 저장 매체, 시스템 및 컴퓨터 프로그램 제품에 대한 첨부된 청구항에 개시되고, 한 청구항 카테고리, 예컨대 방법에 언급된 임의의 특징은 다른 청구항 카테고리, 예컨대 시스템에도 청구될 수 있다. 첨부된 청구항의 인용 또는 참조는 오직 형식적인 이유를 위해 선택된 것이다. 하지만 임의의 선행 청구항으로의 의도적인 참조(특히 다중 인용)에서 야기되는 임의의 주제 또한 청구될 수 있어, 청구항 및 그 특징의 임의의 조합이 첨부된 청구항에서 선택된 인용에 관계없이 개시되고 청구될 수 있다.  청구될 수 있는 주제는 첨부된 청구항에 나타난 바와 같은 특징의 조합뿐만 아니라 청구항의 특징의 다른 임의의 조합을 포함하는데, 청구항에 언급된 각 특징은 청구항의 임의의 다른 특징 또는 다른 특징의 조합과 조합될 수 있다.  나아가, 임의의 실시예와 본 명세서에 서술되거나 도시된 특징은 별개의 청구항 및/또는 임의의 실시예나 본 명세서에 서술되거나 도시된 특징과의 또는 첨부된 청구항의 임의의 특징과의 조합에 청구될 수 있다.
본 발명에 따른 실시예에서, 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 컴퓨터 구현 방법은:
착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하는 단계;
다수의 후보 릴레이 서버들의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버들 중 하나의 릴레이 서버의 선택을 수신하는 단계; 및
발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
음성 통화 동안 발신자 장치와 착신자 장치가 다수의 임의의 후보 릴레이 서버들 없이 음성 통화를 직접 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭한다.
본 발명의 일실시예로, 방법은:
다수의 후보 릴레이 서버들 각각에서, 발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하는 단계; 및
하나 이상의 다수의 후보 릴레이 서버들에서, 장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하는 단계를 포함할 수 있다.
발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 후보 릴레이 서버로 전송된 통신 및 다수의 후보 릴레이 서버들로부터 수신된 통신 사이의 식별된 시간 지연에 기반하여 선택된 릴레이 서버를 선택할 수 있다.
다수의 후보 릴레이 서버들 중 하나의 릴레이 서버의 선택을 수신하는 단계는:
발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하는 단계;
수신된 시간 지연을 발신자 장치 및 착신자 장치 중 다른 장치로 포워딩하는 단계; 및
다른 장치로부터 선택된 릴레이 서버의 식별을 수신하는 단계를 포함할 수 있다.
본 발명에 따른 실시예에서, 방법은, 다수의 후보 릴레이 서버와는 상이한 통신 서버에서:
발신자 장치 및 착신자 장치의 외부 주소들을 수신하는 단계; 및
발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소들을 포워딩하는 단계를 포함할 수 있다.
본 발명에 따른 실시예에서, 방법은, 발신자 장치 및 착신자 장치 중 하나가 제1 네트워크로부터 제2 네트워크로 로밍한 후:
선택된 릴레이 서버에서 하나의 장치로부터 새로운 연결을 수신하는 단계;
선택된 릴레이 서버로부터, 하나의 장치의 새로운 외부 주소를 상기 하나의 장치에 식별하는 단계;
통신 서버에서 새로운 외부 주소를 수신하는 단계; 및
통신 서버로부터의 새로운 외부 주소를 발신자 장치 및 착신자 장치 중 다른 장치로 포워딩하는 단계를 포함할 수 있다.
본 발명에 따른 실시예에서, 방법은, 다수의 후보 릴레이 서버들로부터 구별되는 통신 서버들의 세트에서 통화 제안의 수신에 응답하여
현재 통신 연결이 발신자 장치 및 통신 서버들 중 하나 사이에 존재하는지 여부를 결정하는 단계;
통신 연결이 발신자 장치 및 통신 서버들 중 하나 사이에 존재하지 않는다면, 통화 제안과 관련된 푸시 알림을 발신자 장치로 송신하는 단계를 포함할 수 있다.
릴레이 동작 모드에서 음성 통화의 임시 수행은 오로지 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드를 개시하길 시도한 후에만 개시될 수 있다.
릴레이 동작 모드에서 음성 통화의 임시 수행은 발신자 장치 및 착신자 장치가:
피어-투-피어 동작 모드를 확립하고; 및
피어-투-피어 동작 모드가 후속하여 실패한 후에만 개시될 수 있다.
본 발명에 따른 실시예로, 방법은:
음성 통화 동안에, 다수의 후보 릴레이 서버들 중 제2 릴레이의 선택을 수신하는 단계를 포함할 수 있다.
통화 제안은 다수의 발신자 장치 또는 발신자 장치의 다수의 사용자를 식별할 수 있다.
본 발명에 따른 실시예에서, 비-일시적 컴퓨터-판독가능한 저장 매체는 프로세서에 의해 실행될 때, 컴퓨터로 하여금 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 방법을 수행하도록 야기하는 명령어를 저장할 수 있고, 상기 방법은:
착신자 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자 장치로부터 수신하는 단계;
다수의 후보 릴레이 서버들의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버들 중 하나의 릴레이 서버의 선택을 수신하는 단계; 및
발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
음성 통화 동안 발신자 장치와 착신자 장치가 다수의 임의의 후보 릴레이 서버들 없이 음성 통화를 직접 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭한다.
본 발명에 따른 실시예에서, 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템은:
다수의 통신 서버들 및 다수의 릴레이 서버들을 포함할 수 있고, 각각의 통신 서버는 프로세서에 의해 실행될 때, 통신 서버로 하여금:
착신자 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자 장치로부터 수신하고;
다수의 릴레이 서버들의 주소를 발신자 장치 및 착신자 장치로 송신하며; 및
발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 릴레이 서버들 중 하나의 릴레이 서버의 선택을 수신하도록 야기하는 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함하고,
각각의 릴레이 서버는 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하도록 야기하는 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함한다.
각 릴레이 서버의 컴퓨터-판독가능한 매체는 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하고; 및
장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하도록 야기하는 명령어를 또한, 저장할 수 있다.
발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 릴레이 서버로 전송된 통신 및 다수의 릴레이 서버들로부터 수신된 통신 사이의 식별된 시간 지연에 기반하여 선택된 릴레이 서버를 선택할 수 있다.
다수의 릴레이 서버들 중 하나의 릴레이 서버의 선택을 수신하는 것은:
통신 서버들 중 하나에서, 발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하는 것;
하나의 통신 서버로부터 수신된 시간 지연을 발신자 장치 및 착신자 장치 중 다른 장치로 포워딩하는 것; 및
하나의 통신 서버에서 다른 장치로부터, 선택된 릴레이 서버의 식별을 수신하는 것을 포함할 수 있다.
본 발명에 따른 실시예에서, 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템은, 통신 서버들 중 하나에서:
발신자 장치 및 착신자 장치의 외부 주소들을 수신하는 것; 및
발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소들을 포워딩하는 것을 포함할 수 있다.
본 발명에 따른 실시예에서, 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템은:
선택된 릴레이 서버의 컴퓨터-판독가능한 매체가, 프로세서에 의해 실행될 때, 제1 네트워크로부터 제2 네트워크로 발신자 장치 및 착신자 장치 중 하나가 로밍한 후,
선택된 릴레이 서버에서 하나의 장치로부터 새로운 연결을 수신하고;
하나의 장치의 새로운 외부 주소를 상기 하나의 장치에 식별하는 명령어를 또한, 저장하고; 및
각 릴레이 서버의 컴퓨터-판독가능한 매체는 프로세서에 의해 실행될 때, 통신 서버로 하여금:
새로운 외부 주소를 수신하고; 및
발신자 장치 및 착신자 장치 중 다른 장치로 새로운 외부 주소를 포워딩하도록 야기하는 명령어를 또한, 저장한다.
본 발명에 따른 실시예에서, 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템은:
발신자 장치 및 착신자 장치 각각에서 실행되고 명령어를 포함하는 클라이언트 로직을 포함할 수 있고, 상기 명령어는, 프로세서에 의해 실행될 때, 다수의 릴레이 서버들 각각에 대해, 프로세서로 하여금:
릴레이 서버로 바인딩 요청을 송신하고; 및
릴레이 서버로부터 확인 응답(acknowledgement)이 수신된다면, 바인딩 요청의 송신 및 바인딩 요청의 확인 응답의 수신 사이의 시간 지연을 측정하도록 야기한다.
클라이언트 로직은 명령어를 포함할 수 있고, 상기 명령어는, 프로세서에 의해 실행될 때, 프로세서로 하여금:
발신자 장치 및 착신자 장치 중 하나에서, 발신자 장치 및 착신자 장치 중 다른 장치에 의해 측정되는 하나 이상의 릴레이 서버 지연 시간을 수신하고; 및
발신자 장치 및 착신자 장치에서 측정된 전체 릴레이 서버 지연 시간에 기반하여 하나의 릴레이 서버를 선택하도록 야기한다.
각각의 통신 서버의 컴퓨터-판독가능한 매체는 명령어를 또한, 저장할 수 있고, 상기 명령어는, 프로세서에 의해 실행될 때, 통신 서버로 하여금, 통화 제안의 수신에 응답하여:
현재 통신 연결이 발신자 장치 및 통신 서버들 중 하나 사이에 존재하는지 여부를 결정하고; 및
발신자 장치와 통신 서버 사이의 통신 연결이 존재하지 않는다면, 통화 제안과 관련되는 푸시 알림을 발신자 장치로 송신하도록 야기한다.
릴레이 동작 모드에서 음성 통화의 임시 수행은 오로지 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드를 개시하길 시도한 후에만 개시될 수 있다.
릴레이 동작 모드에서 음성 통화의 임시 수행은 발신자 장치 및 착신자 장치가:
피어-투-피어 동작 모드를 확립하고; 및
피어-투-피어 동작 모드가 후속하여 실패한 후에만 개시될 수 있다.
통화 제안은 다수의 발신자 장치 또는 발신자 장치의 다수의 사용자를 식별할 수 있다.
본 발명에 따른 추가 실시예로, 하나 이상의 컴퓨터-판독가능한 비-일시적 저장매체는 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 실행시 동작가능한 소프트웨어를 포함한다.
본 발명에 따른 추가 실시예로, 시스템은 하나 이상의 프로세서; 및 프로세서에 결합되며 프로세서에 의해 실행가능한 명령어들을 포함하는 적어도 하나의 메모리를 포함하며, 상기 프로세서는 명령어들을 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작가능하다.
본 발명에 따른 추가 실시예로, 바람직하게는 컴퓨터-판독가능한 비-일시적 저장 매체를 포함하는 컴퓨터 프로그램 제품이 데이터 처리 시스템에서 실행시 본 발명 또는 상술한 실시예들 중 임의의 것에 따른 방법을 수행하도록 동작가능하다.
본 발명의 내용 중에 포함되어 있다.
도 1은 일부 실시예에 따른, VOIP 통화를 확립하고 관리하기 위한 시스템의 블록도이다.
도 2a-b는 일부 실시예에 따른, VOIP 통화를 확립하고 관리하는 방법을 도시하는 타임 시퀀스 다이어그램이다.
도 3은 일부 실시예에 따른, VOIP 통화의 확립 및 관리를 지원하기 위한 장치의 블록도이다.
다음의 설명은 통상의 기술자가 본 명세서에 기술되는 실시예들을 생성하고 사용하는 것을 가능하게 하도록 제시된다. 개시된 실시예들에 대한 다양한 수정은 통상의 기술자에게 자명할 것이며, 본 명세서에 정의된 일반적인 원칙은 본원 발명의 범위로부터 벗어남이 없이 다른 실시예들 및 애플리케이션에 적용될 수 있다.
일부 실시예에서, 시스템, 장치 및 방법은 2개의 장치 사이에서 VOIP(Voice Over Internet Protocol) 통신 세션(예컨대, VOIP 통화)을 확립하고 관리하기 위해 제공된다. VOIP 연결은 동적이며, 이는 필요에 따라 또는 원하는 바에 따라 상이한 모드에서 앞뒤로 스위칭할 수 있음을 의미하며, 가령 릴레이 모드에서 장치들의 디지털 오디오 통신은 다른 엔티티(예컨대, 릴레이 서버)를 통해 릴레이되고, 피어-투-피어(P2P) 모드에서 장치들은 직접(즉, 릴레이 엔티티 없이) 통신한다.
예컨대, 장치들은 예컨대, 동일한 Wi-Fi® 액세스 포인트로 연결됨으로써 피어-투-피어 연결을 확립할 수 있다. 하지만, 하나 또는 두 장치 모두가 이동되고 상이한 네트워크(예컨대, 상이한 Wi-Fi 네트워크 또는 액세스 포인트, 모바일 캐리어의 네트워크)로 연결되고 상이한 주소를 채택할 때, 그들은 적어도 (그들이 가능하다면) 피어-투-피어 연결을 재확립할 때까지 (임시로) 릴레이 엔티티를 통해 통신할 수 있다. 장치는 텍스트나 다른 오디오가 아닌 컨텐츠를 교환하기 위한 시그널링 목적(예컨대, P2P 연결을 협상하거나 재협상하거나 릴레이 엔티티를 식별하는 것) 및/또는 다른 목적을 위해 통화 전반에 걸쳐 시스템과의 연결을 유지할 수 있다.
본 명세서에 제시되는 실시예들은 VOIP 통화를 지원하도록 구현되는 것으로 기술되지만, 시스템, 방법 및 장치는 예컨대, 인터넷 프로토콜을 이용하지 않기 때문에 VOIP 통화로서 엄격히 자격을 갖추지 않는 다른 형태의 디지털 비디오 및 오디오(예컨대, 음성) 통신에 적용될 수 있다.
일부 실시예로, 본 명세서에 기술된 방법은 모바일 및/또는 고정형 컴퓨팅 및/또는 통신 장치(예컨대, 스마트폰, 태블릿 컴퓨터)에 설치되는 통신 애플리케이션으로 통합될 수 있다. 일부 특정 실시예에서, 애플리케이션은, VOIP 통화에 추가로 IEEE 802.11 표준(예컨대, Wi-Fi® 연결)에 따르는 데이터 통신 채널을 통해 텍스트, 이미지, 비디오, 음성 기록 및/또는 다른 정보가 교환되는 통신 애플리케이션이다. 예컨대, 애플리케이션은 WhatsApp Inc.에 의해 제공되는 WhatsApp® 메신저 애플리케이션일 수 있다.
도 1은 일부 실시예에 따른, VOIP 통화를 확립하고 관리하기 위한 시스템의 블록도이다.
이러한 실시예에서, 통신 시스템(120)의 사용자들은 동일한 또는 상이한 운영 시스템(예컨대, Android, BlackBerry, iOS, Nokia S40, Symbian, Windows Phone)을 동작시키는 다양한 휴대용 통신 장치를 동작시킨다. 따라서, 장치들(102, 104)은 상이한 사용자들에 의해 동작되고, 기능, 애플리케이션, 유틸리티 등의 관점에서 유사하게 또는 상이하게 구성될 수 있다. 하지만, 그들 각각은 통신 시스템(120)에 의해 호스팅되는 공통의 통신 애플리케이션의 버전을 실행한다.
본 명세서에 기술되는 VOIP 또는 일부 다른 형태의 디지털 오디오 통신에 참여하는데 사용될 때, 장치들(102, 104) 중 하나는 발신자 (또는 발신측)에 의해 동작되고, 따라서 발신자 장치로 지칭되는 한편, 다른 장치는 착신자 (또는 착신측)에 의해 동작되고 따라서 착신자 장치로 지칭될 수 있다.
장치들(102, 104) 사이의 예시적인 디지털 오디오 통신은 (피어-투-피어 모드에서) 직접적이거나 (릴레이 모드에서) 간접적일 수 있다. 후자의 경우, 통신 시스템(120) 내에 있거나 그와 연관되는 릴레이 서버는 각 장치로부터 패킷이나 다른 통신 요소를 수신하고 그들을 다른 장치로 또는 다른 장치를 향해 릴레이한다.
시스템(120)은 동시에 다수의 사용자들에 의해 사용될 수 있거나, 이러한 애플리케이션이나 서비스의 적어도 서버 부분이 동시에 사용될 수 있는 통신 애플리케이션이나 서비스를 호스팅하기 위한 데이터 센터, 컴퓨터 네트워크 또는 다른 컴퓨팅 자원의 협력 집합이다. 전술한 바와 같이, 일부 구현예에서 애플리케이션은 하나 이상의 다른 사용자들(예컨대, 장치(104))에 의해 동작되는 통신 장치들로 오고 가는 그의 또는 그녀의 통신 장치(예컨대, 장치(102))로부터의 텍스트의 인스턴트 메시징, 오디오 기록, 사진, 비디오 및 멀티미디어뿐만 아니라 VOIP 기능을 사용자에게 제공한다.
시스템(120)에 의해 호스팅되는 통신 애플리케이션은 장치들(102, 104)과 호환가능하고 장치의 네이티브 운영 시스템하에 실행되는 클라이언트 로직을 포함한다. 하나의 타입의 장치를 동작시키고 하나의 통신 서버 제공자에게 가입된 사용자는 다른 타입의 장치를 동작시키고 다른 통신 서비스 제공자에게 가입된 사용자들과 메시지를 교환하고 VOIP 통화에 참여할 수 있다. 따라서, VOIP 발신자 또는 발신측은 하나의 장치 플랫폼을 사용할 수 있는 한편, 착신자 또는 착신되는 측은 상이한 플랫폼을 사용한다.
일부 실시예로, 발신자 또는 발신되는 측은 POTS(Plain Old Telephone Service)에 결합된 전통적인 랜드-라인 전화를 사용하여 통화에 참여할 수 있다. 이러한 실시예에서, 시스템(120)의 컴포넌트는 전통적인 전화 연결에 대한 엔드포인트로서 역할을 하고, 디지털-투-아날로그 및 아날로그-투-디지털 변환을 제공한다.
통신 서버(122)는 사용자의 시스템과의 연결을 호스팅하고 사용자들 사이의 통신의 교환을 용이하게 하는 시스템(120)의 전단 컴포넌트(front-end component)이다. 서버(122)는, 하나 이상의 다른 사용자들을 위해 개별 사용자들로부터의 실시간 텍스트 메시지 및 채팅 세션 통신을 수신할 수 있기 때문에 "채팅" 서버로 지칭될 수 있다. 통신 서버(122)에 의해 처리되는 일부 메시지들은 "채팅" 메시지로 지칭될 수 있으나, 메시지들은 텍스트 컨텐츠로 제한되지 않고, 그 대신 (혹은 추가로) 프로토콜-레벨 메시지뿐만 아니라 임베디드되거나, 첨부되거나 또는 연관(예컨대, 링크)되는 미디어 컨텐츠를 포함할 수 있다.
통신 서버(122)는 또한, 시스템(120)에 연결된 장치들 사이의 VOIP 통화의 확립 및 관리를 돕는다. 후술하는 바와 같이, 예컨대 그들은 관련 통화 파라미터(예컨대, 어떤 코덱이나 인코딩 방식을 사용할지, 어떤 샘플링 속도를 적용할지)를 확립하는 것을 돕거나 릴레이할 수 있고, 통화에 참여되거나 참여하는 장치들이 오디오가 아닌 데이터(예컨대, 그들의 네트워크 주소, 현재 상태, 통화의 수락이나 거절)을 전달할 수 있는 경로를 제공하며, 필요한 경우 하나의 모드에서 다른 모드로 스위칭하는 것을 돕는 등을 할 수 있다.
통신 서버(122)는 또한, 시스템(120)의 다른 컴포넌트들로의 포털로서의 역할을 할 수 있다. 따라서, 사용자가 다른 사용자의 상태를 요청하거나 프로필이나 다른 정보를 업데이트할 때, 예컨대, 그의 또는 그녀의 행위는 그가 또는 그녀가 연결된 통신 서버에 의해 적절한 시스템 컴포넌트로 라우팅될 수 있다.
예시적으로, 사용자가 시스템(120)과 온라인이고, 애플리케이션이 그의 또는 그녀의 장치에서 실행되고 있는 한, 연결이나 세션은 VOIP 통화 중인 기간을 포함하여 장치 및 통신 서버(122) 사이에서 유지될 수 있다. 사용자가 장치에서 애플리케이션을 닫거나 통화를 종료할 때, 그의 또는 그녀의 연결은 일부 시간(예컨대, 5분, 15분) 동안 지속될 수 있다.
상태 서버(124)는 사용자들 및/또는 사용자들의 장치의 상태(state) 또는 상황(status)을 관리한다. 따라서, 상태 서버는 적용가능한 선호도(예컨대, 선호되는 가청 및/또는 시작 경고, 다른 사용자들에게 디스플레이되는 상태 메시지), 장치 타입/모델, 프로필 사진 등을 포함하는 사용자의 프로필의 일부 또는 전부를 저장한다. 사용자와 관련되는 상태 서버에 의해 관리되는 일부 상태 정보는 오로지 사용자의 시스템(120)과의 현재 연결의 지속시간 동안에만 지속될 수 있고; 다른 정보는 무한정 지속될 수 있다. 상태 서버(들)(124)는 또한, 디지털 오디오 통화(예컨대, VOIP 통화)의 타겟이나 잠재 착신자의 자격을 결정하거나 결정하는 것을 도울 수 있다.
또한, 상태 서버(124)는 필요한 경우 사용자의 장치, 가령 사용자의 서비스 제공자를 통해 장치와 통신하는데 필요한 장치 토큰으로 메시지를 푸시하기 위해 필요한 정보를 저장할 수 있다. 이 장치 토큰은 추가로 또는 대안으로 "장치 URI(Uniform Resource Identifier)", "등록 아이디", "PIN(Personal Identification Number)"으로 알려지거나 일부 다른 명칭을 가질 수 있다.  이 토큰은 특정 장치 또는 특정 사용자에 고유할 수 있다. 일부 상황에서, 가령, 발신자 장치가 이미 시스템(120)에 (예컨대, 통신 서버(122)를 통해) 연결되지 않은 때에 푸시 메시지가 그것을 깨우기 위해 전달될 수 있고, 시스템으로 연결되도록 야기할 수 있으며, 그 후 통화 시도 또는 제안이 전달될 수 있으며, 이 토큰은 메시지를 전달하기 위해 해당 서비스 제공자에 의해 요구될 수 있다.
릴레이 서버(126)는 발신자 및 착신자 장치 사이에서 디지털 오디오를 릴레이하기 위해 VOIP 통화의 릴레이 동작 모드 동안에 사용된다. 일부 실시예에서, 릴레이 동작 모드는 피어-투-피어 모드가 이용가능하지 않을 때에만 수행된다.  릴레이 모드 중에 통신 장치들은, 가령 하나의 Wi-Fi 네트워크에서 다른 네트워크로, Wi-Fi 네트워크에서 모바일 캐리어의 네트워크로 (또는 그 역의 경우) 등과 같이 특히 장치들 중 하나가 네트워크를 변경할 때마다, 피어-투-피어 모드의 활성화를 주기적으로 또는 정기적으로 시도할 수 있다.
통신 서버, 상태 서버, 릴레이 서버 및/또는 다른 서버 중 임의의 수(예컨대, 하나 이상)가 시스템(120) 내에 배치될 수 있다. 서버들(122, 124, 126)의 기능은 다른 실시예에서, 가령 더 적은 수의 컴포넌트로 합병되거나 추가 컴포넌트들 사이에서 분할되는 것과 같이 상이하게 분산될 수 있다.
시스템(120)의 서버는 그들에게 귀속된 기능을 수행하기에 적절한 분리된 하드웨어 자원(예컨대, 프로세서, 저장소, 통신 인터페이스) 및 소프트웨어 자원(예컨대, 프로그램 코드, 데이터)을 포함하는 분리된 물리적 컴퓨터 시스템일 수 있다. 일부 대안적 실시예로, 임의의 또는 모든 서버는 하드웨어 및/또는 소프트웨어 자원을 공유하는 가상의 컴퓨팅 기계일 수 있다.   따라서, 상이한 기능 (또는 동일한 기능)을 수행하는 다수의 소프트웨어 서버 모듈이 시스템(120) 내의 하나의 서버 컴퓨터에 상주할 수 있다.
네트워크(들)(150)는 시스템(120) 및 사용자의 장치들 사이와 상이한 사용자 장치들 사이의 통신 경로를 제공하고, 데이터 및/또는 음성 통신 채널을 포함할 수 있다. 데이터 통신을 운반하기 위해서, 네트워크(150)는 인터넷, 하나 이상의 인트라넷, 로컬 영역 네트워크(Local Area Networks; LANs), 광대역 네트워크(Wide Area Networks; WANs) 및/또는 그 성질이 유선 및/또는 무선일 수 있는 다른 점-대-점(point-to-point) 분산형 연결을 포함할 수 있다. 음성 통신을 운반하기 위해서, 네트워크(들)(150)는 가령 GSM(Global System for Mobile Communications), EDGE(Enhanced Data Rates for GSM Evolution), LTE(Long-Term Evolution), CDMA(Code Division Multiple Access), 및 EV-DO(Evolution-Data Optimized) 등과 같은 실질적으로 임의의 무선 기술을 구현하고 상이한 전기통신 서비스 제공자에 의해 관리되는 유선 및/또는 무선 음성 통신 링크를 포함할 수 있다.
따라서, 네트워크(150)는 도 1에 도시되지 않는 다양한 엔티티, 가령 라우터, 게이트웨이, 스위치, 기지국(예컨대, 무선 액세스 포인트, 노드 B들, Evolved 노드 B들), 및/또는 데이터 및/또는 디지털 음성 연결을 확립, 관리, 스위칭하거나 아니면 조작하기 위한 다른 장비를 포함할 수 있다.
도 2a-b는 일부 실시예에 따른 VOIP 통화를 확립하고 관리하는 방법을 도시하는 타임-시퀀스 다이어그램을 형성한다.
이러한 실시예에서, 발신자는 하나 이상의 다른 당사자들과의 VOIP 및/또는 다른 실시간 디지털 오디오 통신에 대한 지원을 제시하는 통신 애플리케이션을 동작하기 위해 제1 클라이언트 장치(예컨대, 스마트폰, 컴퓨팅 장치)를 사용한다. 발신자(210)는 발신자 및/또는 발신자의 장치를 표현한다. 착신자는 동일한 애플리케이션이나 호환가능한 애플리케이션을 동작하기 위해 제2 클라이언트 장치를 사용하고, 착신자(240)는 착신자 및/또는 착신자의 장치를 표현한다.
일부 구현예에서, 통화는 둘보다 많은 당사자들 간에 확립될 수 있다. 예컨대, 발신자로부터의 통화 제안은 다수의 구별되는 착신자들 (또는 착신자 장치들)을 식별할 수 있거나, 착신자들의 그룹이나 장치들의 그룹을 식별하는 그룹 식별자를 포함할 수 있다.
통신 애플리케이션은 하나 이상의 통신 서버(예컨대, 채팅 서버), 릴레이 서버 및/또는 다른 컴포넌트를 포함하는 애플리케이션 호스트 시스템(예컨대, 도 1의 시스템(120))에 의해 호스팅되거나, 동작되거나, 그렇지 않다면 관리된다. 일부 구현예로, 통신 서버(220)는 애플리케이션 호스트 시스템의 일부 다른 컴포넌트일 수 있다.  또한, 도시된 방법은 발신자 및 착신자 둘 모두와 통신하기 위해 하나의 통신 서버를 사용하는 것으로 기술되지만, 다른 방법들에서 둘 이상의 협력하는 통신 서버가 사용될 수 있고, 이들 각각은 당사자들 중 하나와의 연결을 호스팅한다.
릴레이 서버(230)는 애플리케이션 호스트 시스템의 다른 컴포넌트이거나, 또는 본 명세서에 기술되는 애플리케이션 호스트 시스템과 협력적으로 작용하는 다른 엔티티에 의해 제공된다.
발신자(210)로부터 착신자(240)로 향하는 VOIP 통화의 개시에 앞서, 적어도 발신자 장치는 애플리케이션 호스트 시스템(예컨대, 통신 서버(220))에 연결된다. 예컨대, 발신자는 착신자(240)를 포함하거나 포함하지 않을 수 있는 하나 이상의 다른 사용자와 텍스트(예컨대, 채팅) 메시지를 교환하고 있을 수 있다. 따라서, 발신자가 통화를 개시하기 전에 그는 시스템에 연결해야 한다. 그는 그의 신원을 확인하기 위해 수동으로 로그인할 수 있거나, 또는 그의 장치가 자동으로 그를 로그인시킬 수 있다.  예시적으로, 사용자의 장치는 사용자가 애플리케이션을 시작하거나 통화를 개시할 때 애플리케이션 호스트 시스템으로의 연결을 자동으로 열 수 있다.
유사하게, (착신자가 통화를 수락한다고 가정하면) 통화가 착신자(240)에게 연결되기 전에 그녀 또는 그녀의 장치는 로그인해야 할 것이다. 따라서, 당사자들 모두가 VOIP 통화에 참여하기 위해 애플리케이션의 등록된 사용자들이고, 시스템에 연결되어야 하지만, 그들의 장치들은, VOIP 통화를 배치하거나 제안된 통화를 수락하기 위해 필요한 애플리케이션을 조작하지 않고 그들에 의한 추가 행위 없이 자동으로 연결을 만들 수 있다.
따라서, 시간(250)에 발신자는 애플리케이션 내의 컨트롤을 활성화하고, 이는 발신자가 착신자에게 실시간 디지털화 또는 디지털 오디오 통화를 개시하도록 허용한다. 예시적으로, 컨트롤은 연락처들의 리스트 또는 착신자에 대응하는 연락처 카드 내에, 착신자로부터 수신되거나 착신자에게 전송되는 메시지 내에 또는 메시지와 연관되어, 또는 일부 다른 컨텍스트로 제공될 수 있다. 통화 제안은 가령, 애플리케이션 호스트 시스템에 알려진 식별자(예컨대, 전화번호, 전자 메일 주소)를 가지고 발신자 및 착신자 (또는 그들의 장치들)을 식별하고, 발신자 장치에 의해 지원되는 오디오 파라미터(예컨대, 코덱(들), 샘플링 속도), 발신자(210)의 로컬 또는 내부 주소 (및 가능하다면 포트) 및/또는 다른 정보를 제공한다.
그에 응답하여, 통신 서버(220)는 통화 제안을 확인하고 필요하다면 요청된 통화 릴레이 동작 모드에서 사용하는데 이용가능한 릴레이 서버들의 세트(도 2a-b의 릴레이 서버(230)를 포함함)를 식별한다. 일부 실시예로, 모든 존재하는 릴레이 서버가 식별될 수 있고; 다른 실시예에서 모든 서버들의 서브세트는, 예컨대, 발신자(210) 및/또는 착신자(240)의 위치에 기반하여 식별될 수 있다. 릴레이 세부사항은 예시적으로 적어도 하나의 주소(예컨대, 그리고 포트), 가령 IP(Internet Protocol) 주소 및 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 포트, 및 애플리케이션 호스트 시스템에 의해 생성되고 발신자(210)가 릴레이 서버(들)를 사용하는 것이 인증됨을 확인하는 릴레이 토큰을 포함한다. 이 토큰은 전술한 장치 토큰 (또는 장치 URI)와 상이할 수 있음을 유의해야 한다.
릴레이 세부사항을 발신자(210)에게 제공하는 것에 추가로, 통신 서버(220)는 또한, 통화 제안 및 동일하거나 유사한 릴레이 세부사항을 착신자(240)에게 또는 착신자(240)로 향하도록 포워딩한다. 착신자가 애플리케이션 호스트 시스템에 현재 연결된다면, 통화 제안이 전달되고 착신자 장치는 시간(252)에 벨이 울리거나 (또는 어떻게 구성되는지에 따라 윙윙(buzz)거리거나, 진동하거나 또는 일부 다른 경고를 제시)할 수 있다.
하지만, 착신자(240)가 시스템에 현재 연결되지 않았다면, 푸시 알림은 통화 제안이 전달될 수 있도록 애플리케이션으로 하여금 시스템을 시작하고 시스템에 연결되도록 야기하기 위해 착신자 장치로 전송될 수 있다. 알림은 예컨대, GCM(Google Cloud Messaging) 또는 APNS(Apple Push Notification Service)를 통해 장치의 운영 시스템의 제공자에 의해 전달되거나 포워딩될 수 있다. 착신자(240)에게 제공되는 릴레이 세부사항은 발신자(210)에게 식별되었던 동일한 릴레이 서버를 식별할 수 있거나 이용가능한 릴레이들의 일부 다른 그룹을 식별할 수 있다. 착신자 장치는 또한, 착신자 장치가 릴레이 서버(230)를 사용하도록 인증하는 릴레이 토큰을 수신한다.
착신자는 통화 제안을 거절하거나 무시할 수 있고, 이 경우 거절은 (가능하다면 거절에 대한 이유와 함께) 통신 서버(220)를 통해 발신자에게 반환되지만, 도 2a-b에 도시된 방법은 그녀가 제안된 통화를 수락하거나 수락할 것임을 가정한다.
한편, 시간(252)에 또는 그 즈음에 발신자 및 착신자의 장치는 릴레이 서버(230)를 포함하는, 그들에게 식별된 릴레이 서버들의 일부 또는 전부와 바인딩하며, 이는 릴레이 서버(들)로 하여금, 그들이 릴레이 동작 모드를 이용하는 경우에 당사자들 간의 디지털 오디오 통신을 릴레이하는데 사용하기 위한 엔드포인트를 할당하도록 야기한다.
릴레이 서버들은 (가능하다면) 바인딩을 확인하고, 대안적으로 그것의 재귀 또는 공용 주소로도 알려질 수 있는 장치의 외부 주소를 발신자 장치 및 착신자 장치 각각으로 제공한다. 이러한 실시예에서, 개별 장치들은 (예컨대, 그들의 로컬 네트워크 내의) 그들 자신의 로컬 또는 내부 주소를 이미 알고 있고, 이 주소들을 애플리케이션 호스트 시스템(예컨대, 통신 서버(220))으로 제공할 수 있으나, 그들은 그들의 외부 주소들을 알고 있지 않을 수 있다.
도시된 방법에서, 내부 주소는 장치의 로컬 네트워크 내에서 (예컨대, 네트워크 주소 변환 또는 NAT 엔티티의 일측 상에서) 사용되는 한편, 그들은 이러한 네트워크들의 외부에 있는 (예컨대, NAT 엔티티의 다른/공용측 상의) 그들의 외부 주소에 의해 알려진다. 릴레이 서버(들)(230)와 통신함으로써, 장치들은 그들의 외부 주소를 습득한다.
그것의 외부 주소를 수신하면, 발신자(210)는 그 주소를 통신 서버(220)로 보고하고, 통신 서버(220)는 주소를 착신자(240)에게 포워딩한다. 이 외부 주소와 함께, 발신자는 결합된 릴레이 서버(들)(230)에 관련되는 지연시간 정보를 전송하고, (통신 서버는 포워딩한다).
구체적으로, 도시된 실시예에서, 릴레이 동작 모드 동안에 당사자들이 사용하기 위한 다수의 릴레이 서버들 중 하나를 선택하기 위해, 그들 (또는 그들 중 하나는) 릴레이들로 전송되는 통신(예컨대, 바인딩 요청)에 수반되는 지연시간 및 릴레이들의 응답(예컨대, 릴레이들의 확인 응답)에 기반하여 단일 릴레이 서버를 선택한다.
예컨대, 발신자는 각 릴레이 서버에 대한 발신자의 요청 및 그들의 응답에 수반되는 지연 시간을 계산할 수 있고, (발신자의 외부 주소와 함께) 응답한 각각의 서버에 대한 관측된 지연 시간을 착신자에게 보고할 수 있다. 착신자는 각 서버에 대한 전체 지연 시간을 생성하기 위해 발신자에 의해 보고된 값에 착신자가 관측한 지연 시간을 추가하고, 이후 가장 낮은 전체 지연 시간을 갖는 릴레이 서버를 선택한다. 도 2a에 표시되는 것처럼, 착신자는 착신자가 통화 제안을 수신받은 후까지는 착신자의 바인딩 요청을 전송하고 지연 시간의 측정을 시작하지 않을 수 있는 한편, 발신자는 발신자가 릴레이 서버 세부사항(예컨대, 그들의 주소)을 알자마자 그리할 수 있다.
한쪽 또는 양 당사자는 통화 전반에 걸쳐 또는 제한된 기간 동안 응답하지 않은 릴레이 서버로 요청을 전송하는 것을 계속할 수 있다. 당사자가 심지어 통화가 확립된 후에도 지연시간 값을 획득하는 것을 계속할 수 있기 때문에, 선택된 릴레이 서버는 통화가 확립되기 전 및/또는 통화 중에 변경될 수 있다.
따라서, 당사자들의 장치들은 애플리케이션 호스트 시스템이 그들을 위해 릴레이 서버를 선택하게 하는 대신에 릴레이 서버를 선택하며, 이를 매우 신속하게 할 수 있다. 다른 구현예에서, 다른 방법들이 릴레이 서버들 중 하나를 선택하는데 적용될 수 있고, 지연시간이나 타이밍 정보를 고려하거나 고려하지 않을 수 있다.
시간(256)에서, 착신자는 제안된 VOIP 통화 및 수락 메시지, 착신자 장치의 외부 주소를 수락하고, 선택된 릴레이 서버의 식별자(예컨대, 주소)는 통신 서버(220)로 송신된다. 수락 메시지의 일부로서, 착신자 장치는 발신자 장치가 이미 제공한 것(예컨대, 코덱(들), 샘플링 속도, 주소/포트)에 대응하는 그것의 동작 파라미터를 전송한다. 오로지 하나의 릴레이 서버가 당사자들에게 제공된다면, 착신자는 선택된 릴레이 서버의 식별을 생략할 수 있거나, 또는 하나의 서버의 선택이나 수락을 단순히 확인할 수 있다. 다수의 릴레이 서버가 이용가능하고, 착신자가 통화 제안을 수락할 시간까지도 통화를 위해 하나의 릴레이 서버를 선택하지 않는다면, 선택된 릴레이 서버의 식별자는 나중에 송신될 수 있다.
일부 실시예에서, 통신 서버(220) 또는 일부 다른 시스템 컴포넌트는 하나 또는 양자 모두의 장치에 의해 통화를 위해 사용될 수 있거나 사용될 통화 파라미터들을 결정할 수 있다. 당사자의 장치에 대한 파라미터들의 선택은 장치에 의하거나, 장치의 현재 구성에 의하거나, 및/또는 다른 인자에 의해 이전에 (성공적으로) 구현된 파라미터들에 따를 수 있다.
통화 수락이 있은 후에 착신자(240)는 곧 피어-투-피어(P2P) 및 릴레이 동작 모드들 중 어느 하나 또는 둘 모두의 시작을 시도한다.
도시된 방법에서, 둘 모두의 장치들은, 부분적으로는 그들이 이미 릴레이 서버(230)와의 연결을 열었지만, 아직 P2P 연결성을 확립하거나 확인할 수는 없기 때문에, 우선 릴레이 동작 모드로 전환한다. 하지만, 일부 다른 실시예에서 장치들은 우선 P2P 연결 및 P2P 동작 모드의 확립을 시도할 수 있다.
하지만, 심지어 릴레이 동작 모드를 시작하는 동안에도 착신자(240)는 발신자(210)와의 연결의 확인을 시도하는 것을 시작한다. 예시적으로, P2P 연결은 지속가능한 경로가 존재하는지 여부를 결정하기 위해 하나의 장치가 알고 있는 (예컨대, 내부 및/또는 외부의) 주소들 중 임의의 것 또는 전부에서 하나의 장치가 다른 장치에 연락하는 것을 시도하는 것을 수반할 수 있다. 임의의 수의 연결 요청(예컨대, 10)이 실패한다면, 연결성의 부족이 추정될 수 있고, (체크는 적어도 일부 시간 동안에 종료된다).
두 장치가 다른 장치에 연락할 수 있다면, 그들은 P2P 연결의 협상을 시작할 수 있다. 도시된 방법에서, 협상은 모두 한 번에 수행되는 대신에 (예컨대, 각 당사자의 장치가 다른 장치의 영구 주소(들)를 인식하게 됨에 따라) 점진적으로 수행된다.
한편, 통신 서버(220)는 수락 메시지, 착신자의 외부 주소, 및 선택된 릴레이 서버의 신원(예컨대, 주소)을 발신자(210)에게 포워딩한다. 이제 발신자 장치는 또한, 착신자(240)와의 P2P 동작 모드의 개시를 협상 (또는 협상 시도)를 하는 한편, 릴레이 서버(230)와의 디지털 음성 데이터 통신을 시작할 수 있다.
따라서, 시간(260)에 또는 그 즈음에, 발신자 및 착신자는 릴레이 동작 모드에서 그들의 VOIP 통신을 시작할 수 있지만, 서로와의 연락을 시도함으로써 P2P 모드의 확립을 시도하는 것을 계속할 수 있으며, 임의의 필요한 통신 파라미터를 교환할 수 있다. 그들이 성공한다면, 그들은 선호되는 모드로서 그 동작 모드로 자동 스위칭할 것이다. 하지만, VOIP 통화는 또한, 비대칭적일 수 있고, 이는 하나의 당사자가 하나의 모드(예컨대, P2P)에서 데이터를 송신할 수 있는 한편, 다른 당사자는 다른 모드(예컨대, 릴레이)에서 송신할 수 있음을 의미한다.  이는 오로지 과도 기간 동안, 상당한 기간 동안 또는 전체 통화 동안에 발생할 수 있다.
일부 실시예에서, 나중의 시간에 당사자들의 장치들 중 하나 또는 둘 모두는 이동될 수 있고, 이 경우 그들은 상이한 네트워크로 연결되며, 이는 그들의 내부 및 외부 주소가 변경될 가능성이 높음을 의미한다.
도 2b에 도시되는 것처럼, 예컨대 시간(270)에서 발신자 장치는 이동하거나 (이동되고) 상이한 Wi-Fi 네트워크, 모바일 캐리어 네트워크, 또는 다른 네트워크로 연결한다. 따라서, 발신자 장치는 새로운 바인딩 요청을 릴레이 서버(230) (및/또는 다른 릴레이 서버)로 전송하고, 릴레이 서버는 바인딩을 확인하고 장치의 새로운 외부 주소를 식별한다. 새로운 바인딩 요청은 시스템에 의해 발신자(210)에게 이전에 제공되었던 것과 동일한 토큰을 포함할 수 있거나, 또는 발신자 장치는 새로운 바인딩 요청 전에 새로운 토큰을 획득할 수 있다.
발신자(210)는 이후 그것의 새로운 외부 주소 (및 서버에 이미 알려지지 않았다면 그것의 내부 주소)를 통신 서버(220)로 포워딩하며, 통신 서버는 새로운 주소(들)를 착신자(240)에게 포워딩한다. 발신자(210)는 또한, 그것의 새로운 주소(들)를 사용하여 릴레이 동작 모드의 새로운 반복을 개시한다.
시간(272)에 발신자에 대한 새로운 외부 주소를 수신하면, 착신자는 릴레이 동작 모드로 폴백(fall back)할 수 있다. 특히, 당사자들이 P2P로 통신해왔고 착신자가 P2P 연결을 통해 패킷의 수신을 중단한다면, 그것은 릴레이 서버(230)를 통해 VOIP 통화를 위한 릴레이 동작 모드를 즉시 시작할 것이지만, 또한, P2P 연결의 재협상을 시도할 것이다. 이것이 실패한다면, 당사자들은 릴레이 동작 모드에 잔류할 수 있다.
한편, 발신자(210)는 착신자(240)의 알려진 주소들을 사용하여 그것의 새로운 주소(들)로부터 릴레이 모드의 개시를 시도하는 것을 시작한다. 성공적이라면, 그들은 P2P 모드의 동작을 협상할 것이다.
일부 실시예로, 발신자(210) 및/또는 착신자(240)의 주소들은 각각에게 주어져야 하는 선호도를 반영하기 위해 장치 자체에 의해 또는 일부 다른 엔티티에 의해 우선순위화된다. 예컨대, Wi-Fi 주소들은 일반적으로 셀룰러 주소들보다 높은 우선순위가 부여되고, 내부 주소는 (당사자들의 장치들이 동일한 네트워크에 있다면) 외부 주소에 앞서 우선순위화된다.
하지만, 가령 하나의 장치가 네트워크를 변경하는 것과 같이 통화가 방해되면, 그것은 주소가 Wi-Fi 네트워크 또는 셀룰러 네트워크에 있는지와 무관하게 임시로 가장 높은 우선순위를 그것의 새로운 외부 주소에 부여한다.
VOIP 통화의 확립 및/또는 관리는 하나의 시나리오나 환경에서 다른 시나리오나 환경마다 다양할 수 있고, 따라서, 이러한 작업에 수반되는 통신의 컨텐츠, 포맷 및 순서는 하나의 실시예에서 다른 실시예마다 상이할 수 있음이 이해되어야 한다. 특히, 임의의 주어진 엔티티는 도 2a-b에 표시된 다양한 통신 또는 유사한 통신을 상이한 타이밍으로 전송하거나 수신할 수 있고, 일부 통신은 서로와 교차하거나 경로가 교차할 수 있다.
예컨대, 주어진 장치가 백그라운드 프로세싱을 수행할 수 없다면, (가령 통화가 수락되지 전 착신자(240)에게 기인되는 것들과 같은) 일부 행위는 도 2a-b에 표시되는 것보다 나중에 수행될 수 있다.
도 2a-b의 방법의 일부 구현예에서, 각각의 당사자의 장치는 통신 서버(220)와의 지속적인 연결(예컨대, TCP 연결)을 유지하지만, 디지털 음성 통신은 릴레이 및 P2P 모드 중 어느 하나 또는 둘 모두에서 무연결 프로토콜(예컨대, UDP)을 통해 수행된다. 하지만, 장치는 UDP가 이용가능하지 않거나, UDP 연결의 확립 시도가 실패하거나, 또는 일부 다른 이유가 있다면, 디지털 음성 통신을 위해 TCP나 일부 다른 적절한 프로토콜을 이용할 수 있다.
일부 실시예에서, 통화 품질은 모니터링되며, 품질이 기결정된 임계치보다 낮게 떨어진다면, 하나의 동작 모드에서 다른 모드로 스위칭하는 것을 트리거할 수 있다.
도 3은 일부 실시예에 따른 VOIP 통화의 확립 및 관리를 지원하기 위한 장치의 블록도이다. 다른 실시예에서, 장치(300)는 이러한 활동을 지원하기 위한 다수의 독립형 또는 반독립형 컴포넌트, 가령 통신 서버, 릴레이 서버, 상태 서버 및/또는 애플리케이션 호스트 시스템의 다른 컴포넌트를 포함할 수 있다.
도 3의 장치(300)는 프로세서(들)(302), 메모리(304) 및 하나 이상의 전기적, 광학적 및/또는 자기적 저장 컴포넌트를 포함할 수 있는 저장소(306)를 포함한다. 장치(300)는 키보드(312), 포인팅 장치(314) 및 디스플레이(316)에 (영구적으로 또는 임시로) 결합될 수 있다. 장치는 명확성을 위해 생략된 다른 컴포넌트들, 가령 유선 및/또는 무선 통신 링크를 통해 통신하기 위한 통신 모듈, 다른 외부 장치, 가령 다른 저장 장치, 프록시 서버, 라우터, 부하 균형기, 웹 서버, 다른 장치 등과 같이 인터페이싱하기 위한 인터페이스 컴포넌트를 포함할 수 있다.
장치의 저장소(306)는 프로세서(들)(302)에 의해 실행하기 위한 메모리(304)로 로딩될 수 있는 로직을 저장한다. 이러한 로직은, 장치에 의해 호스팅되고 다수의 사용자들에 의해 사용되는 애플리케이션을 동작하고 지원하기에 필요한 다른 로직에 추가로 연결 로직(322) 및 릴레이 로직(324)을 포함한다. 저장소(306)는 또한, 클라이언트 장치, 가령 스마트폰, 태블릿 컴퓨터, 및/또는 다른 장치로 다운로드되고 실행되는 선택적 클라이언트 애플리케이션 로직(326)을 포함할 수 있다.  메모리(304) 및/또는 저장소(306)는 또한, 장치(300)에 의해 생성되거나 사용되는 다양한 데이터, 가령 사용자 상태, 사용자 계정 상태, 사용자 연락처 리스트, 사용자의 클라이언트 장치와의 통신을 가능하게 하기 위한 파라미터 등을 저장할 수 있다.
연결 로직(322)은 장치(300)에 의해 호스팅되는 통신 애플리케이션의 사용자들에 의해 동작되는 클라이언트 장치와의 연결을 수신하고 관리하기 위한 프로세서-실행가능한 명령어를 포함한다. 이러한 명령어는 장치가 연결 요청을 수신하고, 정확한 프로토콜(들)을 적용하여 연결을 확립/관리하고, 연결을 종료하며, 애플리케이션을 지원하는 프로토콜을 교환하고, 사용자들 사이에 교환되는 통신을 수신 및 전달하고, 통신 파라미터 및/또는 VOIP 통화를 수행하기 위한 다른 정보를 교환하도록 하는 등을 허용한다.
릴레이 로직(324)은 통신을 릴레이하거나, 사용자 장치들의 네트워크 주소를 식별하거나, 및/또는 다른 행위를 수행하기 위해 전송 엔드포인트를 제공함으로써 사용자의 디지털 음성 통신을 지원하기 위한 프로세서-실행가능한 명령어를 포함한다.
선택적 클라이언트 로직(326)은 VOIP 통화의 수행을 포함하는, 사용자의 클라이언트 장치에서 애플리케이션을 실행하기 위한 프로세서-실행가능한 명령어를 포함한다. 따라서, 전술한 바와 같이, 클라이언트 로직은 사용자들이 통화 제안을 개시하고 응답하며, 하나 이상의 릴레이 모듈이나 서버와 바인딩하고, 릴레이 엔티티와 연관된 지연시간을 측정하며, 릴레이 동작 모드 동안 사용하기 위한 하나의 릴레이를 선택하고, (릴레이 동작 모드가 활성일 때) 선택된 릴레이를 통해 디지털 오디오 통신을 전송 및 수신하고, 다른 사용자와의 피어-투-피어 통신 연결을 확립하며, (피어-투-피어 모드 동작이 활성일 때) 다른 사용자와 오고 가는 디지털 오디오 통신을 직접 전송 및 수신하고, 네트워크 변경 후 통신 연결을 재확립하는 등을 하도록 허용한다.
일부 실시예에서, 연결 로직(322) 및 릴레이 로직(324)은 병합되거나, 추가로 세분화되거나 또는 상이한 장치에서 동작될 수 있다.
본 발명의 일부 실시예가 실행되는 환경은 소형(hand-held) 컴퓨터 또는 통신 장치와 같은 범용 컴퓨터 또는 특수 목적용 장치를 통합시킬 수 있다. 이러한 장치(예컨대, 프로세서, 메모리, 데이터 저장소, 디스플레이)의 일부 세부사항은 명확성의 목적을 위해 생략될 수 있다. 하나 이상의 작업 또는 기능이 부여되는 프로세서 또는 메모리와 같은 컴포넌트는 특정된 작업 또는 기능을 수행하도록 임시로 구성된 범용 컴포넌트이거나, 작업 또는 기능을 수행하도록 제조된 특수목적용 컴포넌트일 수 있다. 본 명세서에서 사용되는 용어 "프로세서"는, 하나 이상의 전자 회로, 장치, 칩, 프로세싱 코어 및/또는 데이터 및/또는 컴퓨터 프로그램 코드를 프로세싱하도록 구성된 다른 컴포넌트들을 의미한다.
본 발명의 설명에 기술된 데이터 구조 및 프로그램 코드는, 컴퓨터 시스템에 의해 사용하기 위한 코드 및/또는 데이터를 저장할 수 있는 임의의 장치 또는 매체일 수 있는 비-일시적 컴퓨터-판독가능한 저장 매체에 통상적으로 저장된다. 비-일시적 컴퓨터-판독가능한 저장 매체는 휘발성 메모리, 비-휘발성 메모리, 디스크 드라이브와 같은 자기(magnetic) 및 광학 저장 장치, 자기 테이프, CD(compact disks) 및 DVD(digital versatile discs 또는 digital video discs), 솔리드-스테이트 드라이브(solid-state drives; SSDs) 및/또는 현재 알려지거나 추후에 개발될 다른 비-일시적 컴퓨터-판독가능한 매체를 포함하지만 이에 제한되지 않는다.
본 발명의 설명에 기술된 방법 및 프로세스는, 전술한 비-일시적 컴퓨터-판독가능한 저장 매체에 저장될 수 있는 코드 및/또는 데이터로 구현될 수 있다. 프로세서 또는 컴퓨터 시스템이 코드를 판독하고 실행하며 매체에 저장된 데이터를 조작하면, 프로세서 또는 컴퓨터 시스템은 매체 내에 저장되고 코드 및 데이터 구조로 구현되는 방법 및 프로세스를 수행한다.
전술한 본 발명의 실시예들의 설명은 예시 및 설명의 목적으로만 제시되었다. 실시예들의 설명은, 개시된 형태들이 본 발명을 포괄하거나 개시된 형태들로 제한하려는 의도가 아니다. 따라서, 많은 수정 및 변형이 해당 기술분야의 통상의 기술자에게 자명할 수 있다. 본 발명의 범위는, 전술한 개시내용이 아닌 첨부되는 청구항들에 의해 정의되는 것이다.

Claims (39)

  1. 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 컴퓨터 구현 방법으로서,
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하는 단계;
    다수의 후보 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 단계; 및
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
    음성 통화 동안에, 발신자 장치 및 착신자 장치는, 다수의 후보 릴레이 서버 중 임의의 릴레이 서버 없이 직접 음성 통화를 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    다수의 후보 릴레이 서버 각각에서, 발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하는 단계; 및
    다수의 후보 릴레이 서버 중 하나 이상의 릴레이 서버에서, 장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 후보 릴레이 서버로 전송된 통신과 다수의 후보 릴레이 서버로부터 수신된 통신 사이의 식별된 시간 지연(time delay)에 기반하여 선택된 릴레이 서버를 선택하는 컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    다수의 후보 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 단계는:
    발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하는 단계;
    발신자 장치 및 착신자 장치 중 다른 장치로 수신된 시간 지연을 포워딩하는 단계; 및
    상기 다른 장치로부터 선택된 릴레이 서버의 식별을 수신하는 단계를 포함하는 컴퓨터 구현 방법.
  5. 제 2 항에 있어서,
    다수의 후보 릴레이 서버와는 상이한 통신 서버에서:
    발신자 장치 및 착신자 장치의 외부 주소를 수신하는 단계; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소를 포워딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    발신자 장치 및 착신자 장치 중 하나의 장치가 제1 네트워크로부터 제2 네트워크로 로밍(roam)한 후:
    선택된 릴레이 서버에서 상기 하나의 장치로부터 새로운 연결을 수신하는 단계;
    선택된 릴레이 서버로부터 상기 하나의 장치의 새로운 외부 주소를 상기 하나의 장치에 식별하는 단계;
    통신 서버에서 새로운 외부 주소를 수신하는 단계; 및
    통신 서버로부터 발신자 장치 및 착신자 장치 중 다른 장치로 새로운 외부 주소를 포워딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
  7. 제 1 항에 있어서,
    다수의 후보 릴레이 서버로부터 구별되는 통신 서버들의 세트에서 통화 제안의 수신에 응답하여:
    착신자 장치 및 통신 서버들 중 하나 사이에 현재 통신 연결이 존재하는지 여부를 결정하는 단계; 및
    착신자 장치 및 통신 서버들 중 하나 사이에 통신 연결이 존재하지 않는다면, 통화 제안과 관련된 푸시 알림을 착신자 장치를 향해 송신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시 수행하는 것은 오로지 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드의 시작을 시도한 후에만 시작되는 컴퓨터 구현 방법.
  9. 제 1 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 오로지 발신자 장치 및 착신자 장치가:
    피어-투-피어 동작 모드를 확립하고; 및
    피어-투-피어 동작 모드가 후속하여 실패한 후에만 시작되는 컴퓨터 구현 방법.
  10. 제 1 항에 있어서,
    음성 통화 동안에, 다수의 후보 릴레이 서버 중 제2 릴레이의 선택을 수신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  11. 제 1 항에 있어서,
    통화 제안은 다수의 착신자 장치 또는 착신자 장치의 다수의 사용자를 식별하는 컴퓨터 구현 방법.
  12. 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 명령어는, 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 방법을 수행하도록 야기하고,
    상기 음성 통화를 지원하는 방법은:
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하는 단계;
    다수의 후보 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버 중 선택된 릴레이 서버의 선택을 수신하는 단계; 및
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
    음성 통화 동안에, 발신자 장치 및 착신자 장치는, 다수의 후보 릴레이 서버 중 임의의 릴레이 서버 없이 직접 음성 통화를 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭하는 비-일시적 컴퓨터-판독가능한 매체.
  13. 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템으로서,
    다수의 통신 서버 및 다수의 릴레이 서버를 포함하고,
    각각의 통신 서버는, 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함하며, 상기 명령어는, 프로세서에 의해 실행될 때, 통신 서버로 하여금:
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하고;
    다수의 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하며; 및
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하도록 야기하고;
    각각의 릴레이 서버는, 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함하며, 상기 명령어는, 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하도록 야기하는 음성 통화를 지원하기 위한 시스템.
  14. 제 13 항에 있어서,
    각각의 릴레이 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
    발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하고; 및
    장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하도록 야기하는 명령어를 또한, 저장하는 음성 통화를 지원하기 위한 시스템.
  15. 제 14 항에 있어서,
    발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 릴레이 서버로 전송된 통신과 다수의 릴레이 서버로부터 수신된 통신 사이의 식별된 시간 지연에 기반하여 선택된 릴레이 서버를 선택하는 음성 통화를 지원하기 위한 시스템.
  16. 제 15 항에 있어서,
    다수의 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 것은:
    통신 서버 중 하나의 통신 서버에서, 발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하고;
    상기 하나의 통신 서버로부터 발신자 장치 및 착신자 장치 중 다른 장치로 수신된 시간 지연을 포워딩하며; 및
    상기 하나의 통신 서버에서, 상기 다른 장치로부터 선택된 릴레이 서버의 식별을 수신하는 것을 포함하는 음성 통화를 지원하기 위한 시스템.
  17. 제 14 항에 있어서,
    통신 서버 중 하나의 통신 서버에서,
    발신자 장치 및 착신자 장치의 외부 주소를 수신하고; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소를 포워딩하는 것을 더 포함하는 음성 통화를 지원하기 위한 시스템.
  18. 제 17 항에 있어서,
    선택된 릴레이 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 선택된 릴레이 서버로 하여금, 발신자 장치 및 착신자 장치 중 하나의 장치가 제1 네트워크로부터 제2 네트워크로 로밍한 후:
    선택된 릴레이 서버에서 상기 하나의 장치로부터 새로운 연결을 수신하고; 및
    상기 하나의 장치에 상기 하나의 장치의 새로운 외부 주소를 식별하도록 야기하는 명령어를 또한, 저장하며,
    각각의 통신 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 통신 서버로 하여금:
    새로운 외부 주소를 수신하고; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 새로운 외부 주소를 포워딩하도록 야기하는 명령어를 또한, 저장하는 음성 통화를 지원하기 위한 시스템.
  19. 제 13 항에 있어서,
    발신자 장치 및 착신자 장치 각각에서 실행되고, 명령어를 포함하는 클라이언트 로직을 더 포함하며,
    상기 명령어는, 프로세서에 의해 실행될 때, 다수의 릴레이 서버 각각에 대해 프로세서로 하여금:
    릴레이 서버로 바인딩 요청(bind request)을 송신하고; 및
    릴레이 서버로부터 확인 응답(acknowledgement)이 수신되면, 바인딩 요청의 송신 및 바인딩 요청의 확인 응답의 수신 사이의 지연시간(latency)을 측정하도록 야기하는 음성 통화를 지원하기 위한 시스템.
  20. 제 19 항에 있어서,
    클라이언트 로직은, 프로세서에 의해 실행될 때, 프로세서로 하여금:
    발신자 장치 및 착신자 장치 중 하나의 장치에서, 발신자 장치 및 착신자 장치 중 다른 장치에 의해 측정되는 하나 이상의 릴레이 서버 지연시간을 수신하고; 및
    발신자 장치 및 착신자 장치에서 측정되는 전체 릴레이 서버 지연시간에 기반하여 하나의 릴레이 서버를 선택하도록 야기하는 명령어를 더 포함하는 음성 통화를 지원하기 위한 시스템.
  21. 제 13 항에 있어서,
    각각의 통신 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 통화 제안의 수신에 응답하여, 통신 서버로 하여금:
    착신자 장치 및 통신 서버 중 하나의 통신 서버 사이의 현재 통신 연결이 존재하는지 여부를 결정하고; 및
    착신자 장치와 통신 서버 사이의 통신 연결이 존재하지 않는다면, 착신자 장치를 향해 통화 제안과 관련된 푸시 알림을 송신하도록 야기하는 명령어를 또한, 저장하는 음성 통화를 지원하기 위한 시스템.
  22. 제 13 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드의 시작을 시도한 후에만 시작되는 음성 통화를 지원하기 위한 시스템.
  23. 제 13 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 발신자 장치 및 착신자 장치가:
    피어-투-피어 동작 모드를 확립하고; 및
    피어-투-피어 동작 모드가 후속하여 실패한 후에만 시작되는 음성 통화를 지원하기 위한 시스템.
  24. 제 13 항에 있어서,
    통화 제안은 다수의 착신자 장치 또는 착신자 장치의 다수의 사용자를 식별하는 음성 통화를 지원하기 위한 시스템.
  25. 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 컴퓨터 구현 방법으로서,
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하는 단계;
    다수의 후보 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 단계; 및
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
    음성 통화 동안에, 발신자 장치 및 착신자 장치는, 다수의 후보 릴레이 서버 중 임의의 릴레이 서버 없이 직접 음성 통화를 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭하는 컴퓨터 구현 방법.
  26. 제 25 항에 있어서,
    다수의 후보 릴레이 서버 각각에서, 발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하는 단계; 및
    다수의 후보 릴레이 서버 중 하나 이상에서, 장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하는 단계를 더 포함하고,
    바람직하게는 발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 후보 릴레이 서버로 전송된 통신과 다수의 후보 릴레이 서버로부터 수신된 통신 사이의 식별된 시간 지연에 기반하여 선택된 릴레이 서버를 선택하며,
    바람직하게는 다수의 후보 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 단계는:
    발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하는 단계;
    발신자 장치 및 착신자 장치 중 다른 장치로 수신된 시간 지연을 포워딩하는 단계; 및
    상기 다른 장치로부터 선택된 릴레이 서버의 식별을 수신하는 단계를 포함하는 컴퓨터 구현 방법.
  27. 제 26 항에 있어서,
    다수의 후보 릴레이 서버와는 상이한 통신 서버에서:
    발신자 장치 및 착신자 장치의 외부 주소를 수신하는 단계; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소를 포워딩하는 단계를 더 포함하고,
    바람직하게는 발신자 장치 및 착신자 장치 중 하나의 장치가 제1 네트워크로부터 제2 네트워크로 로밍한 후:
    선택된 릴레이 서버에서 상기 하나의 장치로부터 새로운 연결을 수신하는 단계;
    선택된 릴레이 서버로부터 상기 하나의 장치에 상기 하나의 장치의 새로운 외부 주소를 식별하는 단계;
    통신 서버에서 새로운 외부 주소를 수신하는 단계; 및
    통신 서버로부터 발신자 장치 및 착신자 장치 중 다른 장치로 새로운 외부 주소를 포워딩하는 단계를 더 포함하는 컴퓨터 구현 방법.
  28. 제 25 항 내지 제 27 항 중 어느 한 항에 있어서,
    다수의 후보 릴레이 서버로부터 구별되는 통신 서버들의 세트에서 통화 제안의 수신에 응답하여:
    착신자 장치 및 통신 서버들 중 하나 사이에 현재 통신 연결이 존재하는지 여부를 결정하는 단계; 및
    착신자 장치 및 통신 서버들 중 하나 사이에 통신 연결이 존재하지 않는다면, 통화 제안과 관련된 푸시 알림을 착신자 장치를 향해 송신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  29. 제 25 항 내지 제 28 항 중 어느 한 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 오로지 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드의 시작을 시도한 후에만 시작되는 컴퓨터 구현 방법.
  30. 제 25 항 내지 제 29 항 중 어느 한 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 오로지 발신자 장치 및 착신자 장치가:
    피어-투-피어 동작 모드를 확립하고; 및
    피어-투-피어 동작 모드가 후속하여 실패한 후에만 시작되는 컴퓨터 구현 방법.
  31. 제 25 항 내지 제 30 항 중 어느 한 항에 있어서,
    음성 통화 동안에, 다수의 후보 릴레이 서버 중 제2 릴레이의 선택을 수신하는 단계를 더 포함하는 컴퓨터 구현 방법.
  32. 제 25 항 내지 제 31 항 중 어느 한 항에 있어서,
    통화 제안은 다수의 착신자 장치 또는 착신자 장치의 다수의 사용자를 식별하는 컴퓨터 구현 방법.
  33. 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체로서,
    상기 명령어는, 프로세서에 의해 실행될 때, 컴퓨터 시스템으로 하여금 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하는 방법을 수행하도록 야기하고,
    상기 음성 통화를 지원하는 방법은:
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하는 단계;
    다수의 후보 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하는 단계;
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 후보 릴레이 서버 중 선택된 릴레이 서버의 선택을 수신하는 단계; 및
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하는 단계를 포함하고,
    음성 통화 동안에, 발신자 장치 및 착신자 장치는, 다수의 후보 릴레이 서버 중 임의의 릴레이 서버 없이 직접 음성 통화를 수행하는 피어-투-피어 동작 모드 및 릴레이 동작 모드 사이에서 적어도 한번 스위칭하는 비-일시적 컴퓨터-판독가능한 매체.
  34. 하나 이상의 컴퓨터 네트워크를 통해 수행되는 음성 통화를 지원하기 위한 시스템으로서,
    다수의 통신 서버 및 다수의 릴레이 서버를 포함하고,
    각각의 통신 서버는, 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함하며, 상기 명령어는, 프로세서에 의해 실행될 때, 통신 서버로 하여금:
    착신자(callee) 장치 또는 착신자 장치의 사용자를 식별하는 통화 제안을 발신자(caller) 장치로부터 수신하고;
    다수의 릴레이 서버의 주소를 발신자 장치 및 착신자 장치로 송신하며; 및
    발신자 장치 및 착신자 장치 중 하나 또는 둘 모두로부터 다수의 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하도록 야기하고;
    각각의 릴레이 서버는, 명령어를 저장하는 비-일시적 컴퓨터-판독가능한 매체를 포함하며, 상기 명령어는, 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
    발신자 장치, 선택된 릴레이 서버 및 착신자 장치를 포함하는 릴레이 동작 모드에서 음성 통화를 임시로 수행하도록 야기하는 음성 통화를 지원하기 위한 시스템.
  35. 제 34 항에 있어서,
    각각의 릴레이 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 릴레이 서버로 하여금:
    발신자 장치 및 착신자 장치 각각으로부터 연결을 수신하고; 및
    장치의 외부 주소를 발신자 장치 및 착신자 장치 각각에 식별하도록 야기하는 명령어를 또한, 저장하고,
    바람직하게는 발신자 장치 및 착신자 장치 중 적어도 하나는 다수의 릴레이 서버로 전송된 통신과 다수의 릴레이 서버로부터 수신된 통신 사이의 식별된 시간 지연에 기반하여 선택된 릴레이 서버를 선택하며,
    바람직하게는 다수의 릴레이 서버 중 하나의 릴레이 서버의 선택을 수신하는 것은:
    통신 서버 중 하나의 통신 서버에서, 발신자 장치 및 착신자 장치 중 제1 장치로부터 식별된 시간 지연을 수신하고;
    상기 하나의 통신 서버로부터 발신자 장치 및 착신자 장치 중 다른 장치로 수신된 시간 지연을 포워딩하며; 및
    상기 하나의 통신 서버에서, 상기 다른 장치로부터 선택된 릴레이 서버의 식별을 수신하는 것을 포함하는 음성 통화를 지원하기 위한 시스템.
  36. 제 35 항에 있어서,
    통신 서버 중 하나의 통신 서버에서,
    발신자 장치 및 착신자 장치의 외부 주소를 수신하고; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 외부 주소를 포워딩하는 것을 더 포함하고,
    바람직하게는:
    선택된 릴레이 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 선택된 릴레이 서버로 하여금, 발신자 장치 및 착신자 장치 중 하나의 장치가 제1 네트워크로부터 제2 네트워크로 로밍한 후:
    선택된 릴레이 서버에서 상기 하나의 장치로부터 새로운 연결을 수신하고; 및
    상기 하나의 장치에 상기 하나의 장치의 새로운 외부 주소를 식별하도록 야기하는 명령어를 또한, 저장하며, 및
    각각의 통신 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 통신 서버로 하여금:
    새로운 외부 주소를 수신하고; 및
    발신자 장치 및 착신자 장치 중 다른 장치로 새로운 외부 주소를 포워딩하도록 야기하는 명령어를 또한, 저장하는 음성 통화를 지원하기 위한 시스템.
  37. 제 34 항 내지 제 36 항 중 어느 한 항에 있어서,
    발신자 장치 및 착신자 장치 각각에서 실행되고, 명령어를 포함하는 클라이언트 로직을 더 포함하며,
    상기 명령어는, 프로세서에 의해 실행될 때, 다수의 릴레이 서버 각각에 대해 프로세서로 하여금:
    릴레이 서버로 바인딩 요청(bind request)을 송신하고; 및
    릴레이 서버로부터 확인 응답(acknowledgement)이 수신되면, 바인딩 요청의 송신 및 바인딩 요청의 확인 응답의 수신 사이의 지연시간(latency)을 측정하도록 야기하고,
    바람직하게는 클라이언트 로직은, 프로세서에 의해 실행될 때, 프로세서로 하여금:
    발신자 장치 및 착신자 장치 중 하나의 장치에서, 발신자 장치 및 착신자 장치 중 다른 장치에 의해 측정되는 하나 이상의 릴레이 서버 지연시간을 수신하고; 및
    발신자 장치 및 착신자 장치에서 측정되는 전체 릴레이 서버 지연시간에 기반하여 하나의 릴레이 서버를 선택하도록 야기하는 명령어를 더 포함하는 음성 통화를 지원하기 위한 시스템.
  38. 제 34 항 내지 제 37 항 중 어느 한 항에 있어서,
    각각의 통신 서버의 컴퓨터-판독가능한 매체는, 프로세서에 의해 실행될 때, 통화 제안의 수신에 응답하여, 통신 서버로 하여금:
    착신자 장치 및 통신 서버 중 하나의 통신 서버 사이의 현재 통신 연결이 존재하는지 여부를 결정하고; 및
    착신자 장치와 통신 서버 사이의 통신 연결이 존재하지 않는다면, 착신자 장치를 향해 통화 제안과 관련된 푸시 알림을 송신하도록 야기하는 명령어를 또한, 저장하는 음성 통화를 지원하기 위한 시스템.
  39. 제 34 항 내지 제 38 항 중 어느 한 항에 있어서,
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 발신자 장치 및 착신자 장치가 피어-투-피어 동작 모드의 시작을 시도한 후에만 시작되거나 시작되고;
    릴레이 동작 모드에서 음성 통화를 임시로 수행하는 것은 발신자 장치 및 착신자 장치가:
    피어-투-피어 동작 모드를 확립하고; 및
    피어-투-피어 동작 모드가 후속하여 실패한 후에만 시작되거나 시작되며;
    통화 제안은 다수의 착신자 장치 또는 착신자 장치의 다수의 사용자를 식별하는 음성 통화를 지원하기 위한 시스템.
KR1020177008457A 2014-09-08 2015-08-26 Voip 통화의 확립 및 관리 KR102334467B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/480,227 US10129412B1 (en) 2014-09-08 2014-09-08 Establishing and maintaining a VOIP call
US14/480,227 2014-09-08
PCT/US2015/046862 WO2016039985A1 (en) 2014-09-08 2015-08-26 Establishing and maintaining a voip call

Publications (2)

Publication Number Publication Date
KR20170134307A true KR20170134307A (ko) 2017-12-06
KR102334467B1 KR102334467B1 (ko) 2021-12-06

Family

ID=55459418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008457A KR102334467B1 (ko) 2014-09-08 2015-08-26 Voip 통화의 확립 및 관리

Country Status (11)

Country Link
US (1) US10129412B1 (ko)
EP (1) EP2993861B1 (ko)
JP (2) JP6505831B2 (ko)
KR (1) KR102334467B1 (ko)
CN (1) CN107251510B (ko)
AU (1) AU2015315695B2 (ko)
BR (1) BR112017004538A2 (ko)
CA (1) CA2959514A1 (ko)
IL (1) IL250738B (ko)
MX (1) MX2017003057A (ko)
WO (1) WO2016039985A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113630391B (zh) * 2015-06-02 2023-07-11 杜比实验室特许公司 具有智能重传和插值的服务中质量监视系统
US11659012B2 (en) * 2015-06-15 2023-05-23 Apple Inc. Relayed communication channel establishment
US10681755B2 (en) * 2015-06-30 2020-06-09 2Ip Co., Ltd. Routing method and network entity performing same
US10812323B2 (en) * 2016-02-29 2020-10-20 WhatsApp. Inc. Techniques to provide relay server configuration for geographically disparate client devices
CN108282251B (zh) * 2017-01-06 2021-03-16 腾讯科技(深圳)有限公司 一种链路调整方法、装置及服务器
US10630739B2 (en) 2017-06-27 2020-04-21 Atlassian Pty Ltd Parallel peer to peer connection establishment in WebRTC conferencing
KR101982163B1 (ko) * 2017-08-22 2019-05-24 라인 가부시키가이샤 인터넷 전화 서비스의 통화 자동 연결 방법 및 시스템
US10880342B2 (en) * 2018-03-15 2020-12-29 Jive Communications, Inc. Dynamically controlling communication channels during a communication session
WO2019175843A1 (en) * 2018-03-16 2019-09-19 Hike Private Limited A system and method for attaching a media item to a voip call
CN108989343B (zh) * 2018-08-24 2021-03-05 携程旅游信息技术(上海)有限公司 Voip网络变更及兼容性处理方法、系统、设备和介质
KR102185260B1 (ko) * 2019-05-03 2020-12-01 (주)아크로메이트 호 처리를 위한 릴레이 장치, 릴레이 장치에 의해 수행되는 호 처리 방법 및 호 처리 방법을 실행하는 프로그램이 기록된 기록매체
US11050798B2 (en) * 2019-05-31 2021-06-29 Mitel Networks Corporation Methods for establishing peer-to-peer communications using distributed call ledgers
CN112118273B (zh) * 2019-06-19 2023-04-07 杭州萤石软件有限公司 一种数据交互方法、系统及第一客户端
CN110784489B (zh) * 2019-11-12 2020-07-10 北京风信科技有限公司 安全通信系统及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130308628A1 (en) * 2012-05-15 2013-11-21 Viber Media, Inc. Nat traversal for voip
US20140153409A1 (en) * 2012-11-30 2014-06-05 Vonage Network, Llc Systems and methods of routing ip telephony data packet communciations

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020196923A1 (en) 2001-06-25 2002-12-26 Longboard, Inc. System and method of call processing
JP4161782B2 (ja) * 2002-04-18 2008-10-08 松下電器産業株式会社 モバイルノードおよび移動通信方法
JP2004180003A (ja) * 2002-11-27 2004-06-24 Kitt Peak:Kk 通信ネットワークシステムおよび通信の接続方法
US7644166B2 (en) * 2003-03-03 2010-01-05 Aol Llc Source audio identifiers for digital communications
US7583660B2 (en) 2005-04-19 2009-09-01 At&T Corp. Method and apparatus for enabling peer-to-peer communication between endpoints on a per call basis
JP2007124486A (ja) 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
US7657015B1 (en) * 2005-12-28 2010-02-02 At&T Corp. Method and apparatus for processing multiple services per call
KR100810759B1 (ko) * 2006-02-17 2008-03-07 엔에이치엔(주) P2p 파일 전송 시스템 및 방법
US8688822B2 (en) * 2006-07-05 2014-04-01 Oracle International Corporation Push e-mail inferred network presence
US20080159313A1 (en) * 2006-12-28 2008-07-03 Nokia Corporation Interworking policy and charging control and network address translator
JP4886612B2 (ja) 2007-06-12 2012-02-29 パナソニック株式会社 Ip通信装置およびip通信方法ならびに呼制御サーバ
US8078110B2 (en) * 2007-07-09 2011-12-13 Qualcomm Incorporated Techniques for choosing and broadcasting receiver beamforming vectors in peer-to-peer (P2P) networks
CN100566340C (zh) * 2007-07-25 2009-12-02 中国科学院沈阳计算技术研究所有限公司 支持p2p媒体传输的sip软交换系统及其实现方法
CN101431464A (zh) * 2007-11-06 2009-05-13 阿里巴巴集团控股有限公司 一种优选客户端之间数据传输路径的方法及其装置
WO2009075097A1 (ja) * 2007-12-12 2009-06-18 Panasonic Corporation データ送受信システム、端末、中継機器及びデータ送信方法
KR101519600B1 (ko) 2008-07-01 2015-05-12 삼성전자주식회사 인터넷 전화 시스템의 통화 처리 방법 및 그 장치
CN101594242A (zh) * 2009-06-23 2009-12-02 腾讯科技(深圳)有限公司 一种传输视频数据的方法、系统和装置
JP2011124770A (ja) * 2009-12-10 2011-06-23 Panasonic Corp Vpn装置、vpnネットワーキング方法、プログラム、及び記憶媒体
JP5174799B2 (ja) * 2009-12-17 2013-04-03 株式会社エヌ・ティ・ティ・ドコモ 無線基地局システム及び中継装置
CN101977178A (zh) * 2010-08-09 2011-02-16 中兴通讯股份有限公司 基于中继的媒体通道建立方法及系统
CN103098108B (zh) * 2010-11-25 2017-09-08 松下电器(美国)知识产权公司 通信设备
KR20120063586A (ko) 2010-12-08 2012-06-18 삼성전자주식회사 분산 안테나를 적용하는 이동 통신 시스템에서 채널상태 정보 송수신 방법 및 장치
US9264459B2 (en) 2010-12-16 2016-02-16 Palo Alto Research Center Incorporated SIP-based custodian routing in content-centric networks
WO2013012225A2 (ko) * 2011-07-15 2013-01-24 엘지전자 주식회사 무선 접속 시스템에서 장치 간 통신 중 핸드오버 수행 방법 및 이를 위한 장치
WO2013145522A1 (ja) * 2012-03-28 2013-10-03 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
GB2500648B (en) * 2012-03-28 2014-06-25 Toshiba Res Europ Ltd Wireless communication methods and apparatus
US9049122B2 (en) * 2012-09-11 2015-06-02 Cisco Technology, Inc. Bandwidth probing messages
US9148519B1 (en) * 2013-01-02 2015-09-29 8X8, Inc. Intelligent media relay selection
KR20140092630A (ko) * 2013-01-16 2014-07-24 삼성전자주식회사 사용자장치, 통신서버 및 그 제어방법
EP2770667B1 (en) 2013-02-22 2015-09-30 Telefonica Digital España, S.L.U. Method and system for combined Peer-to-Peer (P2P) and central relay server-based telecommunication conferencing using a telephony and conferencing protocol
US9215263B2 (en) 2013-03-12 2015-12-15 Vonage Network, Llc Method and apparatus for rapid setup of a telephony communication using multiple communication channels
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9515995B2 (en) * 2013-12-27 2016-12-06 Futurewei Technologies, Inc. Method and apparatus for network address translation and firewall traversal
US9794164B2 (en) * 2014-08-27 2017-10-17 Tangome, Inc. Mobile relay network intelligent routing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130308628A1 (en) * 2012-05-15 2013-11-21 Viber Media, Inc. Nat traversal for voip
US20140153409A1 (en) * 2012-11-30 2014-06-05 Vonage Network, Llc Systems and methods of routing ip telephony data packet communciations

Also Published As

Publication number Publication date
AU2015315695B2 (en) 2020-02-27
JP2019149798A (ja) 2019-09-05
IL250738B (en) 2019-07-31
CN107251510B (zh) 2020-09-11
CN107251510A (zh) 2017-10-13
EP2993861B1 (en) 2019-10-30
AU2015315695A1 (en) 2017-03-30
MX2017003057A (es) 2017-11-17
WO2016039985A1 (en) 2016-03-17
EP2993861A1 (en) 2016-03-09
CA2959514A1 (en) 2016-03-17
US10129412B1 (en) 2018-11-13
JP2017532851A (ja) 2017-11-02
JP6505831B2 (ja) 2019-04-24
BR112017004538A2 (pt) 2017-12-05
IL250738A0 (en) 2017-04-30
KR102334467B1 (ko) 2021-12-06

Similar Documents

Publication Publication Date Title
KR102334467B1 (ko) Voip 통화의 확립 및 관리
CA2859716C (en) Method and apparatus for providing session initiator privilege, priority and presence notification for push-to-talk chat group communications
US8750250B2 (en) Personalized user session information for call handoff
US20130337802A1 (en) Managing Phone Numbers Associated With Multi-Mode Communication Devices
WO2012051047A2 (en) System and method for a reverse invitation in a hybrid peer-to-peer environment
US20160330163A1 (en) Method and server enabling a first user to automatically discover the social network identifiers of a second user and the respective statuses of this second user in these social networks
JP6169568B2 (ja) パッシブ通信サービスのためのシステムおよび方法
US9763079B2 (en) System and method for communication history reconciliation amongst linked devices
EP2472984A1 (en) Method for realizing end-to-end call, end-to-end call terminal and system
KR101465349B1 (ko) 동적 디바이스 페어링 방법 및 장치
JP2007525130A (ja) ワイヤレスネットワークにわたるインスタントメッセージ及びインターネット電話のためのシームレスなインターフェイス
CN1988546A (zh) 获取会话起始协议消息传输路径的方法及系统
US8917590B2 (en) Method and system for transferring control of a conference bridge
WO2020131340A1 (en) Systems and methods for providing one-way video calls
US8812694B2 (en) Dialog establishment over a peer-to-peer architecture
US20150071124A1 (en) Method and system for on-hold messaging for off network calls
CA2799507C (en) Dialog establishment over a peer-to-peer architecture
US20220167318A1 (en) Systems and methods for reducing transcoding resource allocation during call setup to multiple terminations
JP5880015B2 (ja) 通信装置、通信方法、および、通信プログラム
WO2016029820A1 (zh) 一种业务处理方法及系统、设备
WO2016083961A1 (en) Messaging and combined messaging interworking

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant