KR102170200B1 - 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법 - Google Patents

개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102170200B1
KR102170200B1 KR1020167008000A KR20167008000A KR102170200B1 KR 102170200 B1 KR102170200 B1 KR 102170200B1 KR 1020167008000 A KR1020167008000 A KR 1020167008000A KR 20167008000 A KR20167008000 A KR 20167008000A KR 102170200 B1 KR102170200 B1 KR 102170200B1
Authority
KR
South Korea
Prior art keywords
client device
network
server
communication session
data stream
Prior art date
Application number
KR1020167008000A
Other languages
English (en)
Other versions
KR20160062017A (ko
Inventor
알빈드 자인
딜런 살리스버리
알렉스 위센
매튜 레일리
안토니 자와드
토마스 룬드퀴비스트
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020207030000A priority Critical patent/KR102269619B1/ko
Publication of KR20160062017A publication Critical patent/KR20160062017A/ko
Application granted granted Critical
Publication of KR102170200B1 publication Critical patent/KR102170200B1/ko

Links

Images

Classifications

    • 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
    • H04M3/567Multimedia conference systems
    • 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
    • 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
    • H04L65/4069
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • 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/80Responding to QoS

Landscapes

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

Abstract

통신 세션을 제공하기 위한 시스템 및 방법이 제공된다. 상기 시스템 및 방법은 복수 개의 통신 네트워크들을 갖는 통신에서의 클라이언트 디바이스를 포함한다. 상기 시스템 및 밥버은 상기 복수 개의 통신 네트워크들과 또한 통신하는 서버를 더 포함한다. 상기 클라이언트 디바이스는 네트워크 모니터 모듈 및 다이얼러 모듈을 포함한다. 상기 네트워크 모니터 모듈은 상기 통신 세션에서 어떤 네트워크들을 활용할지를 결정하고, 상기 다이얼러 모듈은 상기 통신 세션을 개시 및 종료한다. 상기 서버는 선택된 통신 네트워크로부터 상기 통신 세션과 관련된 데이터 신호를 수신한다. 상기 서버는 상기 수신자 디바이스에 별개의 통화를 연결하고 상기 수신자 클라이언트 디바이스에 상기 전화 통화를 통해 데이터 신호를 송신함으로써 상기 클라이언트 디바이스로부터 상기 수신자 클라이언트 디바이스로의 연결을 완료한다.

Description

개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법{SYSTEM AND METHOD FOR INCREASED CALL QUALITY AND SUCCESS RATE}
모바일 통신들에서, 음성 통화 또는 화상 통화와 같은 전화 통화의 품질은 통신이 일어나는 네트워크와 관련된 신호 수신에 의해 강하게 영향받는다. 예를 들어, 종종 셀룰러 통신 네트워크들로부터의 신호는 실내에 전파되지 않을 것이고 상기 셀룰러 신호에 기초한 통화들은 크게 저하되거나 심지어 함께 끊어질 수 있다.
추가적으로, 이미 설정된 전화 통화는 화상 통화를 위한 적합한 데이터 네트워크가 이용 가능할 때조차도 화상 통화로 자동으로 변경될 수 없다. 예를 들어, 반송파 네트워크(carrier network)를 통해 일어나는 전화 통화는 화상 통화를 위해 보다 적합한 이용 가능한 데이터 네트워크로 자동으로 이동될 수 없다.
일 실시예는 클라이언트 디바이스(client device)와 수신자 클라이언트 디바이스(recipient client device) 간에 데이터 신호를 통신하는 방법을 제공한다. 상기 방법은 상기 클라이언트 디바이스의 네트워크 모니터(network monitor)에서 복수 개의 네트워크 연결들의 신호 품질을 모니터링하는 단계와; 적어도 하나의 네트워크 연결의 신호 품질에 기초하여 상기 복수 개의 네트워크 연결들 중 적어도 하나의 네트워크 연결을 선택하는 단계와; 상기 복수 개의 네트워크 연결들 중 적어도 하나의 네트워크 연결을 통하여 상기 클라이언트 디바이스의 다이얼러(dialer)로부터의 통신 세션(communication session)을 개시(initiating)하는 단계와; 상기 복수 개의 네트워크 연결들로부터 데이터를 수신하도록 구성되는 서버에 상기 통신 세션과 관련된 데이터 신호를 릴레이(relay)하는 단계와; 그리고 상기 서버로부터 상기 수신자 디바이스로의 통신 세션을 완료(completing)하는 단계를 포함한다.
상기 방법의 다른 실시예는 상기 복수 개의 네트워크 연결들 중 제2 네트워크 연결을 통하여 상기 클라이언트 디바이스의 다이얼러로부터의 제2 통신 세션을 개시하는 단계와; 상기 통신 세션과 관련된 데이터 신호와 상기 제2 통신 세션과 관련된 데이터 신호 둘 모두를 상기 서버에 릴레이하는 단계와; 상기 통신 세션과 관련된 데이터 신호와 상기 제2 통신 세션과 관련된 데이터 신호 둘 모두를 상기 클라이언트 디바이스에 대한 동일한 입력에 기초하는 것으로서 관련시키는(associating) 단계와; 상기 통신 세션과 관련된 데이터 신호 및 상기 제2 통신 세션과 관련된 데이터 신호를 단일의 데이터 신호로 편성(organize)하는 단계와; 그리고 상기 서버에 의해 상기 수신자 디바이스에 설정되는(placed) 단일의 통신 세션을 통해 상기 서버로부터 상기 수신자 디바이스에 상기 단일의 데이터 신호를 전송하는 단계를 제공한다.
다른 실시예는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템을 포함한다. 상기 시스템은 입력 디바이스와; 출력 디바이스와; 상기 복수 개의 통신 네트워크들 각각의 신호 세기(signal strength)를 검출(detect)하도록 구성되는 네트워크 모니터와; 상기 네트워크 모니터에 의해 검출된 상기 신호 세기에 기초하여 적어도 하나의 통신 세션을 개시(initiate) 또는 종료(terminate)하도록 구성되는 다이얼러; 그리고 상기 클라이언트 디바이스로부터의 적어도 하나의 통신 세션에 관한 데이터 신호를 수신하고 상기 클라이언트 디바이스로부터 수신된 데이터에 기초하여 상기 서버로부터 상기 수신자 디바이스로의 통신 세션을 개시하도록 구성되는 서버를 포함한다.
또 다른 실시예는 클라이언트 디바이스와 수신자 디바이스 간의 전화 통화를 유지하는 방법을 포함한다. 상기 방법은 클라이언트 디바이스 상에서 동작하는 다이얼러 애플리케이션(dialer application)으로부터 적어도 하나의 네트워크 연결을 통하여 서버에서 적어도 하나의 음성 스트림(voice stream)을 수신하는 단계와; 상기 서버에 의하여, 상기 수신자 디바이스의 전화번호에 기초하여 상기 적어도 하나의 음성 스트림의 착신지를 결정하는 단계와; 그리고 상기 전화번호에 기초하여 상기 서버로부터 상기 수신자 디바이스에 전화 통화를 연결하는(placing a phone call) 단계를 포함한다.
다른 실시예는 통신 세션을 수행하는 중앙 서비스(central service)로서 구성되고 상기 통신 세션의 시그널링(signaling)을 조정(coordinate)하도록 구성되는 서버를 포함한다. 상기 서버는 적어도 하나의 프로세서와; 상기 서버를 적어도 하나의 반송파 네트워크(carrier network) 및 적어도 하나의 데이터 네트워크를 포함하는 복수 개의 통신 네트워크들에 통신 가능하게(communicatively) 결합하도록 구성되는 네트워크 인터페이스와; 복수 개의 클라이언트 디바이스들 간의 신호 경로(signaling path)를 조정하도록 구성되는 미디어 믹싱 서비스를 실행하는 미디어 믹싱 모듈(media mixing module)과, 상기 신호 경로의 조정은 상기 복수 개의 클라이언트 디바이스들 각각으로부터 상기 미디어 믹싱 서비스로의 전화 통화를 유지하는 것 및 상기 복수 개의 클라이언트 디바이스들 각각으로부터의 전화 통화를 상기 복수 개의 클라이언트 디바이스들 각각 간에 데이터를 공유하는 통신 세션에 결합(join)시키는 것을 포함하고; 데이터 결합 서비스(data joining service)를 실행하는 미디어 세션 데이터 결합 모듈(media session data joining module)과, 상기 데이터 결합 서비스는 상기 복수 개의 클라이언트 디바이스들 중 개별 클라이언트 디바이스로부터의 개별 전화 통화를 상기 적어도 하나의 데이터 네트워크로 이동시키도록 구성되며; 연결 서비스를 실행하는 연결 번호 모듈(connection number module)을 포함하고, 상기 연결 서비스는 상기 복수 개의 클라이언트 디바이스들 중 개별 클라이언트 디바이스의 개별 전화 통화를 상기 적어도 하나의 반송파 네트워크로 이동시키도록 구성된다.
또 다른 실시예는 통신 세션을 제공하는 방법을 포함한다. 상기 통신 세션에 대한 시그널링의 조정은 중앙 서비스를 실행하는 서버에 의해 수행된다. 상기 방법은 상기 서버의 미디어 믹싱 모듈에서 제1 클라이언트 디바이스로부터의 제1 데이터 신호를 수신하는 단계와, 상기 데이터 신호는 상기 제1 클라이언트 디바이스로부터의 미디어 데이터 및 제2 클라이언트 디바이스의 식별자(identifier)를 포함하고; 상기 제1 클라이언트 디바이스로부터 수신된 제1 데이터 신호에 기초하여 상기 제1 클라이언트 디바이스와 상기 서버의 미디어 믹싱 모듈 간의 제1 전화 통화를 수행하는 단계와; 상기 제1 클라이언트 디바이스로부터의 데이터 신호에 포함된 상기 식별자에 기초하여 상기 서버의 미디어 믹싱 모듈로부터 상기 제2 클라이언트 디바이스로의 제2 전화 통화를 개시하는 단계와; 상기 제2 전화 통화를 통해 상기 제2 클라이언트 디바이스를 상기 서버의 미디어 믹싱 모듈에 연결하는 단계와; 상기 서버의 미디어 믹싱 모듈에서 상기 제2 클라이언트 디바이스로부터의 제2 데이터 신호를 수신하는 단계와, 상기 제2 데이터 신호는 상기 제2 클라이언트 디바이스로부터의 미디어 데이터를 포함하며; 그리고 상기 제1 클라이언트 디바이스의 제1 데이터 신호와 상기 제2 클라이언트 디바이스의 제2 데이터 신호를 미디어 믹싱 통신 세션(media mixing communication session)에서 결합하는 단계를 포함한다.
다른 실시예는 복수 개의 클라이언트 디바이스들 간의 미디어 믹싱 통신 세션을 제공하는 비일시적 컴퓨터 판독가능 저장 디바이스(non-transitory computer readable storage device)를 포함한다. 상기 컴퓨터 판독가능 저장 디바이스는 상기 복수 개의 클라이언트 디바이스들 각각 사이에 배치된(interposed between) 서버의 미디어 믹싱 모듈에서 제1 클라이언트 디바이스로부터의 제1 데이터 신호를 수신하는 단계와, 상기 데이터 신호는 상기 제1 클라이언트 디바이스로부터의 미디어 데이터 및 제2 클라이언트 디바이스의 식별자를 포함하고; 상기 제1 클라이언트 디바이스로부터 수신된 제1 데이터 신호에 기초하여 상기 제1 클라이언트 디바이스와 상기 서버의 미디어 믹싱 모듈 간의 제1 전화 통화를 수행하는 단계와; 상기 제1 클라이언트 디바이스로부터의 데이터 신호에 포함된 상기 식별자에 기초하여 상기 서버의 미디어 믹싱 모듈로부터 상기 제2 클라이언트 디바이스로의 제2 전화 통화를 개시하는 단계와; 상기 제2 전화 통화를 통해 상기 제2 클라이언트 디바이스를 상기 서버의 미디어 믹싱 모듈에 연결하는 단계와; 상기 서버의 미디어 믹싱 모듈에서 상기 제2 클라이언트 디바이스로부터의 제2 데이터 신호를 수신하는 단계와, 상기 제2 데이터 신호는 상기 제2 클라이언트 디바이스로부터의 미디어 데이터를 포함하고; 그리고 상기 제1 클라이언트 디바이스로부터의 제1 데이터 신호와 상기 제2 클라이언트 디바이스로부터의 제2 데이터 신호를 미디어 믹싱 통신 세션에서 결합하는 단계들을 수행하기 위한 컴퓨터에 의해 실행가능한 명령어들을 구비한다.
도 1은 일 실시예에 따른 개선된 통화 품질을 제공하기 위한 시스템을 설명하는 블럭도이다.
도 2는 일 실시예에 따른 도 1의 클라이언트 디바이스의 컴포넌트들을 설명하는 블럭도이다.
도 3은 일 실시예에 따른 도 1의 서버를 설명하는 블럭도이다.
도 4는 일 실시예에 따른 도 2로부터의 클라이언트 디바이스의 네트워크 모니터와 관련된 흐름도이다.
도 5는 일 실시예에 따른 도 2로부터의 클라이언트 디바이스의 다이얼러와 관련된 흐름도이다.
도 6은 일 실시예에 따른 도 3으로부터의 서버와 관련된 흐름도이다.
도 7은 일 실시예에 따른 도 3으로부터의 서버와 관련된 흐름도이다.
도 8은 도 3의 서버에 의해 편성된 전화 통화를 반송파 네트워크 또는 데이터 네트워크에 이동시키는 것과 관련된 흐름도이다.
그리고, 도 9는 도 3의 서버를 활용하여 멀티미디어 비디오 통화를 개시하는 것과 관련된 흐름도이다.
모바일 통신들에 있어서, 음성 통화 또는 비디오 통화와 같은 전화 통화의 품질은 통신이 일어나는 네트워크와 관련된 신호 수신에 의해 강하게 영향받는다. 예를 들어, 셀룰러 통신 반송파 네트워크와 같은 광역 네트워크(WAN; wide area network)로부터의 신호는 종종 실내에서 전파되지 않고 상기 셀룰러 신호에 의존하는 통화들은 크게 저하되거나 심지어 함께 끊길 수 있다. WiFi 네트워크와 같은 무선 로컬 영역 네트워크(WLAN; wireless local area network) 또는 데이터 네트워크를 통해 연결된 VoIP(voice of internet protocol) 통화는 송신자(caller)가 실외로 이동하고 WLAN으로부터 멀리 이동할 때 저하된 신호 또는 심지어 신호 끊김을 경험할 수 있는 점에서, 그 반대 또한 참일 수 있다.
추가적으로, 진행중인 통화 동안 반송파 네트워크로부터 데이터 네트워크로 또는 데이터 네트워크로부터 반송파 네트워크로 스위칭(switching)하는 것이 바람직할 수 있다. 예를 들어, 원래는 오디오 데이터를 공유하기 위해 개시된 통화가 전화 통화 동안의 일정 시점에서 비디오 통화로 스위칭되도록 결정될 수 있다. 비디오 통화에 수반되는 증가된 데이터 요구 때문에, 비디오 통화를 송신하기에 보다 적합한 다른 이용가능한 네트워크로 스위칭하는 것이 바람직할 수 있다.
그러므로, 전화 통화의 품질 및 전체 성공률 둘 모두를 유지하면서 송신자로 하여금 네트워크들 사이를 이동하는 것을 가능하게 하는 시스템이 필요하다. 그러한 시스템 중 하나는 네트워크 품질을 개선하기 위해 함께 이용가능할 때 WAN과 WLAN 모두로부터의 신호들을 이용하는 시스템이다. 이 대표적인 실시예에서, 송신자는 전화 통화를 연결하고 만약 전화 통화가 네트워크들과 관련된 문제들로 인해 끊기거나 비디오 통화로 스위칭하는 것이 요청된다면 상기 통화를 재개하는 프록시 서비스(proxy service)를 통해 수신자(callee)에 전화 통화를 완료할 수 있다.
도 1은 본 발명의 다양한 실시예들이 구현되는 통신 시스템(100)의 블럭도를 설명한다. 상기 시스템(100)에서, 클라이언트 디바이스(102)는 반송파 네트워크(108) 및 데이터 네트워크(110)로서 도 1에 도시된 복수 개의 통신 네트워크들을 통해 서버(104)에 연결된다. 또한, 서버(104)는 세션 개시 프로토콜(SIP; session initiation protocol) 네트워크(112)의 형태로 다른 통신 네트워크를 통해 제2 클라이언트 디바이스(106)와 통신한다. 이러한 방식으로, 전화 통화와 같은 통신 세션은 개시 클라이언트 디바이스(102) 및 수신자 클라이언트 디바이스(106) 간에 수행된다.
한편, 3개의 통신 네트워크들(108, 110 및 112) 만이 설명되는 반면에, 다른 실시예들에서는, 보다 많은 통신 네트워크들이 고려된다. 더욱이, 심지어 비록 클라이언트 디바이스들(102 및 106)만이 설명되었지만, 본 발명의 실시예들은 복수의 참가자들간에 통신 세션을 조정할 수 있기 때문에, 보다 많은 클라이언트 디바이스들이 고려된다. 더욱이, SIP 네트워크(112)는 반송파 네트워크(108) 및 데이터 네트워크(110)와 유사한 2개 이상의 네트워크들로 대체될 수 있다. 클라이언트 디바이스(102), 반송파 네트워크(108) 및 데이터 네트워크(110) 간의 역학관계(dynamics)의 설명의 편의를 위해, 반송파 네트워크(108) 및 데이터 네트워크(110)는 클라이언트 디바이스(102)에 관해 설명될 것이다. 하지만, 유사한 기능이 클라이언트 디바이스(106)에 포함될 수 있다.
클라이언트 디바이스들(102 및 106)은 스마트폰과 같은 모바일 디바이스, 태블릿 컴퓨터, 랩탑 컴퓨터, 컴퓨터 운영 체제를 갖는 시계, 퍼스널 디지털 어시스턴트(PDA; personal digital assistant), 비디오 게임 콘솔, 웨어러블 또는 임베디드 디지털 디바이스(들) 또는 무선 통신 능력을 갖는 다수의 추가적인 디바이스들 중 어느 하나일 수 있다.
더욱이, 통신 네트워크들(108 및 110)은 일반적으로 무선 네트워크들이다. 예시적인 네트워크들은 LTE(long term evolution) 네트워크와 같은 광역 네트워크(WAN), GSM(global system for mobile communications) 네트워크, 코드 분할 다중 액세스(CDMA; code division multiple access) 네트워크, 광대역 코드 분할 다중 액세스(WCDMA; wideband code division multiple access), 다양한 IEEE 802.11 표준들과 같은 무선 로컬 영역 네트워크들(WLAN) 또는 어떤 기타 종류의 반송파 네트워크 및 데이터 네트워크들을 포함하나 이에 한정되지 않는다. 통신 네트워크들(108 및 110)은 클라이언트 디바이스들(102)로 하여금 서버(104)와 통신하는 것을 가능하도록 한다. 예를 들어, 클라이언트 디바이스(102)는 서버(104)에 정보를 송신하고 서버(104)로부터 정보를 수신한다. 예를 들어, 통신 네트워크들(108 및 110)은 셀 타워들(cell towers)의 세트뿐만 아니라 기지국들의 세트 및/또는 셀룰러 반송파 공중 전화 교환 네트워크(PSTN; public switch telephone network)를 통해 통신하는 모바일 스위칭 센터들(MSCs; mobile switching centers)을 개별적으로 포함한다. 일부 실시예들에서, 통신 네트워크들(108 및 110)은 셀룰러 데이터 네트워크를 통해 다양한 셀 타워/기지국/MSC 배열들을 포함한다.
도 1에 설명된 대표적인 실시예에서, 반송파 네트워크(108)는 각각 GSM, WCDMA 또는 LTE와 같은 2G, 3G 또는 4G 네트워크를 통해 네트워크 액세스를 제공하는 셀룰러 반송파 네트워크와 같은 PSTN 또는 데이터 네트워크를 통해 통신하는 WAN이다. 그리고 데이터 네트워크(110)는 IEEE 802.11 표준들 중 하나의 표준 하에서 동작하는 WLAN 데이터 네트워크이다. 이 대표적인 실시예에서, 반송파 네트워크(108)에 대한 커버리지(coverage)는 클라이언트 디바이스(102)가 빌딩에 입장함에 따라 저하된다. 하지만, 빌딩 내부의 무선 커버리지는 데이터 네트워크(110)를 통해 적합할 수 있다. 그러므로, 클라이언트 디바이스(102)는 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두에 대한 양호하고 불량한 커버리지 간에 트랜지션(transition)할 때 일정한 무선 액세스를 가질 것이다.
도 1에 설명된 대표적인 실시예에서, 서버(104)는 다양한 네트워크들(108, 110 및 112)을 통해 클라이언트 디바이스(102)와 클라이언트 디바이스(106) 간에 VoIP(voice over internet protocol) 통화 또는 반송파 네트워크 음성 통화와 관련된 것과 같은 음성 데이터 신호를 수신 및 송신하도록 구성된다. 그러므로, 클라이언트 디바이스(102)를 이용하는 송신자는 반송파 네트워크(108) 및 데이터 네트워크(110) 중 하나 또는 둘 모두에 동시에 연결되어서 전화 통화와 관련된 데이터 신호를 서버(104)에 릴레이(relay)한다. 서버(104)는 그 후에 SIP 네트워크(112)를 통해 클라이언트 디바이스(106)에 전화 통화를 연결한다. 서버(104)는 전화 통화와 관련된 데이터 신호에서 송신된 클라이언트 디바이스(106)를 식별하는 정보를 이용함으로써 클라이언트 디바이스(106)에 통화하는 것을 인지(know)하게 된다.
비록 대표적인 실시예에서는 서버(104)가 음성 데이터를 송신 및 수신하지만, 서버(104)는 오디오, 비디오, 그림들 및 텍스트 데이터를 포함하는 멀티미디어 데이터와 같은 어떤 타입의 데이터든지 처리(handle)하고 그 데이터를 통신 세션에서의 참가자들 간에 공유하도록 구성된다.
이제 도 2를 살피면, 본 발명의 일 양상에 따른 도 1의 클라이언트 디바이스(102)에 대한 기본적인 기능 컴포넌트들의 블럭도가 설명된다. 일반적으로, 클라이언트 디바이스(102)의 많은 다른 실시예들이 이용된다. 도 2의 설명된 실시예에서, 클라이언트 디바이스(102)는 하나 이상의 프로세서들(202), 메모리(204), 네트워크 인터페이스(들)(206), 하나 이상의 저장 디바이스들(208), 전원(210), 하나 이상의 출력 디바이스들(212), 하나 이상의 입력 디바이스들(214), 네트워크 모니터(218) 및 다이얼러 모듈(220)을 포함한다. 클라이언트 디바이스(102)는 또한 운영 체제(216)를 포함한다. 프로세서(202), 메모리(204), 네트워크 인터페이스(206), 전원(210), 출력 디바이스(212), 입력 디바이스(214), 네트워크 모니터(218), 다이얼러 모듈(220) 및 운영 체제(216)를 포함하는 컴포넌트들 각각은 컴포넌트간 통신들을 위해 물리적으로, 통신가능하게 그리고/또는 동작가능하게 상호연결된다.
한편, 클라이언트 디바이스(106)는 유사한 기능을 구비할 수 있다. 설명의 편의를 위해서, 상기 기능은 클라이언트(102)에 관해 설명될 것이지만, 어떤 실시예들에서는 클라이언트 디바이스(106)는 유사한 기능을 구비한다.
설명된 바와 같이, 프로세서(202)는 클라이언트 디바이스(102) 내에서의 실행을 위한 기능 및/또는 프로세스 명령어들을 구현하도록 구성된다. 예를 들어, 프로세서(202)는 메모리(202)에 저장된 명령어들 또는 저장 디바이스(204)에 저장된 명령어들을 실행한다. 비일시적(non-transient)인 컴퓨터 판독가능 저장 매체일 수 있는 메모리(202)는 동작 동안 클라이언트 디바이스(102) 내에 정보를 저장하도록 구성된다. 일부 실시예들에서, 메모리(202)는 클라이언트 디바이스(102)가 턴오프될 때 정보가 유지되지 않는 영역인 일시적 메모리를 포함한다. 그러한 일시적 메모리의 예시들은 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리들(DRAM) 및 정적 랜덤 액세스 메모리(SRAM)와 같은 휘발성 메모리들(volatile memories)을 포함한다. 메모리(202)는 또한 프로세서(202)에 의한 실행을 위한 프로그램 명령어들을 유지한다.
저장 디바이스(204)는 또한 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체들을 포함한다. 저장 디바이스(204)는 일반적으로 메모리(202)보다 많은 양의 정보를 저장하도록 구성된다. 저장 디바이스(204)는 정보의 장기간 저장을 하도록 더 구성된다. 일부 예시들에서, 저장 디바이스(204)는 비휘발성 저장 요소들을 포함한다. 비휘발성 저장 요소들의 비한정적 예시들은 자기적 하드 디스크들, 광학적 디스크들, 플로피 디스크들, 플래시 메모리들 또는 전기적으로 프로그래밍 가능한 메모리들(EPROM) 혹은 전기적으로 소거 및 프로그래밍 가능한 메모리들(EEPROM)의 형태들을 포함한다.
클라이언트 디바이스(102)는 도 1의 통신 네트워크들(108 및 110)과 같은 하나 이상의 네트워크들을 통해 외부 디바이스들과 통신하기 위한 네트워크 인터페이스(들)(206)를 이용한다. 네트워크 인터페이스(들)(206)는 이더넷 카드(Ethernet card), 광학 트랜시버, 무선 주파수 트랜시버 또는 정보를 송신 및 수신할 수 있는 어떤 기타 타입의 디바이스와 같은 네트워크 인터페이스 카드일 수 있다. 네트워크 인터페이스들의 다른 비한정적인 예시들은 클라이언트 컴퓨팅 디바이스들의 Bluetooth(등록상표), 2G, 3G, 4G 및 Wi-Fi 무선기기들 및 USB를 포함한다.
클라이언트 디바이스(102)는 하나 이상의 입력 디바이스들(214)을 포함한다. 입력 디바이스들(214)은 촉각, 청각 및/또는 시각 피드백을 통해 사용자 또는 사용자의 주변 환경으로부터 입력을 수신하도록 구성된다. 입력 디바이스(214)의 비한정적인 예시들은 프레즌스-감응 스크린(presence-sensitive screen), 마우스, 키보드, 음성 응답 시스템, 비디오 카메라, 마이크 또는 어떤 기타 타입의 입력 디바이스를 포함한다. 일부 예시들에서, 프레즌스 감응 스크린은 터치 감응 스크린(touch-sensitive screen)을 포함한다.
하나 이상의 출력 디바이스들(212)은 또한 클라이언트 디바이스(102)에 포함된다. 출력 디바이스들(212)은 촉각, 청각 및/또는 시각 자극들을 이용하여 사용자에게 출력을 제공하도록 구성된다. 출력 디바이스(212)는 디스플레이 스크린(프레즌스 감응 스크린의 일부), 사운드 카드, 비디오 그래픽 어댑터 카드 또는 신호를 사람들 또는 기계들이 이해할 수 있는 적절한 형태로 변환하기 위한 어떤 기타 타입의 디바이스를 포함한다. 출력 디바이스(212)의 추가적인 예시들은 헤드폰들, 음극선관(CRT) 모니터, 액정 디스플레이(LCD) 또는 사람에 대해 이해가능한 출력을 생성할 수 있는 어떤 기타 타입의 디바이스와 같은 스피커를 포함한다.
클라이언트 디바이스(102)는 상기 디바이스에 전력을 제공하기 위한 하나 이상의 전원들(210)을 포함한다. 전원(210)의 비한정적인 예시들은 일회용 전원들, 재충전가능한 전원들 및/또는 니켈-카드뮴, 리튬-이온 또는 기타의 적합한 물질로부터 개발된 전원들을 포함한다.
클라이언트 디바이스(102)는 운영 체제(216)를 포함한다. 운영 체제(216)는 클라이언트 디바이스(102)의 컴포넌트들의 동작들을 제어한다. 예를 들어, 운영 체제(216)는 프로세서(들)(202), 메모리(204), 네트워크 인터페이스(206), 저장 디바이스(들)(208), 입력 디바이스(214), 출력 디바이스(212), 전원(210), 네트워크 모니터(218) 및 다이얼러 모듈(220)의 인터렉션(interaction)을 지원(facilitate)한다.
본 발명의 특정한 실시예들에서, 클라이언트 디바이스(102)는 네트워크 모니터 모듈(218)을 더 포함한다. 네트워크 모니터 모듈(218)은 네트워크 인터페이스(들)(206)을 통해 클라이언트 디바이스(102)에 연결되는 다양한 무선 통신 네트워크들의 신호 품질을 추적한다. 도 1의 대표적인 실시예에서, 네트워크 모니터 모듈(218)은 반송파 네트워크(108) 및 데이터 네트워크(110)로부터 이용가능한 신호 품질을 모니터할 것이다.
도 1의 대표적인 실시예에서, 네트워크 모니터 모듈(218)은 네트워크들(108 및 110) 둘 모두에 대한 신호 품질이 감소하고 있었는지 또는 증가하고 있었는지 여부를 추적한다. 검출된 신호 품질에 기초하여, 네트워크 모니터 모듈(218)은 전화 통화가 반송파 네트워크(108)를 통해 개시되어야 하는지 또는 데이터 네트워크(110)를 통해 개시되어야 하는지 여부를 클라이언트 디바이스(102)에 알린다. 예를 들어, 네트워크 모니터 모듈(218)은 반송파 네트워크(108)의 신호 품질이 적합하기 때문에 전화 통화를 위해 반송파 네트워크(108)만이 이용되어야 한다고 결정한다. 하지만, 만약 일반적으로 음성 통화가 활성 상태가 아닐 때 신호 세기에 기초해서 검출되거나 음성 통화의 성능을 실제로 추적함으로써 검출되는 반송파 네트워크(108)의 신호 품질이 떨어진다면, 네트워크 모니터 모듈(218)은 반송파 네트워크(108)에 더하여 데이터 네트워크(110)를 이용하도록 결정한다. 만약 전화 통화가 그 후에 데이터 네트워크(110)를 통해 적합하게 동작하는 것으로 결정되고 클라이언트 디바이스(102)의 위치가 상대적으로 안정되면, 네트워크 모니터 모듈(218)은 데이터 네트워크(110)만을 이용하도록 결정하고 반송파 네트워크(108)를 통한 상기 통화를 종료한다.
특정한 실시예들에서, 네트워크 모니터 모듈(218)은 그 네트워크의 증가된 신호 세기에 기초해서 반송파 네트워크(108) 또는 데이터 네트워크(110) 중 하나를 이용하도록 결정한다. 예를 들어, 만약 클라이언트 디바이스(102)가 데이터 네트워크(110)를 통해 이미 연결되었지만 네트워크 모니터 모듈(218)이 반송파 네트워크(108)로부터의 신호 품질의 증가를 통지한다면, 네트워크 모니터 모듈(218)은 데이터 네트워크(110)의 어떤 저하(degradation)도 발생하지 않았더라도 클라이언트 디바이스(102)로 하여금 반송파 네트워크(108)를 통해 연결하도록 명령한다.
특정한 실시예들에서, 네트워크 모니터 모듈(218)은 클라이언트 디바이스(102)가 위치된 현재 지리적 영역 내의 반송파 네트워크(108) 또는 데이터 네트워크(110)의 성능 이력(historical performance)에 관한 정보에 대한 액세스를 가질 수 있다. 이러한 실시예에서, 네트워크 모니터 모듈(218)은 각각의 네트워크들 중 이러한 예측된 신호 품질에 기초하여 반송파 네트워크(108) 또는 데이터 네트워크(110) 중 하나에 연결하도록 결정할 수 있다.
따라서, 위에 논의된 바와 같이, 전화 통화가 진행 중인 동안에 네트워크 모니터 모듈(218)은 네트워크들(108 및 110)의 신호 품질을 계속해서 추적한다. 이러한 방식으로, 네트워크 모니터 모듈(218)은 대안적인 네트워크들과 현재 네트워크의 실제 신호 품질 또는 예측된 신호 품질에 기초하여 현재 사용중인 네트워크의 신호 품질이 증가하고 있는지 또는 감소하고 있는지 및 적합한 또는 심지어 바람직한 대안적인 네트워크가 존재하는지 여부를 결정할 수 있다.
추가적으로, 네트워크 모니터 모듈(218)이 위에 논의된 대표적인 실시예의 셀룰러 네트워크와 같은 셀룰러 네트워크를 모니터링할 때, 네트워크 모니터 모듈(218)은 PSTN 및 반송파 네트워크(108)와 관련된 데이터 네트워크 둘 모두에 관한 추가적인 정보를 수집한다. 반송파 네트워크(108)에 관해 수집된 추가적인 정보에 기초하여, 네트워크 모니터 모듈(218)은 전화 통화가 셀룰러 반송파 PSTN를 통해 연결되어야 하는지 또는 전화 통화가 VoIP와 같은 통신 방식에 기초한 인터넷 프로토콜(IP)을 이용한 데이터 네트워크를 통해 연결되어야 하는지 여부에 대한 추천을 할 것이다.
특정한 실시예들에서, 네트워크 모니터 모듈(218)의 추가적인 기능은 현재 사용되는 통신 네트워크(들)이 HD(high definition) 음성 또는 비디오를 지원할 수 있는지 여부를 결정하기 위한 것이다. HD 음성 또는 비디오를 이용하여 전화 통화를 수행하는 것은 통상적인 음성 통화보다 높은 대역폭을 요구한다. 그러므로, 네트워크 모니터 모듈(218)은 통화가 HD 음성 또는 비디오 통화로 개시되거나 업그레이드될 수 있도록 하는 HD 음성 또는 비디오를 통신 네트워크(들)이 지원할 수 있는지 여부의 표시를 제공한다.
본 발명의 특정한 실시예들에서, 클라이언트 디바이스(102)는 다이얼러 모듈(220)을 더 포함한다. 다이얼러 모듈(220)은 네트워크(108 또는 110)를 통해 전화 통화를 연결하기 위해서 네트워크 모니터 모듈(218)로부터의 네트워크 추천을 이용한다.
도 1에 설명된 이전에 논의된 대표적인 실시예를 이용하여, 전화 통화가 개시될 때 네트워크 모니터 모듈(218)은 반송파 네트워크(108)를 이용하도록 어드바이스(advise) 했을 수 있다. 이 경우에, 다이얼러 모듈(220)은 반송파 네트워크(108)를 통해 전화 통화를 연결하고, 네트워크 모니터 모듈(218)에 의해 결정된 대로, 일반 전화 통화(regular phone call)를 하기 위해 PSTN을 통한 음성 채널을 이용하거나 또는 VoIP 통화를 하기 위해 셀룰러 데이터 채널을 이용하도록 결정할 수 있다.
후속적으로, 네트워크 모니터 모듈(218)이 현재 전화 통화를 지원하고 있는 반송파 네트워크(108)로부터의 신호 품질의 저하 또는 데이터 네트워크(110)의 신호 품질의 증가를 검출하는 상황에서, 반송파 네트워크(108)에 더하여 데이터 네트워크(110)를 이용하도록 하는 제안이 이루어진다. 이러한 시나리오에서, 다이얼러 모듈(220)은 원래의 전화 통화의 수신자와 동일한 수신자에게 데이터 네트워크(110)를 통해 제2의 전화 통화를 연결한다. 제2의 전화 통화는 클라이언트 디바이스(102)에 대한 원래의 전화 통화의 입력과 동일한 입력에 기초한 VoIP 통화이다. 네트워크 모니터 모듈(218)로부터의 어드바이스에 기초해서, 다이얼러 모듈(220)은 제2 전화 통화가 데이터 네트워크(110)에 의해 단독으로 유지될 수 있도록 데이터 네트워크(110)가 충분히 안정되어 있다고 결정하고 반송파 네트워크(108)를 통한 원래의 전화 통화를 끊을 수 있다. 대안적으로, 네트워크 모니터 모듈(218)은 반송파 네트워크(108)의 신호 품질이 향상되었음을 결정하고, 그러므로, 데이터 네트워크(110)를 통한 제2 통화가 끊어질 수 있다.
따라서, 네트워크 모니터 모듈(218)로부터의 어드바이스에 기초해서, 다이얼러 모듈(220)은 클라이언트 디바이스(102)로 하여금 3개의 통화 상황들 중 하나에 있도록 명령할 것이다. 제1 상황은 반송파 네트워크(108) 또는 데이터 네트워크(110)와 같은 단일 통신 네트워크를 통한 전화 통화이다. 제2 상황은 반송파 네트워크(108)와 같은 제1 네트워크를 통한 하나의 전화 통화 및 데이터 네트워크(110)와 같은 제2 네트워크를 통한 다른 전화 통화를 갖는 2개의 별개의 전화 통화들이다. 제3 상황은 2개의 활성 전화 통화들로부터 네트워크 모니터 모듈(218)이 상기 전화 통화에 대해 가장 적합하다고 결정하는 어떤 네트워크(반송파 네트워크(108) 또는 데이터 네트워크(110))를 통한 단일의 전화 통화로의 트랜지션(transition)이다.
이제 도 3을 살피면, 본 발명의 일 양상에 따른 서버(104)에 대한 기본 기능 컴포넌트들의 블럭도가 묘사된다. 서버(104)는 클라이언트 디바이스(102) 및 클라이언트 디바이스(106)(도 1 참조)와 같은 클라이언트 디바이스들로부터 그리고 상기 클라이언트 디바이스들에 대한 착신 전화 통화(inbound phone call) 및 발신 전화 통화(outbound phone call)의 신호 경로들(signaling paths) 사이에 배치되는 중앙 서비스를 실행한다. 서버(104)는 하나 이상의 프로세서들(302), 메모리(304), 네트워크 인터페이스(들)(306), 하나 이상의 저장 디바이스들(308), 미디어 믹싱 모듈(310), 미디어 세션 데이터 결합 모듈(312) 및 연결 서비스 모듈(314)을 포함한다. 일부 실시예들에서, 프로세서(들)(302), 메모리(304), 네트워크 인터페이스(들)(306), 저장 디바이스(들)(308), 미디어 믹싱 모듈(310), 미디어 세션 데이터 결합 모듈(312) 및 연결 서비스 모듈(314)을 포함하는 컴포넌트들 각각은 컴포넌트 간의 통신들을 위해 물리적으로, 통신가능하게 그리고/또는 동작가능하게 상호연결된다.
설명된 바와 같이, 프로세서들(302)은 서버(104) 내에서의 실행을 위한 기능 및/또는 프로세스 명령어들을 구현하도록 구성된다. 예를 들어, 프로세서들(302)은 메모리(304)에 저장된 명령어들 또는 저장 디바이스들(308)에 저장된 명령어들을 실행한다. 비일시적인 컴퓨터 판독가능 저장 매체일 수 있는 메모리(304)는 동작 동안 서버(104) 내에 정보를 저장하도록 구성된다. 일부 실시예들에서, 메모리(304)는 서버(104)가 턴 오프 되어 있을 때 유지되지 않는 정보의 영역인 일시 메모리를 포함한다. 그러한 일시 메모리의 예시들은 랜덤 액세스 메모리들(RAM), 동적 랜덤 액세스 메모리들(DRAM) 및 정적 랜덤 액세스 메모리들(SRAM)과 같은 휘발성 메모리들을 포함한다. 메모리(304)는 또한 프로세서들(302)에 의한 실행을 위한 프로그램 명령어들을 유지한다.
저장 디바이스들(308)은 또한 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 저장 디바이스들(308)은 일반적으로 메모리(304)보다 많은 양들의 정보를 저장하도록 구성된다. 저장 디바이스들(308)은 정보의 장기간 저장을 하도록 더 구성된다. 일부 예들에서, 저장 디바이스들(304)은 비휘발성 저장 요소들을 포함한다. 비휘발성 저장 요소들의 비한정적인 예시들은 자기적 하드 디스크들, 플로피 디스크들, 광학 디스크들, 플로피 디스크들, 플래시 메모리들 또는 전기적으로 프로그래밍 가능한 메모리들(EPROM) 혹은 전기적으로 소거 및 프로그래밍 가능한 메모리들(EEPROM)의 형태들을 포함한다.
상기 서버(104)는 도 1의 반송파 네트워크(108) 또는 데이터 네트워크(110)와 같은 하나 이상의 네트워크들을 통하여 외부 디바이스들과 통신하기 위해 네트워크 인터페이스(들)(306)을 이용한다. 그러한 네트워크들은 또한 하나 이상의 무선 네트워크들, 유선 네트워크들, 광섬유 네트워크들 및 서버(104)와 외부 디바이스 간의 통신이 설정될 수 있는 다른 타입의 네트워크들을 포함한다. 네트워크 인터페이스(들)(306)는 이더넷 카드, 광학 트랜시버, 무선 주파수 트랜시버 또는 정보를 송신 및 수신할 수 있는 어떤 다른 타입의 디바이스와 같은 네트워크 인터페이스 카드일 수 있다.
서버(104)는 서버(104)를 통해 통신 세션에 참여하는 복수 개의 클라이언트 디바이스들로부터의 신호를 조정하는 미디어 믹싱 서비스를 실행하는 미디어 믹싱 모듈(310)을 포함한다. 미디어 믹싱 서비스는 클라이언트 디바이스들(102 및 106)(도 1 참조)과 같은 서버(104)를 통해 통신 세션에 참여하는 복수 개의 클라이언트 디바이스들 각각으로부터 개별적인 데이터 신호들을 수신하는 중앙 서비스이다. 미디어 믹싱 서비스는 그 후에 데이터 신호들을 통해 송신되는 미디어가 복수 개의 클라이언트 디바이스들 사이에 공유되도록 복수 개의 클라이언트 디바이스들 각각으로부터 수신되는 데이터 신호들을 믹싱한다.
도 1에 설명된 실시예에서, 클라이언트 디바이스(102) 및 클라이언트 디바이스(106) 각각은 통신 세션에서 공유될 미디어를 포함하는 데이터 신호를 송신한다. 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102) 및 클라이언트 디바이스(106) 각각으로부터 데이터 신호들을 수신하고 데이터 신호들에 포함된 미디어를 수신자 디바이스에 릴레이한다. 상기 미디어는 오디오, 비디오, 텍스트 또는 이미지들일 수 있다. 또한, 비록 단지 클라이언트 디바이스(102) 및 클라이언트 디바이스(106)만이 도 1에 설명되어 있지만, 미디어 믹싱 모듈(310)은 통신 세션에 참여하는 3개 이상의 클라이언트 디바이스들과 함께 동작할 수 있다.
추가적으로, 미디어 믹싱 모듈(310)은 낮은 데이터 레이트(low data rate) 통신 세션들에 대해서 단지 소량의 시스템 자원들만이 활용되도록 서버(104)의 시스템 자원들을 제어할 수 있다. 예를 들어, 만약 통신 세션에 2명의 참가자들만이 존재하고, 미디어가 2명의 참가자들 각각으로부터의 데이터 신호들에서 송신된다면, 미디어 믹싱 모듈(310)은 서버(104)로 하여금 소량의 시스템 자원들을 활용하도록 명령할 것이다. 2명의 참가자들 간의 통신 세션 동안, 만약 상기 미디어가 비디오로 스위칭되거나 몇 명의 추가적인 참가자들이 통신 세션에 참여한다면, 미디어 믹싱 모듈(310)은 서버(104)로 하여금 통신 세션을 지원하기 위해 보다 많은 시스템 자원들을 이용하도록 명령할 것이다.
서버(104)는 데이터 결합 서비스를 실행하는 미디어 세션 데이터 결합 모듈(312)을 포함한다. 데이터 결합 서비스는 통신 세션에 참여하는 (도 1로부터의 클라이언트 디바이스들(102 및 106)과 같은) 클라이언트 디바이스로 하여금 데이터 네트워크(110)와 같은 데이터 네트워크를 통해 통신 세션의 위치를 확인(locate)하고 참여할 수 있도록 하기 위해 미디어 믹싱 서비스와 함께 동작한다. 예를 들어, 만약 클라이언트 디바이스(102)(도 1 참조)가 반송파 네트워크(108)를 통해 통신 세션에 참여하고 있고 통신 세션 동안 클라이언트 디바이스(102)가 데이터 네트워크(110)를 통해 통신하기를 원함을 서버(104)에 표시한다면, 데이터 결합 서비스는 클라이언트 디바이스(102)가 데이터 네트워크(110)를 통해 여분의 전화 통화(redundant phone call)를 연결하는 것을 지원한다. 동일한 데이터 신호는 클라이언트 디바이스(102)로부터 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두에 송신된다.
데이터 결합 서비스는 데이터 네트워크(110)를 통해 여분의 전화 통화의 연결을 지원하기 위해 다양한 기법들을 활용한다. 하나의 그러한 기법은 도 2에 관해 위에 논의된 바와 같이 클라이언트 디바이스(102)가 네트워크들을 스위칭하고 있다는 표시를 수신한 후에, 통신 세션의 식별자를 포함하는 메시지를 클라이언트 디바이스(102)와 같은 클라이언트 디바이스에 송신하는 것이다. 클라이언트 디바이스(102)는 그 후에 데이터 네트워크(110)와 같은 데이터 네트워크를 통해 여분의 전화 통화를 서버(104)에 연결하고, 서버(104)는 그 후에 상기 전화 통화를 통신 세션에 결합한다. 일단 여분의 전화 통화가 통신 세션에 결합되면, 위에 논의된 바와 같이, 클라이언트 디바이스(102)는 원래의 전화 통화를 종료하기 위한 결정을 내린다. 이 메시지는 모바일 푸시 알림 서비스를 이용해서 구현될 수 있다.
서버(104)를 통해 통신 세션에 참여하는 클라이언트 디바이스(102)와 같은 클라이언트 디바이스로부터 여분의 전화 통화를 연결하는 것을 지원하기 위해 이용되는 제2 기법은 데이터 결합 서비스에 의해 제공되는 네트워크 애플리케이션 프로그래밍 인터페이스(API)이다. API는 클라이언트 디바이스(102)로부터의 쿼리에 따라 클라이언트 디바이스(102)에 통신 세션의 식별자를 제공하도록 구성된다. 상기 API는 현재 진행중인 클라이언트 디바이스(102)의 통화의 쿼리에 기초해서 식별자를 인식하고 결정한다. 클라이언트 디바이스(102)는 그 후에 여분의 전화 통화를 통해 통신 세션의 위치를 확인하고 결합하기 위해 상기 식별자를 활용한다. 일단 여분의 전화 통화가 통신 세션에 결합되면, 클라이언트 디바이스(102)는 원래의 전화 통화를 종료하기 위해 상기 결정을 내린다.
상기 서버(104)는 연결 서비스를 실행하는 연결 모듈(314)을 포함한다. 상기 연결 서비스는 (도 1로부터의 클라이언트 디바이스들(102 및 106)과 같은) 통신 세션에 참여하는 클라이언트 디바이스로 하여금 반송파 네트워크(108)와 같은 반송파 네트워크를 통해 통신 세션의 위치를 확인하고 결합하는 것을 가능하도록 하기 위해 미디어 믹싱 모듈(310)의 미디어 믹싱 서비스와 함께 동작한다. 예를 들어, 만약 클라이언트 디바이스(102)(도 1 참조)가 데이터 네트워크(110)를 통해 상기 통신 세션에 참여하고 있으며 상기 통신 세션 동안 상기 클라이언트 디바이스(102)가 반송파 네트워크(108)를 통해 통신하기를 원함을 상기 서버(104)에 표시한다면, 상기 연결 서비스는 클라이언트 디바이스(102)가 반송파 네트워크(108)를 통해 여분의 전화 통화를 연결하는 것을 지원한다. 동일한 데이터 신호가 클라이언트 디바이스(102)로부터 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두를 통해 송신된다.
연결 서비스는 반송파 네트워크(108)를 통해 여분의 전화 통화의 연결을 지원하기 위한 다양한 기법들을 활용한다. 하나의 그러한 기법은 클라이언트 디바이스(102)와 같은 클라이언트 디바이스에 통신 세션에 대한 연결 전화번호를 포함하는 메시지를 송신하는 것이다. 클라이언트 디바이스(102)는 그 후에 연결 전화번호를 이용하여 반송파 네트워크(108)를 통해 상기 서버(104)에 여분의 전화 통화를 연결하고, 서버(104)는 그 후에 전화 통화를 통신 세션에 결합한다. 일단 여분의 전화 통화가 통신 세션에 결합되면, 클라이언트 디바이스(102)는 원래의 전화 통화를 종료하기 위한 결정을 내린다. 이 메시지는 모바일 푸시 알림 서비스를 이용해서 구현될 수 있다.
서버(104)를 통해 통신 세션에 참여하는 클라이언트 디바이스(102)와 같은 클라이언트 디바이스로부터의 여분의 전화 통화의 연결을 지원하기 위한 제2 기법은 서버(104)의 제어된 전화번호에 대한 전화 통화를 통한 번호 요청이다. 제어된 전화번호는 미디어 믹싱 모듈(310)의 미디어 믹싱 서비스를 직접 호출하고, 그리고 미디어 믹싱 서비스는 연결 서비스로 하여금 진행중인 통신 세션에 대한 전화번호를 제공하도록 명령한다. 클라이언트 디바이스는 여분의 전화 통화를 통해 통신 세션의 위치를 확인하고 결합하기 위해 반송파 네트워크(108)를 통해 연결 서비스에 의해 제공되는 전화 통화를 호출한다. 일단 여분의 전화 통화가 통신 세션에 결합되면, 클라이언트 디바이스(102)는 원래의 전화 통화를 종료하도록 하는 결정을 내린다.
특정한 실시예에서, 클라이언트 디바이스(102)와 같은 클라이언트 디바이스는 연결 서비스를 활용하지 않고도 반송파 네트워크(108)와 같은 반송파 네트워크를 통해 서버(104)에 여분의 전화 통화를 연결할 수 있다. 이 실시예에서, 클라이언트 디바이스(102)는 서버(104)의 미디어 믹싱 모듈(310)을 직접 호출하는 적어도 하나의 전화번호를 이용해 사전 프로그래밍된다. 미디어 믹싱 모듈(310)이 이 사전 프로그래밍된 번호를 통해 전화 통화를 수신할 때 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102)가 통신 세션에 현재 참여하고 있는지 여부를 결정하기 위해서 발신자 식별 정보(caller identification information)를 판독한다. 미디어 믹싱 모듈은 그 후에 여분의 전화 통화를 통신 세션에 연결한다. 일단 여분의 전화 통화가 통신 세션에 결합되면, 클라이언트 디바이스(102)는 원래의 전화 통화를 종료하도록 하는 결정을 내린다.
도 3에 묘사된 서버(104)는 서버의 물리적 실시예를 대표한다. 하지만, 상기 서버(104)는 클라우드 서버와 같은 가상의 서버로서 구현된다.
서버(104)는 발신 통화 인터셉션 기법들(outbound call interception techniques)을 통해서 통신 네트워크를 통한 클라이언트 디바이스들(102 및 106)(도 1 참조)과 같은 클라이언트 디바이스들로부터 연결된 전화 통화와 관련된 데이터 신호를 수신하도록 구성된다. 도 1에 설명된 구체적인 실시예에서, 서버(104)는 반송파 네트워크(108) 또는 데이터 네트워크(110) 둘 중 하나로부터 데이터 신호를 수신하도록 구성되지만, 다른 실시예들에서는 3개 이상의 네트워크들이 고려된다.
발신 통화 인터셉션을 위해서 서버(104)에 의해 이용되는 하나의 그러한 기법은 섀도우 번호 호출(shadow number calling)이다. 섀도우 번호 호출은 다이얼러 모듈(220)로 하여금 사용자에 의해 입력된 번호 대신에 서버(104)의 미디어 믹싱 모듈(310)에 직접 연결하는 예약된 섀도우 전화번호를 호출하도록 한다. 다이얼러 모듈(220)은 그 후에 클라이언트 디바이스(106)와 같은 수신자 클라이언트 디바이스의 사용자 입력 번호 및 클라이언트 디바이스(102)의 고유의 전화번호를 미디어 믹싱 모듈(310)에 제공한다. 미디어 믹싱 모듈(310)은 그 후에 별개의 전화 통화를 수신자 클라이언트 디바이스(106)에 연결하고 그 후에 2개의 전화 통화들을 통신 세션에 결합한다.
발신 통화 인터셉션을 위해 서버(104)에 의해 이용되는 다른 기법은 네트워크 통합이다. 이러한 기법을 이용하여, 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두는 서버(104)의 미디어 믹싱 모듈(310)에 대한 전화 통화와 관련된 데이터 신호를 릴레이하기 위해서 클라이언트 디바이스(102)의 다이얼러 모듈(220)로부터의 전화 통화에 대한 개시 요청(initiation request)을 수신한 때를 인지한다. 미디어 믹싱 모듈(310)은 그 후에 수신자 클라이언트 디바이스(106)에 전화 통화를 연결하고 2개의 전화 통화들을 통신 세션에 결합한다. 미디어 믹싱 모듈(310)은 수신자 클라이언트 디바이스(108)(도 1 참조)에 대한 전화 통화를 연결하기 위해서 데이터 신호 내의 식별 정보를 이용한다. 도 1에 설명된 실시예에서, 이러한 전화 통화는 SIP 네트워크(112)를 통한 VoIP 전화 통화이다. 상기 전화 통화를 연결한 이후에, 미디어 믹싱 모듈(310)은 그 후에 수신자 클라이언트 디바이스(106)에 대한 VoIP 전화 통화를 통해 클라이언트 디바이스(102)로부터의 전화 통화와 관련된 데이터 신호를 송신함으로써 통신 세션을 완성한다.
서버(104)는 착신 통화 인터셉션 기법들을 통해서 통신 네트워크를 통해 클라이언트 디바이스(102)(도 1 참조)에 대해 연결된 전화 통화와 관련된 데이터 신호를 수신하도록 더 구성된다. 도 1에 설명된 특정한 실시예에서, 상기 서버(104)는 반송파 네트워크(108) 또는 데이터 네트워크(110) 둘 중 하나로부터 데이터 신호를 수신하도록 구성되지만, 다른 실시예들에서는 3개 이상의 네트워크들이 고려된다.
착신 통화 인터셉션을 위해서 서버(104)에 의해 이용되는 하나의 그러한 기법은 서비스 번호 호출(service number calling)이다. 서비스 번호 호출은 사용자로 하여금 주요 연락 지점(primary point of contact)으로서 서비스 번호를 제공하는 것을 요구한다. 서비스 번호는 사용자의 관련된 클라이언트 디바이스와는 반대로 서버(104)의 미디어 믹싱 모듈(310)을 직접 호출한다. 미디어 믹싱 모듈(310)은 서비스 번호와 관련된 사용자를 인지하고 클라이언트 디바이스(102)와 같은 사용자의 관련된 클라이언트 디바이스에 별개의 전화 통화를 연결한다. 미디어 믹싱 모듈(310)은 2개의 전화 통화들을 통신 세션에 결합한다.
한편, 미디어 믹싱 모듈(310)은 서비스 번호에 기초하여 사용자와 관련된 2개 이상의 디바이스를 호출할 수 있다. 이러한 방식으로, 사용자는 다수의 연락 지점을 통해 도달될 수 있다.
착신 통화 인터셉션을 위해서 서버(104)에 의해 이용되는 다른 기법은 네트워크 통합이다. 이러한 기법을 이용하여, 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두는 클라이언트 디바이스(102)에 대한 전화 통화에 대한 개시 요청을 수신한 때를 인지하고, 이는 클라이언트 디바이스(102)에 직접 전화 통화와 관련된 데이터 신호를 릴레이 하는 것보다는, 서버(104)의 미디어 믹싱 모듈(310)에 전화 통화와 관련된 데이터 신호를 릴레이하기 위함이다. 미디어 믹싱 모듈(310)은 그 후에 전화 통화를 클라이언트 디바이스(102)에 연결하고 2개의 전화 통화들을 통신 세션에 결합한다.
한편, 다른 실시예들에서, 데이터 및 음성 둘 모두에 기초한, SIP 네트워크(112) 외에 다양한 서로 다른 타입들의 네트워크들을 통해 VoIP 통화 외의 다른 타입들의 전화 통화들이 고려된다. 추가적으로, 위에 설명된 발신 및 착신 인터셉션 기법들은 사용자가 원격자(remote party)에 도달하기 위해 전화번호를 다이얼 할 때 활용된다. 서버(104)의 미디어 믹싱 모듈(310)이 전화 통화를 다이얼함으로써 개시되지는 않는, 다자간 비디오 회의(multi-party video conference)와 같은 통신 세션에 연루된(involved) 복수 개의 클라이언트 디바이스들 간의 시그널링(signaling)을 제어하는 본 발명의 실시예들이 고려된다. 이러한 상황에서, 복수 개의 클라이언트 디바이스들은 서버(104)를 통해 상기 회의에 직접 참여하고 미디어 믹싱 모듈(310)은 복수 개의 클라이언트 디바이스들 간의 시그널링을 제어한다. 이러한 방식으로, 클라이언트 디바이스에 의해서 어떤 전화번호도 다이얼되지 않기 때문에 발신 또는 착신 인터셉션 기법이 필요하지 않다.
더욱이, 다이얼러 모듈(220)이 클라이언트 디바이스(102)로부터의 2개의 동시적인 전화 통화들을 연결할 때, (원래의 그리고 여분의) 전화 통화들과 관련된 데이터 신호들 모두는 서버(104)의 미디어 믹싱 모듈(310)에 릴레이될 것이다. 미디어 믹싱 모듈(310)은 데이터 신호들 모두는 동일한 클라이언트 디바이스로부터 수신되고 수신자 클라이언트 디바이스(106)와 관련된 전화번호와 같은 데이터 신호들 내의 식별 정보에 기초하여 동일한 수신자 디바이스(106)에 다이렉팅(directing)되어야 함을 구현할 것이다. 이러한 구성에서, 미디어 믹싱 모듈(310)은 최적 품질의 데이터 신호를 합성(synthesize)하기 위해서 전화 통화들과 관련된 데이터 신호들 모두를 이용하고, 미디어 믹싱 모듈(310)은 그 후에 원래의 전화 통화가 처음 개시된 때에 설정된 별개의 전화 통화를 통하여 최적 품질의 데이터 신호를 수신자 클라이언트 디바이스(106)에 송신한다.
수신자 클라이언트 디바이스(106)에 최적 품질의 데이터 신호를 합성하기 위하여 몇몇의 기법들이 이용될 수 있다. 미디어 믹싱 모듈(310)이 최적 품질의 데이터 신호를 합성하기 위해서 이용하는 하나의 기법은 동일한 데이터를 운반(carry)하는 2개의 별개의 데이터 신호들에 의존하는데, 이는 상기 2개의 별개의 데이터 신호들이 클라이언트 디바이스(102)에 대한 동일한 입력과 관련되기 때문이다. 구체적으로, 최적 품질의 데이터 신호를 합성하기 위하여 미디어 믹싱 모듈(310)은 서버(104)에서 수신된 데이터 신호를 단지 먼저 송신하고 다른 하나의 데이터 신호는 폐기(discard)한다.
최적 품질의 데이터 신호를 생산하기 위한 다른 기법은 다이얼러 모듈(220)로 하여금 클라이언트 디바이스(102)에 대한 단일의 입력에 기초하여 데이터 신호를 분리하고 데이터의 일부를 반송파 네트워크(108) 및 데이터 네트워크(110)와 같은 각각의 통신 네트워크를 통해 송신하도록 하는 것이다. 데이터 신호를 분리하는 것은 데이터 신호에 대해 이용가능한 대역폭을 증가시키기 때문에 유리하다. 이는 네트워크 모니터 모듈(218)이 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두로부터 안정한 신호 품질을 인지하는 상황들에서 이루어진다. 이러한 시나리오에서, 미디어 믹싱 모듈(310)은 미디어 믹싱 모듈(310)이 데이터 신호를 재구성(reconstruct)하고 이를 수신자 클라이언트 디바이스(106)에 송신할 수 있도록 다이얼러 모듈(220)이 2개의 네트워크들(108 및 110) 사이에 데이터를 어떻게 분리하는지를 알아야만 한다.
비록 데이터를 어떻게 분리할지에 대해 많은 가능성들이 존재하지만, 하나의 방법은 데이터 신호가 기저층(base layer) 및 고품질 증분층(high quality incremental layer)로 분리되는 스케일가능한 코딩 기법(scalable coding technique)을 이용하는 것이다. 이러한 실시예에서, 데이터 신호의 기저층은 하나의 네트워크를 통해 송신되고 증분층은 다른 네트워크를 통해 송신될 것이다. 데이터 신호를 분리하기 위한 다른 기법은 각각의 네트워크 연결을 통해 교대하는 패킷들(alternate packets)을 송신하는 것이다. 예를 들어, 데이터 신호의 제1 패킷은 반송파 네트워크(108)를 통해 송신되고 제2 패킷은 데이터 네트워크(110)를 통해 송신될 수 있다.
수신자 클라이언트 디바이스(106)로부터 미디어 믹싱 모듈(310)에서 수신된 데이터 신호에 관해서, 미디어 믹싱 모듈(310)은 이 데이터 신호를 활성인 어떤 네트워크 연결을 통해서 클라이언트 디바이스(102)에 다시 송신하도록 구성된다. 구체적으로, 반송파 네트워크(108)와 같은 단일의 통신 네트워크만이 활성인 시나리오에서, 미디어 믹싱 모듈(310)은 반송파 네트워크(108)를 통해 클라이언트 디바이스(102)에 수신자 디바이스(106)로부터 수신된 데이터 신호를 송신할 것이다. 반송파 네트워크(108) 및 데이터 네트워크(110) 둘 모두가 활성인 상황에서, 미디어 믹싱 모듈(310)은 수신자 클라이언트 디바이스(106)로부터 수신된 데이터 신호를 재생산하고 통신 네트워크들(108 및 110)을 통해 송신한다. 클라이언트 디바이스(102)는 그 후에 동일한 데이터 신호를 반송파 네트워크(108) 연결 및 데이터 네트워크(110) 연결 각각을 통해 수신할 것이다. 클라이언트 디바이스(102)는 제일 먼저 수신된 어떤 패킷을 이용하고 다른 네트워크들로부터의 여분의 패킷을 폐기함으로써 수신자 클라이언트 디바이스(106)로부터의 단일의 데이터 신호를 재생산할 것이다.
이러한 방식으로, 클라이언트 디바이스(102)와 수신자 클라이언트 디바이스(106) 간의 연결은 통신 네트워크들(108 및 110) 간에 스위칭할 때 유지된다. 이는 클라이언트 디바이스(102)에 대한 연결이 반송파 네트워크(108)를 통한 것이든지 아니면 데이터 네트워크(110)를 통한 것이든지에 상관없이, 미디어 믹싱 모듈(310)은 수신자 클라이언트 디바이스(106)에 대한 통화를 유지할 것이고 단지 클라이언트 디바이스(102)가 현재 통신하고 있는 어떤 통신 네트워크(108 또는 110)를 통해 상기 통신을 완료할 것이기 때문이다.
더욱이, 서버(104)가 클라이언트 디바이스(102)와 수신자 클라이언트 디바이스(106) 간의 중간 엔터티(intermediary entity)이기 때문에, 만약 클라이언트 디바이스(102)가 반송파 네트워크(108)를 통해 연결되고 클라이언트 디바이스(102)로부터 서버(104)로의 통화가 끊긴다면, 서버(104)의 미디어 믹싱 모듈(310)은 수신자 클라이언트 디바이스(106)가 통화를 끊었는지 아니면 네트워크가 상기 통화를 끊었는지 여부를 구별할 수 있을 것이다. 미디어 믹싱 모듈(310)은 만약 통화가 종료되도록 하는 것이 반송파 네트워크(108) 실패라면 서버(104)로부터 수신자 클라이언트 디바이스(106)로의 연결이 여전히 활성일 것이기 때문에 이러한 결정을 내릴 수 있다. 한편, 만약 수신자 클라이언트 디바이스(106)가 전화를 끊었다면, 서버(104)로의 연결은 더이상 활성 상태가 아닐 것이다. 네트워크 실패가 검출되는 때에, 클라이언트 디바이스(102)의 다이얼러 모듈(220)은 서버(104)에 대한 연결을 재설정할 것이고 서버(104)는 단지 네트워크 실패 이전과 동일하게 연결을 재개할 것이다.
이제 도 4 내지 도 9를 참조하면, 본 명세서에 포함된 본 발명의 대표적인 실시예를 개시하는 흐름도들이 설명된다. 도 4는 다이얼러 모듈(220)과 함께 네트워크 모니터 모듈(218)(도 2 참조)에 의해 수행되는 단계들을 묘사한다. 단계들(402 및 404)에서, 네트워크 모니터 모듈(218)은 (도 1로부터의 통신 네트워크들(108 및 110)과 같은) 제1 네트워크 연결 및 제2 네트워크 연결의 신호 품질을 결정할 것이다. 단계(406)에서, 네트워크 모니터 모듈(218)은 제1 네트워크 연결과 제2 네트워크 연결의 신호 품질을 비교하고 단계(408)에서 최적 신호 품질을 갖는 네트워크 연결을 선택한다. 단계(410)에서, 다이얼러 모듈(220)은 통신 세션을 개시하거나, 다시 말해서 선택된 네트워크 연결을 통해 서버(104)에 대한 전화 통화를 개시한다. 전화 통화가 진행중(underway)인 동안, 네트워크 모니터 모듈(218)은 단계(412)에서 네트워크 연결들의 신호 품질을 계속해서 모니터링한다. 단계(414)에서, 네트워크 모니터 모듈(218)은 대안적인 네트워크를 통해 전화를 연결하는 것이 어드바이스되도록 선택된 네트워크 연결의 신호 품질이 저하되었거나 아니면 대안적인 네트워크가 어드바이스되도록 대안적인 네트워크의 신호 품질이 증가했는지 여부를 결정한다. 만약 연결이 저하되지 않았거나 대안적인 네트워크의 신호 품질이 증가되지 않았다면, 다이얼러 모듈(220)은 단지 단계(416)에서 전화 통화를 유지할 것이다. 하지만, 만약 선택된 네트워크의 신호 품질이 저하되었거나 대안적인 네트워크 신호 품질이 증가되었다면, 네트워크 모니터 모듈(218)은 다이얼러 모듈(220)에 대한 비선택된 네트워크 연결의 신호 품질을 제공할 것이다.
도 5에 설명된 흐름도(500)는 네트워크 모니터 모듈(218)로부터의 어드바이스에 기초하여 다이얼러 모듈(220)(도 2 참조)에 의해 수행되는 단계들을 묘사한다. 단계(502)에서, 다이얼러 모듈(220)은 도 4의 단계(410)와 유사하게, 선택된 네트워크를 통해 통신 세션 또는 전화 통화를 개시한다. 단계(504)에서, 다이얼러 모듈(220)은 개시된 전화 통화와 관련된 데이터 신호를 서버(104)에 릴레이한다. 단계(506)에서, 다이얼러 모듈(220)은 선택된 네트워크 연결의 신호 품질이 저하되었거나 대안적인 네트워크 또는 비선택된 네트워크의 신호 품질이 증가되었다는 표시를 수신한다. 단계(508)에서, 다이얼러 모듈(220)은 제2 통신 세션을 개시하거나, 다시 말해서 이전에 비선택된 네트워크를 통해 제2 전화 통화를 개시한다. 단계(510)에서, 다이얼러 모듈(220)은 제2 전화 통화와 관련된 제2 데이터 신호를 서버(104)(도 1 참조)에 릴레이한다. 단계(512)에서, 네트워크 모니터(218)는 네트워크 모니터(218)가 연결들 중 하나를 종료하도록 어드바이스하게끔 네트워크 연결들 중 하나의 신호 품질이 변화했는지 여부를 결정한다. 예를 들어, 하나의 네트워크의 신호 품질이 크게 향상되었고 다른 네트워크의 신호 품질이 상당히 저하되었다. 또는, 단지 하나의 네트워크의 신호 품질이 상당히 저하되었다. 만약 두 네트워크들 모두의 신호 품질이 적합하다면, 두 전화 통화들 모두는 단계(514)에서 유지된다. 하지만, 만약 종료가 추천되도록 네트워크들 중 적어도 하나의 신호 품질이 변화했다면, 다이얼러 모듈(220)은 단계(516)에서 그 네트워크와 관련된 전화 통화를 종료한다.
도 6에 설명된 흐름도(600)는 클라이언트 디바이스(102)의 다이얼러 모듈(220)(도 2 참조)로부터의 데이터 신호 또는 데이터 신호들을 수신함에 기초하여 서버(104)(도 1 참조)에 의해 수행되는 단계들을 묘사한다. 단계(602)에서, 서버(104)는 다이얼러 모듈(220)로부터 제1 데이터 신호를 수신한다. 단계(604)에서, 데이터 신호에 포함된 식별 정보를 이용하여, 서버(104)는 수신자 클라이언트 디바이스(106)와 같은 데이터 신호에 대한 착신지(destination)를 결정한다. 단계(606)에서, 서버(104)는 결정된 착신지에 대해 전화 통화를 연결하거나, 다시 말해서, 수신자 클라이언트 디바이스(106)에 전화 통화를 연결하고 클라이언트 디바이스(102)로부터의 상기 통화를 수신자 클라이언트 디바이스(106)에 대한 통화와 결합한다. 단계(608)에서, 서버(104)는 제2 데이터 신호가 다이얼러 모듈(220)로부터 수신되었는지 여부를 보기 위해 체크한다. 만약 아니라면, 서버(104)는 클라이언트 디바이스(102)와 수신자 클라이언트 디바이스(106) 간의 통신 세션을 유지한다. 만약 제2 데이터 신호가 다이얼러 모듈(220)로부터 수신되었다면, 단계(612)에서, 서버(104)는 제1 데이터 신호를 제2 데이터 신호와 관련시킨다. 단계(614)에서, 서버(104)는 수신된 제1 데이터 신호 및 제2 데이터 신호에 기초하여 최적 품질의 음성 스트림을 합성한다. 단계(616)에서, 서버(104)는 전화 통화를 통해 최적 품질의 데이터 신호를 수신자 클라이언트 디바이스(106)에 송신한다. 단계(618)에서, 서버(104)는 수신자 클라이언트 디바이스(106)로부터 반환 데이터 신호를 수신한다. 단계(620)에서, 서버(104)는 제1 네트워크 및 제2 네트워크 둘 모두를 통해 수신자 클라이언트 디바이스(106)로부터 클라이언트 디바이스(102)에 데이터 신호를 송신한다. 단계(622)에서, 서버(104)는 다이얼러 모듈(220)이 데이터 신호들 중 하나와 관련된 전화 통화들 중 하나를 종료했는지 여부를 체크한다. 만약 어떠한 종료도 발생하지 않았다면, 단계(624)에서 서버(104)는 수신자 클라이언트 디바이스(106)에 송신하기 위한 최적 품질의 데이터 신호를 합성하기 위해서 제1 데이터 신호 및 제2 데이터 신호 둘 모두를 활용하여 클라이언트 디바이스(102)와 수신자 클라이언트 디바이스(106) 간의 통신 세션을 유지한다. 만약 다이얼러 모듈(220)이 클라이언트 디바이스(102)로부터 데이터 신호들 중 하나를 종료했다면, 단계(626)에서 서버(104)는 클라이언트 디바이스(102)로부터의 나머지 데이터 신호만을 이용하여 클라이언트 디바이스(102)와 수신자 클라이언트 디바이스(106) 간의 통신 세션을 유지한다.
도 7에 설명된 흐름도(700)는 클라이언트 디바이스(102)의 다이얼러 모듈(220)(도 2 참조)로부터 데이터 신호를 수신함에 기초하여 서버(104)(도 1 참조)에 의해 수행되는 단계들을 묘사한다. 흐름도(700)는 흐름도(600)(도 6 참조)와 유사하지만 미디어 믹싱 모듈(310)의 동작에 관해 더 많은 구체성(specificity)을 포함한다. 단계(702)에서, 서버(104)는 서버의 미디어 믹싱 모듈(310)에서 클라이언트 디바이스(102)로부터의 제1 데이터 신호를 수신한다. 데이터 신호는 클라이언트 디바이스(102)로부터의 미디어 데이터 및 클라이언트 디바이스(106)와 같은 수신자 클라이언트 디바이스의 식별자를 포함한다. 단계(704)에서, 서버(104)는 클라이언트 디바이스(102)로부터 수신된 제1 데이터 신호에 기초하여 클라이언트 디바이스(102)와 서버(104)의 미디어 믹싱 모듈(310) 간의 제1 통화를 수행한다. 단계(706)에서, 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102)로부터의 데이터 신호에 포함된 식별자에 기초하여 서버(104)의 미디어 믹싱 모듈(310)로부터 수신자 클라이언트 디바이스(106)로의 제2 전화 통화를 개시한다. 단계(708)에서, 미디어 믹싱 모듈(310)은 제2 전화 통화를 통해 수신자 클라이언트 디바이스(106)를 서버의 미디어 믹싱 모듈에 연결한다. 단계(710)에서, 서버(104)는 서버(104)의 미디어 믹싱 모듈(310)에서 수신자 클라이언트 디바이스(106)로부터 제2 데이터 신호를 수신한다. 제2 데이터 신호는 제2 클라이언트 디바이스로부터의 미디어 데이터를 포함한다. 단계(712)에서, 미디어 믹싱 모듈(310)은 미디어 믹싱 통신 세션에서 클라이언트 디바이스(102)로부터의 제1 데이터 신호를 수신자 클라이언트 디바이스(106)로부터의 제2 데이터 신호와 결합한다. 이러한 방식으로, 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102)와 클라이언트 디바이스(106) 간의 제1 데이터 신호 및 제2 데이터 신호에 포함된 미디어를 조정한다.
도 8에 설명된 흐름도(800)는 제1 데이터 신호 또는 제2 데이터 신호(도 7 참조) 중 적어도 하나를 반송파 네트워크(108) 또는 데이터 네트워크(110)(도 1 참조) 중 하나에 이동시키라는 요청의 표시를 수신함에 기초하여 서버(104)(도 1 참조)에 의해 수행되는 단계들을 묘사한다. 흐름도(800)는 흐름도(500)(도 5 참조)와 유사하지만, 흐름도(800)는 서버(104)에서 실행되는 모듈들의 관점으로부터 고려된 단계들을 설명한다. 단계(802)에서, 서버(104)의 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102) 또는 클라이언트 디바이스(106) 둘 중 하나 또는 둘 모두로부터 반송파 네트워크(108) 또는 데이터 네트워크(110)로 이동하라는 요청을 수신한다. 단계(804)에서, 미디어 믹싱 모듈(310)은 진행중인 미디어 믹싱 통신 세션(도 7 참조)의 식별자를 이동하라는 요청을 송신한 클라이언트 디바이스에 송신한다. 단계(806)에서, 미디어 믹싱 모듈(310)은 반송파 네트워크 또는 데이터 네트워크 둘 중 하나로 이동하라는 요청을 송신한 클라이언트 디바이스로부터의 데이터 신호에 대한 여분인 제3 데이터 신호를 송신하는 제3 전화 통화를 수신한다.
한편, 반송파 네트워크로 이동할지 아니면 데이터 네트워크로 이동할지 여부의 선택은 클라이언트 디바이스(102)와 같은 클라이언트 디바이스에 의해 수행된다. 위에 논의된 바와 같이, 클라이언트 디바이스(102)는 통신 세션 동안 공유되기를 원하는 데이터에 대한 네트워크 품질 및 용량(capacity)에 기초하여 이러한 결정을 내릴 것이다. 만약 클라이언트 디바이스(102)가 데이터 네트워크(110)에 이동하라고 요청한다면, 미디어 세션 데이터 결합 모듈(312)(도 3 참조)은 상기 이동을 보조하도록 활용된다. 그리고 만약 클라이언트 디바이스(102)가 반송파 네트워크(108)로 이동하도록 요청한다면, 연결 서비스 모듈(314)(도 3 참조)이 상기 이동을 보조하도록 활용된다.
흐름도(800)로 돌아와서, 단계(808)에서, 미디어 믹싱 모듈(310)은 클라이언트 디바이스(102)에 의해 요청되면, 반송파 네트워크 또는 데이터 네트워크 둘 중 하나를 통해 미디어 믹싱 통신 세션에 제3 데이터 신호를 결합한다. 이 시점(point)에서, 도 1에 설명된 시스템을 이용하여, 제3 데이터 신호는 어떤 클라이언트 디바이스(클라이언트 디바이스(102 또는 106)중 하나)가 이동하기로 결정했는지에 따라 제1 데이터 신호 또는 제2 데이터 신호 둘 중 하나에 대한 여분이 된다. 위의 도 5에 설명된 바와 같이, 클라이언트 디바이스(102 또는 106)는 그 후에 송신된 데이터 신호들 둘 모두를 유지할지 아니면 데이터 신호들 중 하나를 종료할지 여부를 결정한다.
도 9에 설명된 흐름도(900)는 비디오 통화와 같은 진행중인 통신 세션을을 멀티미디어 통신 세션으로 변경하라는 요청을 수신함에 기초하여 서버(104)(도 1 참조)의 미디어 믹싱 모듈(310)에 의해 수행되는 단계들을 묘사한다. 단계(902)에서, 미디어 믹싱 모듈(310)은 오디오 데이터에 기초한 통신 세션으로부터 비디오 통화와 같은 멀티미디어 데이터에 기초한 통신 세션으로 스위칭하라는 요청을 수신한다. 단계(904)에서, 미디어 믹싱 모듈(310)은 클라이언트 디바이스가 현재 통신하고 있는 네트워크가 비디오 데이터와 같은 멀티미디어 데이터를 송신할 수 있는지 여부의 표시를 수신한다. 만약 현재 네트워크가 멀티미디어 데이터를 송신할 수 있다면, 미디어 믹싱 모듈(310)은 단계(906)에서, 클라이언트 디바이스로부터 멀티미디어 데이터를 수신하고, 그 후에 단계(908)에서 통신 세션과 관련된 다른 클라이언트 디바이스들과 상기 멀티미디어 데이터를 공유하는 것을 진행한다. 만약 현재 네트워크가 멀티미디어 데이터를 송신할 수 없다면, 클라이언트 디바이스는 보다 적합한 네트워크가 이용가능한지 여부를 체크한다. 만약 보다 적합한 네트워크가 이용가능하지 않다면, 단계(912)에서 멀티미디어 데이터를 송신하라는 요청이 거부된다. 만약 보다 적합한 네트워크가 이용가능하다면, 단계(914)에서 보다 적합한 네트워크로의 이동 요청이 수행된다. 새로운 네트워크로 이동하는 것은 도 8에 설명된 바와 같이 수행된다. 클라이언트 디바이스가 멀티미디어 데이터를 송신하기 위해 보다 적합한 네트워크를 통하여 통신 세션에 참여된 후에, 서버(104)의 미디어 믹싱 모듈(310)은 상기 멀티미디어 데이터를 단계(908)에서 미디어 믹싱 통신 세션을 통해 공유한다. 이러한 방식으로, 미디어 믹싱 모듈(310)은 미디어 믹싱 통신 세션에 참여하는 클라이언트 디바이스 각각 사이의 시그널링을 조정한다.
공개들, 특허출원들 및 특허들을 포함하는 본 명세서에 인용된 모든 참조문헌들은 참조문헌 각각이 개별적이고 구체적으로 참조에 의해 통합된 것으로 표시되고 그 전체로서 본 명세서에 제시된 것과 동일한 범위로 참조에 의해 본 명세서에 통합된다.
"하나(a 및 an 및 the)" 및 "적어도 하나(at least one)"라는 용어들의 사용 및 본 발명을 설명하는 컨텍스트(context)에서의 (특히 다음의 특허청구범위의 컨텍스트에서의) 유사한 지시대상(referents)은 본 명세서에 다르게 표시되거나 컨텍스트에 의해 분명하게 모순되지 않는 이상 단수 및 복수 둘 모두를 포괄하는 것으로 이해되어야 한다. 하나 이상의 항목들의 나열(list)에 의해 후속되는 "적어도 하나"라는 용어의 사용(예를 들어, "A 및 B 중 적어도 하나(at least one of A and B)")은, 본 명세서에 다르게 표시되거나 컨텍스트에 의해 분명하게 모순되지 않는 이상, 나열된 항목들로부터 선택된 하나의 항목(A 또는 B) 또는 나열된 항목들 중 2개 이상의 어떤 조합(A 및 B)을 의미하는 것으로 이해되어야 한다. "포함하는(comprising, including 및 containing)" 및 "갖는(having)"이라는 용어들은 이와 달리 언급되지 않는 한, 개방형 용어들(open-ended terms)(즉, "포함하나, 이에 한정되지 않는"을 의미함)로서 이해되어야 한다. 본 명세서의 값들의 범위의 기재는 본 명세서에서 달리 표시되지 않는 한 단지 상기 범위 내에 해당하는 각각의 별개의 값을 개별적으로 참조하는 약칭 방법(shorthand method)의 역할을 하는 것으로 의도되며, 그리고 각각의 별개의 값은 마치 상기 각각의 별개의 값이 본 명세서에 개별적으로 기재된 것처럼 본 명세서에 통합된다. 본 명세서에 설명된 모든 방법들은 본 명세서에 달리 표시되거나 컨텍스트에 의해 분명하게 모순되지 않는 한, 어떤 적합한 순서로든지 수행될 수 있다. 본 명세서에 제공되는 어떤 예시들 및 모든 예시들의 사용 또는 예시적인 언어(예를 들어, "~와 같은")는 단지 본 발명을 보다 잘 조명(illuminate)하기 위한 것이며 달리 청구되지 않는 한 본 발명의 범위에 대한 한정을 취하지 않는다. 본 명세서의 어떤 언어도 본 발명의 실시를 위해 필수적인 청구되지 않은 요소를 표시하는 것으로 이해되지는 않는다.
본 발명을 수행하기 위해 본 발명자들에게 알려진 최적 모드(best mode)를 포함하여, 본 발명의 바람직한 실시예들이 본 명세서에 설명된다. 그러한 바람직한 실시예들의 변형들은 통상의 기술자들(those of ordinary skill in the art)이 전술한 상세한 설명을 읽으면 명백해질 것이다. 본 발명자들은 숙련된 기술자들(skilled artisans)은 적절하다면 그러한 변형들을 채용(employ)할 것으로 기대하며, 본 발명자들은 본 발명이 본 명세서에서 구체적으로 설명된 것과 다르게 실시되는 것을 의도한다. 따라서, 본 발명은 적용가능한 법에 의해 허용되는 대로 본 명세서에 첨부된 특허청구범위에 기재된 본 발명의 모든 수정들 및 균등물들(equivalents)을 포함한다. 더욱이, 모든 가능한 변형들에서의 위에 설명된 요소들의 어떤 조합은 본 명세서에 달리 표시되거나 컨텍스트에 의해 분명히 모순되지 않는 한 본 발명에 의해 포괄된다.

Claims (27)

  1. 클라이언트 디바이스(client device)에 의해 데이터 스트림(data stream)을 통신하는 방법으로서,
    상기 클라이언트 디바이스의 네트워크 모니터(network monitor)에서 복수의 네트워크 연결들의 신호 품질을 모니터링(monitoring)하는 단계;
    적어도 하나의 네트워크 연결의 신호 품질에 기초하여 상기 클라이언트 디바이스의 네트워크 모니터에 의해 상기 복수의 네트워크 연결들 중 적어도 하나의 네트워크 연결을 선택하는 단계;
    상기 복수의 네트워크 연결들 중 상기 적어도 하나의 네트워크 연결을 통해 상기 클라이언트 디바이스의 다이얼러(dialer)로부터의 제1 통신 세션을 제1 네트워크를 통해 서버에 설정하는 단계; 그리고
    상기 클라이언트 디바이스의 다이얼러로부터의 상기 제1 통신 세션을 통해 상기 데이터 스트림의 제1 부분을 상기 복수의 네트워크 연결들로부터 데이터를 수신하고 상기 데이터를 수신자 디바이스에 송신하도록 구성되는 서버에 전송하는 단계;
    제2 네트워크를 통해 복수의 네트워크 연결들 중 제2 네트워크 연결을 통해 클라이언트 디바이스의 다이얼러로부터의 제2 통신 세션을 상기 서버에 설정하는 단계; 그리고
    제1 통신 세션을 통해 데이터 스트림의 제1 부분과 클라이언트 디바이스의 다이얼러로부터의 제2 통신 세션을 통해 데이터 스트림의 제2 부분을 동시에 상기 서버에 전송하는 단계를 포함하며, 상기 데이터 스트림의 제1 부분 및 상기 데이터 스트림의 제2 부분은 상기 클라이언트 디바이스에서 생성된 동일한 데이터 신호의 상이한 부분들이며,
    상기 서버는,
    제1 통신 세션을 통한 데이터 스트림의 제1 부분 및 제2 통신 세션을 통한 데이터 스트림의 제2 부분으로부터, 상기 데이터 신호를 단일 데이터 스트림으로서 재구성하고;
    상기 서버에 의해 수신자 디바이스에 설정되는(placed) 단일 통신 세션을 통해 상기 단일 데이터 스트림을 상기 수신자 디바이스에 전송하고;
    수신자 디바이스로부터 반환(return) 데이터 스트림을 수신하고; 그리고
    제1 통신 세션 및 제2 통신 세션 모두를 통해 상기 반환 데이터 스트림을 클라이언트 디바이스에 전송하도록 구성되는 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  2. 삭제
  3. 제 1항에 있어서, 상기 방법은,
    관련된 네트워크 연결의 상기 신호 품질에 기초하여 상기 제1 통신 세션 및 상기 제2 통신 세션 중 적어도 하나를 종료하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  4. 삭제
  5. 제 1항에 있어서,
    상기 적어도 하나의 네트워크 연결 및 상기 제2 네트워크 연결 중 하나는 반송파 공중 전화 교환 네트워크(carrier PSTN; carrier public switched telephone network)를 이용하여 통신하며, 상기 반송파 공중 전화 교환 네트워크는 상기 클라이언트 디바이스의 다이얼러를 상기 서버와 관련시키는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  6. 제 1항에 있어서,
    상기 적어도 하나의 네트워크 연결 및 상기 제2 네트워크 중 하나는 Wi-Fi 네트워크를 이용하여 통신하며, 상기 다이얼러는 상기 Wi-Fi 네트워크를 통해 상기 서버와 직접 통신하는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  7. 제 1항에 있어서,
    상기 제1 통신 세션을 통한 상기 데이터 스트림의 제1 부분은 상기 서버에서 상기 클라이언트 디바이스의 다이얼러로부터 수신된 전화번호에 기초하여 상기 제2 통신 세션을 통한 데이터 스트림의 제2 부분과 관련되며, 상기 전화번호는 상기 수신자 디바이스와 관련되는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  8. 제 1항에 있어서, 상기 서버는,
    상기 클라이언트 디바이스의 다이얼러로부터 수신된 전화번호로 상기 서버가 상기 수신자 디바이스에 호출함으로써 상기 제1 통신 세션을 완료하도록 구성되는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  9. 제 8항에 있어서,
    상기 호출하는 단계는 세션 개시 프로토콜(SIP; session initiation protocol) 네트워크에 대한 반송파 공중 전화 교환 네트워크(carrier PSTN; carrier public switched telephone network)를 통해 수행되는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  10. 제 1항에 있어서,
    상기 서버는 클라우드 서버인 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  11. 클라이언트 디바이스(client device)에 의해 데이터 스트림(data stream)을 통신하는 방법으로서,
    상기 클라이언트 디바이스의 네트워크 모니터에서 복수의 네트워크 연결들의 신호 품질을 모니터링하는 단계;
    적어도 하나의 네트워크 연결의 신호 품질에 기초하여 상기 클라이언트 디바이스의 네트워크 모니터에 의해 상기 복수의 네트워크 연결들 중 적어도 하나의 네트워크 연결을 선택하는 단계;
    상기 복수의 네트워크 연결들 중 상기 적어도 하나의 네트워크 연결을 통해 상기 클라이언트 디바이스의 다이얼러(dialer)로부터의 제1 통신 세션을 제1 네트워크를 통해 서버에 설정하는 단계;
    상기 클라이언트 디바이스의 다이얼러로부터의 상기 제1 통신 세션을 통해 상기 데이터 스트림의 제1 부분을 상기 복수의 네트워크 연결들로부터 데이터를 수신하고 상기 데이터를 수신자 디바이스에 송신하도록 구성되는 서버에 전송하는 단계;
    제2 네트워크를 통해 복수의 네트워크 연결들 중 제2 네트워크 연결을 통해 클라이언트 디바이스의 다이얼러로부터의 제2 통신 세션을 상기 서버에 설정하는 단계;
    제1 통신 세션을 통해 데이터 스트림의 제1 부분과 클라이언트 디바이스의 다이얼러로부터의 제2 통신 세션을 통해 데이터 스트림의 제2 부분을 동시에 상기 서버에 전송하는 단계 -상기 데이터 스트림의 제1 부분 및 상기 데이터 스트림의 제2 부분은 상기 클라이언트 디바이스에서 생성된 동일한 데이터 신호의 상이한 부분들이며; 제1 통신 세션을 통한 데이터 스트림의 제1 부분은 클라이언트 디바이스와 수신자 디바이스 사이의 전화 통화와 관련된 음성 데이터를 포함하고-;
    적어도 하나의 네트워크 연결의 신호 품질에 기초하여 HD(High Definition) 음성 데이터를 포함하도록 상기 음성 데이터를 업그레이드하는 단계를 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  12. 삭제
  13. 제 11항에 있어서,
    상기 적어도 하나의 네트워크 연결의 신호 품질에 기초하여 상기 전화 통화를 비디오 통화로 업그레이드하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트 디바이스에 의해 데이터 스트림을 통신하는 방법.
  14. 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템으로서, 상기 시스템은:
    복수의 무선 통신 네트워크들과 통신하도록 구성되는 클라이언트 디바이스를 포함하며, 상기 클라이언트 디바이스는:
    입력 디바이스와;
    출력 디바이스와;
    상기 복수의 무선 통신 네트워크들 각각의 신호 세기(signal strength)를 검출하도록 구성되는 네트워크 모니터와; 그리고
    다이얼러(dialer)를 포함하며,
    상기 다이얼러는,
    네트워크 모니터에 의해 검출된 신호 강도에 기초하여 제1 무선 통신 네트워크를 통해 서버와의 제1 통신 세션을 설정하고;
    제2 무선 통신 네트워크를 통해 서버와의 제2 통신 세션을 설정하고;
    제1 통신 세션을 통해 데이터 스트림의 제1 부분 및 제2 통신 세션을 통해 데이터 스트림의 제2 부분을 서버로 동시에 전송하도록 구성되며;
    상기 데이터 스트림의 제1 부분 및 상기 데이터 스트림의 제2 부분은 상기 클라이언트 디바이스에서 생성된 동일한 데이터 신호의 상이한 부분들이며,
    상기 서버는,
    클라이언트 디바이스로부터 제1 통신 세션을 통한 데이터 스트림의 제1 부분 및 제2 통신 세션을 통한 상기 데이터 스트림의 제2 부분을 수신하고;
    상기 클라이언트 디바이스로부터 수신된 데이터에 기초하여 상기 서버로부터 상기 수신자 디바이스로의 통신 세션을 설정하고 -상기 서버는 상기 클라이언트 디바이스로부터 수신된 데이터를 상기 수신자 디바이스로 전송하도록 더 구성됨-;
    데이터 스트림의 제1 부분 및 데이터 스트림의 제2 부분이 모두 수신자 디바이스로 전달되도록 의도되었는지 결정하고; 그리고
    데이터 스트림의 제1 부분 및 데이터 스트림의 제2 부분에 기초하여 제3 데이터 스트림을 합성하도록 구성되며, 상기 제3 데이터 스트림은 데이터 스트림의 제1 부분 및 데이터 스트림의 제2 부분으로부터 컴파일된 최적 품질의 데이터 스트림(best quality data stream)을 나타내는 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 제 14항에 있어서,
    상기 서버는 상기 통신 세션의 제3 데이터 스트림을 상기 서버로부터 상기 수신자 디바이스에 송신하는 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  19. 제 14항에 있어서,
    상기 다이얼러는 상기 네트워크 모니터로부터의 검출된 신호 세기에 기초하여 상기 제1 통신 세션 및 상기 제2 통신 세션 중 하나를 종료하도록 구성되는 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  20. 제 14항에 있어서,
    상기 제1 통신 세션 및 상기 제2 통신 세션 중 하나는 반송파 공중 전화 교환 네트워크(carrier PSTN)를 통해 통신하며, 상기 반송파 공중 전화 교환 네트워크는 상기 클라이언트의 다이얼러를 상기 서버와 관련시키는 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  21. 제 14항에 있어서,
    상기 제1 통신 세션 및 상기 제2 통신 세션 중 하나는 Wi-Fi 네트워크를 통해 통신하며, 상기 다이얼러는 상기 Wi-Fi 네트워크를 통해 상기 서버와 직접 통신하는 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  22. 제 14항에 있어서,
    상기 서버는 클라우드 서버인 것을 특징으로 하는 클라이언트 디바이스와 수신자 디바이스 간의 통신을 위한 시스템.
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
KR1020167008000A 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법 KR102170200B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207030000A KR102269619B1 (ko) 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361883644P 2013-09-27 2013-09-27
US61/883,644 2013-09-27
US14/140,913 US10491749B2 (en) 2013-09-27 2013-12-26 System and method for increased call quality and success rate
US14/140,913 2013-12-26
PCT/US2014/057709 WO2015048439A1 (en) 2013-09-27 2014-09-26 System and method for increased call quality and success rate

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207030000A Division KR102269619B1 (ko) 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20160062017A KR20160062017A (ko) 2016-06-01
KR102170200B1 true KR102170200B1 (ko) 2020-10-26

Family

ID=52741231

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207030000A KR102269619B1 (ko) 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법
KR1020167008000A KR102170200B1 (ko) 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207030000A KR102269619B1 (ko) 2013-09-27 2014-09-26 개선된 통화 품질 및 통화 성공률을 위한 시스템 및 방법

Country Status (8)

Country Link
US (3) US10491749B2 (ko)
EP (1) EP3050351B1 (ko)
KR (2) KR102269619B1 (ko)
CN (2) CN105580418B (ko)
AU (1) AU2014324809C1 (ko)
BR (1) BR112016006700B1 (ko)
CA (1) CA2925109C (ko)
WO (1) WO2015048439A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10496977B2 (en) 2012-07-16 2019-12-03 Square, Inc. Storing and forwarding payment transactions
US10491749B2 (en) 2013-09-27 2019-11-26 Google Llc System and method for increased call quality and success rate
US10037521B1 (en) * 2014-09-24 2018-07-31 Square, Inc. Background communication failover for mobile payments
US10298561B2 (en) * 2015-06-30 2019-05-21 Vmware, Inc. Providing a single session experience across multiple applications
US10091264B2 (en) * 2015-12-26 2018-10-02 Intel Corporation Technologies for streaming device role reversal
US10366378B1 (en) 2016-06-30 2019-07-30 Square, Inc. Processing transactions in offline mode
EP3488635B1 (en) 2016-07-22 2020-09-02 Google LLC Mobility in a multi-network wireless system
CN110832950B (zh) * 2017-07-05 2023-06-23 瑞典爱立信有限公司 操作无线通信设备的方法及相关联的设备和装置
US11503526B2 (en) 2020-09-15 2022-11-15 International Business Machines Corporation Predictive communication compensation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110096673A1 (en) * 2009-10-28 2011-04-28 Liveops, Inc. System and method for adaptive call management
US20130148567A1 (en) * 2011-12-13 2013-06-13 Tzahi Efrati Systems and methods for handoff of a mobile telephone call in a voip environment

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616485A (en) 1985-02-14 1986-10-14 Ranco Electronics Division Temperature controller for an air conditioning apparatus
US6128490A (en) 1997-05-08 2000-10-03 Nortel Networks Limited Wireless communication system that supports selection of operation from multiple frequency bands and multiple protocols and method of operation therefor
JP3614059B2 (ja) * 1999-11-30 2005-01-26 日本電気株式会社 通信コネクションマージ方法及びそれを用いるノード
US6381315B1 (en) 1999-12-02 2002-04-30 Eli Nhaissi Universal exchange for making least-cost non-local telephone calls
US20020010866A1 (en) * 1999-12-16 2002-01-24 Mccullough David J. Method and apparatus for improving peer-to-peer bandwidth between remote networks by combining multiple connections which use arbitrary data paths
US6633761B1 (en) 2000-08-11 2003-10-14 Reefedge, Inc. Enabling seamless user mobility in a short-range wireless networking environment
AU2001221501A1 (en) 2000-11-14 2002-05-27 Siemens Aktiengesellschaft Device and method for selecting network accesses
JP3929693B2 (ja) 2000-11-20 2007-06-13 株式会社日立製作所 通信システム
US7433929B2 (en) 2000-12-29 2008-10-07 At&T Mobility Ii Llc Intelligent network selection based on quality of service and applications over different wireless networks
US20020169716A1 (en) 2001-05-08 2002-11-14 Johnson Jack J. Bidding tor telecommunications traffic and billing for service
US7173910B2 (en) 2001-05-14 2007-02-06 Level 3 Communications, Inc. Service level agreements based on objective voice quality testing for voice over IP (VOIP) networks
US8060139B2 (en) 2002-06-24 2011-11-15 Toshiba American Research Inc. (Tari) Authenticating multiple devices simultaneously over a wireless link using a single subscriber identity module
AU2003274516A1 (en) 2002-11-20 2004-06-15 International Business Machines Corporation Managing network resources for wireless communication
FI20030827A0 (fi) 2003-06-03 2003-06-03 Nokia Corp Hintatiedon välittäminen tietoliikennejärjestelmässä
US20050180338A1 (en) * 2004-02-17 2005-08-18 Nokia Corporation Swapping voice and video calls
US20050245269A1 (en) 2004-04-30 2005-11-03 Intel Corporation Channel scanning in wireless networks
US7483526B2 (en) * 2004-06-10 2009-01-27 International Business Machines Corporation Method for conference call initialization
US7509131B2 (en) 2004-06-29 2009-03-24 Microsoft Corporation Proximity detection using wireless signal strengths
WO2006005947A1 (en) 2004-07-12 2006-01-19 Sensustech Limited Testing device and method
US8165109B2 (en) 2004-11-10 2012-04-24 Cisco Technology, Inc. Method for managing the quality of encrypted voice over IP to teleagents
US7539175B2 (en) 2004-11-19 2009-05-26 The Trustees Of Stevens Institute Of Technology Multi-access terminal with capability for simultaneous connectivity to multiple communication channels
US9088876B2 (en) * 2012-02-01 2015-07-21 Kodiak Networks, Inc. WiFi interworking solutions for push-to-talk-over-cellular (PoC)
US7937069B2 (en) 2005-04-29 2011-05-03 Rassam Frederic System and process for switching between cell phone and landline services
US20060291487A1 (en) * 2005-06-24 2006-12-28 Aylus Networks, Inc. IMS networks with AVS sessions with multiple access networks
US7724753B2 (en) * 2005-06-24 2010-05-25 Aylus Networks, Inc. Digital home networks having a control point located on a wide area network
US8467377B2 (en) * 2005-08-24 2013-06-18 Qualcomm Incorporated Interleaving VoIP/VIP transmission in multiple sessions to increase quality of service in mobile devices having multiple interfaces
US7746985B2 (en) 2005-09-14 2010-06-29 Sorenson Communications, Inc. Method, system and device for relay call transfer service
US20080318565A1 (en) * 2005-10-07 2008-12-25 Alcatel Lucent Method and Apparatus for Assisting a Radio Communication Transfer in a Cellular Radio Communication System
US20070147317A1 (en) 2005-12-23 2007-06-28 Motorola, Inc. Method and system for providing differentiated network service in WLAN
ATE390818T1 (de) * 2006-01-03 2008-04-15 Alcatel Lucent Verfahren zur bereitstellung von nahtlose mobile sitzung
CN100493255C (zh) 2006-02-07 2009-05-27 华为技术有限公司 一种基于话音业务连续性的实现呼叫业务的系统和方法
EP1838121A1 (en) * 2006-03-22 2007-09-26 BRITISH TELECOMMUNICATIONS public limited company Method and apparatus for re-establishing wireless communication sessions
US7809360B2 (en) 2006-05-24 2010-10-05 International Business Machines Corporation Optimization of calendar, itinerary, route plan, and PIM efficiencies according to assimilated wireless service availability conditions
US8565766B2 (en) 2007-02-05 2013-10-22 Wefi Inc. Dynamic network connection system and method
US7848292B2 (en) 2006-06-29 2010-12-07 Alcatel-Lucent Usa Inc. Method of dynamically populating a neighbor list in a wireless communication system
WO2008005046A1 (en) 2006-06-30 2008-01-10 Sony Ericsson Mobile Communications Ab Portable communication device and method for simultaneously handling circuit-switched and packet-switched audio
JP4758294B2 (ja) 2006-07-10 2011-08-24 株式会社日立製作所 エリア品質情報取得システム
JP4899696B2 (ja) 2006-07-31 2012-03-21 富士通株式会社 通信装置、中継装置、通信システム、通信方法及び通信プログラム
KR101234194B1 (ko) 2006-08-28 2013-02-18 삼성전자주식회사 이동통신 시스템에서 심 데이터를 내려받는 장치 및 방법
US20080107051A1 (en) 2006-11-07 2008-05-08 Mediatek Inc. System and method for operating a portable electronic device
US8149785B2 (en) 2006-11-09 2012-04-03 Broadsoft M6, Llc Methods, systems, and computer program products for jumping calls between different modes of the same device
WO2008081267A1 (en) 2006-12-29 2008-07-10 Nokia Corporation A method of handover of circuit-switched voice call to packet-switched voice call
US8761815B2 (en) 2007-03-21 2014-06-24 Motorola Mobility Llc Method, device and system for accessing mobile device user information
US8391192B2 (en) 2007-05-14 2013-03-05 Qualcomm Incorporated Carrier switching in a multi-carrier wireless communication network
US8155081B1 (en) 2007-05-21 2012-04-10 Marvell International Ltd. Self learning roaming optimization
US20090061862A1 (en) 2007-08-30 2009-03-05 Alberth Jr William P Peer to peer service discovery sharing
EP2053825B1 (en) * 2007-10-25 2015-07-08 Alcatel Lucent Distribution of shared content streams in communications networks
TW200922355A (en) * 2007-10-29 2009-05-16 Interdigital Patent Holdings Integration of 802.21 media independent handover functionality to radio interface layer and telephony server
US9473598B2 (en) * 2007-12-18 2016-10-18 International Business Machines Corporation Network connection failover during application service interruption
US8724619B2 (en) 2007-12-31 2014-05-13 Apple Inc. Transparently routing a telephone call between mobile and VOIP services
US8447303B2 (en) 2008-02-07 2013-05-21 Research In Motion Limited Method and system for automatic seamless mobility
WO2009101816A1 (ja) 2008-02-14 2009-08-20 Panasonic Corporation 無線通信基地局装置、無線通信中継局装置、無線通信端末装置、無線通信システム及び無線通信方法
US8165581B2 (en) 2008-04-25 2012-04-24 Microsoft Corporation Selective channel scanning for networked devices
US8200217B2 (en) 2008-05-23 2012-06-12 Qualcomm Incorporated Method and apparatus for channel scanning that improves acquisition probability and power consumption
US8265599B2 (en) 2008-05-27 2012-09-11 Intel Corporation Enabling and charging devices for broadband services through nearby SIM devices
US8630192B2 (en) 2009-01-28 2014-01-14 Headwater Partners I Llc Verifiable and accurate service usage monitoring for intermediate networking devices
US8825876B2 (en) * 2008-07-17 2014-09-02 Qualcomm Incorporated Apparatus and method for mobile virtual network operator (MVNO) hosting and pricing
US8107932B1 (en) * 2008-09-10 2012-01-31 Rockstar Bidco Lp Enabling mid-call services to be added to a communication session by a wireless device
US20140071895A1 (en) 2008-12-12 2014-03-13 Ryan H. Bane Network Selection Based On Customizing Crowdsourced Connection Quality Data
US8824327B1 (en) 2009-04-15 2014-09-02 Shoretel, Inc. Phone URL exchange for improved call quality
US8880716B2 (en) * 2009-05-08 2014-11-04 Canon Kabushiki Kaisha Network streaming of a single data stream simultaneously over multiple physical interfaces
US8594723B2 (en) 2009-05-26 2013-11-26 Intel Corporation Techniques for interworking between heterogeneous radios
US8379827B2 (en) * 2009-06-08 2013-02-19 Microsoft Corporation Conveying service invocation information within multimodal conversation systems
US8750265B2 (en) 2009-07-20 2014-06-10 Wefi, Inc. System and method of automatically connecting a mobile communication device to a network using a communications resource database
US9531508B2 (en) * 2009-12-23 2016-12-27 Pismo Labs Technology Limited Methods and systems for estimating missing data
US8838106B2 (en) 2010-02-23 2014-09-16 Apple Inc. Method and apparatus for cell reselection
US9525569B2 (en) 2010-03-03 2016-12-20 Skype Enhanced circuit-switched calls
US8704863B2 (en) * 2010-04-07 2014-04-22 Apple Inc. Transitioning between circuit switched calls and video calls
US8666368B2 (en) 2010-05-03 2014-03-04 Apple Inc. Wireless network authentication apparatus and methods
US8996002B2 (en) 2010-06-14 2015-03-31 Apple Inc. Apparatus and methods for provisioning subscriber identity data in a wireless network
GB2481254B (en) 2010-06-18 2017-07-12 Skype Determining network quality
SE537642C2 (sv) 2010-06-21 2015-09-08 Scania Cv Ab Förfarande och anordning vid kylning av en doseringsenhet för reduktionsmedel
US20110319089A1 (en) * 2010-06-25 2011-12-29 Alok Sharma Universal mobile manager interworking to support global roaming
US8780859B2 (en) 2010-07-15 2014-07-15 CSC Holdings, LLC Efficient use of a communications network
US8484568B2 (en) 2010-08-25 2013-07-09 Verizon Patent And Licensing Inc. Data usage monitoring per application
JP5648408B2 (ja) 2010-10-13 2015-01-07 富士通株式会社 移動通信システム、通信制御装置、通信制御方法及び無線基地局
US20120108206A1 (en) 2010-10-28 2012-05-03 Haggerty David T Methods and apparatus for access control client assisted roaming
WO2012094677A2 (en) 2011-01-09 2012-07-12 Niels Jonker System, method and apparatus for dynamic wireless network discovery
US8542637B2 (en) 2011-01-18 2013-09-24 Microsoft Corporation Clustering crowd-sourced data for determining beacon positions
US8909224B2 (en) 2011-05-06 2014-12-09 Verizon Patent And Licensing Inc. Connecting device via multiple carriers
US8590023B2 (en) 2011-06-30 2013-11-19 Intel Corporation Mobile device and method for automatic connectivity, data offloading and roaming between networks
WO2013012272A2 (ko) 2011-07-20 2013-01-24 엘지전자 주식회사 무선 통신 시스템에서 채널 스위칭 방법 및 이를 위한 장치
CN102958127A (zh) 2011-08-10 2013-03-06 宏达国际电子股份有限公司 移动通信装置以及在多个异质网络间进行交递的方法
KR101563548B1 (ko) 2011-08-11 2015-10-27 노키아 솔루션스 앤드 네트웍스 오와이 사용자 장비와 연관되고 있는 확장형 데이터 레코드에 기초하여 모바일 무선 통신 네트워크의 핸드오버 거동을 최적화
WO2013044359A1 (en) 2011-09-30 2013-04-04 Tutela Technologies Ltd. A system for regulating wireless device operations in wireless networks
US8964533B2 (en) 2011-12-14 2015-02-24 Verizon Patent And Licensing Inc. Method and system for providing mobile wireless call failover
US9210573B2 (en) 2011-12-27 2015-12-08 Infosys Limited Method and apparatus for registering a computing device with a service provider
KR101785618B1 (ko) 2012-02-02 2017-11-06 삼성전자주식회사 멀티심 모바일 단말의 위치 파악 방법 및 장치
EP2632205B1 (en) 2012-02-24 2018-08-22 BlackBerry Limited Monitoring neighbour cells
US9503368B2 (en) 2012-02-27 2016-11-22 Metaswitch Networks Ltd. Routing a call
US20130227647A1 (en) 2012-02-28 2013-08-29 Apple Inc. Shared network access via a peer-to-peer link
EP2873270B1 (en) 2012-07-13 2019-12-04 Telefonaktiebolaget LM Ericsson (publ) Network-controlled ue switching between different types of radio networks
US9634726B2 (en) 2012-11-02 2017-04-25 Google Inc. Seamless tethering setup between phone and laptop using peer-to-peer mechanisms
US10111092B2 (en) 2012-11-06 2018-10-23 Kt Corporation Terminal device having subscriber identity device and method for selecting profile thereof
US9420523B2 (en) 2012-11-26 2016-08-16 Apple Inc. Reducing radio frequency band scan time by a wireless communication device
US20140213256A1 (en) 2013-01-25 2014-07-31 Qualcomm Incorporated Apparatus and method of network selection based on available bandwidth
US9258764B2 (en) 2013-01-29 2016-02-09 Broadcom Corporation System and methods for anonymous crowdsourcing of network condition measurements
US9351203B2 (en) * 2013-09-13 2016-05-24 Microsoft Technology Licensing, Llc Voice call continuity in hybrid networks
US10491749B2 (en) * 2013-09-27 2019-11-26 Google Llc System and method for increased call quality and success rate
US9565576B2 (en) 2013-10-09 2017-02-07 At&T Intellectual Property I, L.P. Network operating system client architecture for mobile user equipment
US10305876B2 (en) 2013-11-04 2019-05-28 Microsoft Technology Licensing, Llc Sharing based on social network contacts
US9258677B2 (en) 2013-11-21 2016-02-09 Microsoft Technology Licensing, Llc Improving scalability and reliability of hardware geo-fencing with failover support

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110096673A1 (en) * 2009-10-28 2011-04-28 Liveops, Inc. System and method for adaptive call management
US20130148567A1 (en) * 2011-12-13 2013-06-13 Tzahi Efrati Systems and methods for handoff of a mobile telephone call in a voip environment

Also Published As

Publication number Publication date
KR20160062017A (ko) 2016-06-01
CN110996344B (zh) 2024-05-10
KR102269619B1 (ko) 2021-06-28
US10097694B1 (en) 2018-10-09
BR112016006700A8 (pt) 2018-01-02
AU2014324809B2 (en) 2018-06-21
CA2925109C (en) 2023-09-26
CN110996344A (zh) 2020-04-10
EP3050351A4 (en) 2017-08-02
BR112016006700B1 (pt) 2023-03-28
CN105580418A (zh) 2016-05-11
AU2014324809A1 (en) 2016-03-24
US20150095453A1 (en) 2015-04-02
US20200053222A1 (en) 2020-02-13
EP3050351A1 (en) 2016-08-03
AU2014324809C1 (en) 2018-11-15
US10491749B2 (en) 2019-11-26
WO2015048439A1 (en) 2015-04-02
EP3050351B1 (en) 2019-08-14
US11695874B2 (en) 2023-07-04
CA2925109A1 (en) 2015-04-02
BR112016006700A2 (pt) 2017-08-01
KR20200122421A (ko) 2020-10-27
CN105580418B (zh) 2019-11-22

Similar Documents

Publication Publication Date Title
US11695874B2 (en) System and method for increased call quality and success rate
KR102305163B1 (ko) 푸시 투 토크 클라이언트의 음성 연결 개선
US8346238B2 (en) Mesh communication network and devices
US7729700B2 (en) Vertical network handovers
KR101578272B1 (ko) 무선 통신 시스템 내에서의 클라이언트 관리 그룹 통신 세션들
EP2795868B1 (en) Exchanging a compressed version of previously communicated session information in a communications system
CN113395785B (zh) 一种辅助链路补偿通话的系统、装置及芯片
CN109792469B (zh) 分组切换到pstn呼叫回退
US20050136958A1 (en) Universal wireless multimedia device
WO2015062454A1 (zh) 音视频通话方法、设备和系统
CN104769905A (zh) 管理用于通信会话中用户装备的数据表示
US9438726B2 (en) Enterprise phone that can provide professional services during a communication set up on a private cellular phone
TW201345258A (zh) 視訊通話系統及其視訊通話切換方法
CN110086748B (zh) 融合设备媒体控制方法、装置及通信终端
US10715674B2 (en) Method for managing the reception of a telephone call on a called communication terminal
WO2019104523A1 (zh) 语音会话建立方法、装置、设备及存储介质
CN115606242A (zh) 服务质量指示确定方法、装置、通信设备和存储介质

Legal Events

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