KR100872240B1 - System and method for providing session initiation protocol-based communication service - Google Patents
System and method for providing session initiation protocol-based communication service Download PDFInfo
- Publication number
- KR100872240B1 KR100872240B1 KR1020060133429A KR20060133429A KR100872240B1 KR 100872240 B1 KR100872240 B1 KR 100872240B1 KR 1020060133429 A KR1020060133429 A KR 1020060133429A KR 20060133429 A KR20060133429 A KR 20060133429A KR 100872240 B1 KR100872240 B1 KR 100872240B1
- Authority
- KR
- South Korea
- Prior art keywords
- user terminal
- server
- sip
- ucc
- relay
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
- H04L2101/385—Uniform resource identifier for session initiation protocol [SIP URI]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명에 따른 SIP 기반 통신 서비스 제공 시스템 및 그 방법이 개시된다. 일 실시예에 따르면, 사용자 단말기가 속한 네트워크 구조에 무관하게, 일방 사용자 단말기의 애플리케이션은 게이트웨이 서버를 통해 상대방 사용자 단말기의 IP 및 포트 정보를 얻어 TCP 세션 연결을 형성할 수 있다. 상기 실시예에 따르면, 클라이언트 단말 및 서버 단말로 이루어진 각 사용자 단말에 탑재된 SIP 지원 애플리케이션은 각 애플리케이션간의 SIP 메시지 중계를 수행하는 게이트웨이 서버를 이용하여, 사용자 단말이 놓인 환경이 개방형 네트워크 또는 폐쇄형 네트워크인지에 무관하게 안정적인 TCP 세션 연결을 수행할 수 있고, 작은 비용으로 구축이 가능하고 최소한의 시그널링 정보의 교환만으로 TCP 세션 연결을 이룰 수 있다.
Disclosed is a SIP-based communication service providing system and method thereof. According to an embodiment, regardless of the network structure to which the user terminal belongs, an application of one user terminal may establish a TCP session connection by obtaining IP and port information of the counterpart user terminal through a gateway server. According to the above embodiment, the SIP-supported application mounted on each user terminal consisting of a client terminal and a server terminal uses an gateway server that performs SIP message relay between each application, so that the environment in which the user terminal is placed is an open or closed network. Regardless of recognition, stable TCP session connection can be performed, it can be established at low cost, and TCP session connection can be established with a minimum exchange of signaling information.
Description
도 1은 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 개략적으로 도시한 모식도,1 is a schematic diagram schematically showing a SIP-based communication service providing system according to an embodiment;
도 2는 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기의 네트워크 구조에 무관하게 상대방 사용자 단말기가 개방형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도,2 is a signal flow diagram illustrating a signal flow when a counterpart user terminal exists in an open network regardless of a network structure of one user terminal through a SIP-based communication service providing system according to an embodiment;
도 3은 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기의 네트워크 구조에 무관하게 상대방 사용자 단말기가 폐쇄형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도,3 is a signal flow diagram illustrating a signal flow when a counterpart user terminal exists in a closed network regardless of a network structure of one user terminal through a SIP-based communication service providing system according to an embodiment;
도 4는 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기 및 상대방 사용자 단말기가 폐쇄형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도이다.4 is a signal flow diagram illustrating a signal flow when one user terminal and a counterpart user terminal exist in a closed network through a SIP-based communication service providing system according to an embodiment.
*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
2:게이트웨이서버 4:레지스터 서버,2: gateway server 4: register server,
6:프락시 서버 8:릴레이 서버,6: proxy server 8: relay server,
10:사용자 단말 A 16:사용자 단말 B10: user terminal A 16: user terminal B
본 발명은 SIP 기반 통신 서비스 제공 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 사용자 단말의 애플리케이션 계층으로 하여금, 그 사용자 단말이 속한 네트워크 구조를 고려할 필요없이, 게이트웨이 서버를 통하여 용이하게 TCP 세션 연결을 달성하도록 하는 SIP 기반 통신 서비스 제공 시스템 및 그 방법에 관한 것이다.The present invention relates to a SIP-based communication service providing system and method thereof, and more particularly, to allow an application layer of a user terminal to easily establish a TCP session connection through a gateway server without considering the network structure to which the user terminal belongs. The present invention relates to a SIP-based communication service providing system and a method thereof.
일반적으로, 네트워크 구조는 IP 할당 방법을 기준으로 크게 폐쇄형 네트워크와 개방형 네트워크로 나눌 수 있다. 개방형 네트워크는 로컬 단위의 IP가 모두 공인 IP(Public IP)인 것으로 외부의 다른 공유 IP와 통신 서비스를 수행하는데 제약이 없다. 폐쇄형 네트워크는 NAT(Network Address Translation) 또는 방화벽 장비를 갖춘 네트워크 구조로서, 이러한 폐쇄형 네트워크에서는 많은 수의 사설 IP가 소량의 공인 IP를 이용하여 외부와 네트워크를 형성한다. 그러므로, 폐쇄형 네트워크와의 통신을 위해서는 IP 어드레스 번역 등의 절차가 필요로 되는데, 이러한 문제를 NAT/방화벽 횡단(Traversal) 문제라고 일컫는다. 여기서 NAT는 가입자단에 설치되어 공인 IP를 갖는 트래픽을 전송받아 그 전송받은 트래픽의 IP 어드레스를 해당 네트워크 내의 단말의 사설 IP로 변환하고 트래픽을 해당 단말로 전송하는 기능을 수행하는 네트워크 어드레스 변환기를 말한다. 방화벽은 인증 받지 못한 소스에 의한 엑세스로부터 네트워크를 보호하기 위한 것으로 소스 주소, 목적지 주소 및 트래픽 타입의 정보를 이용하여 공중망으로부터 인입되는 트래픽이 신뢰성을 갖는 장비로부터 발생된 것인 경우에 한해 그 트래픽의 인입을 허락한다.In general, the network structure can be largely divided into a closed network and an open network based on the IP allocation method. An open network is a public IP, and all local IPs are public IPs, and there is no restriction in performing communication services with other external shared IPs. A closed network is a network structure with network address translation (NAT) or firewall equipment. In such a closed network, a large number of private IPs use a small amount of public IPs to form a network with the outside. Therefore, a procedure such as IP address translation is required for communication with a closed network. This problem is referred to as a NAT / traversal problem. Here, NAT refers to a network address translator installed at a subscriber end to receive traffic having a public IP, converting the IP address of the received traffic into a private IP of a terminal in the corresponding network, and transmitting the traffic to the corresponding terminal. . A firewall is designed to protect the network from access by unauthorized sources and to ensure that traffic coming from the public network using information of source address, destination address, and traffic type is generated from a trusted device. Allow entry.
한편, 최근에는 세션 연결을 위한 프로토콜로서 H.323을 대체하여 확장성과 융통성이 뛰어난 SIP 프로토콜(Session Initiation Protocol)이 널리 이용되고 있는데, 이러한 SIP 프로토콜은 UDP/TCP/IP 계층 상에 존재하며, 요구/응답 방식에 따른 클라이언트/서버 프로토콜로서, 통신 상대방을 초대(invite)함으로써 세션을 시작할 수 있게 한다. 이러한 SIP 프로토콜에 의하여 양측 사용자 단말 간에 통신이 이루어질 경우 애플리케이션 개발자는 양측 사용자 단말 중 어느 쪽이 클라이언트로 기능하고 어느 쪽이 서버로서 기능할 것인지에 관하여 일관성을 가지고 구현할 필요가 있다.Recently, the SIP protocol (Session Initiation Protocol), which has excellent scalability and flexibility in place of H.323 as a protocol for session connection, is widely used. The SIP protocol exists on the UDP / TCP / IP layer. A client / server protocol based on a response method, which allows a session to be started by inviting a communication counterpart. When the communication between the two user terminals is made by the SIP protocol, the application developer needs to consistently implement which of the two user terminals functions as a client and which functions as a server.
근래에는 공인 IP 부족 및 보안 문제 등에 따라 NAT/방화벽 장비를 통한 사설 IP가 많이 사용되고 있다. 이러한 NAT/방화벽 장비와 연결된 사용자 단말에 대한 SIP 기반 통신 서비스의 경우에는 그러한 사용자 단말로부터 외부로의 접속은 자유로이 허용되는 반면 외부로부터 그러한 사용자 단말로의 인입 접속에 많은 제약이 따라, 통화 서비스 제공에 있어서 번잡한 절차가 수반된다. 특히, 일측 또는 양측 사용자 단말이 폐쇄형 네트워크에 속한 경우에는 이들 간의 클라이언트/서버 모델의 일관성 유지, 세션 연결 신호 정보의 교환, 세션 포트 정보의 교환 등과 관련한 많은 번잡한 절차가 수반되며, 따라서 개방형 네트워크 간의 SIP 기반 통신과는 달리 통신 서비스 제공에 있어서 많은 비용과 시간이 소모되어야 하는 문제가 있다.Recently, private IP through NAT / firewall equipment is widely used due to lack of public IP and security problems. In the case of a SIP-based communication service for a user terminal connected to such a NAT / firewall equipment, access from such a user terminal to the outside is freely allowed, while there are many restrictions on incoming access from the outside to such a user terminal. This entails cumbersome procedures. In particular, if one or both user terminals belong to a closed network, many complicated procedures are involved in maintaining the consistency of the client / server model between them, exchanging session connection signaling information, exchanging session port information, and so on. Unlike the SIP-based communication, there is a problem that a large cost and time must be consumed in providing a communication service.
따라서, 사용자 단말이 개방형 네트워크에 속한 것이거나 이와 달리 방화벽(Firewall) 또는 네트워크 어드레스 변환기(NAT) 등이 설치된 폐쇄형 네트워크에 속한 것이거나 무관하게 애플리케이션 계층의 입장에서 간소한 절차에 의해 SIP 프로토콜 기반의 통신 세션의 형성을 가능하게 하는 기술이 필요하다.Therefore, regardless of whether the user terminal belongs to an open network or otherwise belongs to a closed network with a firewall or a network address translator (NAT) installed, the SIP protocol-based method is simplified by the application layer. There is a need for a technique that enables the formation of a communication session.
본 발명은 상기한 종래 기술의 사정을 감안하여 이루어진 것으로, 개방형 네트워크 또는 폐쇄형 네트워크 등의 네트워크 구조에 무관하게, 애플리케이션으로 하여금 게이트웨이 서버를 통해 접속하고자 하는 단말에 대한 접속 정보, 예컨대 IP 어드레스 및 포트 번호 등을 얻어, 용이하게 TCP 세션을 형성하도록 한 SIP 기반 통신 서비스 제공 시스템 및 그 방법을 제공하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above-described prior art, and regardless of a network structure such as an open network or a closed network, connection information, for example, an IP address and a port, for a terminal to be accessed by an application through a gateway server. It is an object of the present invention to provide a SIP-based communication service providing system and method for easily obtaining a number and the like and establishing a TCP session.
본 발명의 일 실시예에 따르면, 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원하는 SIP 기반 사용자 단말기와 게이트웨이 서버를 포함하는 SIP 기반 통신 서비스 제공시스템이 제공된다. 게이트웨이 서버는 사용자 단말기의 SIP 어드레스 및 URI 어드레스를 등록하는 레지스터 서버, 레지스터 서버의 등록 리스트를 참조하여 사용자 단말기 간에 통신 세션을 형성하는 프락시 서버, 그리고 통신에 관여하는 양측 사용자 단말기가 모두 폐쇄형 네트워크 환경에 속한 경우, 세션 중계(Session Relay)를 수행하는 릴레이 서버를 포함한다.According to an embodiment of the present invention, there is provided a SIP-based communication service providing system including a SIP-based user terminal and a gateway server supporting an application layer and a presentation layer protocol. The gateway server includes a register server that registers the SIP address and URI address of the user terminal, a proxy server that forms a communication session between the user terminals by referring to the register list of the register server, and a closed network environment for both user terminals involved in the communication. If belonging to, includes a relay server that performs a session relay (Session Relay).
본 발명의 또 다른 실시예에 의하면, 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원하는 SIP 기반의 제1 및 제2 사용자 간에 TCP 세션 연결을 위하여, 세션 릴레이 또는 시그널링 중계를 수행하는 게이트웨이 서버에 의한 SIP 기 반의 통신 서비스 제공방법이 제공된다. 이러한 방법에 의하면, 게이트웨이 서버는 제1 사용자 단말기의 애플리케이션 계층으로부터 전송된 INVITE 메시지 및 제2 사용자 단말기의 URI 정보를 수신하고, 제1 사용자 단말기로부터 전송된 상기 제2 사용자 단말기의 URI 정보에 의해 미리 등록된 제2 사용자 단말기의 URI를 검색한다. 그런 다음, INVITE 정보, 제1 및 제2 사용자 단말기가 속한 망 환경에 관한 정보, 그리고 게이트웨이 서버의 IP 및 포트 정보를 상기 제2 사용자 단말기로 전송한다. 제1 및 제2 사용자 단말기가 속한 망 환경이 양자 모두 폐쇄형 네트워크 환경인 경우라면 게이트웨이 서버 내의 TCP 세션 릴레이를 통해 각각 게이트웨이에 접속한 제1 및 제2 사용자 단말기 간의 시그널링 중계를 수행한다.According to another embodiment of the present invention, a SIP device by a gateway server that performs session relay or signaling relay for TCP session connection between SIP-based first and second users supporting an application layer and a presentation layer protocol. A half communication service providing method is provided. According to this method, the gateway server receives the INVITE message transmitted from the application layer of the first user terminal and the URI information of the second user terminal, and in advance by the URI information of the second user terminal transmitted from the first user terminal. Retrieve the URI of the registered second user terminal. Then, the INVITE information, the information about the network environment to which the first and second user terminals belong, and the IP and port information of the gateway server are transmitted to the second user terminal. If both network environments to which the first and second user terminals belong are closed network environments, signaling relay is performed between the first and second user terminals connected to the gateway through a TCP session relay in the gateway server, respectively.
이하, 본 발명의 다양한 실시예들에 대해 도면을 참조하여 상세하게 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 개략적으로 도시한 모식도이다.1 is a schematic diagram showing a SIP-based communication service providing system according to an embodiment.
도시된 바에 의하면, SIP 기반 통신 서비스 제공 시스템(100)은 SIP 기반의 게이트웨이 서버(이하, 게이트웨이 서버로 칭함)(2)의 서버측과, 상호 세션 연결을 시도하고자 하는 사용자 단말(10) 및 사용자 단말(16)의 각 클라이언트측으로 이루어진다. 사용자 단말(10, 16)은 각각 OSI 7 레이어, 특히 사용자의 애플리케이션의 세부 기능을 다루는 애플리케이션 계층(12, 18)과 시그널 인코딩/디코딩 및 암호화를 통해 애플리케이션 계층에서 필요한 정보를 송수신하는 SIP 프로토콜의 프 리젠테이션 계층(14, 20)을 포함한다. 게이트웨이 서버(2)는 사용자 단말(10, 16)에서의 SIP 프리젠테이션 계층(14, 20)과 동일한 역할을 수행하는 프리젠테이션 계층(도시되지 않음), 이 프리젠테이션 계층에서 처리한 정보를 이용해 각 애플리케이션 계층(12, 18)의 IP 주소 등에 관한 등록을 받아주는 레지스터 서버(4), 애플리케이션 계층(12, 18) 간의 시그널링을 프록싱해주는 프록시 서버(6), 그리고 Double NAT 환경에서 애플리케이션 간의 세션 중계(Session Relay)를 수행하는 릴레이 서버(8)를 포함한다.As shown, the SIP-based communication
이러한 SIP 기반 통신 서비스 제공 시스템(100)에서는, 각 사용자 단말(10, 16)이 속한 네트워크의 구조가 개방형인지 폐쇄형인지 무관하게, 각 애플리케이션 계층(12, 18)이 게이트웨이 서버(2)를 통하여, 접속을 위한 IP 주소 및 포트 번호 등의 정보를 얻어 통신 세션을 형성하도록 한다. 특히, SIP 기반 통신 서비스 제공 시스템(100)에 의하면, 양측 사용자 단말(10, 16) 중 어느 한쪽 또는 양쪽이 폐쇄형 네트워크에 속한 환경에 있더라도, 애플리케이션 계층의 입장에서 그러한 네트워크 환경에 따른 클라이언트/서버 모델의 구성을 고려할 필요없이, 세션 연결을 요청한 측의 사용자 단말이 클라이언트로 기능하는 것을 전제로 하여 개발을 수행할 수 있도록 함으로써 개발자 부담을 경감시켜줄 수 있다.In the SIP-based communication
게이트웨이 서버(2)의 내부의 각 구성 요소를 살펴보면, 레지스터 서버(4)에는 각 사용자 단말(10, 16)의 애플리케이션 계층(12, 18)에 관한 정보가 등록되고, 프락시 서버(6)는 SIP 신호 전송을 중계하는 역할을 한다. 예컨대, 게이트웨이 서버(2)가 사용자 단말(10)로부터 사용자 단말(16)에 대한 INVITE 신호를 수신한 경우, 프락시 서버(6)는 레지스터 서버(4)의 등록 리스트를 참조함으로써 사용자 단말(16)의 애플리케이션 계층(18)이 등록되어 있는지 여부를 체크하며, 이를 통해 사용자 단말(16)의 IP 어드레스 및 그 사용자 단말(16)이 속한 통신망이 폐쇄형 네트워크인지 여부를 확인할 수 있다. 그런 다음, 프락시 서버(6)는 해당 IP 어드레스를 이용하여 사용자 단말(16)로 INVITE 신호를 전달하는데, 이때 게이트웨이 서버(2)의 IP 어드레스 및 이용되는 포트 번호를 함께 전달한다. 또한, 프락시 서버(6)는 사용자 단말(16)로부터의 정보를 사용자 단말(10)로 전달하는 기능을 수행할 수 있으며, 이로써 양측 단말 간에 통신 세션이 형성되도록 할 수 있다. 게이트웨이 서버(2)의 릴레이 서버(8)는 양측 사용자 단말(10, 16)이 모두 폐쇄형 네트워크에 속한 경우 각 사용자 단말 간의 세션 릴레이 기능을 수행하여 애플리케이션 간에 정보를 릴레이할 수 있다.Looking at each component inside the
레지스터 서버(4) 및 프락시 서버(6)는 통신 세션에 관여하는 양측 사용자 단말(10, 16)이 각각 개방형 네트워크 환경에 속한 것인지 폐쇄형 네트워크 환경에 속한 것인지를 판정하고, 릴레이 서버(8)의 중재 하에 세션을 형성하도록 할 것인지 양자간 직접 세션을 형성하도록 할 것인지를 판정한다. 따라서, 레지스터 서버(4)에의 등록 사항에 따라 이러한 판정이 자동으로 이루어지므로, 통신 접속을 원할 때마다 사용자가 해당 단말의 네트워크 환경에 관한 지시를 제공할 필요가 없다.The register server 4 and the
이하에서는, 첨부도면을 참조하여 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템의 동작을 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail the operation of the SIP-based communication service providing system according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 통 해, 세션 형성을 요청하는 사용자 단말 A의 네트워크 구조에 무관하게 상대방 사용자 단말 B가 개방형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다. 도 2에서, UCC_A란 사용자 단말 A의 인터페이스 계층(즉, 애플리케이션 계층)를 나타낸 것이고 PTC DLL_A는 UCC_A를 위한 SIP 프로토콜 계층(즉, 프리젠테이션 계층)이며, UCC_B란 사용자 단말 B의 인터페이스 계층이고 PTC DLL_B는 UCC_B를 위한 SIP 프로토콜 계층이다.2 illustrates a signal flow when a counterpart user terminal B exists in an open network regardless of a network structure of a user terminal A requesting to establish a session through a SIP-based communication service providing system according to an embodiment of the present invention. Signal flow chart. In Figure 2, UCC_A represents the interface layer (i.e., application layer) of user terminal A and PTC DLL_A is the SIP protocol layer (i.e., presentation layer) for UCC_A, UCC_B is the interface layer of user terminal B and PTC DLL_B Is the SIP protocol layer for UCC_B.
구체적 동작 흐름을 살펴보면, 먼저 UCC_A(22)는 UCC_B(28)와 TCP 세션을 형성하고 이를 통해 IM 메시지(Instant message)를 송수신하기 위하여 함수 호출을 통해 UCC_A(22)의 PTC_DLL_A(24)에게 필요한 파라미터를 전달한다(202). 즉, 사용자 단말 A의 윈도우 기반 애플리케이션 계층에 구성된 UCC_A(22)는 하부의 프리젠테이션 계층의 SIP 기반 PTC_DLL_A(24)로 TCP 세션용 포트 할당 정보 등을 전송한다.In detail, the
그런 다음, UCC_A(22)의 하부 계층인 PTC_DLL_A(24)은 요청받은 IM 메시지 송수신을 위한 TCP 세션을 열기 위해, SIP INVITE 메소드에 상대방 사용자 단말에 관한 URI 정보(예컨대, UCC_B_KEY@GW_IP)를 탑재하여 게이트웨이 서버(2)로 전송한다(204). 사용자 단말 A의 PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에는 해당 사용자 단말 A의 IM 세션을 위해 열어둘 IP 어드레스 및 포트 정보와 서버 데몬 포트(Server Deamon Port) 정보 등이 포함된다. 또한, 그 INVITE 메시지에는 상대방 사용자 단말 B의 URI 정보가 탑재되어 전송된다. PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에 서버 데몬 포트 정보가 포함되는 것은 현 시점에서 사용자 단말 A의 PTC_DLL_A(24)가 TCP 접속을 위하여 서버 데몬을 실행해야 하는지 여부를 알지 못하기 때문이다. PTC_DLL_A(24)로부터 INVITE 메시지를 전송받은 게이트웨이 서버(2)는 자신의 내부에 구성된 레지스터 서버(4)의 자료구조(이후 reg_list)에서 UCC_A(22)가 요청한 UCC_B(28)가 등록되어 있는지를 서치하여 확인하고, 등록되어 있는 경우라면 UCC_B(28)의 URI를 알아낸 후 SIP INVITE 메시지에 게이트웨이 서버(2) 자신의 IP 어드레스와 릴레이 포트 정보를 추가하여 UCC_B(28)의 PTC_DLL_B(26)로 전송한다(206). 이때, UCC_B(28)의 PTC_DLL_B(26)로 전송되는 INVITE 메시지에는 UCC_A(22)의 서버 데몬 포트 정보가 포함되어 있다.Then,
게이트웨이 서버(2)는 내부의 레지스터 서버(4)의 등록 리스트(reg_list)를 통해 UCC_A(22)와 UCC_B(28)가 어떤 네트워크 환경에 놓여 있는지(즉, 개방형인지 폐쇄형인지)를 인지할 수 있게 된다. 예컨대, INVITE 신호를 전달받을 UCC_B(28)의 공중 IP와 사설 IP가 연계된 어드레스 변경(Address Translation) 정보가 상기 레지스터 서버(4)에 등록되어 있는 경우라면, 게이트웨이 서버(2)는 UCC_B(28)가 NAT 환경에 있음을 인지할 수 있을 것이다.The
도 2에 도시된 바와 같이, UCC_A(22)와 UCC_B(28)가 모두 NAT 환경이 아닌 개방형 네트워크에 놓인 경우. 게이트웨이 서버(2)는 UCC_B(28)로 SIP INVITE 메시지(UCC_A의 IP 어드레스 및 포트 정보, Server Demon Port)와 양측 사용자 단말(22, 28)이 모두 개방형 네트워크에 속한 것이라는 정보(예컨대, SDP(A: 개방형, B: 개방형)를 전송하고, 그 내부의 릴레이 서버(8)를 통한 TCP 릴레이 세션은 준비하지 않은 채 시그널링의 중계만을 수행한다.As shown in FIG. 2, when both UCC_A 22 and
게이트웨이 서버(2)를 통해 전송된 SIP INVITE 메시지가 PTC_DLL_B(26)로 전송되면, 그 PTC_DLL_B(26)는 즉시 게이트웨이 서버(2)를 경유하여 UCC_A(22)의 PTC_DLL_A(24)로 180 링잉(Ringing) 응답 신호를 전송하고(208), UCC_B(28)로 해당 SIP INVITE 메시지를 전송한다(210). 이때, 180 Ringing 메시지에는 UCC_B(28)의 IP 어드레스 및 포트 정보가 포함된다. When a SIP INVITE message sent through the
UCC_B(28)는 그 SIP INVITE 메시지와 함꼐 전송된 SDP 정보를 통해 양 사용자의 단말(22, 28)이 개방형 네트워크에 존재함을 알 수 있다. 그러므로, UCC_A(22)의 서버 데몬에 TCP 접속을 연결하기 위한 별도의 클라이언트 데몬을 실행시킬 필요가 없음을 인지하게 된다.The
또한, UCC_A(22)의 PTC_DLL_A(24)는 180 Ringing 메시지에 대한 임시 응답 신호인 PRACK(PRE-ACK) 신호를 상기 게이트웨이 서버(2)를 통해 UCC_B(28)의 PTC_DLL_B(26)로 전송하고(212), 그 UCC_B(28)의 PTC_DLL_B(26)는 UCC_A(22)의 PTC_DLL_A(24)로 PRACK 신호에 대한 응답 메시지인 200 OK 메시지를 전송한다(214). 그 상태에서, UCC_B(28)가 IM 요청을 받아들이면, UCC_B(28)의 PTC_DLL_B(26)는 게이트웨이 서버(2)를 경유하여 PTC_DLL_A(24)로 INVITE 메시지에 대한 200 OK 메시지를 전송한다(216). 그리고, UCC_B(28)는 IM을 위한 TCP 서버 소켓을 준비한다.In addition, the
사용자 단말 A의 PTC_DLL_A(24)는 UCC_A(22)로 UCC_B(28)의 IP 어드레스와 Listening 포트 정보를 전달하는 한편(218), 게이트웨이 서버(2)를 경유하여 PTC_DLL_B(26)로 ACK 메시지를 전송한다(220). 그런 다음, UCC_A(22)는 UCC_B(28) 의 IP 어드레스 및 TCP Listening 포트로 TCP 접속을 행한다. 이를 통해, UCC_A(22)와 UCC_B(28)간의 IM 송수신을 위한 TCP 세션이 열리게 된다. 이때, 세션 형성을 요청한 UCC_A(22)가 TCP 세션의 클라이언트로서 동작하고 세션 요청을 수신한 UCC_B(28)가 TCP 세션의 서버로서 동작하게 된다.
도 3은 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 통해, 세션 형성을 요청하는 사용자 단말 A가 개방형 네트워크에 존재하고 상대방 사용자 단말 B가 폐쇄형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다.3 illustrates a signal flow when a user terminal A requesting to establish a session exists in an open network and a counterpart user terminal B exists in a closed network through a SIP-based communication service providing system according to an embodiment of the present invention. Signal flow chart.
먼저, UCC_A(22)는 UCC_B(28)와 TCP 세션을 형성하고 이를 통해 IM 메시지(Instant message)를 송수신하기 위하여 함수 호출을 통해 UCC_A(22)의 PTC_DLL_A(24)에게 필요한 파라미터를 전달한다(302). 즉, 사용자 단말 A의 윈도우 기반 애플리케이션 계층에 구성된 UCC_A(22)는 하부의 프리젠테이션 계층의 SIP 기반 PTC_DLL_A(24)로 TCP 세션용 포트 할당 정보 등을 전송한다.First, the
그러면, UCC_A(22)의 하부 계층인 PTC_DLL_A(24)는 요청받은 IM 메시지 송수신을 위한 TCP 세션을 열기 위해, SIP INVITE 메소드에 상대방 사용자 단말에 관한 URI 정보(예컨대, UCC_B_KEY@GW_IP)를 탑재하여 게이트웨이 서버(2)로 전송한다(304). 사용자 단말 A의 PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에는 해당 사용자 단말 A의 IM 세션을 위해 열어둘 IP 어드레스 및 포트정보와 UCC_A(22)를 위한 서버 데몬 포트(Server Demon Port) 정보가 포함된다. 또한, 그 INVITE 메시지에 상대방인 사용자 단말 B의 URI 정보가 탑재되어 전 송된다. PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에 서버 데몬 포트 정보가 포함되는 것은 현 시점에서 사용자 단말 A의 PTC_DLL_A(24)가 TCP 접속을 위하여 서버 데몬을 실행할 것인지 여부를 알지 못하기 때문이다.Then,
PTC_DLL_A(24)로부터 INVITE 메시지를 전송받은 게이트웨이 서버(2)는 자신의 내부에 구성된 레지스터 서버(4)의 자료구조(이후 reg_list)에서 UCC_A(22)가 요청한 UCC_B(28)가 등록되어 있는지를 서치하여 확인하고, 등록되어 있는 경우라면 UCC_B(28)의 URI를 알아낸 후 SIP INVITE 메시지에 게이트웨이 서버(2) 자신의 IP와 릴레이 포트 정보를 추가하여 UCC_B(28)의 PTC_DLL_B(26)로 전송한다(306). 이때, UCC_B(28)의 PTC_DLL_B(26)로 전송되는 INVITE 메시지에는 UCC_A(22)의 서버 데몬 포트가 포함된다.The
이때, 게이트웨이 서버(2)는 내부의 레지스터 서버(4)의 등록 리스트(reg_list)를 통해 UCC_A(22)와 UCC_B(28)가 어떤 네트워크 환경에 놓여 있는지(개방형인지 또는 폐쇄형인지)를 인지할 수 있게 된다. 도 3에 도시된 바와 같이, UCC_A(22)가 NAT 환경에 있지 않은 개방형 네트워크에 놓인 것이고 UCC_B(28)는 NAT 환경의 폐쇄형 네트워크에 놓인 것이라면, 게이트웨이 서버(2)는 UCC_B(28)로 SIP INVITE 메시지와 함께 양측 네트워크의 구성에 관한 정보, 예컨대 SDP(A: 개방형, B: 폐쇄형)을 전송하고, 그 내부의 릴레이 서버(8)를 통한 TCP 릴레이 세션을 준비하지 않은 채 시그널링의 중계만을 수행한다.At this time, the
게이트웨이 서버(2)를 통해 전송된 SIP INVITE 메시지가 PTC_DLL_B(26)로 전송되면, 그 PTC_DLL_B(26)는 즉시 게이트웨이 서버(2)를 경유하여 180 링잉(Ringing) 응답 신호를 UCC_A(22)의 PTC_DLL_A(24)로 전송하고(308), UCC_B(28)로 해당 SIP INVITE 메시지를 전송한다(310). 이때, 180 Ringing 메시지에는 UCC_B(28)의 IP 어드레스 및 포트 정보가 포함된다.When the SIP INVITE message sent through the
UCC_B(28)는 그 SIP INVITE 메시지와 함께 전송된 SDP 정보를 통해 상대방인 사용자 단말 A가 개방형 네트워크에 존재하고, 자신의 단말이 폐쇄형 네트워크에 존재함을 알 수 있다. 이와 같이, 요청을 수신한 사용자 단말 B가 폐쇄형 네트워크에 놓여 있는 경우라면, 그러한 사용자 단말 B로부터의 외부 접속은 자유로운 반면 외부로부터 사용자 단말 B로의 인입 접속은 제약이 따르게 된다. 따라서, 이러한 경우의 TCP 접속은, 도 2에 도시된 경우와 같이 사용자 단말 A 및 B가 모두 개방형 네트워크에 존재하는 경우에 있어서 단순히 요청을 송신한 사용자 단말 A가 클라이언트로서 기능하고 요청을 수신한 사용자 단말 B가 서버로서 기능하여 사용자 단말 A의 클라이언트 TCP 클라이언트(30)와 사용자 단말 B의 클라이언트 TCP 서버(40)가 직접 접속되는 것과는 달리, 사용자 단말 A의 서버 데몬(32)을 실행시켜서 클라이언트 세션(클라이언트 TCP 클라이언트(30))과 연결되어 동작하도록 하는 한편, 사용자 단말 B의 IN 클라이언트 데몬(42) 및 OUT 클라이언트 데몬(44)을 실행시켜 사용자 단말 B의 서버 세션(클라이언트 TCP 서버(40))과 연결되어 동작하도록 함으로써 이루어진다. 즉, 사용자 단말 B의 클라이언트 TCP 서버(40)는 IN 클라이언트 데몬(42)에 접속되고 IN 클라이언트 데몬(42)은 다시 OUT 클라이언트 데몬(44)에 접속된다. 또한, 사용자 단말 B의 OUT 클라이언트 데몬(44)은 사용자 단말 A의 서버 데몬(32)과 접속하여 TCP 접속을 형성한다. 사용자 단말 A의 서버 데몬(32)은 클라이언트 TCP 클라이언트(30)와 연결되어 동작한다. 요컨대, 사용자 단말 A의 UCC_A(22)의 입장에서는 TCP 세션 형성에 있어서 스스로 클라이언트로서 동작하고 상대방 사용자 단말 B가 서버로서 동작하는 것으로 볼 수 있지만, 내부적으로는 사용자 단말 A의 서버 데몬(32)과 사용자 단말 B의 각 클라이언트 데몬들(42, 44)을 통하여 통신 접속이 이루어질 수 있는 것이다.The
따라서, 도 3에서는, SDP 정보를 통해 상대방인 사용자 단말 A가 개방형 네트워크에 존재하고, 자신의 단말이 폐쇄형 네트워크에 존재함을 인지하게 된 UCC_B(28)는 TCP 세션 접속을 위한 클라이언트 데몬들을 준비시킨다.Accordingly, in FIG. 3, the
UCC_A(22)의 PTC_DLL_A(24)는 180 Ringing 메시지에 대한 임시 응답 신호인 PRACK(PRE-ACK) 신호를 게이트웨이 서버(2)를 경유하여 UCC_B(28)의 PTC_DLL_B(26)로 전송한다(312). 그러면, UCC_B(28)의 PTC_DLL_B(26)는 클라이언트 데몬들(42, 44)을 실행시키고, INVITE 메시지에 포함된 UCC_A(22)의 서버 데몬 포트 정보를 이용하여 UCC_A(22)의 서버 데몬(32)에 TCP 접속을 형성한다(314). 이때는, UCC_B(28)의 클라이언트 TCP 서버(40)가 IN 클라이언트 데몬(42) 및 OUT 클라이언트 데몬(44)을 통해 UCC_A(22)의 서버 데몬(32)에 TCP 접속만을 행하게 되며, 아직 UCC_A(22)의 클라이언트 TCP 클라이언트(30)와는 TCP 세션 연결이 이루어지지는 않은 상태이다.The
그리고, UCC_B(28)의 PTC_DLL_B(26)는 게이트웨이 서버(2)를 경유하여 UCC_A(22)의 PTC_DLL_A(24)로 PRACK 신호에 대한 응답 메시지인 200 OK 메시지를 전송한다(316). 사용자 단말 A의 PTC_DLL_A(24)는 UCC_A(22)에게 TCP 세션 형성을 위해 필요한 정보를 전달한다(318). 그러면, UCC_A(22)의 클라이언트 TCP 클라이언트(30)가 비로소 서버 데몬(32)과 접속된다. UCC_B(28)의 클라이언트 TCP 서버(40)는 이미 UCC_A(22)의 서버 데몬(32)과 접속된 상태이므로 결과적으로 UCC_A(22)의 클라이언트 TCP 클라이언트(30)와 UCC_B(28)의 클라이언트 TCP 서버(40)의 TCP 접속이 이루어지게 된다. 이를 통해, UCC_A(22)와 UCC_B(28)간의 IM 송수신을 위한 TCP 세션이 형성된다.The
전술한 과정에 있어서, 게이트웨이 서버(2)는 릴레이 서버(8)의 릴레이를 수행하지 않고, 단지 포트를 열어 시그널링의 중계만을 행하게 되며, TCP 접속은 UCC_A(22)와 UCC_B(28)간에 직접 수행된다.In the above-described process, the
도 4는 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 통해, 세션 형성을 요청하는 사용자 단말 A 및 상대방 사용자 단말 B가 폐쇄형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다. 통상, 폐쇄형 네트워크에 속한 사용자 단말 간에는 TCP 세션을 직접 열지 않고, 게이트웨이에 의한 TCP 세션 중계를 통해 아래와 같은 과정에 따라 이루어진다.4 is a signal flow diagram illustrating a signal flow when a user terminal A and a counterpart user terminal B requesting to establish a session exist in a closed network through a SIP-based communication service providing system according to an embodiment of the present invention. In general, the user terminal belonging to the closed network does not directly open a TCP session, but through a TCP session relay by a gateway according to the following procedure.
먼저, UCC_A(22)는 UCC_B(28)와 TCP 세션을 형성하고 이를 통해 IM 메시지(Instant message)를 송수신하기 위하여 함수 호출을 통해 UCC_A(22)의 PTC_DLL_A(24)에게 필요한 파라미터를 함수 호출을 통해 전달한다(402). 그러면, UCC_A(22)의 하부 계층인 PTC_DLL_A(24)은 요청받은 IM 메시지 송수신을 위한 TCP 세션을 열기 위해, SIP INVITE 메소드에 상대방 사용자 단말에 관한 URI 정보(예컨대, UCC_B_KEY@GW_IP)를 탑재하여 게이트웨이 서버(2)로 전송한다(404). 사용자 단말 A의 PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에는 해당 사용자 단말 A의 IM 세션을 위해 열어둘 IP 어드레스 및 포트 정보 및 UCC_A(22)를 위한 서버 데몬 포트 정보가 포함된다. 또한, 그 INVITE 메시지에 상 대방 사용자 단말 B의 URI 정보가 탑재되어 전송된다. 이때, PTC_DLL_A(24)로부터 게이트웨이 서버(2)로 전송되는 INVITE 메시지에 서버 데몬 포트 정보가 포함되는 것은 현 시점에서 사용자 단말 A의 PTC_DLL_A(24)가 TCP 커넥션을 위하여 서버 데몬을 실행해야 할 것인지 여부를 알지 못하기 때문이다.First, the
PTC_DLL_A(24)로부터 INVITE 메시지를 전송받은 게이트웨이 서버(2)는 자신의 내부에 구성된 레지스터 서버(4)의 자료구조(이후 reg_list)에서 UCC_A(22)가 요청한 UCC_B(28)가 등록되어 있는지를 서치하여 확인하고, 등록되어 있는 경우라면 UCC_B(28)의 URI를 알아낸 후 SIP INVITE 메시지에 게이트웨이 서버(2) 자신의 IP 어드레스 및 릴레이 포트 정보를 추가하여 UCC_B(28)의 PTC_DLL_B(26)로 전송한다(406).The
게이트웨이 서버(2)는 내부의 레지스터 서버(4)의 등록 리스트(reg_list)를 통해 UCC_A(22)와 UCC_B(28)가 어떤 네트워크 환경에 놓여 있는지(개방형인지 폐쇄형인지)를 인지할 수 있게 된다. 도 4에 도시된 경우와 같이, UCC_A(22) 및 UCC_B(28)가 모두 NAT 환경의 폐쇄형 네트워크에 놓인 것인 경우에도 게이트웨이 서버(2)는 UCC_B(28)로 SIP INVITE 메시지와 함께 양측 네트워크의 구성에 관한 정보, 예컨대 SDP(A: 폐쇄형, B: 폐쇄형) 정보를 전송하고, 그 내부의 릴레이 서버(8)를 통해 Listening 포트를 열어 TCP 릴레이 세션을 준비한다.The
게이트웨이 서버(2)를 통해 전송된 SIP INVITE 메시지가 PTC_DLL_B(26)로 전송되면, 그 PTC_DLL_B(26)는 즉시 게이트웨이 서버(2)를 경유하여 180 링잉(Ringing) 응답 신호를 UCC_A(22)의 PTC_DLL_A(24)로 전송하고(408), UCC_B(28)로 해당 SIP INVITE 메시지를 전송한다(410). 180 링잉 메시지에는 UCC_B(28)의 IP 어드레스 및 포트 정보가 포함된다. 게이트웨이 서버(2)는 UCC_A(22)의 PTC_DLL_A(24)로 해당 180 링잉 메시지 및 SDP 메시지(SDP(A: 폐쇄형, B: 폐쇄형))를 전달한다. 이로써 UCC_A(22)의 PTC_DLL_A(24)은 INVITE 신호에 대한 수락 신호가 인가될 경우 상기 게이트웨이 서버(2)의 릴레이 포트에 직접 접속하여야 한다는 점을 인지하게 된다.When the SIP INVITE message sent through the
UCC_B(28)는 그 SIP INVITE 메시지와 함께 전송된 SDP 정보를 통해 상대방인 사용자 단말 A가 폐쇄형 네트워크에 존재하고, 자신의 사용자 단말 B도 폐쇄형 네트워크에 존재함을 알 수 있다. 이와 같이, 사용자 단말 A 및 B가 폐쇄형 네트워크에 존재하는 경우라면, 그러한 사용자 단말 A, B로부터의 외부 접속은 자유로운 반면 외부로부터 이들 사용자 단말 A, B로의 인입 접속은 제약이 따르게 된다. 따라서, 이러한 경우의 TCP 접속은, 도 2에 도시된 경우와 같이 사용자 단말 A 및 B가 모두 개방형 네트워크에 존재하는 경우에 있어서 단순히 요청을 송신한 사용자 단말 A가 클라이언트로서 기능하고 요청을 수신한 사용자 단말 B가 서버로서 기능하여 사용자 단말 A의 클라이언트 TCP 클라이언트(30)와 사용자 단말 B의 클라이언트 TCP 서버(40)가 직접 접속되는 것과는 달리, 사용자 단말 B의 IN 클라이언트 데몬(42) 및 OUT 클라이언트 데몬(44)을 실행시켜 사용자 단말 B의 서버 세션(클라이언트 TCP 서버(40))과 연결되어 동작하도록 함으로써 이루어진다. 사용자 단말 B의 클라이언트 TCP 서버(40)는 IN 클라이언트 데몬(42)에 접속되고 IN 클라이언트 데몬(42)는 다시 OUT 클라이언트 데몬(44)에 접속된다. 또한 사용자 단말 B의 OUT 클라이언트 데몬(44)은 게이트웨이 서버(2)의 릴레이 서버(8)에 대해 TCP 접속을 형성한다. 사용자 단말 A의 경우는 원래와 같이 클라이언트 TCP 클라이언트(30)에 의해 클라이언트로서 외부로 접속하되, 그러한 접속은 게이트웨이 서버(2)의 릴레이 서버(8)에 대해 이루어진다. 요컨대, 사용자 단말 A의 UCC_A(22)의 입장에서는 TCP 세션 형성에 있어서 스스로 클라이언트로서 동작하고 상대방 사용자 단말 B가 서버로서 동작하는 것으로 볼 수 있지만, 내부적으로는 게이트웨이 서버(2)의 릴레이 서버(8)의 릴레이에 의해 양측 사용자 단말의 통신 접속이 이루어질 수 있는 것이다.The
따라서, 도 4에서는, SDP 메시지에 의해 양측 사용자 단말이 모두 폐쇄형 네트워크에 존재한다는 점을 인지하게 된 UCC_A(22) 및 UCC_B(28)는 각각 게이트웨이 서버(2)에 구성된 릴레이 서버(8)의 Listening 포트로 접속한다.Therefore, in FIG. 4, the
구체적으로, UCC_A(22)의 PTC_DLL_A(24)는 180 링잉 메시지에 대한 임시 응답 신호인 PRACK(PRE-ACK) 신호를 게이트웨이 서버(2)를 경유하여 UCC_B(28)의 PTC_DLL_B(26)로 전송한다(412). 그러면, UCC_B(28)의 PTC_DLL_B(26)는 클라이언트 데몬들(42, 44)을 실행시켜, INVITE 메시지에 포함된 게이트웨이 서버(2)의 릴레이 서버(8)가 열어둔 IP 어드레스 및 포트로 접속한다(414).Specifically, the
UCC_B(28)의 PTC_DLL_B(26)는 게이트웨이 서버(2)의 릴레이 서버(8)를 경유하여 UCC_A(22)의 PTC_DLL_A(24)로 PRACK 신호에 대한 응답 메시지인 200 OK 메시지를 전송한다(416). 사용자 단말 A의 PTC_DLL_A(24)는 UCC_A(22)에게 TCP 세션 형성을 위해 필요한 정보를 전달한다(420). 그러면, UCC_A(22)의 클라이언트 TCP 클라이언트(30)가 게이트웨이 서버(2)의 릴레이 서버(8)로, 그 릴레이 서버(8)의 IP 어드레스 및 Listening 포트 번호를 이용해서, TCP 접속을 수행한다. 이를 통해, UCC_A(22)와 UCC_B(28) 간에 릴레이 서버(8)의 릴레이를 통하여 IM 메시지 송수신을 위한 TCP 세션이 형성된다.The
이를 통해, UCC_A(22)와 릴레이 서버(8)간, 릴레이 서버(8)와 UCC_B(28) 간에 TCP 세션이 열리게 되고, 게이트웨이 서버(2)의 릴레이 서버(8)는 어느 한쪽 방향에서 IM 데이터 메시지가 입력되면 반대편으로 중계하는 릴레이 역할을 수행하게 된다.As a result, a TCP session is opened between the UCC_A 22 and the
본 발명에 의하면, TCP 세션 형성을 원하는 사용자가 세션 형성의 요청시에 자신의 네트워크 환경에 관한 정보를 제공할 필요없이 게이트웨이 서버(2)의 프락시 서버(6) 및 레지스터 서버(4)에 의해 이미 등록된 정보를 통하여 통신 접속이 릴레이 서버(8)를 통해 이루어질 것인지 등이 판정되므로, 안정적 세션 형성에 도움이 될 수 있다. 특히, 피어-투-피어 간의 직접 세션 형성이 가능한 경우에는 불필요한 로드가 릴레이 서버(8)로 집중되는 것을 방지하여 서버의 효율적 운영이 가능하게 된다.According to the present invention, a user who wants to establish a TCP session is already provided by the
한편, 본 발명의 또 다른 실시예에 따르면, 각 애플리케이션 계층(12, 18)이 레지스터 서버(4)에 등록될 때, 사용자는 모든 통신 접속이 릴레이 서버(8)를 경유하여 이루어지도록 설정할 수 있다. 그러한 경우에는 해당 애플리케이션 계층에 의해 개시되는 모든 통신 접속이 릴레이 서버(8)를 경유해서 이루어진다. 이러한 실시예에 의하면, 직접 연결 시도시 발생할 수 있는 연결 실패의 경우, 예컨대 개인 PC의 방화벽 설정에 의해 직접 연결이 차단된 경우 등에 대비하여, 안정적 서비스를 받을 수 있다.On the other hand, according to another embodiment of the present invention, when each
본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 케리어 웨이브로 구체화되는 컴퓨터 데이터 신호 또는 케리어에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.While the invention and its various functional components have been described in particular embodiments, the invention may be implemented in hardware, software, firmware, middleware, or a combination thereof, and the system, subsystem, components or sub-configurations thereof. It should be understood that they can be used as elements. If implemented in software, the elements of the invention are instructions / code segments for performing the necessary tasks. The program or code segments may be stored in a machine readable medium, such as a processor readable medium, a computer program product, or via a transmission medium or communication link by a computer data signal embodied in a carrier wave or a signal modulated by a carrier. Can be sent. Machine readable media or processor readable media may include any medium that can store or transmit information in a form readable and executable by a machine (eg, processor, computer, etc.).
이상의 실시예들은 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.Although the above embodiments have been described with reference to the embodiments shown in the drawings for clarity, this is merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. I will understand. Therefore, the technical protection scope of the present invention will be defined by the appended claims.
본 명세서에 기술된 실시예들에 따르면, SIP 기반의 통신 서비스에 의해 TCP 세션을 형성하고자 하는 사용자 단말의 애플리케이션 계층은, 해당 사용자 단말과 상대방 사용자 단말이 속한 네트워크 환경이 개방형인지 폐쇄형인지에 무관하게, 스스로는 클라이언트 역할을 수행하고 상대방은 서버 역할을 수행하는 것으로 인식하면서, 안정적인 세션 형성을 이룰 수 있다. 또한, 이러한 구성에 의하면 애플리 케이션 개발자에게 보다 큰 융통성을 허용할 수 있는 장점이 있다.According to the embodiments described herein, the application layer of the user terminal to establish a TCP session by the SIP-based communication service, regardless of whether the network environment to which the user terminal and the counterpart user terminal belongs is open or closed. In other words, it is possible to achieve stable session formation while recognizing itself as acting as a client and acting as a server. In addition, this configuration has the advantage of allowing greater flexibility for application developers.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060133429A KR100872240B1 (en) | 2006-12-26 | 2006-12-26 | System and method for providing session initiation protocol-based communication service |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060133429A KR100872240B1 (en) | 2006-12-26 | 2006-12-26 | System and method for providing session initiation protocol-based communication service |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080059754A KR20080059754A (en) | 2008-07-01 |
KR100872240B1 true KR100872240B1 (en) | 2008-12-05 |
Family
ID=39812480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060133429A KR100872240B1 (en) | 2006-12-26 | 2006-12-26 | System and method for providing session initiation protocol-based communication service |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100872240B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101050576B1 (en) * | 2009-03-10 | 2011-07-19 | 주식회사 케이티 | Method and system for providing video conferencing service between mobile terminals of heterogeneous networks |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101396767B1 (en) * | 2009-12-24 | 2014-05-16 | 에릭슨엘지엔터프라이즈 주식회사 | Sip communication system and method |
KR101944744B1 (en) * | 2017-10-31 | 2019-02-01 | 삼성에스디에스 주식회사 | Message processing apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040058641A (en) * | 2002-12-27 | 2004-07-05 | 엘지전자 주식회사 | SIP service method in network with NAT |
KR20040083315A (en) * | 2003-03-21 | 2004-10-01 | 정찬익 | IP router supporting VoIP service and calling method using thereof |
KR20060018996A (en) * | 2004-08-26 | 2006-03-03 | 주식회사 나라비전 | The system and method for making tcp channel using sip service |
KR20070045545A (en) * | 2005-10-27 | 2007-05-02 | 주식회사 케이티프리텔 | Method for connecting with other network in wireless packet switching network system based on sip and the system thereof |
-
2006
- 2006-12-26 KR KR1020060133429A patent/KR100872240B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040058641A (en) * | 2002-12-27 | 2004-07-05 | 엘지전자 주식회사 | SIP service method in network with NAT |
KR20040083315A (en) * | 2003-03-21 | 2004-10-01 | 정찬익 | IP router supporting VoIP service and calling method using thereof |
KR20060018996A (en) * | 2004-08-26 | 2006-03-03 | 주식회사 나라비전 | The system and method for making tcp channel using sip service |
KR20070045545A (en) * | 2005-10-27 | 2007-05-02 | 주식회사 케이티프리텔 | Method for connecting with other network in wireless packet switching network system based on sip and the system thereof |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101050576B1 (en) * | 2009-03-10 | 2011-07-19 | 주식회사 케이티 | Method and system for providing video conferencing service between mobile terminals of heterogeneous networks |
Also Published As
Publication number | Publication date |
---|---|
KR20080059754A (en) | 2008-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10536490B2 (en) | Apparatus and method for communications involving a legacy device | |
US9497127B2 (en) | System and method for a reverse invitation in a hybrid peer-to-peer environment | |
CN104429037B8 (en) | Method, equipment and system for being connected to communication equipment | |
US9294519B2 (en) | File server device | |
CN1700680B (en) | Efficient message routing when using server pools | |
US9648052B2 (en) | Real-time communications gateway | |
US8868757B1 (en) | Two-way web service router gateway | |
KR20180015627A (en) | Set media path for live communication | |
US20050160165A1 (en) | Network management using short message service | |
US20070165579A1 (en) | Method and device for accessing a mobile server terminal of a first communication network by means of a client terminal of another communication network | |
KR20080026628A (en) | System, terminal, method, and computer program product or establishing a transport-level connection with a server located behind a network address translator and/or firewall | |
US20090265414A1 (en) | Mechanisms for transparently converting client-server software agents to peer-to-peer software agents | |
US6757734B1 (en) | Method of communication | |
US20070258111A1 (en) | Sip adapter and sip communication system | |
KR100872240B1 (en) | System and method for providing session initiation protocol-based communication service | |
JP2009296333A (en) | Communication control system and communication control method | |
JP4372075B2 (en) | Communication system, broadband router, information processing apparatus, and NAT traversal function realization method used therefor | |
KR100660123B1 (en) | Vpn server system and vpn terminal for a nat traversal | |
EP3044929B1 (en) | A mobile-device based proxy for browser-originated procedures | |
JP4728933B2 (en) | IP telephone communication system, IP telephone communication method, and program thereof | |
JP2015201758A (en) | Repeater, communication system, information processing method, and program | |
KR20100051907A (en) | Method of connecting session based sip in closed network | |
JP4355696B2 (en) | Router, packet forward method, and packet forward program | |
KR100628708B1 (en) | Method and Apparatus for auto call connecting | |
Liyanage | Addressing Devices in Mobile Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121015 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131016 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20141021 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20151020 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20191015 Year of fee payment: 12 |