KR100582574B1 - Sip 서버 및 이를 이용한 sip 단말간 통화 방법 - Google Patents

Sip 서버 및 이를 이용한 sip 단말간 통화 방법 Download PDF

Info

Publication number
KR100582574B1
KR100582574B1 KR1020030040410A KR20030040410A KR100582574B1 KR 100582574 B1 KR100582574 B1 KR 100582574B1 KR 1020030040410 A KR1020030040410 A KR 1020030040410A KR 20030040410 A KR20030040410 A KR 20030040410A KR 100582574 B1 KR100582574 B1 KR 100582574B1
Authority
KR
South Korea
Prior art keywords
sip
address
port
call
rtp
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020030040410A
Other languages
English (en)
Other versions
KR20040110032A (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 KR1020030040410A priority Critical patent/KR100582574B1/ko
Publication of KR20040110032A publication Critical patent/KR20040110032A/ko
Application granted granted Critical
Publication of KR100582574B1 publication Critical patent/KR100582574B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]

Landscapes

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

Abstract

본 발명은 SIP 서버를 이용한 SIP 단말간 통화 방법에 관한 것으로, 본 발명에 따르면, 상기 SIP 단말로부터 등록 요청을 위한 SIP 메시지가 수신되면, 공인 아이피 주소 및 포트를 저장하여 상기 SIP 단말을 등록하고, 상기 SIP 단말로부터 호 연결을 위한 SIP 메시지가 수신되면, 목적지 SIP 단말의 공인 아이피 주소 및 포트를 획득하고, 획득된 목적지 SIP 단말의 공인 아이피 주소 및 포트로 호를 연결하고, 상기 수신된 호 연결을 위한 SIP 메시지의 RTP 아이피 주소와 포트를 상기 SIP 서버의 아이피 주소와 포트를 수정하여 상기 목적지 SIP 단말로 SIP 메시지를 전송하고, 상기 수정된 SIP 서버의 아이피 주소와 포트를 통해 RTP 데이터를 수신하면, 상기 RTP 데이터로부터 공인 IP 주소와 포트를 추출하고, 추출된 공인 IP 주소와 포트와 수정된 SIP 서버의 아이피 주소와 포트를 이용하여 상기 RTP 데이터를 중계하여, SIP 서버가 SIP 단말기에서 송수신되는 RTP 데이터를 중계하도록 하여 기존의 데이터 망의 별도의 기능 추가 없이 사설망과 사설망간 또는 공인망과 사설망에 있는 SIP 단말간의 음성 통화가 가능하도록 한다.

Description

SIP 서버 및 이를 이용한 SIP 단말간 통화 방법{SIP SERVER AND METHOD FOR CONVERSATION BETWEEN SIP TERMINAL USING IT}
도 1은 일반적인 VoIP 서비스를 제공하는 SIP 네트워크 구성도.
도 2는 본 발명에 따른 VoIP 서비스를 제공하는 SIP 네트워크 구성도.
도 3은 본 발명에 따른 SIP 서버를 이용한 SIP 단말간 통화 방법을 설명한 흐름도.
도 4a는 사설망에 있는 SIP 단말에서 송수신되는 SIP 메시지 패킷의 구조를 간략히 도시한 도면.
도 4b는 사설망에 설정된 NAT에 송수신되는 SIP 메시지 패킷의 구조를 간략히 도시한 도면.
도 5는 도 3에 따른 SIP 초기 호 등록 방법을 설명한 흐름도.
도 6은 도 3에 따른 SIP 호 연결 후 미디어 세션 정보 수정 방법을 설명한 흐름도.
도 7은 도 3에 따른 SIP 호 연결 후 RTP 데이터 중개 방법을 설명한 흐름도.
도 8은 본 발명에 따른 사용자 테이블을 간략히 나타낸 도면.
도 9는 본 발명에 따른 사용자별 컨텍트 테이블.
도 10a는 본 발명에 따른 호 연결 요청시 SIP 호 매핑 정보 테이블.
도 10b는 본 발명에 따른 호 연결 응답시 SIP 호 매핑 정보 테이블.
본 발명은 SIP 단말간 통화 방법에 관한 것으로, 특히 SIP서버를 이용하여 사설망과 사설망 또는 공인망에 있는 SIP 단말간의 통화를 가능하도록 하는 SIP 서버를 이용한 SIP 단말간 통화 방법에 관한 것이다.
인터넷이 보급됨에 따라 IP 주소의 할당은 매우 중요한 문제로 대두되었다.
인터넷은 TCP/IP 프로토콜(TCP/IP Protocol) 에 기반을 둔 네트워크인데, TCP/IP 프로토콜 규약에 따르면, 인터넷에 연결된 각 장치는 유일한(unique) IP 주소(IP address)에 의하여 식별된다.
즉, 하나의 IP 주소에 대응하는 호스트(host)는 인터넷상에 하나만 존재하여야 하는 것이다. 이러한 IP 주소는 4바이트로 구성되어 있는데, 인터넷의 폭발적인 발전으로 인하여, 이제 인터넷에 접속하는 모든 단말기에 유일한 IP 주소를 할당하기가 어려워지게 되었다.
이러한 문제점을 해결하기 위하여 IP 주소의 데이터 크기를 증가시킨 IPv6(Internet protocol version 6) 등의 새로운 IP 프로토콜에 대한 논의가 진행 중이다. 또한 상기의 문제점을 해결하기 위하여 네트워크 주소 변환기(Network Address Translator 이하 'NAT'라 지칭한다)가 널리 사용되고 있으며, 실제로 현재 상당히 많은 수의 단말기들이 네트워크 주소 변환기를 통하여 인터넷에 접속되고 있다.
NAT는 사설 IP 주소(Private IP address)를 공인 IP 주소(Public IP address)로 변환하는 IP 주소 변환 장치이다. 공인 IP 주소는 인터넷상에서 단말기를 유일하게 식별할 수 있는 IP 주소로서 정당한 IP 주소 할당 기관으로부터 할당 받은 IP 주소이다.
전 세계의 공인 IP 주소 할당은 ICANN(The Internet Corporation for Assigned Names and Numbers)에서 담당한다.
사설 IP 주소는 로컬 네트워크 즉, 사설망 내에서만 사용되고, 외부 네트워크 접속 시에는 사용할 수 없는 IP 주소이며, 임의의 IP 주소가 할당되나, 보통의 경우 192.X.X.X 형태의 IP 주소가 할당된다.
앞서 설명한 바와 같이 공인 IP 주소의 부족으로 모든 단말기에 공인 IP 주소를 할당하기가 어려워졌다. 따라서 가정 또는 회사 내 사설망에 접속된 복수 개의 단말기에 대하여는 사설 IP 주소를 할당하고, 상기 단말기들이 외부의 네트워크에 접속된 서버 등과 통신하는 경우 통신 패킷 내의 사설 IP 주소를 NAT가 저장하고 있는 공인 IP 주소로 변경하여 이를 상기 외부의 서버에 송신한다.
한편, 오늘날 인터넷이 널리 보급됨에 따라, 인터넷을 이용한 다양한 서비스들이 등장하였다. 이러한 서비스들 중에는 종래의 공중 교환 전화 망(PSTN: Public Switched Telephone Network)을 포함한 교환 회로 망(SCN: Switched Circuit Network) 대신에, 인터넷과 같은 패킷 망(packet-based network)을 이용한 음성 통신 서비스도 있다. 음성 통신 서비스 중의 하나로서 VoIP(Voice over Internet Protocol) 서비스는 인터넷 프로토콜(IP: Internet Protocol) 망을 이용하여 음성을 전송하는 서비스이다. 이러한 VoIP 서비스는 SIP을 이용하여 구현가능하다.
SIP는 다수의 사람이 화상회의나 전화 통화를 할 때 사용자를 제어하기 위한 프로토콜보다는 회의나 전화통화에 상대방을 쉽게 초대할 수 있게 하기 위해 만들어진 프로토콜이다. SIP는 어떠한 프로토콜 스택에 메여 있지 않고, HTTP(HyperText Transfer Protocol)와 같은 텍스트 기반으로 정의되어 있어 확장이 용이하며 쉽게 사용할 수 있는 프로토콜이다. SIP는 기존에 사용하고 있는 E-MAIL 주소를 사용하고, 위치 지정 메시지를 통해 이동성을 제공하므로, 전화를 지정한 장소에서 받는 것이 가능한 단순한 프로토콜이다.
도 1은 종래의 기술에 따른 VoIP 서비스를 제공하는 SIP 네트워크 구성도이다.
도 1에 도시된 바와 같이, 사설망에 있는 SIP 단말(User Agent)(211 ~21n, 221 ~ 22n)들은 NAT를 통하여 공인망(인터넷)에 접속된다.
그러나 종래의 기술에 따르면, 상이한 사설망에 있는 SIP 단말(211 ~21n, 221 ~ 22n)간의 호연결을 수행하는 경우 또는 공인망에 있는 SIP 단말(311 ~31n)에서 사설망에 있는 SIP 단말(211)로의 호 연결을 수행하는 경우, 호 연결이 불가능하였다.
즉, 공인망에 있는 SIP 단말(311 ~31n)이 SIP 서버(10)에 등록 요청하는 경우, SIP 서버(10)에 전달되는 등록 요청 메시지("Resister" 메시지)에는, 접속 헤더("Contact" 헤더)를 포함하고 있다. "Contact" 헤더는 등록 요청한 SIP 단말의 호 연결을 위한 주소에 대한 정보를 가지고 있으며, 자세하게는 IP 주소, 포트, 우선순위(Q value), 메시지 전송 시간 정보(Expire Time)로 구성된다.
따라서 SIP 서버(10)는 공인망에 있는 SIP 단말(311 ~31n)로부터 호 연결 요청 메시지("INVITE" 메시지)를 수신하여 호 연결을 수행하는 경우, "INVITE"로부터 수신측 IP 주소, 포트를 찾아 호를 연결하면 된다.
그러나 사설망에 있는 SIP 단말(211 ~21n, 221 ~ 22n)을 위와 같은 방법으로 등록을 한 경우, "Resister" 메시지의 "Contact" 헤더는 공인망에서는 사용할 수 없는 사설 IP 주소만이 기록되게 되어 있어, 차후에 사설망에 있는 SIP 단말(211 ~21n, 221 ~ 22n)에서 "INVITE" 메시지가 수신되어도 호 연결을 수행할 수가 없게 된다.
이는 제 1 사설망(21)내에 있는 SIP 단말(211)은 제 1 NAT(21)로부터 사설 IP 주소를 할당받아 사용하므로, 타 사설망 또는 공인망에 있는 SIP 단말(221, 311 ~31n)에서는 제 1 NAT(21)에 의해 임의로 할당된 사설 IP 주소를 사용하는 SIP 단말(211)의 사설 IP 주소를 알 수가 없다.
이러한 문제점은 인터넷이 널리 보급됨에 따라, 인터넷을 이용한 다양한 서비스들에 대한 사용자의 요구가 급속도로 증가되는 현재의 시점에서 그 문제성이 더욱더 심각하게 되었다.
본 발명은 상기한 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 SIP 서버를 통하여 상이한 사설망 또는 공인망에 있는 SIP 단말의 호 연결 및 메시지 교환을 수행하도록 SIP 서버를 이용한 SIP 단말간 통화 방법을 제공하는 것이다.
상기한 목적을 실현하기 위한 본 발명에 따른 SIP 서버의 일측면에 따르면, 호 연결을 위한 SIP 단말들 각각의 공인 아이피 주소와 RTP(Real-time Transport Protocol) 데이터를 수신하기 위한 SIP 서버의 아이피 주소 및 포트와 RTP 데이터를 전송하기 위한 목적지 SIP 단말의 공인 아이피 주소를 저장하는 데이터베이스부와, 호 신호와 RTP 데이터의 송수신을 수행하는 통신인터페이스부와, 상기 SIP 단말의 등록 요청에 따라 상기 SIP 단말의 공인 아이피 주소를 등록하고, 상기 SIP 단말의 호 연결 요청에 따라 상기 등록된 공인 아이피 주소로의 호 연결을 수행하고, 상기 RTP 데이터를 수신하기 위한 SIP 서버의 아이피 주소 및 포트를 통해 RTP 데이터를 수신하고, 상기 수신된 RTP 데이터를 목적지 SIP 단말의 공인 아이피 주소로 전송하는 처리부를 포함한다.
상기한 목적을 실현하기 위한 본 발명에 따른 SIP 서버를 이용한 SIP 단말간 통화 방법의 일측면에 따르면, 사설 아이피 주소를 사용하는 상기 SIP 단말로부터 등록 요청을 위한 SIP 메시지가 수신되는 경우, 사설 아이피 주소 및 포트와 상기 사설 아이피 주소 및 포트에 대해 매핑된 공인 아이피 주소 및 포트를 같이 저장하여 상기 SIP 단말을 등록하는 단계와, 상기 SIP 단말로부터 호 연결을 위한 SIP 메시지를 수신하면, 목적지 SIP 단말의 등록된 공인 아이피 주소 및 포트를 획득하고, 획득된 목적지 SIP 단말의 공인 아이피 주소 및 포트로 호를 연결하는 단계와, 상기 SIP 단말로부터 상기 호 연결을 위한 SIP 메시지를 수신하면, 상기 SIP 메시지의 RTP 아이피 주소와 포트를 상기 SIP 서버의 아이피 주소와 포트를 수정하 고, 수정된 SIP 메시지의 RTP 아이피와 포트를 저장한 후, 상기 목적지 SIP 단말로 SIP 메시지를 재전송하는 단계와, 상기 수정된 SIP 메시지의 RTP 아이피와 포트를 통해 RTP 데이터를 수신하면, 상기 RTP 데이터로부터 공인 IP 주소와 포트를 추출하고, 추출된 공인 IP 주소와 포트를 저장하고, 목적지 SIP 단말의 공인 IP 주소와 포트로 상기 RTP 데이터를 중계하는 단계를 포함한다.
이하, 첨부한 도면을 참조하여 본 발명의 SIP 서버를 이용한 SIP 단말간 통화 방법에 대해 설명한다.
도 2는 본 발명에 따른 VoIP 서비스를 제공하는 SIP 네트워크 구성도이다.
도 2에 도시된 바와 같이, NAT(21, 22)를 설정한 복수개의 사설망, 및 사설망에 속해있는 복수개의 SIP 단말(211 ~21n, 221 ~ 22n)과 공인망, 공인망에 속해있는 SIP 서버(100), 및 복수개의 SIP 단말(311 ~31n)들로 구성된다.
SIP 단말(211 ~21n, 221 ~ 22n, 311 ~31n)은 전화를 걸고 받을 수 있고, SIP 프로토콜의 기능을 지원하는 터미널을 의미하며, SIP 단말(211 ~21n, 221 ~ 22n)이 사설망에 속해 있는 경우, 이는 VoIP 서비스를 이용하기 위해 NAT(21, 22)에 접속하여야 한다. 이때의 SIP 단말(211 ~21n, 221 ~ 22n)은 유선 및 무선으로 NAT(21, 22)과 연결가능하며, NAT(21, 22)에 의해 할당된 사설 IP 주소와 SIP 단말(211 ~21n, 221 ~ 22n)의 고유의 사용자 ID(Alias)를 가지고 있게 된다. 사설 IP 주소는 사설망의 환경에 따라 변경이 가능하며, SIP 단말(211 ~21n, 221 ~ 22n)의 사용자 ID는 고유한 값으로 불변한다.
NAT(21, 22)은 적어도 하나 이상의 공인 IP 주소를 할당받아 저장하고 있으며, NAT(21)의 내부망에 있는 복수개의 SIP 단말(211 ~21n)에 사설 IP 주소를 할당하여 준다. 이에 SIP 단말(211 ~21n)로부터 IP 트래픽이 입력되면, NAT(21)는 SIP 단말(211 ~21n)의 사설 IP 주소를 공인 IP 주소로 매핑하여 외부로 송신하고, 외부로부터 전송되는 IP 트래픽들을 사설 IP 주소로 변환하여 내부로의 전달을 수행한다.
SIP 서버(100)는 상이한 망을 연결하고, 망에 있는 SIP 단말(211 ~21n, 221 ~ 22n, 311 ~31n)끼리의 호 연결 및 해제, 메시지 교환을 수행한다. 이를 위해 SIP 서버(100)는 통신인터페이스부(110)와 처리부(120)와 데이터베이스부(130)를 구비한다.
통신인터페이스부(110)는 호 신호와 RTP 데이터의 송수신을 수행하고, 데이터베이스부(130)은 사용자의 사설 IP 주소 사용 여부를 저장하는 사용자 테이블(131), 사설 IP 주소 및 해당 사설 IP 주소에 매핑된 공인 IP 주소 정보를 저장하는 사용자별 컨텍트 테이블(132), 및 발신 및 수신 요청한 SIP 단말의 공인 IP 주소를 저장하는 호별 매핑 테이블(133)을 구비한다.
처리부(120)의 등록 처리부(121)는 이러한 데이터베이스부를 이용하여 호 연결 및 해제, 메시지 교환을 수행한다. 더욱 상세히 설명하면, SIP 단말로부터 "Resister" 메시지 수신 시, 메시지에서 사용자 아이디를 추출한 후, 사용자 테이블(131)을 검색하여 사설 IP 주소를 사용하는 메시지인지를 파악하고, 사설 IP 주소를 사용하는 메시지인 경우, 기존의 사설 IP 주소 정보를 가지는 "Contact" 헤더 이외에 NAT에 의해 매핑된 공인 IP 주소 정보를 가지는 "Contact" 헤더를 새로이 생성한다.
이에 SIP 서버는 하나의 사용자 아이디에 대한 기존의 "Contact" 헤더와 새로이 생성된 "Contact" 헤더의 정보(IP 주소, 포트 정보, 우선순위, 메시지 전송 시간 정보)를 사용자별 컨텍트 테이블(132)에 각각 저장하여, SIP 단말을 등록한다.
처리부(120)의 호 연결 처리부(122)는 호 연결을 위한 SIP 메시지가 수신되면, 수신된 상기 SIP 메시지에서 목적지 사용자 아이디를 추출하고, 사용자별 컨텍트 테이블과 비교 검색하여, 우선순위 값이 높은 목적지 SIP 단말의 공인 아이피 주소 및 포트로 호를 연결한다.
등록이 완료된 SIP 단말로부터 SIP 메시지가 수신되면, SIP 서버는 발신측 및 수신측 SIP 단말로부터 RTP 데이터를 수신하기 위해 할당한 SIP 서버 자신의 IP 주소와 포트 정보를 호별 매핑 테이블(3)에 저장한다.
처리부(120)의 RTP 데이터 중계부(122)는 RTP 데이터를 수신하기 위해 할당한 통해 RTP 데이터가 수신되면 발신측 및 수신측 SIP 단말이 사용하는 공인 IP 주소 및 포트 정보를 획득하여 호별 매핑 테이블(133)에 저장한다.
이에 SIP 서버는 특정 포트를 통해 RTP 메시지가 수신되면, 호별 매핑 테이블(133)을 검색하여 발신측인지 수신측인지 판단하고, 상대측의 공인 IP 주소 및 포트로 수신된 RTP 데이터를 전송함으로써 중개 역할을 수행한다. 이들 사용자 테이블(131), 사용자별 컨텍트 테이블(132), 및 호별 매핑 테이블(133)의 구조에 대 해서는 이하에서 상세히 설명하도록 한다.
도 3은 본 발명에 따른 SIP 서버를 이용한 SIP 단말간 통화 방법을 설명한 흐름도이다.
등록을 원하는 SIP 단말로부터 "Resister" 메시지를 수신하면, 등록을 수행하고, 등록이 완료되면 해당 SIP 단말로 "200 OK" 메시지를 재전송하는 SIP 초기 호 등록 단계(단계 S10), 등록이 완료된 SIP 단말(211)로부터 "INVITE" 메시지를 수신하면 수신측 SIP 단말에 호 연결 요청을 하고, 수신측 단말이 통화중이면 "180 Ringing"을 재전송하고, 수신측 단말(221)이 미디어 세션 정보를 수락 및 호 연결을 허가하면 "200 OK" 메시지 및 "ACK"를 재전송하는 호 연결 및 미디어 세션 수락 단계(단계 S20), 연결된 호 및 수락된 미디어 세션 정보를 통해 발신측 SIP 단말(211)과 수신측 SIP 단말(221)간의 RTP 메시지를 중계하는 RTP 데이터 교환 단계(단계 S30)를 순차적으로 진행하여 SIP 단말(211 ~ 21n, 221 ~ 22n)간 음성 통화가 가능하도록 한다. 각각의 단계는 이하 도면 5, 도면 6, 및 도면 7을 참조하여 상세하게 후술한다.
본 발명에 따른 도면 5, 도면 6, 및 도면 7을 설명하기에 앞서 NAT에 설정된 사설망에 있는 SIP 단말로부터 전송되는 "Resister" 메시지 패킷의 구조에 대해 간단히 설명하기로 한다.
도 4a 및 도 4b는 SIP 네트워크에서 송수신되는 SIP 메시지 패킷의 구조를 간략히 도시한 도면이다.
SIP 프로토콜은 일반적으로 UDP 소켓과 5060 포트를 사용하며, SIP 메시지 패킷의 물리적인 전송을 위해 이더넷 프레임 형식을 따른다.
SIP 메시지의 패킷이 UDP 패킷인 경우, 이는 IP 헤더(4), UDP 헤더(5), 및 데이터베이스부(130)를 포함한다.
IP 헤더(4)는 발신측 IP(Source IP) 정보를 가지는 발신측 IP부(4a), 및 수신측 IP(Destination IP) 정보를 가지는 수신측 IP부(4b)로 구성되고, UDP 헤더(5)는 발신측 포트(Source Port)정보를 가지는 발신측 포트부(5a), 및 수신측 포트(Destination Port) 정보를 가지는 수신측 포트부(5b)로 구성된다. 그리고 데이터베이스부(130)에는 실질적인 SIP 메시지가 저장된다.
데이터베이스부(130)에 저장되는 SIP 메시지의 형식은 도 4의 6과 같은 형식을 가지며, 메시지의 종류, 사용자(발신자) ID 정보를 가지는"FROM" 헤더, 수신자 ID 정보를 가지는 "TO" 헤더, 및 발신자 IP 주소, 포트, 우선순위(Q value), 메시지 전송 시간 정보(Expire Time) 정보를 가지는 "Contact" 헤더 등을 구비하여 SIP 메시지 가 구성된다.
이러한 정보를 가지는 SIP 메시지 패킷이 제 1 사설망에 있는 제 1 SIP 단말(211)로부터 전송되는 경우, 제 1 NAT(21)을 거치게 되며, NAT 방식에 따라 사설 IP 주소에서 공인 주소 IP 주소로의 변환이 수행되어, 도 4a와 같은 SIP 메시지 패킷에서 도 4b와 같은 SIP 메시지 패킷으로 정보가 변경된다.
제 1 사설망에 있는 제 1 SIP 단말(211)로부터 전송된 SIP 메시지 패킷은 도 4a에 도시된 바와 같이 발신측 IP부(4a), 및 발신측 포트부(5a)에 NAT(21)에 의해 할당된 사설 IP 주소(10.10.10.10)와 포트 정보(5060)가 저장된다.
이러한 제 1 SIP 단말에서 전송한 SIP 메시지 패킷은 제 1 NAT(21)를 거치면서 사설 IP 주소에 매핑되는 공인 IP 주소와 포트로 변경되어, 도 4b에 도시된 바와 같이 발신측 IP부(40a), 및 발신측 포트부(50a)에 공인 IP 주소(201.111.198.40)와 포트 정보(5060)가 저장되어 SIP 서버(100)로 전송된다.
이때의 제 1 NAT(21)은 NAT의 일반 기능에 의해 제 1 SIP 단말의 사설 IP 주소와 공인 IP 주소를 저장한 매핑 테이블을 관리하게 된다.
이와 같이 NAT이 설정된 사설망에 있는 SIP 단말은 SIP 서버에 자신을 등록하기 위해 "Resister" 메시지를 전송하고, 이를 수신하는 SIP 서버는 SIP 초기 호의 등록을 수행한다.
도 5는 도 3에 있어서, SIP 초기 호 등록 방법을 설명한 흐름도이다.
SIP 서버(100)는 SIP 단말(211 ~ 21n, 221 ~ 22n, 311 ~ 31n)로부터 "Resister" 메시지가 수신되는지 감지한다(단계 S11).
"Resister" 메시지를 수신하면 "FROM" 헤더로부터 사용자 ID를 추출한 후, 도 8의 사용자 테이블(131)에서 해당 사용자 ID를 검색하여 "Resister" 메시지를 전송한 SIP 단말(211 ~ 21n, 221 ~ 22n, 311 ~ 31n)이 사설 IP 주소를 사용하고 있는지 판단한다(단계 S12).
판단결과, SIP 단말(311 ~ 31n)이 공인 IP 주소를 사용하는 SIP 단말임이 확인되면, SIP 서버(100)는 "Resister" 메시지의 "Contact" 헤더로부터 IP 주소, 포트, 우선순위(Q value), 메시지 전송 시간 정보(Expire Time)를 추출하여 사용자별 컨텍트 테이블(132)에 저장하여 등록하고, "Resister" 메시지를 전송한 SIP 단말(311 ~ 31n)에 "200 OK"를 전송한다(단계 S13).
그러나 SIP 단말(211 ~ 21n, 221 ~ 22n)이 사설 IP 주소를 사용하는 SIP 단말임이 확인되면, NAT(21, 22)에 의해 매핑된 공인 IP 주소를 이용하여 새로운 "Contact" 헤더를 생성한다(단계 S14).
새롭게 생성된 "Contact" 헤더는 기존의 "Contact" 헤더와 동일하게 IP 주소, 포트, 우선순위(Q value), 메시지 전송 시간 정보(Expire Time)를 가지며, 새로운 "Contact" 헤더의 IP 주소 및 포트에는 IP 헤더(40)의 발신측 IP부(40a)와 UDP 헤더(50)의 발신측 포트부(50a)로부터 발신측 IP 주소 정보와 발신측 포트를 추출하여 저장한다.
그리고 우선순위(Q value)에는 기존의 "Contact" 헤더의 우선순위(Q value)(범위 : 0<=Q<2)보다는 큰 값을 지정하여 저장하고, 메시지 전송 시간 정보(Expire Time)에는 기존의 "Contact" 헤더의 메시지 전송 시간 정보(Expire Time)가 저장된다.
새로이 생성된 "Contact" 헤더와 기존의 "Contact" 헤더로부터 IP 주소, 포트, 우선순위(Q value), 메시지 전송 시간 정보(Expire Time)를 추출하여 사용자별 컨텍트 테이블(132)에 저장한다(단계 S15).
새로이 생성된 "Contact" 헤더와 기존의 "Contact" 헤더가 사용자별 컨텍트 테이블(132)에 성공적으로 저장되면, 호 등록이 성공적으로 수행되었음을 확인하고 "Resister" 메시지를 전송한 SIP 단말에 "200 OK"를 전송한다(단계 S16).
이와 같이 사설망에 있는 SIP 단말(211 ~ 21n, 221 ~ 22n)의 등록 시에는 동 일한 사용자에 대해 사설 IP 정보 및 공인 IP 정보가 같이 사용자별 컨텍트 테이블(132)에 저장된다.
이에 SIP 프로토콜을 사용하는 SIP 서버(100)는 SIP 단말로부터 "INVITE" 메시지를 수신하면 목적지 사용자 ID를 검색하여, 도 5를 통해 생성된 사용자별 컨텍트 테이블(132)에서 해당 사용자 ID에 대해 높은 우선순위 값을 가지는 IP 주소와 포트로 호 연결을 수행하게 된다.
물론 수신측 SIP 단말이 사설 IP 주소를 사용하더라도 공인 IP 주소 및 포트 정보(새로운 "Contact" 헤더)의 우선 우선순위(Q value)의 값이 상대적으로 크므로 호 연결시 NAT에 의해 매핑된 공인 IP 주소 및 포트 정보로 호가 연결 될 것이다.
따라서 SIP 서버는 SIP 단말이 사설망에 있을지라두 서로의 공인 IP 주소 및 포트로 등록했음으로 타 사설망 또는 공인망과의 호 신호 교환이 가능하도록 지원한다.
그러나 이 상태에서의 SIP 서버(100)는 호 신호의 교환은 지원할 수 있으나. 음성 교환은 지원할 수가 없다.
왜냐하면 SIP 프로토콜의 경우 음성 교환을 지원하는 RTP(Real-Time Protocol ; VoIP에서 음성을 교환하는 통신 규약)에 대한 정보는 보통 "INVITE" 메시지와 "200 OK"의 RTP IP와 포트 정보를 저장되어 서로 상대방에게 알려주게 되어 있다. 이러한 RTP에 대한 정보는 SIP 메시지의 SDP에 저장된다.
그러나 사설망안에 있는 SIP 단말(211 ~21n)이 사용하는 RTP IP와 포트는 국한적으로 사설망에만 사용하는 정보임으로 타 사설망에 있는 SIP 단말(221 ~ 22n) 로부터 받은 IP 주소와 포트는 사용할 수가 없기 때문이다. 즉 제 1 사설망에서는 제 2 사설망의 IP 체계를 사용할 수가 없다. 반대의 경우에도 마찬가지이다.
이에 본 발명에서는 RTP 데이터를 SIP 서버가 중개하는 방식을 적용하여 이 문제점을 해결하고자 한다.
이하의 도 6을 참조하면, RTP 데이터를 SIP 서버가 중개하기 위하여 SIP 시지("INVITE" 메시지 및 "200 OK")의 SDP에 있는 RTP IP 주소와 포트를 SIP 서버 자신의 IP 주소와 포트로 수정하는 SIP 호 연결 후 미디어 세션 정보 수정 방법을 설명한다.
도 6은 도 3에 따른 SIP 호 연결 후 미디어 세션 정보 수정 방법을 설명한 흐름도. 등록 완료된 SIP 단말(211 ~21n, 221 ~ 22n, 311 ~31n)로부터 SIP 메시지가 수신되는지를 감지한다(단계 S21).
SIP 메시지를 수신하면, 메시지의 "FROM" 헤더로부터 사용자 ID를 추출한 후, 도 8의 사용자 테이블(131)에서 해당 사용자 ID를 검색하여 SIP 메시지를 전송한 SIP 단말(211 ~21n, 221 ~ 22n, 311 ~31n)이 사설 IP 주소를 사용하고 있는지 판단한다(단계 S22).
판단결과, SIP 단말(311 ~31n)이 공인 IP 주소를 사용하는 SIP 단말임이 확인되면, SIP 메시지를 수정 없이 수신측 SIP 단말로 전송하여 주고, SIP 단말(211 ~21n, 221 ~ 22n)이 사설 IP 주소를 사용하는 SIP 단말임이 확인되면, RTP 정보가 저장되어 있는 SDP의 존재 여부를 확인한다(단계 S23).
만약, 사설 IP 주소를 사용하는 SIP 단말(211)이 전송한 SIP 메시지에 SDP가 존재하지 않으면 수정 없이 SIP 메시지를 수신측 SIP 단말(211)로 전송하고, SDP가 존재하면 RTP IP 주소와 포트(10.10.10.10: 5060)를 SIP 서버(100)의 자신의 IP 주소와 포트(201.111.198.30:1200)로 수정하고 SIP 호 매핑 정보 테이블의 RTP 수신항목에 호별로 저장한다(단계 S24).
RTP IP 주소와 포트(10.10.10.10: 5060)를 SIP 서버(100)의 IP 주소와 포트(201.111.198.30:1200)로 수정된 SIP 메시지를 수신측 SIP 단말(221)로 전송한다(단계 S25).
이와 같이 SIP 서버(100)는 발신측 SIP 단말(221)의 "INVITE" 메시지의 RTP IP 주소와 포트를 SIP 서버(100) 자신의 IP 주소와 포트(201.111.198.30:1200)로 수정하고, 이에 대한 응답으로 전송되는 수신측 SIP 단말(221)의 "200 OK" 메시지의 RTP 정보 중 IP 주소와 포트를 SIP 서버(100)의 IP 주소와 포트로 수정되어 다시 발신측 SIP 단말(221)로 재전송된다.
수정된 IP 주소와 포트는 도 10a에 도시된 바와 같이 SIP 호 매핑 정보 테이블에 호별로 저장된다. 이 SIP 호 매핑 정보 테이블은 SIP 서버(100)에서 RTP 데이터를 중개할 때 사용되고 자세한 사용방법은 이하에서 설명하기로 한다.
이렇게 되면 SIP 서버(100)는 SIP 단말에서 발생된 RTP 데이터를 수신하기 위해 해당 포트의 소켓을 할당하고, 할당된 포트의 소켓을 통해 SIP 단말로부터 전송되는 RTP 데이터를 수신하여 RTP 데이터를 중개할 수 있는 토대를 마련한다.
이때의 SIP 단말은 종래의 기술과 동일하게 단지 SIP 서버로 RTP 데이터를 전송하기만 하면 된다.
그러나 이 상태의 SIP 서버(100)는 목적하는 SIP 단말에 RTP 데이터를 전송하기 위한 SIP 단말 각각의 공인 IP 주소와 포트를 알 수 없으므로 아직은 RTP 데이터를 중개할 수 없다.
이하, 도 7을 참조하여 SIP 서버에서 RTP 데이터로부터 공인 IP 주소와 포트를 추출하는 방법 및 RTP 데이터를 중개하는 SIP 호 연결 후 RTP 데이터 중개 방법을 설명하기로 한다.
도 7은 도 3에 따른 SIP 호 연결 후 RTP 데이터 중개 방법을 설명한 흐름도이다.
도 7에 도시된 바와 같이, 수신한 RTP 데이터의 IP 헤더(4)에서 IP 주소와 포트 정보를 추출하여, 추출한 IP 주소와 포트 정보와 도 10a의 SIP 호 매핑 정보 테이블과 비교하여 RTP 데이터에 대한 해당 호(Call Number) 파악한다. 또한 RTP 데이터가 발신측 SIP 단말(211)로부터 전송된 것인지 수신측 SIP 단말(221)로부터 전송된 것인지 확인한다(단계 S31).
해당 호의 발신측 및 수신측의 RTP 발신항목에 모두 IP 주소와 포트정보가 저장되어 있는지를 판단하고, 저장여부에 따라 발신측 SIP 단말(211) 및 수신측 SIP 단말(221)에서 모두 RTP 데이터를 읽었는지를 판단한다(단계 S32).
판단결과, RTP 데이터를 읽지 않은 발신측 SIP 단말(211) 및 수신측 SIP 단말(221)이 존재하면, 수신된 RTP 데이터가 수신측 SIP 단말(221)로부터 전송된 것인지를 확인한다(단계 S33).
만약 수신된 RTP 데이터가 수신측 SIP 단말(221)로부터 전송된 것임이 확인 되면, 수신측 SIP 단말(221)로부터 전송된 RTP 패킷의 IP 헤더(40)의 발신측 IP부(40a)와 UDP 헤더(50)의 발신측 포트부(50a)로부터 발신측 IP 주소 정보와 발신측 포트 정보를 추출한 후 저장한다. 즉 도 10b의 수신측의 RTP 발신 항목과 같이 SIP 서버(100)가 수신측 SIP 단말(221)에 RTP 데이터를 전송하기 위한 공인 아이피 IP 주소와 포트 정보를 저장한다(단계 S34).
한편, RTP 데이터를 읽지 않은 발신측 SIP 단말(211) 및 수신측 SIP 단말(221)이 존재하는 경우, 수신된 RTP 데이터가 수신측 SIP 단말(221)로부터 전송된 것이 아니라면, 수신된 RTP 데이터가 발신측 SIP 단말(221)로부터 전송된 것인지를 확인한다(단계 S35).
확인 결과, 수신된 RTP 데이터가 발신측 SIP 단말(221)로부터 전송된 것임이 확인되면, 발신측 SIP 단말(221)로부터 전송된 RTP 패킷의 IP 헤더(40)의 발신측 IP부(40a)와 UDP 헤더(50)의 발신측 포트부(50a)로부터 발신측 IP 주소 정보와 발신측 포트 정보를 추출한 후 저장한다. 즉 도 10b의 발신측 RTP 발신 항목과 같이 SIP 서버가 RTP 데이터를 전송할 발신측 SIP 단말(211)에 RTP 데이터를 전송하기 위한 공인 IP 주소와 포트 정보를 저장한다(단계 S36).
이러한 단계는 도 10b와 같이 해당 호(Call Number)에 대해 발신측 및 수신측의 RTP 발신항목이 모두 채워질 때까지 순환된다.
이상의 단계에서는 SIP 서버가 RTP 데이터를 이용하여 발신측 또는 수신측 SIP 단말에서 전송하는 RTP 데이터를 상대 SIP 단말에 전송하기 위한 공인 IP 주소와 포트정보(사설망에 설정된 NAT를 거치면서 매핑된 공인 IP 주소와 포트정보)를 추출하는 방법을 설명하였다. SIP 서버가 두 곳으로부터 RTP 데이터를 중계할 IP 주소를 얻게 되면 다음의 단계로 진행하게 된다.
단계 S32의 판단결과, 발신측 SIP 단말(211) 및 수신측 SIP 단말(221)이 모두 RTP 데이터를 읽었음이 확인되면, 수신된 RTP 데이터가 수신측 SIP 단말(221)로부터 전송된 것인지를 확인한다(단계 S37).
확인 결과, 수신측 SIP 단말(211)로부터 수신한 RTP 데이터인 경우, RTP 데이터를 발신측의 RTP 발신 항목에 저장되어 있는 공인 IP 주소 및 포트로 전송하여 준다(단계 S38).
한편, 발신측 SIP 단말(211) 및 수신측 SIP 단말(221)이 모두 RTP 데이터를 읽었음이 확인된 경우, 수신된 RTP 데이터가 수신측 SIP 단말(221)로부터 전송된 것이 아니라면, 수신된 RTP 데이터가 발신측 SIP 단말(221)로부터 전송된 것인지를 확인한다(단계 S39).
단계 S37의 확인결과, 발신측 SIP 단말(221)로부터 수신한 RTP 데이터인 경우, RTP 데이터를 수신측 RTP 발신 항목에 저장되어 있는 공인 IP 주소 및 포트로 전송하여 준다(단계 S310).
RTP 데이터를 수신한 NAT(21,22)는 종래의 기술과 동일하게 해당 RTP 데이터의 공인 IP 주소 및 포트를 사설 IP 주소 및 포트로 변환하여 수신측 SIP 단말에 RTP 데이터를 전송하여 준다. 이를 통해 발신측 SIP 단말(221)과 수신측 SIP 단말(221)과 음성 통화가 이루어지게 된다.
도 8은 본 발명에 따른 사용자 테이블을 간략히 나타낸 도면이다.
SIP 서버(100)에 등록된 SIP 단말(211 ~21n, 221 ~22n, 311 ~31n)의 사설 IP 사용 여부를 저장한 테이블이다. 이는 SIP 서버(100)의 초기화시 관리자에 의해 사전에 등록되어야 한다.
본 발명에서는 사용자 테이블(131)에서 SIP 단말(211 ~21n, 221 ~22n, 311 ~31n)을 구별하기 위한 주소 방식으로 가장 일반적으로 사용되는 사용자 ID를 사용하는 방식을 채택하도록 한다. 물론 사용자의 필요에 따라 SIP 단말(211 ~21n, 221 ~22n, 311 ~31n)을 구별하기 위한 주소 방식은 SIP 단말을 구별이 가능한 범위 내에서 다양한 방식으로 적용 가능함은 자명할 것이다.
도 9는 본 발명에 따른 사용자별 컨텍트 테이블이다.
사용자별 컨텍트 테이블(132)은 본 발명에 따른 SIP 초기 호 등록 방법에 의해 작성되는 테이블로, 도시된 바와 같이 공인망에 있는 사용자 정보에는 공인 IP 주소 정보를 포함하는 한 개의 정보가 등록된다. 반면에 사설망에 있는 사설 IP 주소를 사용하는 사용자의 정보에는 사설 IP 주소 정보 및 공인 IP 주소 정보를 포함하는 두개의 정보가 등록된다.
도 10a 및 도 10b는 본 발명에 따른 SIP 호 매핑 정보 테이블로 도 10a는 본 발명의 SIP 호 연결 방법에 따라 호 연결을 요청한 경우에 작성되는 SIP 호 매핑 정보 테이블의 일 실시예이며, 도 10b는 호 연결 요청에 대한 응답으로 호 연결이 된 경우 작성되는 SIP 호 매핑 정보 테이블의 일 실시예이다.
도 10a 및 10b에 도시된 바와 같이 SIP 호 매핑 정보 테이블은 발신측과 수신측 각각이 RTP 수신 항목과 RTP 발신항목을 구비한다. RTP 수신항목에는 도 6의 단계 S23에 의해 수정된 SIP 서버의 IP 주소와 포트정보가 저장되고, RTP 발신 항목에는 도 5의 단계 S14에 의해 작성된 사용자별 컨텍트 테이블(132) 검색하여 우선순위가 높은 SIP 단말의 IP 주소 및 포트 정보가 저장된다.
이와 같이 작성된 SIP 호 매핑 정보 테이블의 정보를 통해, SIP 서버는 사설망에 있는 SIP 단말에서 전송하는 RTP 데이터를 RTP 수신항목에 저장된 자신의 IP 주소와 포트를 통해 수신하고, RTP 발신 항목에 저장된 상대편 SIP 단말의 공인 IP 주소와 포트로 수신된 RTP 데이터를 전송함으로써 RTP 데이터의 중계를 수행한다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다
상술한 바와 같이, 본 발명에 따른 SIP 서버를 이용한 SIP 단말간 통화 방법은 SIP 서버가 SIP 단말기에서 송수신되는 RTP 데이터를 중계하도록 하여 기존의 데이터 망의 별도의 기능 추가 없이 사설망과 사설망간 또는 공인망과 사설망에 있는 SIP 단말간의 음성 통화가 가능하도록 한다.

Claims (18)

  1. SIP(Session Initiation Protocol) 서버에 있어서,
    호 연결을 위한 SIP 단말들 각각의 공인 아이피 주소와 RTP(Real-time Transport Protocol) 데이터를 수신하기 위한 SIP 서버의 아이피 주소 및 포트와 RTP 데이터를 전송하기 위한 목적지 SIP 단말의 공인 아이피 주소를 저장하는 데이터베이스부;
    호 신호와 RTP 데이터의 송수신을 수행하는 통신인터페이스부; 및
    상기 SIP 단말의 등록 요청에 따라 상기 SIP 단말의 공인 아이피 주소를 등록하고, 상기 SIP 단말의 호 연결 요청에 따라 상기 등록된 공인 아이피 주소로의 호 연결을 수행하고, 상기 RTP 데이터를 수신하기 위한 SIP 서버의 아이피 주소 및 포트를 통해 RTP 데이터를 수신하고, 상기 수신된 RTP 데이터를 목적지 SIP 단말의 공인 아이피 주소로 전송하는 처리부를 포함하는 SIP 서버.
  2. 제 1 항에 있어서, 상기 데이터베이스부는
    상기 SIP 서버에 접속된 모든 SIP 단말 각각의 사용자 아이디별로 사설 아이피 주소 사용 여부를 저장하는 사용자 테이블;
    사설 망내에 있는 SIP 단말에 대해서는 등록 요청을 위한 SIP 메시지의 컨텍트 헤더 정보와 생성된 컨텍트 헤더 정보를 각 사용자별로 저장하고, 공인 망내에 있는 SIP 단말에 대해서는 상기 등록 요청 메시지의 컨텍트 헤더 정보를 각 사용자 별 아이디로 저장하는 사용자별 컨텍트 테이블; 및
    RTP 데이터를 수신하기 위해 할당된 상기 SIP 서버의 아이피 주소와 포트와, 수신한 RTP 데이터를 전송하기 위한 공인 아이피 주소와 포트를 각 호별로 저장하는 SIP 호 매핑 테이블을 포함하는 SIP 서버.
  3. 제 2 항에 있어서, 상기 SIP 메시지의 컨텍트 헤더는
    사설 아이피 주소를 사용하는 사용자의 아이피 주소, 포트, 제 1 우선순위 값, 제 1 메시지 전송 시간 정보를 포함하는 것을 특징으로 하는 SIP 서버.
  4. 제 2 항 또는 제 3 항에 있어서, 상기 생성된 컨텍트 헤더는
    등록 요청 메시지의 아이피 헤더의 발신측 IP 주소 정보;
    UDP(User Datagram Protocol) 헤더의 발신측 포트;
    상기 컨텍트 헤더에 저장된 제 1 우선순위 값 보다 높은 값이 지정된 제 2 우선순위 정보; 및
    상기 컨텍트 헤더에 저장된 제 1 메시지 전송 시간 정보를 포함하는 것을 특징으로 하는 SIP 서버.
  5. 제 2 항에 있어서, 상기 SIP 호 매핑 정보 테이블은
    수신측 및 발신측 각각으로부터 전송되는 RTP 데이터를 수신하기 위해 할당된 상기 SIP 서버의 아이피 주소와 포트 정보를 호별로 저장하는 RTP 수신 항목; 및
    수신측 및 발신측 SIP 단말의 공인 아이피 주소 및 포트 정보를 호별로 저장하는 RTP 발신 항목을 포함하는 것을 특징으로 하는 SIP 서버.
  6. 제 2 항에 있어서, 상기 처리부는
    등록 요청을 위한 상기 SIP 단말에 대응되는 공인 아이피 주소 및 포트 정보를 상기 사용자별 컨텍트 테이블에 저장하여 상기 SIP 단말을 등록하는 등록 처리부;
    호 연결을 요청받으면 상기 사용자별 컨텍트 테이블을 참조하여 상기 목적지 SIP 단말에 대응되는 공인 아이피 주소 및 포트 정보로 호 연결을 수행하고, 상기 RTP 데이터를 수신하기 위한 RTP 아이피 주소 및 포트를 상기 RTP 데이터를 수신하기 위해 할당된 상기 SIP 서버의 아이피 주소 및 포트로 수정한 후 상기 SIP 호 매핑 테이블에 호별로 저장하는 호 연결 처리부; 및
    상기 RTP 데이터로부터 상기 RTP 데이터를 전송하기 위한 공인 아이피 주소 및 포트 정보를 획득하여 상기 SIP 호 매핑 테이블에 호별로 더 저장한 후, 상기 SIP 호 매핑 테이블을 참조하여 상기 RTP 데이터의 전송을 중계하는 RTP 데이터 중계부를 포함하는 SIP 서버.
  7. 제 6 항에 있어서, 상기 등록 처리부는
    a) 등록 요청을 위한 SIP 메시지가 수신되면, 상기 수신된 SIP 메시지에서 사용자 아이디를 추출하고, 상기 사용자 테이블과 비교 검색하여 사설 아이피 주소 사용 여부를 판단하고,
    b) 상기 판단 결과, 사설 아이피 주소를 사용하는 경우, 공인 아이피 주소 정보를 가지는 새로운 컨텍트 헤더를 생성하고, 생성된 컨텍트 헤더와 상기 SIP 메시지의 컨텍트 헤더의 정보를 각각 추출하여 상기 사용자별 컨텍트 테이블에 저장 하고, 공인 아이피 주소를 사용하는 경우, 상기 SIP 메시지의 컨텍트 헤더 정보를 추출하여 상기 사용자별 컨텍트 테이블에 저장하는 것을 특징으로 하는 SIP 서버.
  8. 제6항에 있어서, 상기 호 연결 처리부는
    a) 호 연결을 위한 SIP 메시지가 수신되면, 상기 수신된 SIP 메시지에서 목적지 사용자 아이디를 추출한 후, 상기 사용자별 컨텍트 테이블을 비교검색하여 우선순위 값이 높은 상기 목적지 SIP 단말의 아이피 주소와 포트를 획득하여 호 연결하고,
    b) 상기 호 연결을 위한 SIP 메시지의 단말의 RTP 아이피 주소 및 포트를 RTP 데이터를 수신하기 위해 할당된 상기 SIP 서버의 아이피 주소 및 포트로 수정한 후, 상기 수정된 SIP 메시지의 RTP 아이피 및 포트를 상기 SIP 호 매핑 테이블에 호별로 저장하는 것을 특징으로 하는 SIP 서버.
  9. 제6항에 있어서, 상기 RTP 데이터 중계부는
    a) 상기 SIP 서버의 아이피 주소 및 포트를 통해 상기 RTP 데이터를 수신하면, 상기 RTP 데이터로부터 상기 RTP 데이터를 전송할 공인 아이피 주소 및 포트를 추출하여 상기 SIP 호 매핑 테이블에 호별로 더 저장하고,
    b) 상기 SIP 호 매핑 테이블을 참조하여 상기 RTP 데이터를 상기 추출된 공인 아이피 주소 및 포트로 재전송하는 것을 특징으로 하는 SIP 서버.
  10. SIP 서버를 이용한 SIP 단말간 통화 방법에 있어서,
    상기 SIP 단말로부터 등록 요청을 위한 SIP 메시지가 수신되면, 공인 아이피 주소 및 포트를 저장하여 상기 SIP 단말을 등록하는 단계;
    상기 SIP 단말로부터 호 연결을 위한 SIP 메시지가 수신되면, 목적지 SIP 단말의 공인 아이피 주소 및 포트를 획득하고, 획득된 목적지 SIP 단말의 공인 아이피 주소 및 포트로 호를 연결하는 단계;
    상기 수신된 호 연결을 위한 SIP 메시지의 RTP 아이피 주소와 포트를 상기 SIP 서버의 아이피 주소와 포트를 수정하여 상기 목적지 SIP 단말로 SIP 메시지를 전송하는 단계; 및
    상기 수정된 SIP 서버의 아이피 주소와 포트를 통해 RTP 데이터를 수신하면, 상기 RTP 데이터로부터 공인 IP 주소와 포트를 추출하고, 추출된 공인 IP 주소와 포트와 수정된 SIP 서버의 아이피 주소와 포트를 이용하여 상기 RTP 데이터를 중계하는 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  11. 제 10 항에 있어서, 상기 SIP 단말을 등록하는 단계는,
    상기 SIP 서버에 접속된 모든 SIP 단말 각각의 사용자 아이디별로 사설 아이피 주소 사용 여부를 사용자 테이블에 저장하는 저장 단계;
    상기 SIP 단말로부터 등록 요청을 위한 SIP 메시지가 수신되면, 상기 SIP 메시지에서 사용자 아이디를 추출하고, 상기 사용자 테이블과 비교 검색하여, 사설 아이피 사용 여부를 확인하는 확인 단계; 및
    상기 SIP 단말이 사설 아이피를 사용하면, 사설 아이피에 대해 매핑된 공인 아이피 주소를 획득하고, 획득된 공인 아이피 주소와 사설 아이피 주소 각각을 상기 사용자별 컨텍트 테이블에 저장하고, 상기 SIP 단말이 사설 아이피를 사용하지 않으면, 공인 아이피 주소를 획득하고, 획득된 공인 아이피를 상기 사용자별 컨텍트 테이블에 저장하여 상기 SIP 단말을 등록하는 등록 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  12. 제 11 항에 있어서, 상기 등록 단계는,
    상기 SIP 단말이 사설 아이피를 사용하면, 상기 등록 요청을 위한 SIP 메시지의 컨텍트 헤더 정보를 획득하여 사용자 아이디별로 저장하고, 공인 아이피 주소를 가지는 새로운 컨텍트 헤더를 생성하고, 상기 새로운 컨텍트 헤더 정보를 획득하여 사용자 아이디별로 저장하는 단계; 및
    상기 SIP 단말이 사설 아이피를 사용하면, 상기 등록 요청을 위한 SIP 메시지의 컨텍트 헤더 정보를 획득하여 사용자 아이디별로 저장하는 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  13. 제 12 항에 있어서, 상기 등록 요청을 위한 SIP 메시지의 컨텍트 헤더 정보는,
    발신측 아이피 주소, 발신측 포트, 제 1 우선순위 값, 및 제 1 메시지 전송 시간을 포함하는 것을 특징으로 하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  14. 제 12 항 또는 제 13항에 있어서, 상기 새로운 컨텍트 헤더 정보는,
    상기 등록 요청을 위한 SIP 메시지의 아이피 헤더의 발신측 아이피 주소, UDP(User Datagram Protocol) 헤더의 발신측 포트, 제 2 우선순위 정보, 및 상기 제 1 메시지 전송 시간을 포함하는 것을 특징으로 하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  15. 제 14항에 있어서, 상기 제 2 우선순위 값은,
    상기 제 1 우선 순위값보다 큰 값인 것을 특징으로 하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  16. 제 10 항에 있어서, 상기 호를 연결하는 단계는,
    상기 등록된 SIP 단말로부터 SIP 메시지를 수신하면, 수신된 SIP 메시지의 목적지 사용자 아이디를 추출하는 단계;
    추출된 목적지 사용자 아이디와 상기 사용자별 컨텍트 테이블에서 비교 검색하여 우선순위 값을 높은 IP 주소와 포트를 선택하는 단계; 및
    선택된 IP 주소와 포트로 호를 연결하는 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  17. 제 10 항에 있어서, 상기 SIP 메시지를 전송하는 단계는
    상기 SIP 메시지의 SDP 필드가 존재하면 RTP 아이피 주소와 포트를 상기 SIP 서버의 IP 주소와 포트로 수정하고, 수정된 RTP IP 주소와 포트를 SIP 호 매핑 정보 테이블에 호별로 저장하고, 수정된 SIP 메시지를 목적지 SIP 단말로 전송하는 단계; 및
    상기 SIP 메시지의 SDP 필드가 존재하지 않으면, 수신된 SIP 메시지를 목적지 SIP 단말로 전송하는 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
  18. 제 10 항에 있어서, 상기 RTP 데이터를 중계하는 단계는
    상기 수정된 SIP 메시지의 RTP 아이피와 포트를 통해 RTP 데이터를 수신하면, 수신한 RTP 데이터의 아이피 헤더에서 수신측 아이피 주소와 포트 정보를 추출하여, 상기 SIP 호 매핑 정보 테이블의 RTP 수신항목과 비교하여 해당 호를 찾는 단계;
    상기 호의 발신측 및 수신측 RTP 데이터를 모두 읽었는지 확인하는 단계;
    a) 상기 발신측 또는 수신측 RTP 데이터를 읽지 않은 경우, 발신측으로부터 수신한 RTP 데이터에서 공인 아이피 주소와 포트를 획득하여 해당 호의 발신측 RTP 발신항목에 저장하고, 상기 수신측에서 RTP 데이터를 읽지 않은 경우, 수신측으로부터 수신한 RTP 데이터에서 공인 아이피 주소와 포트를 획득하여 해당 호의 수신측 RTP 발신항목에 저장하는 단계; 및
    b) 상기 호의 발신측 및 수신측 RTP 데이터를 모두 읽었으면, 상기 발신측으로부터 수신한 RTP 데이터는 해당 호의 수신측 RTP 발신항목에 저장된 아이피 주소와 포트로 전송하고, 상기 수신측으로부터 수신한 RTP 데이터는 상기 SIP 호 매핑 정보 테이블의 해당 호의 발신측 RTP 발신항목에 저장된 아이피 주소와 포트로 전송하는 단계를 포함하는 SIP 서버를 이용한 SIP 단말간 통화 방법.
KR1020030040410A 2003-06-20 2003-06-20 Sip 서버 및 이를 이용한 sip 단말간 통화 방법 Expired - Fee Related KR100582574B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030040410A KR100582574B1 (ko) 2003-06-20 2003-06-20 Sip 서버 및 이를 이용한 sip 단말간 통화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030040410A KR100582574B1 (ko) 2003-06-20 2003-06-20 Sip 서버 및 이를 이용한 sip 단말간 통화 방법

Publications (2)

Publication Number Publication Date
KR20040110032A KR20040110032A (ko) 2004-12-29
KR100582574B1 true KR100582574B1 (ko) 2006-05-23

Family

ID=37382519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030040410A Expired - Fee Related KR100582574B1 (ko) 2003-06-20 2003-06-20 Sip 서버 및 이를 이용한 sip 단말간 통화 방법

Country Status (1)

Country Link
KR (1) KR100582574B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100686828B1 (ko) * 2004-09-14 2007-02-23 주식회사 케이티 Sip-uri를 이용한 호제어방법 및 장치
KR100694206B1 (ko) * 2005-02-28 2007-03-14 삼성전자주식회사 사설망에서의 sip 서비스 제공 장치 및 그 방법
KR100643292B1 (ko) * 2005-04-29 2006-11-10 삼성전자주식회사 세션 개시 프로토콜 단말기 사용자의 주소 정보 관리 방법및 이를 위한 서버
KR100799588B1 (ko) * 2005-12-08 2008-01-30 한국전자통신연구원 댁내 인터넷 전화 서비스 장치 및 그 방법
KR100710563B1 (ko) * 2005-12-29 2007-04-24 삼성에스디에스 주식회사 P2p-sip 기반의 sip 단말과 표준 sip 기반시스템의 연동방법
KR100785307B1 (ko) * 2006-02-01 2007-12-12 삼성전자주식회사 아이피 사설교환기를 통한 데이터 중계 전송 시스템 및 그방법
KR100815557B1 (ko) * 2006-05-16 2008-03-20 주식회사 케이티프리텔 사설망과 공인망 간에 sip 기반의 연동을 위한 sip 메시지 라우팅 방법, 이를 적용한 응용 계층 게이트웨이 장치 및 네트워크 주소 변환 장치
JP4660624B2 (ja) 2006-04-24 2011-03-30 ケイティー コーポレーション 互いに異なるipアドレス体系を使用するipネットワークの相互接続システム、相互接続方法及びそのsipメッセージルーティング方法
KR100847873B1 (ko) * 2006-12-19 2008-07-23 삼성전자주식회사 Ip 네트워크에서의 호 설정 방법 및 그 단말
KR101417001B1 (ko) * 2007-08-21 2014-08-06 삼성전자주식회사 위치 정보 제공 시스템 및 그 방법
KR100931158B1 (ko) * 2007-11-29 2009-12-10 삼성네트웍스 주식회사 Sip와 rtp를 이용한 인터넷 전화 펌웨어 업그레이드시스템 및 방법
KR101426464B1 (ko) 2007-12-17 2014-08-06 삼성전자주식회사 이동통신장치에서 서비스 품질정보 파라메터를 추출하는방법 및 장치
KR101376171B1 (ko) * 2012-08-16 2014-03-19 한국전자통신연구원 인터넷 프로토콜 시큐리티 가상 사설망 장치 및 그를 이용하는 통신 방법

Also Published As

Publication number Publication date
KR20040110032A (ko) 2004-12-29

Similar Documents

Publication Publication Date Title
JP4303244B2 (ja) アドレス解決装置、アドレス解決方法およびそれを用いた通信システム
US7406043B1 (en) Method for providing voice-over-IP service
US7684397B2 (en) Symmetric network address translation system using STUN technique and method for implementing the same
EP1137238B1 (en) System and method for integrated communications over a local IP network
CN100466650C (zh) 具有nat的网络中的sip服务方法
JP4411332B2 (ja) Ip通信装置及びip通信システム並びにこれらのip通信方法
US20140013412A1 (en) Providing telephony services to terminals behind a firewall and/or a network address translator
US20050201304A1 (en) Signaling mediation agent
KR100582574B1 (ko) Sip 서버 및 이를 이용한 sip 단말간 통화 방법
CN100380894C (zh) 通信控制装置
JP2012505579A (ja) Natトラバーサル方法及び装置
WO2006082576A2 (en) A method and apparatus for server-side nat detection
KR20060070328A (ko) 에스아이피 기반의 브이오아이피 단말에서의 주소록 자동갱신 장치 및 방법
KR101606142B1 (ko) 음성패킷망에서 네트워크 주소 번역 통과를 지원하기 위한 장치 및 방법
US8457111B2 (en) Voice communication method and system in ubiquitous robotic companion environment
US20050144326A1 (en) Compartment handling for signaling compression
KR20020036165A (ko) 망주소변환기술이 적용된 인터넷상의 데이터 통신 방법 및그 장치
KR100652984B1 (ko) 계층적 sip 기반의 이동성 관리 시스템 및 방법
KR101253025B1 (ko) Udp 푸시 데이터 전송 시스템 및 그 제어방법과, 그 시스템에 포함되는 통신 단말기 및 그 제어방법
JP2009135697A (ja) 通信ネットワークにおけるipパケット中継方法およびゲートウェイ装置
JP4790067B2 (ja) Ipネットワークシステム、ゲートウエイ装置及びip機器
GB2426143A (en) Network address translation (NAT) in a voice over internet protocol (VoIP) environment
JP2010239516A (ja) 情報通信システム
CN100574254C (zh) 穿越网络地址转换装置的处理方法及通话启始协议服务器
Mellouk et al. A new methodology to adapt SIP Protocol for voice traffic transported over IP Network

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20030620

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20050429

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20051014

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060415

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20060516

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20060517

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090429

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20100429

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20110428

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20120427

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20130429

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20130429

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20140429

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20150429

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20150429

Start annual number: 10

End annual number: 10

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20170409