KR100872240B1 - Sip 기반 통신 서비스 제공시스템 및 그 방법 - Google Patents

Sip 기반 통신 서비스 제공시스템 및 그 방법 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
English (en)
Other versions
KR20080059754A (ko
Inventor
이정훈
Original Assignee
엘지노텔 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지노텔 주식회사 filed Critical 엘지노텔 주식회사
Priority to KR1020060133429A priority Critical patent/KR100872240B1/ko
Publication of KR20080059754A publication Critical patent/KR20080059754A/ko
Application granted granted Critical
Publication of KR100872240B1 publication Critical patent/KR100872240B1/ko

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 세션 연결을 이룰 수 있다.

Description

SIP 기반 통신 서비스 제공시스템 및 그 방법{SYSTEM AND METHOD FOR PROVIDING SESSION INITIATION PROTOCOL-BASED COMMUNICATION SERVICE}
도 1은 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 개략적으로 도시한 모식도,
도 2는 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기의 네트워크 구조에 무관하게 상대방 사용자 단말기가 개방형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도,
도 3은 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기의 네트워크 구조에 무관하게 상대방 사용자 단말기가 폐쇄형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도,
도 4는 일실시예에 따른 SIP 기반 통신 서비스 제공시스템을 통해, 일방 사용자 단말기 및 상대방 사용자 단말기가 폐쇄형 네트워크에 존재할 때의 신호흐름을 나타내는 신호흐름도이다.
*도면의 주요부분에 대한 부호의 설명*
2:게이트웨이서버 4:레지스터 서버,
6:프락시 서버 8:릴레이 서버,
10:사용자 단말 A 16:사용자 단말 B
본 발명은 SIP 기반 통신 서비스 제공 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 사용자 단말의 애플리케이션 계층으로 하여금, 그 사용자 단말이 속한 네트워크 구조를 고려할 필요없이, 게이트웨이 서버를 통하여 용이하게 TCP 세션 연결을 달성하도록 하는 SIP 기반 통신 서비스 제공 시스템 및 그 방법에 관한 것이다.
일반적으로, 네트워크 구조는 IP 할당 방법을 기준으로 크게 폐쇄형 네트워크와 개방형 네트워크로 나눌 수 있다. 개방형 네트워크는 로컬 단위의 IP가 모두 공인 IP(Public IP)인 것으로 외부의 다른 공유 IP와 통신 서비스를 수행하는데 제약이 없다. 폐쇄형 네트워크는 NAT(Network Address Translation) 또는 방화벽 장비를 갖춘 네트워크 구조로서, 이러한 폐쇄형 네트워크에서는 많은 수의 사설 IP가 소량의 공인 IP를 이용하여 외부와 네트워크를 형성한다. 그러므로, 폐쇄형 네트워크와의 통신을 위해서는 IP 어드레스 번역 등의 절차가 필요로 되는데, 이러한 문제를 NAT/방화벽 횡단(Traversal) 문제라고 일컫는다. 여기서 NAT는 가입자단에 설치되어 공인 IP를 갖는 트래픽을 전송받아 그 전송받은 트래픽의 IP 어드레스를 해당 네트워크 내의 단말의 사설 IP로 변환하고 트래픽을 해당 단말로 전송하는 기능을 수행하는 네트워크 어드레스 변환기를 말한다. 방화벽은 인증 받지 못한 소스에 의한 엑세스로부터 네트워크를 보호하기 위한 것으로 소스 주소, 목적지 주소 및 트래픽 타입의 정보를 이용하여 공중망으로부터 인입되는 트래픽이 신뢰성을 갖는 장비로부터 발생된 것인 경우에 한해 그 트래픽의 인입을 허락한다.
한편, 최근에는 세션 연결을 위한 프로토콜로서 H.323을 대체하여 확장성과 융통성이 뛰어난 SIP 프로토콜(Session Initiation Protocol)이 널리 이용되고 있는데, 이러한 SIP 프로토콜은 UDP/TCP/IP 계층 상에 존재하며, 요구/응답 방식에 따른 클라이언트/서버 프로토콜로서, 통신 상대방을 초대(invite)함으로써 세션을 시작할 수 있게 한다. 이러한 SIP 프로토콜에 의하여 양측 사용자 단말 간에 통신이 이루어질 경우 애플리케이션 개발자는 양측 사용자 단말 중 어느 쪽이 클라이언트로 기능하고 어느 쪽이 서버로서 기능할 것인지에 관하여 일관성을 가지고 구현할 필요가 있다.
근래에는 공인 IP 부족 및 보안 문제 등에 따라 NAT/방화벽 장비를 통한 사설 IP가 많이 사용되고 있다. 이러한 NAT/방화벽 장비와 연결된 사용자 단말에 대한 SIP 기반 통신 서비스의 경우에는 그러한 사용자 단말로부터 외부로의 접속은 자유로이 허용되는 반면 외부로부터 그러한 사용자 단말로의 인입 접속에 많은 제약이 따라, 통화 서비스 제공에 있어서 번잡한 절차가 수반된다. 특히, 일측 또는 양측 사용자 단말이 폐쇄형 네트워크에 속한 경우에는 이들 간의 클라이언트/서버 모델의 일관성 유지, 세션 연결 신호 정보의 교환, 세션 포트 정보의 교환 등과 관련한 많은 번잡한 절차가 수반되며, 따라서 개방형 네트워크 간의 SIP 기반 통신과는 달리 통신 서비스 제공에 있어서 많은 비용과 시간이 소모되어야 하는 문제가 있다.
따라서, 사용자 단말이 개방형 네트워크에 속한 것이거나 이와 달리 방화벽(Firewall) 또는 네트워크 어드레스 변환기(NAT) 등이 설치된 폐쇄형 네트워크에 속한 것이거나 무관하게 애플리케이션 계층의 입장에서 간소한 절차에 의해 SIP 프로토콜 기반의 통신 세션의 형성을 가능하게 하는 기술이 필요하다.
본 발명은 상기한 종래 기술의 사정을 감안하여 이루어진 것으로, 개방형 네트워크 또는 폐쇄형 네트워크 등의 네트워크 구조에 무관하게, 애플리케이션으로 하여금 게이트웨이 서버를 통해 접속하고자 하는 단말에 대한 접속 정보, 예컨대 IP 어드레스 및 포트 번호 등을 얻어, 용이하게 TCP 세션을 형성하도록 한 SIP 기반 통신 서비스 제공 시스템 및 그 방법을 제공하는 것을 목적으로 한다.
본 발명의 일 실시예에 따르면, 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원하는 SIP 기반 사용자 단말기와 게이트웨이 서버를 포함하는 SIP 기반 통신 서비스 제공시스템이 제공된다. 게이트웨이 서버는 사용자 단말기의 SIP 어드레스 및 URI 어드레스를 등록하는 레지스터 서버, 레지스터 서버의 등록 리스트를 참조하여 사용자 단말기 간에 통신 세션을 형성하는 프락시 서버, 그리고 통신에 관여하는 양측 사용자 단말기가 모두 폐쇄형 네트워크 환경에 속한 경우, 세션 중계(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 사용자 단말기 간의 시그널링 중계를 수행한다.
이하, 본 발명의 다양한 실시예들에 대해 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 개략적으로 도시한 모식도이다.
도시된 바에 의하면, 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)를 포함한다.
이러한 SIP 기반 통신 서비스 제공 시스템(100)에서는, 각 사용자 단말(10, 16)이 속한 네트워크의 구조가 개방형인지 폐쇄형인지 무관하게, 각 애플리케이션 계층(12, 18)이 게이트웨이 서버(2)를 통하여, 접속을 위한 IP 주소 및 포트 번호 등의 정보를 얻어 통신 세션을 형성하도록 한다. 특히, SIP 기반 통신 서비스 제공 시스템(100)에 의하면, 양측 사용자 단말(10, 16) 중 어느 한쪽 또는 양쪽이 폐쇄형 네트워크에 속한 환경에 있더라도, 애플리케이션 계층의 입장에서 그러한 네트워크 환경에 따른 클라이언트/서버 모델의 구성을 고려할 필요없이, 세션 연결을 요청한 측의 사용자 단말이 클라이언트로 기능하는 것을 전제로 하여 개발을 수행할 수 있도록 함으로써 개발자 부담을 경감시켜줄 수 있다.
게이트웨이 서버(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)이 모두 폐쇄형 네트워크에 속한 경우 각 사용자 단말 간의 세션 릴레이 기능을 수행하여 애플리케이션 간에 정보를 릴레이할 수 있다.
레지스터 서버(4) 및 프락시 서버(6)는 통신 세션에 관여하는 양측 사용자 단말(10, 16)이 각각 개방형 네트워크 환경에 속한 것인지 폐쇄형 네트워크 환경에 속한 것인지를 판정하고, 릴레이 서버(8)의 중재 하에 세션을 형성하도록 할 것인지 양자간 직접 세션을 형성하도록 할 것인지를 판정한다. 따라서, 레지스터 서버(4)에의 등록 사항에 따라 이러한 판정이 자동으로 이루어지므로, 통신 접속을 원할 때마다 사용자가 해당 단말의 네트워크 환경에 관한 지시를 제공할 필요가 없다.
이하에서는, 첨부도면을 참조하여 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템의 동작을 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 통 해, 세션 형성을 요청하는 사용자 단말 A의 네트워크 구조에 무관하게 상대방 사용자 단말 B가 개방형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다. 도 2에서, UCC_A란 사용자 단말 A의 인터페이스 계층(즉, 애플리케이션 계층)를 나타낸 것이고 PTC DLL_A는 UCC_A를 위한 SIP 프로토콜 계층(즉, 프리젠테이션 계층)이며, UCC_B란 사용자 단말 B의 인터페이스 계층이고 PTC DLL_B는 UCC_B를 위한 SIP 프로토콜 계층이다.
구체적 동작 흐름을 살펴보면, 먼저 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 세션용 포트 할당 정보 등을 전송한다.
그런 다음, 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)의 서버 데몬 포트 정보가 포함되어 있다.
게이트웨이 서버(2)는 내부의 레지스터 서버(4)의 등록 리스트(reg_list)를 통해 UCC_A(22)와 UCC_B(28)가 어떤 네트워크 환경에 놓여 있는지(즉, 개방형인지 폐쇄형인지)를 인지할 수 있게 된다. 예컨대, INVITE 신호를 전달받을 UCC_B(28)의 공중 IP와 사설 IP가 연계된 어드레스 변경(Address Translation) 정보가 상기 레지스터 서버(4)에 등록되어 있는 경우라면, 게이트웨이 서버(2)는 UCC_B(28)가 NAT 환경에 있음을 인지할 수 있을 것이다.
도 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 릴레이 세션은 준비하지 않은 채 시그널링의 중계만을 수행한다.
게이트웨이 서버(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 어드레스 및 포트 정보가 포함된다.
UCC_B(28)는 그 SIP INVITE 메시지와 함꼐 전송된 SDP 정보를 통해 양 사용자의 단말(22, 28)이 개방형 네트워크에 존재함을 알 수 있다. 그러므로, UCC_A(22)의 서버 데몬에 TCP 접속을 연결하기 위한 별도의 클라이언트 데몬을 실행시킬 필요가 없음을 인지하게 된다.
또한, 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 서버 소켓을 준비한다.
사용자 단말 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가 폐쇄형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다.
먼저, 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 세션용 포트 할당 정보 등을 전송한다.
그러면, 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 접속을 위하여 서버 데몬을 실행할 것인지 여부를 알지 못하기 때문이다.
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)의 서버 데몬 포트가 포함된다.
이때, 게이트웨이 서버(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 릴레이 세션을 준비하지 않은 채 시그널링의 중계만을 수행한다.
게이트웨이 서버(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 어드레스 및 포트 정보가 포함된다.
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)을 통하여 통신 접속이 이루어질 수 있는 것이다.
따라서, 도 3에서는, SDP 정보를 통해 상대방인 사용자 단말 A가 개방형 네트워크에 존재하고, 자신의 단말이 폐쇄형 네트워크에 존재함을 인지하게 된 UCC_B(28)는 TCP 세션 접속을 위한 클라이언트 데몬들을 준비시킨다.
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 세션 연결이 이루어지지는 않은 상태이다.
그리고, 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 세션이 형성된다.
전술한 과정에 있어서, 게이트웨이 서버(2)는 릴레이 서버(8)의 릴레이를 수행하지 않고, 단지 포트를 열어 시그널링의 중계만을 행하게 되며, TCP 접속은 UCC_A(22)와 UCC_B(28)간에 직접 수행된다.
도 4는 본 발명의 일실시예에 따른 SIP 기반 통신 서비스 제공 시스템을 통해, 세션 형성을 요청하는 사용자 단말 A 및 상대방 사용자 단말 B가 폐쇄형 네트워크에 존재할 때의 신호 흐름을 나타내는 신호 흐름도이다. 통상, 폐쇄형 네트워크에 속한 사용자 단말 간에는 TCP 세션을 직접 열지 않고, 게이트웨이에 의한 TCP 세션 중계를 통해 아래와 같은 과정에 따라 이루어진다.
먼저, 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 커넥션을 위하여 서버 데몬을 실행해야 할 것인지 여부를 알지 못하기 때문이다.
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).
게이트웨이 서버(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 릴레이 세션을 준비한다.
게이트웨이 서버(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)의 릴레이 포트에 직접 접속하여야 한다는 점을 인지하게 된다.
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)의 릴레이에 의해 양측 사용자 단말의 통신 접속이 이루어질 수 있는 것이다.
따라서, 도 4에서는, SDP 메시지에 의해 양측 사용자 단말이 모두 폐쇄형 네트워크에 존재한다는 점을 인지하게 된 UCC_A(22) 및 UCC_B(28)는 각각 게이트웨이 서버(2)에 구성된 릴레이 서버(8)의 Listening 포트로 접속한다.
구체적으로, 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).
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 세션이 형성된다.
이를 통해, UCC_A(22)와 릴레이 서버(8)간, 릴레이 서버(8)와 UCC_B(28) 간에 TCP 세션이 열리게 되고, 게이트웨이 서버(2)의 릴레이 서버(8)는 어느 한쪽 방향에서 IM 데이터 메시지가 입력되면 반대편으로 중계하는 릴레이 역할을 수행하게 된다.
본 발명에 의하면, TCP 세션 형성을 원하는 사용자가 세션 형성의 요청시에 자신의 네트워크 환경에 관한 정보를 제공할 필요없이 게이트웨이 서버(2)의 프락시 서버(6) 및 레지스터 서버(4)에 의해 이미 등록된 정보를 통하여 통신 접속이 릴레이 서버(8)를 통해 이루어질 것인지 등이 판정되므로, 안정적 세션 형성에 도움이 될 수 있다. 특히, 피어-투-피어 간의 직접 세션 형성이 가능한 경우에는 불필요한 로드가 릴레이 서버(8)로 집중되는 것을 방지하여 서버의 효율적 운영이 가능하게 된다.
한편, 본 발명의 또 다른 실시예에 따르면, 각 애플리케이션 계층(12, 18)이 레지스터 서버(4)에 등록될 때, 사용자는 모든 통신 접속이 릴레이 서버(8)를 경유하여 이루어지도록 설정할 수 있다. 그러한 경우에는 해당 애플리케이션 계층에 의해 개시되는 모든 통신 접속이 릴레이 서버(8)를 경유해서 이루어진다. 이러한 실시예에 의하면, 직접 연결 시도시 발생할 수 있는 연결 실패의 경우, 예컨대 개인 PC의 방화벽 설정에 의해 직접 연결이 차단된 경우 등에 대비하여, 안정적 서비스를 받을 수 있다.
본 발명 및 그 다양한 기능적 구성요소들은 특정 실시예들로 설명되었으나, 본 발명은 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 조합으로 구현될 수 있으며, 시스템, 서브시스템, 구성요소들 또는 이들의 서브 구성요소들로 활용될 수 있음을 이해해야 한다. 소프트웨어로 구현되는 경우, 본 발명의 요소들은 필요한 작업들을 수행하기 위한 명령어들/코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독가능 매체와 같은 머신 판독가능 매체, 컴퓨터 프로그램 제품 내에 저장될 수 있으며, 또는 케리어 웨이브로 구체화되는 컴퓨터 데이터 신호 또는 케리어에 의해 변조된 신호에 의해 전송 매체 또는 통신 링크를 통해 전송될 수 있다. 머신 판독가능 매체 또는 프로세서 판독가능 매체는 머신(예컨대, 프로세서, 컴퓨터 등)에 의해 판독되고 실행가능한 형태로 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다.
이상의 실시예들은 이해를 돕기 위하여 도면에 도시된 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 기술적 보호 범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.
본 명세서에 기술된 실시예들에 따르면, SIP 기반의 통신 서비스에 의해 TCP 세션을 형성하고자 하는 사용자 단말의 애플리케이션 계층은, 해당 사용자 단말과 상대방 사용자 단말이 속한 네트워크 환경이 개방형인지 폐쇄형인지에 무관하게, 스스로는 클라이언트 역할을 수행하고 상대방은 서버 역할을 수행하는 것으로 인식하면서, 안정적인 세션 형성을 이룰 수 있다. 또한, 이러한 구성에 의하면 애플리 케이션 개발자에게 보다 큰 융통성을 허용할 수 있는 장점이 있다.

Claims (9)

  1. SIP 기반 사용자 단말기 - 상기 사용자 단말기는 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원함 - 의 SIP 어드레스 및 URI 어드레스를 등록하는 레지스터 서버;
    상기 레지스터 서버의 등록 리스트를 참조하여 사용자 단말기 간에 통신 세션을 형성하는 프락시 서버; 및
    통신에 관여하는 양측 사용자 단말기가 모두 폐쇄형 네트워크 환경에 속한 경우 세션 중계(Session Relay)를 수행하는 릴레이 서버로 이루어진 게이트웨이 서버
    를 포함하는 SIP 기반 통신 서비스 제공 시스템.
  2. 제1항에 있어서,
    상기 레지스터 서버에 등록되는 URI 정보는 상기 사용자 단말기의 IP 주소 및 포트 번호인 것을 특징으로 하는 SIP 기반 통신 서비스 제공 시스템.
  3. 제1항에 있어서,
    상기 사용자 단말기가 INVITE 메시지를 발생하는 경우 상기 게이트웨이 서버로 상기 사용자 단말기의 IP 주소 및 포트번호, 서버 데몬 포트번호 정보를 전송하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.
  4. 제1항에 있어서,
    상기 게이트웨이 서버는 통신에 관여하는 양측 사용자 단말기의 정보를 통해, 상기 각 사용자 단말기에 대해 상기 릴레이 서버의 세션 중계를 위한 Listening 포트를 열어둘 것인지 및 TCP 세션 중계를 수행할 것인지의 여부를 판단하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.
  5. 제1항에 있어서,
    폐쇄형 네트워크 환경에 속한 사용자 단말기가 INVITE 메시지를 수신한 경우 상기 사용자 단말기는 클라이언트 데몬을 실행시켜 TCP 세션 연결을 위한 접속을 시도하는 것을 특징으로 하는 SIP 기반 통신 서비스 제공시스템.
  6. 애플리케이션 계층 및 프리젠테이션 계층 프로토콜을 지원하는 SIP 기반의 제1 및 제2 사용자 간에 TCP 세션 연결을 위하여, 세션 릴레이 또는 시그널링 중계를 수행하는 게이트웨이 서버에 의한 SIP 기반의 통신 서비스 제공 방법에 있어서,
    상기 제1 사용자 단말기의 애플리케이션 계층으로부터 전송된 INVITE 메시지 및 제2 사용자 단말기의 URI 정보를 수신하는 단계,
    상기 제1 사용자 단말기로부터 전송된 상기 제2 사용자 단말기의 URI 정보에 의해 미리 등록된 상기 제2 사용자 단말기의 URI를 검색하는 단계,
    상기 INVITE 정보, 상기 제1 및 제2 사용자 단말기가 속한 망 환경에 관한 정보, 그리고 상기 게이트웨이 서버의 IP 및 포트 정보를 상기 제2 사용자 단말기 로 전송하는 단계, 및
    상기 제1 및 제2 사용자 단말기가 속한 상기 망 환경이 양자 모두 폐쇄형 네트워크 환경인 경우라면 상기 게이트웨이 서버 내의 TCP 세션 릴레이를 통해 각각 상기 게이트웨이에 접속한 상기 제1 및 제2 사용자 단말기 간의 시그널링 중계를 수행하는 단계
    를 포함하는 SIP 기반 통신 서비스 제공방법.
  7. 제6항에 있어서,
    상기 제1 사용자 단말기의 애플리케이션 계층으로부터 전송된 INVITE 메시지에는 상기 제1 사용자 단말기가 상기 TCP 세션 연결을 위하여 할당한 IP 및 포트 정보가 포함되는 것을 특징으로 하는 SIP 기반 통신 서비스 제공방법.
  8. 제6항에 있어서,
    상기 게이트웨이 내의 상기 TCP 세션 릴레이는 세션 릴레이 서버를 통하여 이루어지고, 상기 제1 및 제2 사용자 단말기가 각각 상기 세션 릴레이 서버로 접속함으로써 상기 제1 및 제2 사용자 단말기 간의 TCP 세션 연결이 형성되는 것을 특징으로 하는 SIP 기반 통신 서비스 제공방법.
  9. 제6항 내지 제8항 중의 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터 실행 가능 명령어들을 저장하는 컴퓨터 판독 가능 저장매체.
KR1020060133429A 2006-12-26 2006-12-26 Sip 기반 통신 서비스 제공시스템 및 그 방법 KR100872240B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060133429A KR100872240B1 (ko) 2006-12-26 2006-12-26 Sip 기반 통신 서비스 제공시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060133429A KR100872240B1 (ko) 2006-12-26 2006-12-26 Sip 기반 통신 서비스 제공시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20080059754A KR20080059754A (ko) 2008-07-01
KR100872240B1 true KR100872240B1 (ko) 2008-12-05

Family

ID=39812480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060133429A KR100872240B1 (ko) 2006-12-26 2006-12-26 Sip 기반 통신 서비스 제공시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR100872240B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101050576B1 (ko) * 2009-03-10 2011-07-19 주식회사 케이티 이기종 망의 이동 단말 간에 영상회의 서비스 제공 방법 및시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101396767B1 (ko) * 2009-12-24 2014-05-16 에릭슨엘지엔터프라이즈 주식회사 Sip 기반 통신 서비스 제공 시스템 및 그 방법
KR101944744B1 (ko) * 2017-10-31 2019-02-01 삼성에스디에스 주식회사 메시지 처리 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040058641A (ko) * 2002-12-27 2004-07-05 엘지전자 주식회사 Nat를 갖는 망에서의 sip 서비스 방법
KR20040083315A (ko) * 2003-03-21 2004-10-01 정찬익 보이스 오버 아이피 서비스를 지원하는 아이피 공유기 및이를 이용한 통화 방법
KR20060018996A (ko) * 2004-08-26 2006-03-03 주식회사 나라비전 Sip 서비스 기반의 tcp채널 제공 시스템 및 방법
KR20070045545A (ko) * 2005-10-27 2007-05-02 주식회사 케이티프리텔 Sip 기반의 무선 패킷 교환망 시스템에서의 타망 연동방법 및 그 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040058641A (ko) * 2002-12-27 2004-07-05 엘지전자 주식회사 Nat를 갖는 망에서의 sip 서비스 방법
KR20040083315A (ko) * 2003-03-21 2004-10-01 정찬익 보이스 오버 아이피 서비스를 지원하는 아이피 공유기 및이를 이용한 통화 방법
KR20060018996A (ko) * 2004-08-26 2006-03-03 주식회사 나라비전 Sip 서비스 기반의 tcp채널 제공 시스템 및 방법
KR20070045545A (ko) * 2005-10-27 2007-05-02 주식회사 케이티프리텔 Sip 기반의 무선 패킷 교환망 시스템에서의 타망 연동방법 및 그 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101050576B1 (ko) * 2009-03-10 2011-07-19 주식회사 케이티 이기종 망의 이동 단말 간에 영상회의 서비스 제공 방법 및시스템

Also Published As

Publication number Publication date
KR20080059754A (ko) 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
CN106233704B (zh) 提供通过Relay方式穿越网络地址转换凭证的方法和装置
CN104429037B8 (zh) 用于连接到通信设备的方法、设备及***
US9294519B2 (en) File server device
CN1700680B (zh) 使用服务器池时有效的消息路由
US9648052B2 (en) Real-time communications gateway
KR20180015627A (ko) 실시간 통신의 미디어 경로 설정
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 (ko) 네트워크 어드레스 변환기 및/또는 방화벽 뒤에 자리한 서버와의 전송-레벨 접속을 설정하기 위한 시스템, 단말, 방법 및 컴퓨터 프로그램 생성물
US20090265414A1 (en) Mechanisms for transparently converting client-server software agents to peer-to-peer software agents
WO2008122963A2 (en) Network service operational status monitoring
US6757734B1 (en) Method of communication
US20070258111A1 (en) Sip adapter and sip communication system
KR100872240B1 (ko) Sip 기반 통신 서비스 제공시스템 및 그 방법
JP2009296333A (ja) 通信制御システムおよび通信制御方法
JP4372075B2 (ja) 通信システム、ブロードバンドルータ、情報処理装置及びそれらに用いるnat越え機能実現方法
KR100660123B1 (ko) Nat 통과를 위한 브이.피.엔 서버 시스템 및 브이.피.엔클라이언트 단말기
EP3044929B1 (en) A mobile-device based proxy for browser-originated procedures
JP4728933B2 (ja) Ip電話通信システム、ip電話通信方法、およびそのプログラム
JP2015201758A (ja) 中継装置、通信システム、情報処理方法及びプログラム
KR20100051907A (ko) 폐쇄 망 환경에서의 에스아이피 기반의 세션 연결 방법
JP4355696B2 (ja) ルータ、パケットフォワード方法、およびパケットフォワードプログラム
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