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 PDF

Info

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
Application number
KR1020060133429A
Other languages
Korean (ko)
Other versions
KR20080059754A (en
Inventor
이정훈
Original Assignee
엘지노텔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지노텔 주식회사 filed Critical 엘지노텔 주식회사
Priority to KR1020060133429A priority Critical patent/KR100872240B1/en
Publication of KR20080059754A publication Critical patent/KR20080059754A/en
Application granted granted Critical
Publication of KR100872240B1 publication Critical patent/KR100872240B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/385Uniform 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 세션 연결을 이룰 수 있다.

Figure R1020060133429

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.

Figure R1020060133429

Description

SIP 기반 통신 서비스 제공시스템 및 그 방법{SYSTEM AND METHOD FOR PROVIDING SESSION INITIATION PROTOCOL-BASED COMMUNICATION SERVICE}SIP-based communication service providing system and method thereof {SYSTEM AND METHOD FOR PROVIDING SESSION INITIATION PROTOCOL-BASED COMMUNICATION SERVICE}

도 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 service providing system 100 is a server side of the SIP-based gateway server (hereinafter referred to as a gateway server) 2, the user terminal 10 and the user who wants to attempt a mutual session connection It consists of each client side of the terminal 16. The user terminals 10 and 16 each have a protocol of the SIP protocol for transmitting and receiving the necessary information at the application layer through signal encoding / decoding and encryption with the OSI 7 layer, in particular, the application layers 12 and 18 that cover the detailed functions of the user's application. And a representation layer 14, 20. The gateway server 2 uses a presentation layer (not shown) that performs the same role as the SIP presentation layers 14 and 20 in the user terminals 10 and 16, and uses the information processed in the presentation layer. Register server 4, which receives registrations for IP addresses of the application layers 12, 18, proxy server 6 for proxying signaling between application layers 12, 18, and session relaying between applications in a Double NAT environment ( And a relay server 8 that performs a session relay.

이러한 SIP 기반 통신 서비스 제공 시스템(100)에서는, 각 사용자 단말(10, 16)이 속한 네트워크의 구조가 개방형인지 폐쇄형인지 무관하게, 각 애플리케이션 계층(12, 18)이 게이트웨이 서버(2)를 통하여, 접속을 위한 IP 주소 및 포트 번호 등의 정보를 얻어 통신 세션을 형성하도록 한다. 특히, SIP 기반 통신 서비스 제공 시스템(100)에 의하면, 양측 사용자 단말(10, 16) 중 어느 한쪽 또는 양쪽이 폐쇄형 네트워크에 속한 환경에 있더라도, 애플리케이션 계층의 입장에서 그러한 네트워크 환경에 따른 클라이언트/서버 모델의 구성을 고려할 필요없이, 세션 연결을 요청한 측의 사용자 단말이 클라이언트로 기능하는 것을 전제로 하여 개발을 수행할 수 있도록 함으로써 개발자 부담을 경감시켜줄 수 있다.In the SIP-based communication service providing system 100, regardless of whether the structure of the network to which each user terminal 10, 16 belongs is open or closed, each application layer 12, 18 through the gateway server (2). It establishes a communication session by obtaining information such as IP address and port number for connection. In particular, according to the SIP-based communication service providing system 100, even if either or both of the user terminal (10, 16) of both sides in the environment belonging to the closed network, the client / server according to such network environment from the standpoint of the application layer It is possible to reduce the developer burden by allowing development to be performed on the premise that the user terminal of the requesting session connection functions as a client without considering the model configuration.

게이트웨이 서버(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 gateway server 2, the register server 4 registers information about the application layers 12, 18 of each user terminal 10, 16, and the proxy server 6 receives SIP. It relays signal transmission. For example, when the gateway server 2 receives the INVITE signal for the user terminal 16 from the user terminal 10, the proxy server 6 refers to the registration list of the register server 4 to thereby the user terminal 16. It is checked whether the application layer 18 is registered, and through this, it is possible to check whether the IP address of the user terminal 16 and the communication network to which the user terminal 16 belongs are a closed network. Then, the proxy server 6 transmits the INVITE signal to the user terminal 16 using the corresponding IP address, at which time the IP address of the gateway server 2 and the port number used are transmitted together. In addition, the proxy server 6 may perform a function of transferring information from the user terminal 16 to the user terminal 10, thereby enabling a communication session to be established between both terminals. The relay server 8 of the gateway server 2 may relay information between applications by performing a session relay function between each user terminal when both user terminals 10 and 16 belong to the closed network.

레지스터 서버(4) 및 프락시 서버(6)는 통신 세션에 관여하는 양측 사용자 단말(10, 16)이 각각 개방형 네트워크 환경에 속한 것인지 폐쇄형 네트워크 환경에 속한 것인지를 판정하고, 릴레이 서버(8)의 중재 하에 세션을 형성하도록 할 것인지 양자간 직접 세션을 형성하도록 할 것인지를 판정한다. 따라서, 레지스터 서버(4)에의 등록 사항에 따라 이러한 판정이 자동으로 이루어지므로, 통신 접속을 원할 때마다 사용자가 해당 단말의 네트워크 환경에 관한 지시를 제공할 필요가 없다.The register server 4 and the proxy server 6 determine whether both user terminals 10 and 16 participating in the communication session belong to the open network environment or the closed network environment, respectively, Determine whether to establish a session under arbitration or to establish a direct session between the two. Therefore, since this determination is made automatically in accordance with the registration matters in the register server 4, it is not necessary for the user to provide an instruction regarding the network environment of the terminal whenever a communication connection is desired.

이하에서는, 첨부도면을 참조하여 본 발명의 일실시예에 따른 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 first establishes a TCP session with the UCC_B 28, and through this function call, a parameter required for the PTC_DLL_A 24 of the UCC_A 22 through a function call to send and receive an IM message. Pass 202. That is, the UCC_A 22 configured in the window-based application layer of the user terminal A transmits port allocation information for the TCP session to the SIP-based PTC_DLL_A 24 of the lower presentation layer.

그런 다음, 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, PTC_DLL_A 24, which is the lower layer of UCC_A 22, mounts URI information (e.g., UCC_B_KEY @ GW_IP) on the counterpart user terminal in the SIP INVITE method to open a TCP session for sending and receiving a requested IM message. The gateway server 2 transmits to the gateway server 2 (204). The INVITE message transmitted from the PTC_DLL_A 24 of the user terminal A to the gateway server 2 includes IP address and port information to be opened for the IM session of the user terminal A, and server daemon port information. . In addition, the INVITE message carries URI information of the counterpart user terminal B and is transmitted. The inclusion of the server daemon port information in the INVITE message sent from the PTC_DLL_A 24 to the gateway server 2 does not know at this point whether the PTC_DLL_A 24 of user terminal A needs to run the server daemon for the TCP connection. Because. The gateway server 2 receiving the INVITE message from the PTC_DLL_A 24 searches whether the UCC_B 28 requested by the UCC_A 22 is registered in the data structure (hereinafter reg_list) of the register server 4 configured therein. If it is registered, find the URI of UCC_B 28 and add the IP address and relay port information of the gateway server 2 to the SIP INVITE message, and send it to PTC_DLL_B 26 of UCC_B 28. (206). At this time, the INVITE message transmitted to the PTC_DLL_B 26 of the UCC_B 28 includes the server daemon port information of the UCC_A 22.

게이트웨이 서버(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 gateway server 2 can recognize in which network environment the UCC_A 22 and the UCC_B 28 are located (ie, open or closed) through the registration list (reg_list) of the internal register server 4. Will be. For example, if address translation information associated with a public IP of a UCC_B 28 to receive an INVITE signal and a private IP is registered in the register server 4, the gateway server 2 may use the UCC_B 28. You will notice that) is in the NAT environment.

도 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 UCC_B 28 are in an open network rather than in a NAT environment. The gateway server 2 uses the UCC_B 28 to inform that the SIP INVITE message (IP address and port information of the UCC_A, Server Demon Port) and both user terminals 22 and 28 belong to an open network (eg, SDP (A). : Open type, B: open type), and performs a relay of signaling without preparing a TCP relay session through the relay server 8 therein.

게이트웨이 서버(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 gateway server 2 is sent to the PTC_DLL_B 26, the PTC_DLL_B 26 immediately rings 180 through the gateway server 2 to the PTC_DLL_A 24 of the UCC_A 22. ) Transmits a response signal (208), and transmits the SIP INVITE message to the UCC_B (210). At this time, the 180 ringing message includes the IP address and port information of the UCC_B (28).

UCC_B(28)는 그 SIP INVITE 메시지와 함꼐 전송된 SDP 정보를 통해 양 사용자의 단말(22, 28)이 개방형 네트워크에 존재함을 알 수 있다. 그러므로, UCC_A(22)의 서버 데몬에 TCP 접속을 연결하기 위한 별도의 클라이언트 데몬을 실행시킬 필요가 없음을 인지하게 된다.The UCC_B 28 may know that the terminals 22 and 28 of both users exist in the open network through the SDP information transmitted together with the SIP INVITE message. Therefore, it will be appreciated that there is no need to run a separate client daemon to connect a TCP connection to the server daemon of UCC_A 22.

또한, 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 PTC_DLL_A 24 of the UCC_A 22 transmits a PRACK (PRE-ACK) signal, which is a temporary response signal to the 180 ringing message, to the PTC_DLL_B 26 of the UCC_B 28 through the gateway server 2 ( 212) The PTC_DLL_B 26 of the UCC_B 28 sends a 200 OK message, which is a response message to the PRACK signal, to the PTC_DLL_A 24 of the UCC_A 22 (214). In this state, when the UCC_B 28 accepts the IM request, the PTC_DLL_B 26 of the UCC_B 28 sends a 200 OK message for the INVITE message to the PTC_DLL_A 24 via the gateway server 2 (216). ). UCC_B 28 then prepares a TCP server socket for the IM.

사용자 단말 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 세션의 서버로서 동작하게 된다.PTC_DLL_A 24 of user terminal A transmits the IP address and Listening port information of UCC_B 28 to UCC_A 22 (218), and sends an ACK message to PTC_DLL_B 26 via gateway server 2. (220). UCC_A 22 then makes a TCP connection to the IP address and TCP Listening port of UCC_B 28. Through this, a TCP session for IM transmission and reception between the UCC_A 22 and the UCC_B 28 is opened. At this time, the UCC_A 22 requesting the session establishment acts as a client of the TCP session, and the UCC_B 28 receiving the session request acts as a server of the TCP session.

도 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 establishes a TCP session with the UCC_B 28 and transmits necessary parameters to the PTC_DLL_A 24 of the UCC_A 22 through a function call in order to send and receive an IM message through the UCC_B 28 (302). ). That is, the UCC_A 22 configured in the window-based application layer of the user terminal A transmits port allocation information for the TCP session to the SIP-based PTC_DLL_A 24 of the lower presentation layer.

그러면, 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, which is the lower layer of UCC_A 22, loads the URI information (e.g., UCC_B_KEY @ GW_IP) of the counterpart user terminal in the SIP INVITE method to open a TCP session for transmitting and receiving the requested IM message. Send to server 2 (304). The INVITE message sent from the PTC_DLL_A 24 of the user terminal A to the gateway server 2 includes the IP address and port information to be opened for the IM session of the user terminal A, and a server daemon port for the UCC_A 22. ) Information is included. In addition, the URI information of the user terminal B as the counterpart is mounted on the INVITE message and transmitted. The inclusion of the server daemon port information in the INVITE message sent from the PTC_DLL_A 24 to the gateway server 2 does not know at this point whether the PTC_DLL_A 24 of user terminal A will run the server daemon for the TCP connection. Because.

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 gateway server 2 receiving the INVITE message from the PTC_DLL_A 24 searches whether the UCC_B 28 requested by the UCC_A 22 is registered in the data structure (hereinafter reg_list) of the register server 4 configured therein. If it is registered, it finds the URI of UCC_B 28 and adds its own IP and relay port information to the SIP INVITE message and sends it to PTC_DLL_B 26 of UCC_B 28. (306). At this time, the INVITE message transmitted to the PTC_DLL_B 26 of the UCC_B 28 includes the server daemon port of the UCC_A 22.

이때, 게이트웨이 서버(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 gateway server 2 may recognize in which network environment (open or closed) the UCC_A 22 and the UCC_B 28 are located through the registration list reg_list of the internal register server 4. It becomes possible. As shown in FIG. 3, if UCC_A 22 is placed in an open network that is not in a NAT environment and UCC_B 28 is placed in a closed network of a NAT environment, the gateway server 2 may SIP to UCC_B 28. Sends information about the configuration of both networks with INVITE message, e.g. SDP (A: Open, B: Closed), and only relays signaling without preparing a TCP relay session through the relay server 8 therein. Perform.

게이트웨이 서버(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 gateway server 2 is sent to the PTC_DLL_B 26, the PTC_DLL_B 26 immediately sends a 180 ringing response signal via the gateway server 2 to the PTC_DLL_A of the UCC_A 22. In step 308, the UE transmits the SIP INVITE message to the UCC_B 28, in step 310. At this time, the 180 ringing message includes the IP address and port information of the UCC_B (28).

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 UCC_B 28 may recognize that the user terminal A, which is the other party, exists in the open network and its terminal exists in the closed network through the SDP information transmitted together with the SIP INVITE message. As such, if the user terminal B receiving the request is placed in a closed network, the external connection from the user terminal B is free while the incoming connection from the outside to the user terminal B is restricted. Accordingly, in this case, the TCP connection is a user who simply functions as a client and receives a request when the user terminals A and B are both present in the open network as shown in FIG. Unlike terminal B functioning as a server so that client TCP client 30 of user terminal A and client TCP server 40 of user terminal B are directly connected, the server daemon 32 of user terminal A is executed to execute a client session ( Client TCP client 30) to operate in conjunction with the IN client daemon 42 and OUT client daemon 44 of user terminal B to execute a server session (client TCP server 40) of user terminal B By connecting and operating. That is, the client TCP server 40 of the user terminal B is connected to the IN client daemon 42 and the IN client daemon 42 is again connected to the OUT client daemon 44. In addition, the OUT client daemon 44 of the user terminal B connects with the server daemon 32 of the user terminal A to form a TCP connection. The server daemon 32 of the user terminal A operates in connection with the client TCP client 30. In short, from the standpoint of UCC_A 22 of user terminal A, it can be seen that the UE itself acts as a client in establishing a TCP session and that the other user terminal B acts as a server, but internally with the server daemon 32 of user terminal A. Communication connections may be made through the respective client daemons 42 and 44 of the user terminal B.

따라서, 도 3에서는, SDP 정보를 통해 상대방인 사용자 단말 A가 개방형 네트워크에 존재하고, 자신의 단말이 폐쇄형 네트워크에 존재함을 인지하게 된 UCC_B(28)는 TCP 세션 접속을 위한 클라이언트 데몬들을 준비시킨다.Accordingly, in FIG. 3, the UCC_B 28 that recognizes that the user terminal A, which is the counterpart, exists in the open network and that the user terminal exists in the closed network through SDP information, prepares the client daemons for the TCP session connection. Let's do it.

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 PTC_DLL_A 24 of the UCC_A 22 transmits a PRACK (PRE-ACK) signal, which is a temporary response signal to the 180 ringing message, to the PTC_DLL_B 26 of the UCC_B 28 via the gateway server 2 (312). . The PTC_DLL_B 26 of the UCC_B 28 then executes the client daemons 42 and 44 and uses the server daemon port information of the UCC_A 22 contained in the INVITE message to the server daemon 32 of the UCC_A 22. Establish a TCP connection (314). At this time, the client TCP server 40 of the UCC_B 28 makes a TCP connection only to the server daemon 32 of the UCC_A 22 via the IN client daemon 42 and the OUT client daemon 44, and still the UCC_A 22 TCP session connection with the client TCP client 30 is not established.

그리고, 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 PTC_DLL_B 26 of the UCC_B 28 transmits a 200 OK message, which is a response message to the PRACK signal, to the PTC_DLL_A 24 of the UCC_A 22 via the gateway server 2 (316). PTC_DLL_A 24 of user terminal A transmits information necessary for establishing a TCP session to UCC_A 22 (318). The client TCP client 30 of the UCC_A 22 is then connected to the server daemon 32. Since the client TCP server 40 of the UCC_B 28 is already connected with the server daemon 32 of the UCC_A 22, the client TCP server 30 of the UCC_A 22 and the client TCP server of the UCC_B 28 are consequently. A TCP connection of 40 is made. Through this, a TCP session for IM transmission and reception between the UCC_A 22 and the UCC_B 28 is formed.

전술한 과정에 있어서, 게이트웨이 서버(2)는 릴레이 서버(8)의 릴레이를 수행하지 않고, 단지 포트를 열어 시그널링의 중계만을 행하게 되며, TCP 접속은 UCC_A(22)와 UCC_B(28)간에 직접 수행된다.In the above-described process, the gateway server 2 does not perform relaying of the relay server 8, but only opens ports to relay signaling, and the TCP connection is directly performed between the UCC_A 22 and the UCC_B 28. do.

도 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 UCC_A 22 establishes a TCP session with the UCC_B 28 and sends a parameter to the PTC_DLL_A 24 of the UCC_A 22 through a function call in order to send and receive IM messages through the function call. Pass 402. Then, PTC_DLL_A 24, which is the lower layer of UCC_A 22, mounts the URI information (e.g., UCC_B_KEY @ GW_IP) of the counterpart user terminal in the SIP INVITE method to open a TCP session for transmitting and receiving the requested IM message. And transmits to server 2 (404). The INVITE message transmitted from the PTC_DLL_A 24 of the user terminal A to the gateway server 2 includes IP address and port information to be opened for the IM session of the user terminal A and server daemon port information for the UCC_A 22. . Further, the URI information of the counterpart user terminal B is mounted on the INVITE message and transmitted. At this time, the server daemon port information is included in the INVITE message transmitted from the PTC_DLL_A 24 to the gateway server 2 whether the PTC_DLL_A 24 of the user terminal A should execute the server daemon for the TCP connection at this time. Because I do not know.

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 gateway server 2 receiving the INVITE message from the PTC_DLL_A 24 searches whether the UCC_B 28 requested by the UCC_A 22 is registered in the data structure (hereinafter reg_list) of the register server 4 configured therein. If it is registered, find the URI of UCC_B 28 and add the IP address and relay port information of the gateway server 2 to the SIP INVITE message, and send it to PTC_DLL_B 26 of UCC_B 28. (406).

게이트웨이 서버(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 gateway server 2 can recognize in which network environment (open or closed) the UCC_A 22 and the UCC_B 28 are located through the registration list reg_list of the internal register server 4. . As shown in FIG. 4, even when both the UCC_A 22 and the UCC_B 28 are placed in a closed network in a NAT environment, the gateway server 2 may transmit the UCC_B 28 to both sides of the network together with the SIP INVITE message. Information about the configuration of, for example, SDP (A: closed, B: closed) information is transmitted, and the Listening port is opened through the relay server 8 therein to prepare a TCP relay session.

게이트웨이 서버(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 gateway server 2 is sent to the PTC_DLL_B 26, the PTC_DLL_B 26 immediately sends a 180 ringing response signal via the gateway server 2 to the PTC_DLL_A of the UCC_A 22. In step 408, the UE transmits the SIP INVITE message to the UCC_B 28 in step 410. The 180 ringing message includes the IP address and port information of the UCC_B 28. The gateway server 2 forwards the corresponding 180 ringing message and the SDP message (SDP (A: closed, B: closed)) to the PTC_DLL_A 24 of the UCC_A 22. Thus, PTC_DLL_A 24 of the UCC_A 22 recognizes that when an accept signal for the INVITE signal is applied, it must directly connect to the relay port of the gateway server 2.

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 UCC_B 28 may recognize that the user terminal A, which is the other party, exists in the closed network and its user terminal B also exists in the closed network through the SDP information transmitted together with the SIP INVITE message. As such, if user terminals A and B are present in a closed network, external connections from such user terminals A and B are free, while incoming connections to these user terminals A and B from outside are subject to constraints. Accordingly, in this case, the TCP connection is a user who simply functions as a client and receives a request when the user terminals A and B are both present in the open network as shown in FIG. Unlike terminal B functioning as a server so that client TCP client 30 of user terminal A and client TCP server 40 of user terminal B are directly connected, IN client daemon 42 and OUT client daemon ( 44) by connecting to the server session of the user terminal B (client TCP server 40) to operate. Client TCP server 40 of user terminal B is connected to IN client daemon 42 and IN client daemon 42 is again connected to OUT client daemon 44. The OUT client daemon 44 of user terminal B also establishes a TCP connection to the relay server 8 of the gateway server 2. In the case of user terminal A, the client TCP client 30 is externally connected as a client as the original, but such connection is made to the relay server 8 of the gateway server 2. In short, from the standpoint of UCC_A 22 of user terminal A, it can be seen that the UE itself acts as a client in establishing a TCP session and that the other user terminal B acts as a server, but internally the relay server 8 of the gateway server 2 The communication connection of both user terminals can be made by the relay.

따라서, 도 4에서는, SDP 메시지에 의해 양측 사용자 단말이 모두 폐쇄형 네트워크에 존재한다는 점을 인지하게 된 UCC_A(22) 및 UCC_B(28)는 각각 게이트웨이 서버(2)에 구성된 릴레이 서버(8)의 Listening 포트로 접속한다.Therefore, in FIG. 4, the UCC_A 22 and the UCC_B 28, which are aware that both user terminals exist in the closed network by the SDP message, respectively, are configured by the relay server 8 configured in the gateway server 2. Connect to the listening port.

구체적으로, 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 PTC_DLL_A 24 of the UCC_A 22 transmits a PRACK (PRE-ACK) signal, which is a temporary response signal for the 180 ringing message, to the PTC_DLL_B 26 of the UCC_B 28 via the gateway server 2. (412). The PTC_DLL_B 26 of the UCC_B 28 then executes the client daemons 42 and 44 to connect to the IP address and port opened by the relay server 8 of the gateway server 2 included in the INVITE message. (414).

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 PTC_DLL_B 26 of the UCC_B 28 transmits a 200 OK message, which is a response message to the PRACK signal, to the PTC_DLL_A 24 of the UCC_A 22 via the relay server 8 of the gateway server 2 (416). . The PTC_DLL_A 24 of the user terminal A transmits information necessary for establishing a TCP session to the UCC_A 22 (420). Then, the client TCP client 30 of the UCC_A 22 makes a TCP connection to the relay server 8 of the gateway server 2 by using the IP address and listening port number of the relay server 8. Through this, a TCP session for transmitting and receiving IM messages is established between the UCC_A 22 and the UCC_B 28 through the relay of the relay server 8.

이를 통해, 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 relay server 8, and the relay server 8 and the UCC_B 28, and the relay server 8 of the gateway server 2 moves IM data in either direction. When a message is entered, it acts as a relay to the other side.

본 발명에 의하면, 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 proxy server 6 and the register server 4 of the gateway server 2 without having to provide information about their network environment at the request of the session establishment. It is determined whether or not the communication connection is to be made through the relay server 8 through the registered information, which can help in establishing a stable session. In particular, when a direct session between peer-to-peer is possible, unnecessary load is prevented from being concentrated on the relay server 8, thereby enabling efficient operation of the server.

한편, 본 발명의 또 다른 실시예에 따르면, 각 애플리케이션 계층(12, 18)이 레지스터 서버(4)에 등록될 때, 사용자는 모든 통신 접속이 릴레이 서버(8)를 경유하여 이루어지도록 설정할 수 있다. 그러한 경우에는 해당 애플리케이션 계층에 의해 개시되는 모든 통신 접속이 릴레이 서버(8)를 경유해서 이루어진다. 이러한 실시예에 의하면, 직접 연결 시도시 발생할 수 있는 연결 실패의 경우, 예컨대 개인 PC의 방화벽 설정에 의해 직접 연결이 차단된 경우 등에 대비하여, 안정적 서비스를 받을 수 있다.On the other hand, according to another embodiment of the present invention, when each application layer 12, 18 is registered in the register server 4, the user can set up all communication connections to be made via the relay server 8 . In such a case, all communication connections initiated by the application layer are made via the relay server 8. According to this embodiment, in case of a connection failure that may occur when attempting a direct connection, for example, when a direct connection is blocked by the firewall setting of the personal PC, it is possible to receive a stable service.

본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 케리어 웨이브로 구체화되는 컴퓨터 데이터 신호 또는 케리어에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.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)

SIP 기반 사용자 단말기 - 상기 사용자 단말기는 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원함 - 의 SIP 어드레스 및 URI 어드레스를 등록하는 레지스터 서버; A register server for registering a SIP address and a URI address of a SIP-based user terminal, the user terminal supporting an application layer and a presentation layer protocol; 상기 레지스터 서버의 등록 리스트를 참조하여 사용자 단말기 간에 통신 세션을 형성하는 프락시 서버; 및A proxy server for establishing a communication session between user terminals with reference to the registration list of the register server; And 통신에 관여하는 양측 사용자 단말기가 모두 폐쇄형 네트워크 환경에 속한 경우 세션 중계(Session Relay)를 수행하는 릴레이 서버로 이루어진 게이트웨이 서버Gateway server consisting of relay server that performs session relay when both user terminals involved in communication belong to closed network environment 를 포함하는 SIP 기반 통신 서비스 제공 시스템.SIP-based communication service providing system comprising a. 제1항에 있어서,The method of claim 1, 상기 레지스터 서버에 등록되는 URI 정보는 상기 사용자 단말기의 IP 주소 및 포트 번호인 것을 특징으로 하는 SIP 기반 통신 서비스 제공 시스템.The URI information registered in the register server is the SIP-based communication service providing system, characterized in that the IP address and port number of the user terminal. 제1항에 있어서,The method of claim 1, 상기 사용자 단말기가 INVITE 메시지를 발생하는 경우 상기 게이트웨이 서버로 상기 사용자 단말기의 IP 주소 및 포트번호, 서버 데몬 포트번호 정보를 전송하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.When the user terminal generates an INVITE message, the SIP-based communication service providing system, characterized in that for transmitting the IP address and port number, server daemon port number information of the user terminal to the gateway server. 제1항에 있어서,The method of claim 1, 상기 게이트웨이 서버는 통신에 관여하는 양측 사용자 단말기의 정보를 통해, 상기 각 사용자 단말기에 대해 상기 릴레이 서버의 세션 중계를 위한 Listening 포트를 열어둘 것인지 및 TCP 세션 중계를 수행할 것인지의 여부를 판단하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.The gateway server determines whether to open a listening port for session relay of the relay server or to perform TCP session relay for each user terminal based on information of both user terminals involved in the communication. SIP-based communication service providing system characterized in that. 제1항에 있어서,The method of claim 1, 폐쇄형 네트워크 환경에 속한 사용자 단말기가 INVITE 메시지를 수신한 경우 상기 사용자 단말기는 클라이언트 데몬을 실행시켜 TCP 세션 연결을 위한 접속을 시도하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.If the user terminal belonging to the closed network environment receives the INVITE message, the user terminal executes the client daemon to attempt to connect for the TCP session connection, characterized in that the SIP-based communication service providing system. 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원하는 SIP 기반의 제1 및 제2 사용자 간에 TCP 세션 연결을 위하여, 세션 릴레이 또는 시그널링 중계를 수행하는 게이트웨이 서버에 의한 SIP 기반의 통신 서비스 제공 방법에 있어서,A method for providing a SIP-based communication service by a gateway server for performing session relay or signaling relay for a TCP session connection between SIP-based first and second users supporting an application layer and a presentation layer protocol, 상기 제1 사용자 단말기의 애플리케이션 계층으로부터 전송된 INVITE 메시지 및 제2 사용자 단말기의 URI 정보를 수신하는 단계,Receiving an INVITE message transmitted from an application layer of the first user terminal and URI information of a second user terminal, 상기 제1 사용자 단말기로부터 전송된 상기 제2 사용자 단말기의 URI 정보에 의해 미리 등록된 상기 제2 사용자 단말기의 URI를 검색하는 단계,Retrieving the URI of the second user terminal registered in advance by the URI information of the second user terminal transmitted from the first user terminal, 상기 INVITE 정보, 상기 제1 및 제2 사용자 단말기가 속한 망 환경에 관한 정보, 그리고 상기 게이트웨이 서버의 IP 및 포트 정보를 상기 제2 사용자 단말기 로 전송하는 단계, 및Transmitting the INVITE information, information about a network environment to which the first and second user terminals belong, and IP and port information of the gateway server to the second user terminal, and 상기 제1 및 제2 사용자 단말기가 속한 상기 망 환경이 양자 모두 폐쇄형 네트워크 환경인 경우라면 상기 게이트웨이 서버 내의 TCP 세션 릴레이를 통해 각각 상기 게이트웨이에 접속한 상기 제1 및 제2 사용자 단말기 간의 시그널링 중계를 수행하는 단계If the network environment to which the first and second user terminals belong is a closed network environment, signaling relay between the first and second user terminals connected to the gateway through a TCP session relay in the gateway server, respectively. Steps to perform 를 포함하는 SIP 기반 통신 서비스 제공방법.SIP-based communication service providing method comprising a. 제6항에 있어서,The method of claim 6, 상기 제1 사용자 단말기의 애플리케이션 계층으로부터 전송된 INVITE 메시지에는 상기 제1 사용자 단말기가 상기 TCP 세션 연결을 위하여 할당한 IP 및 포트 정보가 포함되는 것을 특징으로 하는 SIP 기반 통신 서비스 제공방법.The INVITE message transmitted from the application layer of the first user terminal includes the IP and port information allocated by the first user terminal for the TCP session connection. 제6항에 있어서,The method of claim 6, 상기 게이트웨이 내의 상기 TCP 세션 릴레이는 세션 릴레이 서버를 통하여 이루어지고, 상기 제1 및 제2 사용자 단말기가 각각 상기 세션 릴레이 서버로 접속함으로써 상기 제1 및 제2 사용자 단말기 간의 TCP 세션 연결이 형성되는 것을 특징으로 하는 SIP 기반 통신 서비스 제공방법.The TCP session relay in the gateway is performed through a session relay server, and a TCP session connection is formed between the first and second user terminals by connecting the first and second user terminals to the session relay server, respectively. SIP based communication service providing method. 제6항 내지 제8항 중의 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터 실행 가능 명령어들을 저장하는 컴퓨터 판독 가능 저장매체.A computer readable storage medium storing computer executable instructions for performing the method of any one of claims 6 to 8.
KR1020060133429A 2006-12-26 2006-12-26 System and method for providing session initiation protocol-based communication service KR100872240B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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