KR101812537B1 - Client and operating method of client - Google Patents

Client and operating method of client Download PDF

Info

Publication number
KR101812537B1
KR101812537B1 KR1020170025557A KR20170025557A KR101812537B1 KR 101812537 B1 KR101812537 B1 KR 101812537B1 KR 1020170025557 A KR1020170025557 A KR 1020170025557A KR 20170025557 A KR20170025557 A KR 20170025557A KR 101812537 B1 KR101812537 B1 KR 101812537B1
Authority
KR
South Korea
Prior art keywords
client
communication path
request
location information
communication
Prior art date
Application number
KR1020170025557A
Other languages
Korean (ko)
Other versions
KR20170101818A (en
Inventor
김태정
조광현
Original Assignee
주식회사 투아이피
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 투아이피 filed Critical 주식회사 투아이피
Publication of KR20170101818A publication Critical patent/KR20170101818A/en
Application granted granted Critical
Publication of KR101812537B1 publication Critical patent/KR101812537B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/20Automatic or semi-automatic exchanges with means for interrupting existing connections; with means for breaking-in on conversations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/58Arrangements for transferring received calls from one subscriber to another; Arrangements affording interim conversations between either the calling or the called party and a third party

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

클라이언트의 동작 방법이 개시된다. 일 실시예는 상대 클라이언트와 통신하고, 상기 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 상기 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하며, 상기 획득된 위치 정보를 기초로 상기 다른 클라이언트와 통신 경로를 설정하고, 상기 상대 클라이언트의 위치 정보를 상기 설정된 통신 경로를 통해 상기 다른 클라이언트로 전송한다.A method of operating a client is disclosed. According to an embodiment of the present invention, when a request for communication targeting another client is received from the other client, the client acquires location information of the other client through a predetermined process, Sets a communication path with the other client and transmits the location information of the other client to the other client through the set communication path.

Description

클라이언트 및 클라이언트의 동작 방법{CLIENT AND OPERATING METHOD OF CLIENT}CLIENT AND OPERATING METHOD OF CLIENT [0002]

아래 실시예들은 클라이언트 및 클라이언트의 동작 방법에 관한 것이다.The following embodiments relate to a method of operation of a client and a client.

최근에, 단말 및 무선 네트워크에 대한 기술 발달로 무선 컴퓨팅 환경이 나타난다. 이로 인해, 단말의 사용자는 통화 어플리케이션을 이용하여 상대방과 통신할 수 있다. 이러한 통화 어플리케이션은 제3자에 대한 상대방의 통화 요청을 제3자에게 포워딩할 수 없다.BACKGROUND ART [0002] In recent years, a wireless computing environment has emerged due to the development of technologies for terminals and wireless networks. As a result, the user of the terminal can communicate with the other party using the call application. Such a call application can not forward the other party's call request to a third party to a third party.

실시예들은 클라이언트와 상대 클라이언트가 서로 통신하는 동안 상대 클라이언트가 제3자와 통신하고 싶다는 통신 요청이 있는 경우, 클라이언트가 상대 클라이언트의 통신 요청을 처리함으로써, 상대 클라이언트와 제3자가 통신하도록 할 수 있다. Embodiments may allow a third party to communicate with a counterpart client by processing a communication request of the counterpart client when the counterpart client has a communication request to communicate with the third party while the client and counterpart client are communicating with each other .

일 측에 따른 클라이언트의 동작 방법은 상대 클라이언트와 통신하는 단계; 상기 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 상기 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하는 단계; 상기 획득된 위치 정보를 기초로 상기 다른 클라이언트와 통신 경로를 설정하는 단계; 및 상기 상대 클라이언트의 위치 정보를 상기 설정된 통신 경로를 통해 상기 다른 클라이언트로 전송하는 단계를 포함하고, 상기 다른 클라이언트는 상기 상대 클라이언트의 위치 정보를 기초로 상기 상대 클라이언트와 통신 경로를 설정한다.A method of operating a client according to a party comprises: communicating with a partner client; Acquiring location information of the other client through a predetermined process when there is a request from the other client for communication targeting another client; Setting a communication path with the another client based on the obtained location information; And transmitting the location information of the other client to the other client through the set communication path, wherein the other client establishes a communication path with the other client based on the location information of the other client.

상기 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하는 단계는, 상기 다른 클라이언트의 위치 정보에 대한 쿼리를 서버에 전송하는 단계; 및 상기 서버로부터 상기 다른 클라이언트의 위치 정보를 수신하는 단계를 포함할 수 있다.The step of acquiring the location information of the other client through a predetermined process includes: transmitting a query for location information of the other client to the server; And receiving location information of the other client from the server.

상기 서버는, 상기 요청을 상기 클라이언트로부터 더 수신하고, 상기 다른 클라이언트에게 상기 클라이언트의 위치 정보 및 상기 요청을 전송할 수 있다.The server may further receive the request from the client, and may transmit the location information of the client and the request to the other client.

상기 다른 클라이언트는, 상기 요청을 수신하는 경우, 상기 다른 클라이언트의 사용자의 선택 입력을 기초로 상기 요청에 응답할 수 있다.When receiving the request, the other client may respond to the request based on the selection input of the user of the other client.

상기 서버는, 상기 다른 클라이언트로부터 미리 정해진 시간 이내에 상기 요청에 대한 응답이 없는 경우, 상기 요청에 대한 거절 메시지를 상기 클라이언트로 전송할 수 있다.The server may send a rejection message for the request to the client if there is no response to the request within a predetermined time from the other client.

클라이언트의 동작 방법은 상기 다른 클라이언트와 상기 상대 클라이언트 사이에 통신 경로가 설정되었음을 나타내는 메시지를 상기 다른 클라이언트 및 상기 상대 클라이언트 중 적어도 하나로부터 수신하는 경우, 상기 상대 클라이언트와 설정된 통신 경로 및 상기 다른 클라이언트와 설정된 통신 경로를 해제(releasing)하는 단계를 더 포함할 수 있다.The method of operation of a client may include receiving a message indicating that a communication path is established between the other client and the other client from at least one of the other client and the other client, And releasing the communication path.

상기 클라이언트와 상기 상대 클라이언트 사이에 설정된 통신 경로 및 상기 클라이언트와 상기 다른 클라이언트 사이에 설정된 통신 경로 각각은 P2P(Peer To Peer) 통신 경로에 해당할 수 있다.The communication path established between the client and the counterpart client and the communication path established between the client and the other client may correspond to a peer to peer (P2P) communication path.

일 측에 따른 클라이언트는 하나 이상의 명렁어를 기록하는 메모리; 및 상기 명렁어에 기초하여, 상대 클라이언트와 통신하는 단계; 상기 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 상기 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하는 단계; 상기 획득된 위치 정보를 기초로 상기 다른 클라이언트와 통신 경로를 설정하는 단계; 및 상기 상대 클라이언트의 위치 정보를 상기 설정된 통신 경로를 통해 상기 다른 클라이언트로 전송하는 단계를 실행하는 컨트롤러를 포함하고, 상기 다른 클라이언트는 상기 상대 클라이언트의 위치 정보를 기초로 상기 상대 클라이언트와 통신 경로를 설정한다.A client according to one side for storing one or more commands; And communicating with a relative client based on the command; Acquiring location information of the other client through a predetermined process when there is a request from the other client for communication targeting another client; Setting a communication path with the another client based on the obtained location information; And transmitting the location information of the other client to the other client through the set communication path, wherein the other client sets a communication path with the relative client based on the location information of the other client do.

상기 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하는 단계는, 상기 다른 클라이언트의 위치 정보에 대한 쿼리를 서버에 전송하는 단계; 및 상기 서버로부터 상기 다른 클라이언트의 위치 정보를 수신하는 단계를 포함할 수 있다.The step of acquiring the location information of the other client through a predetermined process includes: transmitting a query for location information of the other client to the server; And receiving location information of the other client from the server.

상기 서버는, 상기 요청을 상기 클라이언트로부터 더 수신하고, 상기 다른 클라이언트에게 상기 클라이언트의 위치 정보 및 상기 요청을 전송할 수 있다.The server may further receive the request from the client, and may transmit the location information of the client and the request to the other client.

상기 다른 클라이언트는, 상기 요청을 수신하는 경우, 상기 다른 클라이언트의 사용자의 선택 입력을 기초로 상기 요청에 응답할 수 있다.When receiving the request, the other client may respond to the request based on the selection input of the user of the other client.

상기 서버는, 상기 다른 클라이언트로부터 미리 정해진 시간 이내에 상기 요청에 대한 응답이 없는 경우, 상기 요청에 대한 거절 메시지를 상기 클라이언트로 전송할 수 있다.The server may send a rejection message for the request to the client if there is no response to the request within a predetermined time from the other client.

상기 컨트롤러는, 상기 다른 클라이언트와 상기 상대 클라이언트 사이에 통신 경로가 설정되었음을 나타내는 메시지를 상기 다른 클라이언트 및 상기 상대 클라이언트 중 적어도 하나로부터 수신하는 경우, 상기 상대 클라이언트와 설정된 통신 경로 및 상기 다른 클라이언트와 설정된 통신 경로를 해제(releasing)하는 단계를 더 실행할 수 있다.Wherein when the controller receives a message indicating that a communication path has been established between the other client and the counterpart client from at least one of the other client and the counterpart client, Further releasing the path may be performed.

상기 클라이언트와 상기 상대 클라이언트 사이에 설정된 통신 경로 및 상기 클라이언트와 상기 다른 클라이언트 사이에 설정된 통신 경로 각각은 P2P(Peer To Peer) 통신 경로에 해당할 수 있다.The communication path established between the client and the counterpart client and the communication path established between the client and the other client may correspond to a peer to peer (P2P) communication path.

실시예들은 클라이언트와 상대 클라이언트가 서로 통신하는 동안 상대 클라이언트가 제3자와 통신하고 싶다는 통신 요청이 있는 경우, 클라이언트가 상대 클라이언트의 통신 요청을 처리함으로써 상대 클라이언트와 제3자가 통신하도록 할 수 있다. 또한, 실시예들은 별도의 중계 장치 없이 클라이언트에서 통신 요청을 처리할 수 있어 네트워크 구조가 단순해질 수 있고, 비용이 절감될 수 있다.Embodiments may allow a third party to communicate with a partner client by processing a communication request of the partner client when the client has a communication request to communicate with the third party while the client and the partner client are communicating with each other. Also, the embodiments can process a communication request from a client without a separate relay device, so that the network structure can be simplified, and the cost can be reduced.

도 1은 일 실시예에 따른 콜 포워딩 시스템을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 콜 포워딩 시스템의 동작의 일례를 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 콜 포워딩 시스템의 동작의 다른 일례를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 A의 동작을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 B의 동작을 설명하기 위한 도면이다.
도 6 내지 도 7은 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 C의 동작을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 클라이언트의 동작 방법을 설명하기 위한 순서도이다.
도 9는 일 실시예에 따른 클라이언트를 설명하기 위한 블록도이다.
1 is a diagram for explaining a call forwarding system according to an embodiment.
2 is a flowchart for explaining an example of the operation of the call forwarding system according to one embodiment.
3 is a view for explaining another example of the operation of the call forwarding system according to the embodiment.
4 is a view for explaining the operation of the client A of the call forwarding system according to the embodiment.
5 is a view for explaining the operation of the client B of the call forwarding system according to the embodiment.
6 to 7 are views for explaining the operation of the client C of the call forwarding system according to the embodiment.
8 is a flowchart illustrating a method of operating a client according to an embodiment.
9 is a block diagram illustrating a client according to an embodiment.

이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It is to be understood that the embodiments described below are not intended to limit the embodiments, but include all modifications, equivalents, and alternatives to them.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to illustrate specific embodiments and are not intended to limit the embodiments. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as ideal or overly formal in the sense of the art unless explicitly defined herein Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.

도 1은 일 실시예에 따른 콜 포워딩 시스템을 설명하기 위한 도면이다.1 is a diagram for explaining a call forwarding system according to an embodiment.

도 1을 참조하면, 콜 포워딩 시스템은 서버, 클라이언트 A, 클라이언트 B, 및 클라이언트 C를 포함한다.Referring to FIG. 1, the call forwarding system includes a server, a client A, a client B, and a client C.

클라이언트 A와 클라이언트 B는 서로 통신할 수 있다. 예를 들어, 클라이언트 A와 클라이언트 B는 P2P(Peer To Peer) 통신 경로를 통해 데이터(일례로, 음성 패킷 및/또는 영상 패킷 등)를 송수신할 수 있다. 달리 표현하면, 클라이언트 A의 사용자와 클라이언트 B의 사용자는 서로 통화할 수 있다.Client A and Client B can communicate with each other. For example, client A and client B can send and receive data (e.g., voice packets and / or video packets) through a Peer To Peer (P2P) communication path. In other words, the user of client A and the user of client B can talk to each other.

현재 클라이언트 A와 클라이언트 B가 서로 통신 중이라 하자.Assume now that client A and client B are communicating with each other.

클라이언트 A는 클라이언트 C와 통신하고 싶다고 클라이언트 B에게 요청한다. 이 경우, 클라이언트 B는 클라이언트 A로부터 클라이언트 C를 타겟(또는 상대방)으로 하는 통신에 대한 요청을 수신한다(110). 달리 표현하면, 클라이언트 B는 클라이언트 A가 클라이언트 C와 통신하고 싶다는 것을 나타내는 통신 요청, 즉, 통신 요청(타겟=클라이언트 C)을 클라이언트 A로부터 수신할 수 있다. Client A requests Client B to communicate with Client C. In this case, the client B receives (110) a request for communication from the client A to the client C as the target (or the other party). In other words, the client B can receive a communication request, i.e., a communication request (target = client C) from the client A, indicating that the client A wants to communicate with the client C.

클라이언트 B는 클라이언트 A의 통신 요청(타겟=클라이언트 C)을 수신하면, 서버에게 클라이언트 C의 위치 정보(예를 들어, 클라이언트 C의 네트워크 주소 정보)에 대한 쿼리 및 클라이언트 A의 통신 요청(타겟=클라이언트 C)을 전송한다(111). When the client B receives the communication request (target = client C) of the client A, it sends a query to the server about the location information of the client C (for example, the network address information of the client C) C (111).

서버는 클라이언트 B로부터 클라이언트 C의 위치 정보에 대한 쿼리를 수신하면, 클라이언트 B에게 클라이언트 C의 위치 정보를 전송한다(112).When the server receives the query about the location information of the client C from the client B, it transmits the location information of the client C to the client B (112).

또한, 서버는 클라이언트 B로부터 클라이언트의 A의 통신 요청(타겟=클라이언트 C)을 수신하면, 클라이언트 C에게 클라이언트 A의 통신 요청(타겟=클라이언트 C) 및 클라이언트 B의 위치 정보를 전송한다(113). 달리 표현하면, 서버는 클라이언트 A가 클라이언트 C와 통신하고 싶다는 것을 클라이언트 C에게 알릴 수 있다. 또한, 서버는 클라이언트 C가 클라이언트 B와 P2P 통신 경로를 설정하도록 클라이언트 C에게 클라이언트 B의 위치 정보를 전송할 수 있다. When the server receives a communication request (target = client C) of the client A from the client B, the server transmits the communication request (target = client C) and the location information of the client B to the client C (113). In other words, the server can inform client C that client A wants to communicate with client C. In addition, the server can transmit the location information of the client B to the client C so that the client C establishes the P2P communication path with the client B.

클라이언트 C는 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대한 확인 응답을 서버로 전송한다(114). 다시 말해, 클라이언트 C는 클라이언트 A의 통신 요청에 대하여 서버에 응답할 수 있다. 구현에 따라, 서버는 클라이언트 C의 확인 응답을 클라이언트 B로 전송할 수 있다. 즉, 클라이언트 B는 서버로부터 클라이언트 C의 확인 응답을 수신할 수 있다. 달리 표현하면, 클라이언트 B는 클라이언트 C가 클라이언트 A와 통신하기를 원한다는 것을 확인 응답을 수신함으로써 알 수 있다. 또한, 구현에 따라, 서버는 클라이언트로 C부터 미리 정해진 시간 이내에 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대한 확인 응답이 없는 경우, 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대한 거절 메시지를 클라이언트 B로 전송할 수 있다. 클라이언트 B는 클라이언트 A에게 거절 메시지를 전송할 수 있다.Client C sends an acknowledgment to client A's communication request (target = client C) to the server (114). In other words, the client C can respond to the client A's communication request. Depending on the implementation, the server may send an acknowledgment of client C to client B. That is, the client B can receive the acknowledgment of the client C from the server. In other words, client B knows by receiving an acknowledgment that client C desires to communicate with client A. Further, according to the implementation, if the server does not acknowledge the communication request (target = client C) of the client A within a predetermined time from the client C, the server transmits a reject message (target = client C) To the client B. < RTI ID = 0.0 > Client B may send a reject message to Client A.

클라이언트 B는 클라이언트 C의 위치 정보를 서버로부터 수신하였으므로, 클라이언트 C와 P2P 통신 경로를 설정할 수 있다(115). 예를 들어, 클라이언트 B는 클라이언트 C의 위치 정보를 이용하여 클라이언트 C에게 P2P 통신 연결 요청을 전송할 수 있다. 클라이언트 C는 서버로부터 수신한 위치 정보와 P2P 통신 연결 요청에 포함된 발신자 위치 정보를 비교함으로써 P2P 통신 연결 요청을 전송한 클라이언트가 클라이언트 B라는 것을 결정할 수 있다. 클라이언트 C는 P2P 통신 연결 요청에 대한 확인 응답을 클라이언트 B에 전송할 수 있다. 이로써, 클라이언트 B는 클라이언트 C와 P2P 통신 경로를 설정할 수 있다.Since the client B has received the location information of the client C from the server, the client B can establish a P2P communication path with the client C (115). For example, the client B can transmit a P2P communication connection request to the client C using the location information of the client C. The client C can determine that the client that transmitted the P2P communication connection request is the client B by comparing the location information received from the server with the sender location information included in the P2P communication connection request. Client C may send an acknowledgment for the P2P communication connection request to Client B. Thus, the client B can establish a P2P communication path with the client C.

클라이언트 B는 클라이언트 C와 P2P 통신 경로가 설정되면, 클라이언트 C에게 클라이언트 A의 위치 정보를 전송한다(117). 또한, 클라이언트 B는 클라이언트 A에게 클라이언트 C의 위치 정보를 전송한다(116). When the P2P communication path with the client C is established, the client B transmits the location information of the client A to the client C (117). In addition, the client B transmits the location information of the client C to the client A (116).

클라이언트 A는 클라이언트 B로부터 클라이언트 C의 위치 정보를 수신하였으므로, 클라이언트 C와 P2P 통신 경로를 설정할 수 있다(118). 예를 들어, 클라이언트 A는 클라이언트 C의 위치 정보를 이용하여 클라이언트 C에게 P2P 통신 연결 요청을 전송할 수 있다. 클라이언트 C는 클라이언트 B로부터 수신한 위치 정보와 P2P 통신 연결 요청에 포함된 발신자 위치 정보를 비교함으로써 P2P 통신 연결 요청을 전송한 클라이언트가 클라이언트 A라는 것을 결정할 수 있다. 클라이언트 C는 P2P 통신 연결 요청에 대한 확인 응답을 클라이언트 A에 전송할 수 있다. 이로써, 클라이언트 A는 클라이언트 C와 P2P 통신 경로를 설정할 수 있다.Since the client A has received the location information of the client C from the client B, it can establish the P2P communication path with the client C (118). For example, the client A can transmit a P2P communication connection request to the client C using the location information of the client C. The client C can determine that the client that transmitted the P2P communication connection request is the client A by comparing the location information received from the client B with the sender location information included in the P2P communication connection request. Client C may send an acknowledgment for the P2P communication connection request to Client A. As a result, the client A can establish a P2P communication path with the client C.

클라이언트 A와 클라이언트 C는 P2P 통신 경로를 통해 데이터(예를 들어, 음성 패킷 및/또는 영상 패킷)를 송수신할 수 있다. 다시 말해, 클라이언트 A의 사용자와 클라이언트 C의 사용자는 통화할 수 있다.Client A and client C can send and receive data (e.g., voice packets and / or video packets) over the P2P communication path. In other words, the user of client A and the user of client C can talk.

도 1에 도시되지 않았으나, 클라이언트 B는 클라이언트 A와 클라이언트 C 사이에 P2P 통신 경로가 설정되는 경우, 클라이언트 B 자신과 클라이언트 A 사이의 통신 경로 및 클라이언트 B 자신과 클라이언트 C 사이의 통신 경로를 해제(releasing)할 수 있다. 구현에 따라, 클라이언트 B는 클라이언트 B 자신과 클라이언트 A 사이의 통신 경로 및 클라이언트 B 자신과 클라이언트 C 사이의 통신 경로를 유지할 수 있다. 이 경우, 클라이언트 A 및 클라이언트 B의 통신에 클라이언트 C가 참여함으로써, 다자간(multi-party) 통신 또는 컨퍼런스 콜(conference call)이 수행될 수 있다.Although not shown in FIG. 1, when the P2P communication path is established between the client A and the client C, the client B releases the communication path between the client B itself and the client A and the communication path between the client B itself and the client C )can do. According to the implementation, the client B can maintain the communication path between the client B itself and the client A and the communication path between the client B itself and the client C. In this case, the client C participates in the communication between the client A and the client B, so that multi-party communication or a conference call can be performed.

도 2는 일 실시예에 따른 콜 포워딩 시스템의 동작의 일례를 설명하기 위한 흐름도이다.2 is a flowchart for explaining an example of the operation of the call forwarding system according to one embodiment.

도 2를 참조하면, 클라이언트 A는 서버에게 통신 요청(타겟=클라이언트 B)을 전송한다(210). 다시 말해, 클라이언트 A는 클라이언트 B를 타겟으로 하는 통신을 서버에게 요청할 수 있다. Referring to FIG. 2, the client A transmits a communication request (target = client B) to the server (210). In other words, the client A can request the server to communicate with the client B as a target.

서버는 클라이언트 A의 통신 요청(타겟=클라이언트 B) 및 클라이언트 A의 위치 정보를 클라이언트 B에게 전송한다(211). 또한, 서버는 클라이언트 B의 위치 정보를 클라이언트 A에게 전송한다(212).The server transmits the communication request (target = client B) of the client A and the location information of the client A to the client B (211). In addition, the server transmits the location information of the client B to the client A (212).

클라이언트 B는 클라이언트 A의 통신 요청(타겟=클라이언트 B)에 대한 확인 응답을 서버에 전송한다(213). 다시 말해, 클라이언트 B는 클라이언트 A의 통신 요청(타겟=클라이언트 B)에 응답한다. 구현에 따라, 서버는 클라이언트 B의 확인 응답을 클라이언트 A에 전송할 수 있다.The client B transmits an acknowledgment to the communication request (target = client B) of the client A to the server (213). In other words, client B responds to client A's communication request (target = client B). Depending on the implementation, the server may send an acknowledgment of client B to client A.

클라이언트 A는 클라이언트 B와 통신 경로(예를 들어, P2P 통신 경로)를 설정한다(214).Client A establishes a communication path (e. G., P2P communication path) with client B (214).

클라이언트 A와 클라이언트 B는 통신 경로를 통해 데이터를 송수신한다. Client A and client B send and receive data through a communication path.

클라이언트 A는 통신 요청(타겟=클라이언트 C)에 대한 이벤트가 발생하면, 통신 요청(타겟=클라이언트 C)을 클라이언트 B에게 전송한다(215). 예를 들어, 클라이언트 A의 사용자 Paul은 클라이언트 B의 사용자 Tadd와 통화하는 동안 클라이언트 C의 사용자 Alex와 통화하고 싶은 경우, 클라이언트 A의 통화 화면에 노출된 상대방 추가 버튼을 선택할 수 있고, 상대방 추가 버튼의 선택에 의해 표시된 리스트에서 Alex를 선택할 수 있다. 리스트에서 Alex가 선택됨으로써 통신 요청(타겟= 클라이언트 C)에 대한 이벤트가 클라이언트 A에서 발생할 수 있고, 클라이언트 A는 클라이언트 C를 타겟으로 하는 통신을 클라이언트 B에게 요청할 수 있다.When an event occurs for the communication request (target = client C), client A sends a communication request (target = client C) to client B (215). For example, when the user Paul of the client A wants to talk to the user Alex of the client C while talking with the user Tadd of the client B, the user Paul can select the partner adding button exposed on the call screen of the client A, You can select Alex from the list displayed by selection. By selecting Alex in the list, an event for the communication request (target = client C) can occur at client A, and client A can request client B to communicate with client C as a target.

클라이언트 B는 클라이언트 A의 통신 요청(타겟=클라이언트 C)이 있으면, 클라이언트 C의 위치 정보를 서버에 요청한다(216). 또한, 도 2에 도시되지 않았으나, 클라이언트 B는 클라이언트 A의 통신 요청(타겟=클라이언트 C)을 서버에 전송할 수 있다.If there is a communication request (target = client C) of the client A, the client B requests the location information of the client C to the server (216). Also, although not shown in FIG. 2, the client B can transmit a communication request (target = client C) of the client A to the server.

서버는 클라이언트 C의 위치 정보에 대한 요청에 따라 클라이언트 C의 위치 정보를 클라이언트 B에 전송한다(217). 또한, 서버는 클라이언트 B의 위치 정보 및 클라이언트 A의 통신 요청(타겟=클라이언트 C)을 클라이언트 C로 전송한다(218).The server transmits the location information of the client C to the client B according to the request for the location information of the client C (217). In addition, the server transmits the location information of the client B and the communication request (target = client C) of the client A to the client C (218).

클라이언트 C는 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대한 확인 응답을 서버로 전송한다(219). 달리 표현하면, 클라이언트 C는 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대하여 서버에 응답할 수 있다. 도 2에 도시되지 않았으나, 서버는 클라이언트 C의 확인 응답을 클라이언트 B로 전송할 수 있다. 이 경우, 클라이언트 B는 클라이언트 C가 클라이언트 A의 통신 요청(타겟=클라이언트 C)을 accept하였다는 것을 알 수 있다.Client C sends an acknowledgment to client A's communication request (target = client C) to the server (219). In other words, the client C can respond to the communication request (target = client C) of the client A to the server. Although not shown in FIG. 2, the server may send an acknowledgment of the client C to the client B. In this case, the client B can know that the client C has accepted the communication request of the client A (target = client C).

클라이언트 A의 통신 요청(타겟=클라이언트 C)이 클라이언트 C에 의해 accept된 경우, 클라이언트 B 및 클라이언트 C는 통신 경로(예를 들어, P2P 통신 경로)를 설정한다(220). If the communication request of client A (target = client C) has been accepted by client C, client B and client C establish a communication path (e.g., P2P communication path) (220).

클라이언트 B는 통신 경로를 통해 클라이언트 C의 위치 정보를 클라이언트 A에게 전송한다(221). 또한, 클라이언트 B는 클라이언트 A의 위치 정보를 클라이언트 C에게 전송한다(222). The client B transmits the location information of the client C to the client A through the communication path (221). In addition, the client B transmits the location information of the client A to the client C (222).

클라이언트 A는 클라이언트 C의 위치 정보를 수신한 경우, 클라이언트 C와 통신 경로(예를 들어, P2P 통신 경로)를 설정한다(223).When the client A receives the location information of the client C, the client A establishes a communication path (for example, P2P communication path) with the client C (223).

클라이언트 B는 클라이언트 B 자신과 클라이언트 C 사이에 설정된 통신 경로를 해제할 수 있고(224), 클라이언트 B 자신과 클라이언트 A 사이에 설정된 통신 경로를 해제할 수 있다(225). 예를 들어, 클라이언트 B는 클라이언트 A와 클라이언트 C 사이에 통신 경로가 설정되었음을 나타내는 메시지를 클라이언트 A 및 클라이언트 C 중 적어도 하나로부터 수신하는 경우, 클라이언트 B 자신과 클라이언트 C 사이에 설정된 통신 경로 및 클라이언트 B 자신과 클라이언트 A 사이에 설정된 통신 경로를 해제할 수 있다.The client B can release the communication path established between the client B itself and the client C (224) and release the communication path established between the client B itself and the client A (225). For example, when the client B receives a message indicating that the communication path is established between the client A and the client C from at least one of the client A and the client C, the communication path set between the client B and the client C and the client B And the client A can be released.

도 3은 일 실시예에 따른 콜 포워딩 시스템의 동작의 다른 일례를 설명하기 위한 도면이다.3 is a view for explaining another example of the operation of the call forwarding system according to the embodiment.

도 3을 참조하면, 클라이언트 A와 클라이언트 B는 통신 경로를 통해 통신한다(310). 이 때, 클라이언트 B에서 클라이언트 C를 타겟으로 하는 통신에 대한 요청 이벤트가 발생할 수 있다(311). 도 1 및 도 2를 통해 설명한 예와 달리, 클라이언트 B에서 통신 요청(타겟=클라이언트 C)에 대한 이벤트가 발생할 수 있다. 예를 들어, 클라이언트 A의 사용자 Paul은 클라이언트 B의 사용자 Tadd와 통화하는 동안 클라이언트 C의 사용자 Alex와 통화하고 싶다고 Tadd에 요청할 수 있다. 이 경우, Tadd는 클라이언트 B의 통화 화면에 노출된 상대방 추가 버튼을 선택하고, 상대방 추가 버튼의 선택에 의해 표시된 리스트에서 Alex를 선택할 수 있다. 리스트에서 Alex가 선택됨으로써 클라이언트 B에서 통신 요청(타겟=클라이언트 C)에 대한 이벤트가 발생할 수 있다. Referring to FIG. 3, client A and client B communicate through a communication path (310). At this time, a request event for communication targeting Client C in Client B may occur (311). Unlike the example described with reference to FIGS. 1 and 2, an event for a communication request (target = client C) may occur in the client B. For example, user Paul at client A may request Tadd to talk to user Alex at client C while talking with user Tadd at client B. [ In this case, Tadd can select the partner addition button exposed on the call screen of the client B and select Alex from the list displayed by the selection of the partner addition button. By selecting Alex in the list, an event for the communication request (target = client C) in client B can occur.

클라이언트 B는 통신 요청(타겟=클라이언트 C)에 대한 이벤트가 발생하면, 클라이언트 C의 위치 정보를 서버에 요청한다(312). 도 3에 도시되지 않았으나, 클라이언트 B는 통신 요청(타겟=클라이언트 C)을 서버에 전송할 수 있다.When an event for the communication request (target = client C) occurs, the client B requests the location information of the client C to the server (312). Although not shown in FIG. 3, client B may send a communication request (target = client C) to the server.

서버는 클라이언트 B에게 클라이언트 C의 위치 정보를 전송한다(313). 또한, 서버는 클라이언트 B의 위치 정보 및 통신 요청(타겟=클라이언트 C)을 클라이언트 C로 전송한다(314).The server transmits the location information of the client C to the client B (313). In addition, the server transmits the location information of the client B and the communication request (target = client C) to the client C (314).

클라이언트 C는 클라이언트 A의 통신 요청(타겟=클라이언트 C)에 대한 확인 응답을 서버로 전송한다(315).Client C sends an acknowledgment to client A's communication request (target = client C) to the server (315).

클라이언트 B는 클라이언트 C의 위치 정보를 이용하여 클라이언트 C와 통신 경로(예를 들어, P2P 통신 경로)를 설정한다(316). The client B sets a communication path (for example, a P2P communication path) with the client C using the location information of the client C (316).

클라이언트 B는 클라이언트 C의 위치 정보를 클라이언트 A에게 전송한다(317). 또한, 클라이언트 B는 클라이언트 A의 위치 정보를 클라이언트 C에게 전송한다(318).The client B transmits the location information of the client C to the client A (317). In addition, the client B transmits the location information of the client A to the client C (318).

클라이언트 A는 클라이언트 B로부터 클라이언트 C의 위치 정보를 수신하는 경우, 클라이언트 B와 통신 경로를 설정한다(319). 이로써, 클라이언트 A의 사용자 Paul은 클라이언트 C의 사용자 Alex와 통화할 수 있다. 또한, 클라이언트 A의 사용자 Paul은 클라이언트 C의 사용자 Alex의 전화번호를 모르더라도 클라이언트 B의 사용자 Tadd에게 Alex와 통화하고 싶다고 요청함으로써 Alex와 통화할 수 있다.When receiving the location information of the client C from the client B, the client A sets a communication path with the client B (319). Thereby, the user Paul of the client A can talk with the user Alex of the client C. Also, the user Paul of the client A can talk to Alex by asking the user Tadd of the client B not to know the telephone number of the user Alex of the client C but wants to talk with Alex.

클라이언트 A와 클라이언트 C 사이에 통신 경로가 설정된 경우, 클라이언트 B는 클라이언트 B 자신과 클라이언트 C 사이에 설정된 통신 경로를 해제할 수 있고(320), 클라이언트 B 자신과 클라이언트 A 사이에 설정된 통신 경로를 해제할 수 있다(321).When a communication path is established between the client A and the client C, the client B can release the communication path established between the client B itself and the client C (320) and release the communication path established between the client B itself and the client A (321).

도 4는 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 A의 동작을 설명하기 위한 도면이다.4 is a view for explaining the operation of the client A of the call forwarding system according to the embodiment.

도 4의 통화 화면(410)을 참조하면, 클라이언트 A의 사용자 Paul은 클라이언트 B의 사용자 Tadd와 현재 통화하고 있다. 다시 말해, 통화 화면(410)에서 통화 상대방은 Tadd이다. Referring to the call screen 410 of FIG. 4, the user Paul of the client A is currently in communication with the user Tadd of the client B. In other words, the calling party on the call screen 410 is Tadd.

Paul은 Tadd와 통화 중 클라이언트 C의 사용자 Alex와 통화하기를 원할 수 있다. 이 경우, Paul은 통화 화면에 노출된 상대방 추가 버튼(411)을 선택할 수 있다. Paul이 상대방 추가 버튼(411)을 선택함으로써 리스트가 표시될 수 있고, Paul은 리스트에서 Alex를 선택할 수 있다. 리스트에서 Alex가 선택되면, 클라이언트 A는 통화 요청(타겟=클라이언트 C)을 클라이언트 B에게 전송할 수 있다. 이 때, 클라이언트 A의 디스플레이에는 통화 연결 화면(420)이 표시될 수 있다. 예를 들어, "Alex에게 전화 중"의 메시지(420)가 클라이언트 A의 디스플레이에 표시될 수 있다.Paul may want to talk to user Alex on client C during a call with Tadd. In this case, Paul can select the counterpart add button 411 exposed on the call screen. The list can be displayed by Paul selecting the counterpart add button 411, and Paul can select Alex from the list. If Alex is selected in the list, client A can send a call request (target = client C) to client B. At this time, the call connection screen 420 may be displayed on the display of the client A. For example, a message 420 "Calling Alex" may be displayed on the client A's display.

클라이언트 B는 클라이언트 A의 통화 요청(타겟=클라이언트 C)을 클라이언트 A 대신에 처리할 수 있다. 클라이언트 B의 동작에 대해선 도 1 내지 도 3을 통해 설명하였으므로, 자세한 설명을 생략한다.Client B can process the call request (target = client C) of client A instead of client A. The operation of the client B has been described with reference to FIG. 1 to FIG. 3, and a detailed description thereof will be omitted.

클라이언트 A는 클라이언트 C와 통신 경로를 설정할 수 있다. 이로써, Paul은 Alex와 통화할 수 있다. 클라이언트 A의 통화 화면(430)이 도시된다. 통화 화면(430)에서 현재 통화 상대방은 Alex이다. Client A can establish a communication path with client C. This allows Paul to speak with Alex. A call screen 430 of client A is shown. On the call screen 430, the current communication party is Alex.

클라이언트 A와 클라이언트 C 사이에 통신 경로가 설정되면, 클라이언트 A와 클라이언트 B 사이의 통신 경로는 해제될 수 있다.If a communication path is established between client A and client C, the communication path between client A and client B can be released.

도 5는 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 B의 동작을 설명하기 위한 도면이다.5 is a view for explaining the operation of the client B of the call forwarding system according to the embodiment.

도 5의 통화 화면(510)을 참조하면, 클라이언트 B의 사용자 Tadd는 클라이언트 A의 사용자 Paul과 현재 통화하고 있다. 다시 말해, 통화 화면(510)에서 통화 상대방은 Paul이다.Referring to the call screen 510 of FIG. 5, the user Tadd of the client B is currently in communication with the user Paul of the client A. In other words, the calling party on the call screen 510 is Paul.

Paul이 Tadd와 통화 중 Alex와 통화하기를 원할 수 있다. 이 경우, 클라이언트 B는 클라이언트 A로부터 통화 요청(타겟=클라이언트 C)를 수신할 수 있다. Paul may want to talk to Alex during a call with Tadd. In this case, the client B can receive the call request (target = client C) from the client A.

통화 요청(타겟=클라이언트 C)을 수신하면, 클라이언트 B는 서버에게 클라이언트 C의 위치 정보에 대한 쿼리 및 통화 요청(타겟=클라이언트 C)을 전송하고, 서버로부터 클라이언트 C의 위치 정보를 수신한다. 이 때, 클라이언트 B의 디스플레이에는 콜 포워딩 화면(520)이 표시될 수 있다. 예를 들어, 클라이언트 B의 디스플레이에는 "Paul의 전화를 Alex에게 전달 중입니다"의 메시지(521)가 표시될 수 있다.Upon receiving the call request (target = client C), the client B transmits a query and a call request (target = client C) for the location information of the client C to the server, and receives the location information of the client C from the server. At this time, the call forwarding screen 520 may be displayed on the display of the client B. For example, a message 521 of "Paul's phone is being delivered to Alex" may be displayed on the client B's display.

클라이언트 B는 클라이언트 C의 위치 정보를 이용하여 클라이언트 C와 통신 경로를 설정한다. 클라이언트 B는 클라이언트 C에게 클라이언트 A의 위치 정보를 전송한다. 또한, 클라이언트 B는 클라이언트 A에게 클라이언트 C의 위치 정보를 전송한다.The client B establishes a communication path with the client C using the location information of the client C. The client B transmits the location information of the client A to the client C. In addition, the client B transmits the location information of the client C to the client A.

클라이언트 A 및 클라이언트 C 사이에 통신 경로가 설정된 경우, 클라이언트 B는 자신과 클라이언트 A 사이의 통신 경로 및 자신과 클라이언트 C 사이의 통신 경로를 해제할 수 있다. 이 때, 클라이언트 B의 디스플레이에는 통화 종료 화면(530)이 표시될 수 있다. 예를 들어, "모든 통화를 종료합니다"의 메시지(531)가 클라이언트 B의 디스플레이에 표시될 수 있다.When a communication path is established between the client A and the client C, the client B can release the communication path between itself and the client A and the communication path between itself and the client C. At this time, a call end screen 530 may be displayed on the display of the client B. For example, a message 531 of "End all calls" may be displayed on the display of client B.

도 6 내지 도 7은 일 실시예에 따른 콜 포워딩 시스템의 클라이언트 C의 동작을 설명하기 위한 도면이다. 6 to 7 are views for explaining the operation of the client C of the call forwarding system according to the embodiment.

클라이언트 C는 서버로부터 클라이언트 A의 통화 요청(타겟=클라이언트 C) 및 클라이언트 B의 위치 정보를 수신한다. 이 때, 클라이언트 C의 디스플레이에는 클라이언트 A의 통화 요청(타겟=클라이언트 C)에 대한 통화 요청 화면(610)이 표시될 수 있다. 예를 들어, 도 6에 도시된 예와 같이, "Paul의 전화를 Tadd가 대신 전달하고 있습니다. Paul의 전화를 받으시겠습니까 예를 누르면 먼저 Tadd와 통화한 후 Paul과 통화합니다"의 메시지(611)가 표시될 수 있다.The client C receives the call request (target = client C) of the client A and the location information of the client B from the server. At this time, a call request screen 610 for a call request (target = client C) of the client A may be displayed on the display of the client C. For example, as in the example shown in Figure 6, the message "611" tells Paul that Paul is calling instead of talking to Tadd if he / she wants to answer Paul's call. May be displayed.

클라이언트 C의 사용자 Alex가 "예"를 선택한다고 하자. 이 때, 클라이언트 C는 서버로 클라이언트 A의 통화 요청(타겟=클라이언트 C)에 대한 확인 응답을 전송한다.Let the user Alex of client C choose "Yes". At this time, client C sends an acknowledgment to client A's call request (target = client C) to the server.

클라이언트 C는 서버로 확인 응답을 전송한 후, 클라이언트 B와 통신 경로를 설정할 수 있다. 이 때, 클라이언트 C의 디스플레이에는 통화 연결 화면(620)이 표시될 수 있다. 클라이언트 C의 사용자 Alex는 통화 연결 화면(620)에 표시된 "예" 버튼(미도시)을 선택함으로써 클라이언트 B의 사용자 Tadd와 통화할 수 있다. 이 때, 클라이언트 C는 통화 화면(710)을 표시할 수 있고, 통신 경로를 통해 클라이언트 B로부터 클라이언트 A의 위치 정보를 수신할 수 있다.After sending an acknowledgment to the server, client C can establish a communication path with client B. At this time, the call connection screen 620 may be displayed on the display of the client C. The user Alex of the client C can talk to the user Tadd of the client B by selecting the "Yes" button (not shown) displayed on the call connection screen 620. At this time, the client C can display the call screen 710 and can receive the location information of the client A from the client B via the communication path.

클라이언트 C는 클라이언트 A의 위치 정보를 수신하는 경우, "Paul과 통화하겠습니까?"의 메시지를 통화 화면(710)에 출력할 수 있다. When receiving the location information of the client A, the client C can output a message "Would you like to talk with Paul?" To the call screen 710.

클라이언트 C의 사용자 Alex가 "예"를 선택하면, 클라이언트 C는 클라이언트 A와 통신 경로를 설정할 수 있다. 이 때, 클라이언트 C의 디스플레이에는 통화 연결 화면(720)이 표시될 수 있다. If the user Alex of the client C selects "YES ", the client C can establish a communication path with the client A. At this time, the call connection screen 720 may be displayed on the display of the client C.

클라이언트 A와 클라이언트 C 사이에 통신 경로가 설정된 경우, 클라이언트 A의 사용자 Paul은 클라이언트 C의 사용자 Alex와 통화할 수 있다.When a communication path is established between the client A and the client C, the user Paul of the client A can talk with the user Alex of the client C.

도 8은 일 실시예에 따른 클라이언트의 동작 방법을 설명하기 위한 순서도이다.8 is a flowchart illustrating a method of operating a client according to an embodiment.

도 8을 참조하면, 클라이언트는 상대 클라이언트와 통신한다(810). 예를 들어, 클라이언트는 상대 클라이언트와 P2P 통신 경로를 통해 데이터를 송수신할 수 있다. 여기서, 클라이언트는 도 1 내지 도 7을 통해 설명한 클라이언트 B와 대응될 수 있고, 상대 클라이언트는 도 1 내지 도 7을 통해 설명한 클라이언트 A와 대응될 수 있다.Referring to FIG. 8, a client communicates with a relative client (810). For example, a client can send and receive data through a peer-to-peer communication path with a peer client. Here, the client may correspond to the client B described with reference to FIGS. 1 to 7, and the other client may correspond to the client A described with reference to FIG. 1 to FIG.

클라이언트는 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득한다(820). 예를 들어, 클라이언트는 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 서버에게 다른 클라이언트의 위치 정보에 대한 쿼리를 전송할 수 있고, 서버로부터 다른 클라이언트의 위치 정보를 수신할 수 있다. 여기서, 다른 클라이언트는 도 1 내지 도 7을 통해 설명한 클라이언트 C와 대응될 수 있다.If there is a request for communication targeting another client from the other client, the client obtains the location information of the other client through a predetermined process (820). For example, if there is a request for communication targeting another client, the client may send a query to the server about location information of another client and may receive location information of another client from the server. Here, the other client may correspond to the client C described with reference to FIG. 1 through FIG.

클라이언트는 획득된 위치 정보를 기초로 다른 클라이언트와 통신 경로를 설정한다(830).The client sets a communication path with another client based on the acquired location information (830).

클라이언트는 상대 클라이언트의 위치 정보를 설정된 통신 경로를 통해 다른 클라이언트로 전송한다(840). 또한, 클라이언트는 다른 클라이언트의 위치 정보를 상대 클라이언트로 전송한다. 이로써, 다른 클라이언트는 상대 클라이언트의 위치 정보를 알 수 있고, 상대 클라이언트는 다른 클라이언트의 위치 정보를 알 수 있다. 이에 따라, 다른 클라이언트 및 상대 클라이언트는 통신 경로를 설정할 수 있다.The client transmits the location information of the other client to the other client through the established communication path (840). In addition, the client transmits location information of another client to the other client. Thus, another client can know the location information of the other client, and the other client can know the location information of the other client. Accordingly, the other client and the relative client can set the communication path.

도 1 내지 도 7을 통해 기술된 사항들은 도 8을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 through 7 can be applied to the matters described with reference to FIG. 8, detailed description thereof will be omitted.

도 9는 일 실시예에 따른 클라이언트를 설명하기 위한 블록도이다.9 is a block diagram illustrating a client according to an embodiment.

도 9를 참조하면, 클라이언트는 메모리(910) 및 컨트롤러(920)를 포함한다.Referring to FIG. 9, the client includes a memory 910 and a controller 920.

메모리(910)는 하나 이상의 명렁어를 기록한다.The memory 910 records one or more descriptors.

컨트롤러(920)는 명렁어에 기초하여, 복수의 단계를 실행한다. 여기서, 복수의 단계는 상대 클라이언트와 통신하는 단계, 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청이 있는 경우, 다른 클라이언트의 위치 정보를 미리 정해진 프로세스를 통해 획득하는 단계, 획득된 위치 정보를 기초로 다른 클라이언트와 통신 경로를 설정하는 단계, 및 상대 클라이언트의 위치 정보를 설정된 통신 경로를 통해 다른 클라이언트로 전송하는 단계를 실행하는 포함한다.The controller 920 executes a plurality of steps based on the command. Here, the plurality of steps may include the steps of communicating with the other client, acquiring location information of another client through a predetermined process when there is a request for communication targeting another client from the other client, Establishing a communication path with another client based on the location information of the other client, and transmitting the location information of the other client to the other client via the established communication path.

도 1 내지 도 7을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.1 to 7 can be applied to the matters described with reference to FIG. 9, so that a detailed description will be omitted.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA) , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (15)

클라이언트의 동작 방법에 있어서,
상대 클라이언트와 통신하는 단계;
상기 상대 클라이언트와 설정된 제1 통신 경로를 통해, 상기 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청을 수신하는 단계;
상기 요청에 따라, 상기 다른 클라이언트의 위치 정보를 서버와 통신하여 획득하는 단계;
상기 획득된 위치 정보를 기초로 상기 다른 클라이언트와 제2 통신 경로를 설정하는 단계; 및
상기 상대 클라이언트의 위치 정보를 상기 설정된 제2 통신 경로를 통해 상기 다른 클라이언트로 전송하고, 상기 획득된 위치 정보를 상기 설정된 제1 통신 경로를 통해 상기 상대 클라이언트로 전송하는 단계
를 포함하고,
상기 다른 클라이언트 및 상기 상대 클라이언트는 상기 클라이언트로부터 수신한 위치 정보를 이용하여 상기 다른 클라이언트 및 상기 상대 클라이언트 사이에 통신 경로를 설정하는,
클라이언트의 동작 방법.
In a method of operating a client,
Communicating with a relative client;
Receiving a request for communication targeting another client from the partner client over a first communication path established with the partner client;
Acquiring location information of the other client by communicating with the server according to the request;
Setting a second communication path with the other client based on the obtained location information; And
Transmitting the location information of the other client to the other client through the set second communication path and transmitting the obtained location information to the other client via the set first communication path
Lt; / RTI >
And the other client and the other client establish communication paths between the other client and the relative client using the location information received from the client,
How the client works.
삭제delete 제1항에 있어서,
상기 서버는,
상기 요청을 상기 클라이언트로부터 더 수신하고, 상기 다른 클라이언트에게 상기 클라이언트의 위치 정보 및 상기 요청을 전송하는,
클라이언트의 동작 방법.
The method according to claim 1,
The server comprises:
Further receiving the request from the client, transmitting the location information of the client and the request to the other client,
How the client works.
제3항에 있어서,
상기 다른 클라이언트는,
상기 요청을 수신하는 경우, 상기 다른 클라이언트의 사용자의 선택 입력을 기초로 상기 요청에 응답하는,
클라이언트의 동작 방법.
The method of claim 3,
The other client,
And when receiving the request, responding to the request based on a selection input of a user of the another client,
How the client works.
제3항에 있어서,
상기 서버는,
상기 다른 클라이언트로부터 미리 정해진 시간 이내에 상기 요청에 대한 응답이 없는 경우, 상기 요청에 대한 거절 메시지를 상기 클라이언트로 전송하는,
클라이언트의 동작 방법.
The method of claim 3,
The server comprises:
And if the response is not received from the other client within a predetermined time, sending a rejection message for the request to the client,
How the client works.
제1항에 있어서,
상기 다른 클라이언트와 상기 상대 클라이언트 사이에 통신 경로가 설정되었음을 나타내는 메시지를 상기 다른 클라이언트 및 상기 상대 클라이언트 중 적어도 하나로부터 수신하는 경우, 상기 설정된 제1 통신 경로 및 상기 설정된 제2 통신 경로를 해제(releasing)하는 단계
를 더 포함하는,
클라이언트의 동작 방법.
The method according to claim 1,
Releasing the established first communication path and the established second communication path when receiving a message from at least one of the other client and the counterpart client that a communication path has been established between the other client and the counterpart client, Step
≪ / RTI >
How the client works.
제1항에 있어서,
상기 설정된 제1 통신 경로 및 상기 설정된 제2 통신 경로 각각은 P2P(Peer To Peer) 통신 경로에 해당하는,
클라이언트의 동작 방법.
The method according to claim 1,
Wherein the set first communication path and the set second communication path each correspond to a peer to peer (P2P) communication path,
How the client works.
제1항의 방법을 실행하기 위한 하나 이상의 명령어를 저장하는 컴퓨터 판독 가능한 저장 매체.
A computer-readable storage medium storing one or more instructions for executing the method of claim 1.
클라이언트에 있어서,
하나 이상의 명령어를 기록하는 메모리; 및
상기 명령어에 기초하여,
상대 클라이언트와 통신하는 단계; 상기 상대 클라이언트와 설정된 제1 통신 경로를 통해, 상기 상대 클라이언트로부터 다른 클라이언트를 타겟으로 하는 통신에 대한 요청을 수신하는 단계; 상기 요청에 따라, 상기 다른 클라이언트의 위치 정보를 서버와 통신하여 획득하는 단계; 상기 획득된 위치 정보를 기초로 상기 다른 클라이언트와 제2 통신 경로를 설정하는 단계; 및 상기 상대 클라이언트의 위치 정보를 상기 설정된 제2 통신 경로를 통해 상기 다른 클라이언트로 전송하고 상기 획득된 위치 정보를 상기 설정된 제1 통신 경로를 통해 상기 상대 클라이언트로 전송하는 단계를 실행하는 컨트롤러
를 포함하고,
상기 다른 클라이언트 및 상기 상대 클라이언트는 상기 클라이언트로부터 수신한 위치 정보를 이용하여 상기 다른 클라이언트 및 상기 상대 클라이언트 사이에 통신 경로를 설정하는,
클라이언트.
In the client,
A memory for writing one or more instructions; And
Based on the command,
Communicating with a relative client; Receiving a request for communication targeting another client from the partner client over a first communication path established with the partner client; Acquiring location information of the other client by communicating with the server according to the request; Setting a second communication path with the other client based on the obtained location information; And transmitting the position information of the other client to the other client via the second communication path and transmitting the obtained position information to the other client via the set first communication path
Lt; / RTI >
And the other client and the other client establish communication paths between the other client and the relative client using the location information received from the client,
Client.
삭제delete 제9항에 있어서,
상기 서버는,
상기 요청을 상기 클라이언트로부터 더 수신하고, 상기 다른 클라이언트에게 상기 클라이언트의 위치 정보 및 상기 요청을 전송하는,
클라이언트.
10. The method of claim 9,
The server comprises:
Further receiving the request from the client, transmitting the location information of the client and the request to the other client,
Client.
제11항에 있어서,
상기 다른 클라이언트는,
상기 요청을 수신하는 경우, 상기 다른 클라이언트의 사용자의 선택 입력을 기초로 상기 요청에 응답하는,
클라이언트.
12. The method of claim 11,
The other client,
And when receiving the request, responding to the request based on a selection input of a user of the another client,
Client.
제11항에 있어서,
상기 서버는,
상기 다른 클라이언트로부터 미리 정해진 시간 이내에 상기 요청에 대한 응답이 없는 경우, 상기 요청에 대한 거절 메시지를 상기 클라이언트로 전송하는,
클라이언트.
12. The method of claim 11,
The server comprises:
And if the response is not received from the other client within a predetermined time, sending a rejection message for the request to the client,
Client.
제9항에 있어서,
상기 컨트롤러는,
상기 다른 클라이언트와 상기 상대 클라이언트 사이에 통신 경로가 설정되었음을 나타내는 메시지를 상기 다른 클라이언트 및 상기 상대 클라이언트 중 적어도 하나로부터 수신하는 경우, 상기 설정된 제1 통신 경로 및 상기 설정된 제2 통신 경로를 해제(releasing)하는 단계
를 더 실행하는,
클라이언트.
10. The method of claim 9,
The controller comprising:
Releasing the established first communication path and the established second communication path when receiving a message from at least one of the other client and the counterpart client that a communication path has been established between the other client and the counterpart client, Step
Lt; / RTI >
Client.
제9항에 있어서,
상기 설정된 제1 통신 경로 및 상기 설정된 제2 통신 경로 각각은 P2P(Peer To Peer) 통신 경로에 해당하는,
클라이언트.
10. The method of claim 9,
Wherein the set first communication path and the set second communication path each correspond to a peer to peer (P2P) communication path,
Client.
KR1020170025557A 2016-02-29 2017-02-27 Client and operating method of client KR101812537B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160024004 2016-02-29
KR1020160024004 2016-02-29

Publications (2)

Publication Number Publication Date
KR20170101818A KR20170101818A (en) 2017-09-06
KR101812537B1 true KR101812537B1 (en) 2018-01-30

Family

ID=59925520

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170025557A KR101812537B1 (en) 2016-02-29 2017-02-27 Client and operating method of client

Country Status (1)

Country Link
KR (1) KR101812537B1 (en)

Also Published As

Publication number Publication date
KR20170101818A (en) 2017-09-06

Similar Documents

Publication Publication Date Title
US9369500B2 (en) Call handling using IP multimedia subsystem
US10389832B2 (en) Remote casting of media content
US20180124577A1 (en) Method, Apparatus, and System for Floor Control on Multiple MCPTT Systems
EP3646625B1 (en) Emergency calling
CN113765930B9 (en) Control method for multiparty call, client and server
US11019468B2 (en) Group communication forwarding to a secondary service
US9992343B2 (en) Text translation of an audio recording during recording capture
US10986066B2 (en) Systems, apparatuses, methods, and non-transitory computer readable media for efficient call processing
EP2974159B1 (en) Method, device and system for voice communication
JP4792495B2 (en) Communication control apparatus and method
WO2021012780A1 (en) Videoconference control method and device
EP3189676B1 (en) Dispatch console client functionality
KR101812537B1 (en) Client and operating method of client
US20180183741A1 (en) Multimedia file adaption across different communication platforms
US11134124B2 (en) Method and system for connecting between terminals in multimedia communication
KR102361712B1 (en) System and method for controlling multi-party video call using WebRTC
US10904301B2 (en) Conference system and method for handling conference connection thereof
EP3387823B1 (en) Call handling between a cellular network and a communication service
KR102574576B1 (en) Call Connecting Method And Terminal of Thereof
CN113973089B (en) Streaming media transmission method, system, equipment and storage medium
US11653334B2 (en) Systems and methods for reducing transcoding resource allocation during call setup to multiple terminations
WO2017121368A1 (en) Emergency communication method and apparatus
KR20190052826A (en) System for transmissing file and computing device for executing the same
CN111343272B (en) Cross-node request retry method of star network architecture and electronic equipment
US10511714B2 (en) Provision of content data to callee

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant
R401 Registration of restoration